Skip to main content

Platform Architecture

Purpose: For platform engineers, explains the end-to-end system design covering YAML config → infrastructure → Kubernetes → GitOps manifests → running services.

Architecture Overview

openCenter transforms a single YAML configuration into a production-ready Kubernetes cluster through a multi-stage pipeline:

Pipeline Stages

Stage 1: Configuration

The cluster configuration YAML defines:

  • Infrastructure provider (OpenStack, VMware, Baremetal, Kind)
  • Node topology (control plane, workers)
  • Kubernetes version and settings
  • Platform services to deploy
  • Security policies

Stage 2: Generation

The CLI generates:

  • Terraform/OpenTofu: Infrastructure-as-code for the target provider
  • Kubespray Inventory: Ansible inventory with security hardening
  • FluxCD Manifests: GitOps configuration pointing to gitops-base

Stage 3: Provisioning

Terraform provisions:

  • Virtual machines or cloud resources for automated providers
  • Network configuration
  • Load balancers
  • Storage volumes

For VMware and Baremetal, openCenter can also operate against pre-provisioned hosts where the infrastructure lifecycle stays outside the tool.

Stage 4: Kubernetes Deployment

Kubespray deploys:

  • HA control plane (3 nodes)
  • Worker nodes
  • Calico CNI
  • ContainerD runtime
  • Security hardening (PSA, admission controllers)

Stage 5: GitOps Reconciliation

FluxCD continuously reconciles:

  • Platform services from gitops-base
  • Customer applications from managed-services
  • Security policies and configurations

Key Design Principles

  1. Declarative Configuration: Everything defined in Git
  2. Separation of Concerns: Infrastructure, Kubernetes, and applications managed independently
  3. Security by Default: Hardened configurations out of the box
  4. Extensibility: Kustomize overlays for customization