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