Skip to main content

openCenter Deployed Cluster Logical Diagram

Purpose: For platform engineers, shows the logical layout of a fully deployed openCenter Kubernetes cluster — namespaces, service placement, and inter-component communication.

Simplified Overview

Namespace Layout

NamespaceServicesPurpose
flux-systemSource, Kustomize, Helm, Notification controllersGitOps reconciliation engine
olmOperator Lifecycle Manager, OLM CatalogInstalls and manages operators (Kafka, Keycloak, etc.)
cert-managercert-manager, ClusterIssuersAutomated TLS certificate lifecycle
kyvernoKyverno engine, admission webhookPolicy enforcement (17 baseline policies)
keycloakKeycloak, PostgreSQLIdentity and access management via OIDC
rbac-managerRBAC ManagerDeclarative RBAC from Keycloak group claims
metallb-systemMetalLB speakers, controllerBare-metal load balancer (L2/BGP)
kube-systemkube-vipVirtual IP for control-plane HA (stable API server endpoint)
gateway-systemGateway API controller, HTTPRoutesL7 traffic routing
observabilityPrometheus, Grafana, Alertmanager, Loki, Promtail, Tempo, OTel Collector, KafkaMetrics, logs, traces, event streaming, and alerting
longhorn-systemLonghorn Manager, CSI driverDistributed block storage
csi-drivervSphere CSI / Cinder CSICloud-provider storage integration
harborHarbor Core, Registry, TrivyPrivate container registry with vulnerability scanning
headlampHeadlamp UI, branding pluginKubernetes web dashboard with OIDC authentication
veleroVelero serverCluster backup and disaster recovery
customer-appsCustomer deploymentsApplication workloads routed via Gateway API

Data Flow Summary

  • Ingress path: External traffic → MetalLB → Gateway API → HTTPRoute → Application Service → Pod
  • Control-plane HA path: kube-vip elects leader on control-plane nodes → advertises virtual IP → all clients/nodes reach Kubernetes API via stable VIP
  • GitOps path: Git push → FluxCD Source Controller → Kustomize/Helm Controller → Kubernetes API → Resources deployed
  • Secrets path: SOPS-encrypted YAML in Git → FluxCD decrypts with Age key → Kubernetes Secret created
  • Observability path: Pods emit metrics/logs/traces → OpenTelemetry Collector → Kafka → Prometheus + Loki + Tempo → Grafana dashboards
  • Policy path: Resource admission → Kyverno webhook → validate against 17 ClusterPolicies → admit or reject
  • Auth path: User login → Keycloak OIDC → JWT with group claims → RBAC Manager → RoleBindings → API Server authorization
  • Headlamp path: Operator browser → MetalLB → Gateway API → Headlamp UI → Keycloak OIDC login → Kubernetes API (scoped by RBAC)
  • OLM path: FluxCD deploys OLM → OLM installs operators from catalog → operators provision Kafka, Keycloak, and other stateful services