Skip to content

Control Plane

The Control Plane consists of a modular operator architecture where each OpenStack service has its own dedicated operator. The central c5c3-operator handles orchestration and dependency management.

Note: The OpenStack services and their operators documented below are representative of the current implementation. The modular architecture is designed to integrate additional OpenStack services (e.g., Ceilometer, Limes) via dedicated operators.

Operator Overview

text
┌─────────────────────────────────────────────────────────────────────────────┐
│                    Modular Operator Architecture                            │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  CONTROL PLANE CLUSTER                                                      │
│  ─────────────────────                                                      │
│  ┌─────────────────────────────────────────────────────────────────────┐    │
│  │                    c5c3-operator (Orchestration)                    │    │
│  │                    Namespace: c5c3-system                           │    │
│  │  ┌─────────────────────────────────────────────────────────────┐    │    │
│  │  │  • ControlPlane CRD        • Dependency Graph               │    │    │
│  │  │  • Infrastructure CRs      • Health Aggregation             │    │    │
│  │  │  • Credential Orchestration                                 │    │    │
│  │  └─────────────────────────────────────────────────────────────┘    │    │
│  └──────────────────────────────┬──────────────────────────────────────┘    │
│                                 │                                           │
│                    ┌────────────┼─────────────┐                             │
│                    │   Creates Service CRs    │                             │
│                    ▼            ▼             ▼                             │
│  ┌──────────────────────────────────────────────────────────────────────┐   │
│  │                    Service Operators (Namespace: openstack)          │   │
│  │                                                                      │   │
│  │   ┌─────────────┐  ┌─────────────┐  ┌─────────────┐                  │   │
│  │   │ keystone-   │  │ glance-     │  │ placement-  │                  │   │
│  │   │ operator    │  │ operator    │  │ operator    │                  │   │
│  │   │ Keystone CR │  │ Glance CR   │  │ Placement CR│                  │   │
│  │   └─────────────┘  └─────────────┘  └─────────────┘                  │   │
│  │                                                                      │   │
│  │   ┌─────────────┐  ┌─────────────┐  ┌─────────────┐                  │   │
│  │   │ nova-       │  │ neutron-    │  │ cinder-     │                  │   │
│  │   │ operator    │  │ operator    │  │ operator    │                  │   │
│  │   │ Nova CR     │  │ Neutron CR  │  │ Cinder CR   │                  │   │
│  │   └─────────────┘  └─────────────┘  └─────────────┘                  │   │
│  │                                                                      │   │
│  │   ┌─────────────┐  ┌─────────────┐                                   │   │
│  │   │ cortex-     │  │ tempest-    │  (optional)                       │   │
│  │   │ operator    │  │ operator    │                                   │   │
│  │   │ Cortex CR   │  │ Tempest CR  │                                   │   │
│  │   └─────────────┘  └─────────────┘                                   │   │
│  └──────────────────────────────────────────────────────────────────────┘   │
│                                 │                                           │
│          ┌──────────────────────┼──────────────────────┐                    │
│          ▼                      ▼                      ▼                    │
│  ┌─────────────┐       ┌─────────────┐        ┌─────────────┐               │
│  │ MariaDB Op  │       │ RabbitMQ Op │        │ Valkey Op   │               │
│  │  (external) │       │  (external) │        │  (external) │               │
│  └─────────────┘       └─────────────┘        └─────────────┘               │
│                                                                             │
│  ┌──────────────────────────────────────────────────────────────────────┐   │
│  │                    K-ORC (Namespace: orc-system)                     │   │
│  │                                                                      │   │
│  │   Declarative Keystone Resource Management                           │   │
│  │   (Services, Endpoints, Users, ApplicationCredentials,               │   │
│  │    Domains, Projects, Roles, Groups)                                 │   │
│  └──────────────────────────────────────────────────────────────────────┘   │
│                                                                             │
│  ┌──────────────────────────────────────────────────────────────────────┐   │
│  │                    ovn-operator (Namespace: ovn-system)              │   │
│  │                                                                      │   │
│  │   ┌─────────────┐  ┌─────────────┐                                   │   │
│  │   │ OVN         │  │ OVN         │                                   │   │
│  │   │ Northbound  │  │ Southbound  │    neutron-operator connects      │   │
│  │   │ (3x Raft)   │  │ (3x Raft)   │    via ML2/OVN driver             │   │
│  │   └─────────────┘  └──────┬──────┘                                   │   │
│  │                           │                                          │   │
│  └───────────────────────────┼──────────────────────────────────────────┘   │
│                              │ OVSDB Protocol                               │
├──────────────────────────────┼──────────────────────────────────────────────┤
│                              │                                              │
│  HYPERVISOR CLUSTER          ▼                                              │
│  ──────────────────  ┌─────────────┐                                        │
│                      │ ovn-        │  (DaemonSet on each hypervisor node)   │
│                      │ controller  │                                        │
│                      └─────────────┘                                        │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

Advantages of modular architecture:

  • Single Responsibility: Each operator has exactly one task
  • Independent Releases: Service-Operator updates without full-stack deployment (see Upgrade & Lifecycle)
  • Better Testability: Isolated unit and integration tests per operator
  • Flexible Scaling: Deploy only needed operators
  • Clear Ownership: Dedicated teams per operator possible

Operator Reference

OpenStack Service Operators:

OperatorCRDAPI GroupDescription
c5c3-operatorControlPlanec5c3.io/v1alpha1Orchestration, Dependencies
SecretAggregatec5c3.io/v1alpha1Secret Aggregation
CredentialRotationc5c3.io/v1alpha1Credential Lifecycle
keystone-operatorKeystonekeystone.openstack.c5c3.io/v1alpha1Identity Service
glance-operatorGlanceglance.openstack.c5c3.io/v1alpha1Image Service
placement-operatorPlacementplacement.openstack.c5c3.io/v1alpha1Resource Tracking
nova-operatorNovanova.openstack.c5c3.io/v1alpha1Compute Service
neutron-operatorNeutronneutron.openstack.c5c3.io/v1alpha1Network Service
ovn-operatorOVNClusterovn.c5c3.io/v1alpha1OVN SDN Backend (Control Plane)
OVNChassisovn.c5c3.io/v1alpha1Chassis/Node Registration
memcached-operatorMemcachedmemcached.c5c3.io/v1alpha1Memcached Cluster Management
cinder-operatorCindercinder.openstack.c5c3.io/v1alpha1Block Storage
cortex-operatorCortexcortex.c5c3.io/v1alpha1Intelligent Scheduler (optional)
tempest-operatorTempesttempest.openstack.c5c3.io/v1alpha1Integration Testing (optional)

Infrastructure Service Operators:

ServiceOperatorLicenseHA ModeMaturity
MariaDBmariadb-operatorMITGalera + MaxScaleProduction
Valkeyvalkey-operator (SAP)Apache 2.0Sentinel/Primary-ReplicaProduction
RabbitMQcluster-operatorMPL-2.0Native ClusteringProduction
Memcachedmemcached-operator (C5C3)Apache 2.0Anti-Affinity + PDBProduction

OpenStack Service Dependencies

Representative dependencies of currently integrated services. Additional services use the same Infrastructure Operators:

OpenStack ServiceMariaDBRabbitMQValkeyMemcached
Keystone--✓ (Token Cache)
Nova--
Neutron--
Glance---
Cinder--
Placement---
Tempest----

Further Reading