Data Flow: Operator Lifecycle Manager (OLM)
Purpose: For platform engineers, explains how OLM is deployed via FluxCD and provisions operators that manage stateful services.
Flow Summary
Components
| Component | Namespace | Role |
|---|---|---|
| OLM Manager | olm | Watches Subscriptions, installs/upgrades operators |
| OLM Catalog | olm | Serves the operator index (available operators and versions) |
| Strimzi Operator | strimzi-system | Manages Kafka clusters via Kafka CRDs |
| Keycloak Operator | keycloak | Manages Keycloak instances via Keycloak CRDs |
Sequence
- FluxCD deploys OLM (Operator Lifecycle Manager) into the
olmnamespace. - OLM Catalog pod serves the operator index containing available operators.
SubscriptionCRDs declare which operators to install and their update channels.- OLM resolves dependencies and installs operator pods (ClusterServiceVersion → Deployment).
- Installed operators watch their CRDs:
- Strimzi watches
Kafka,KafkaTopic,KafkaUserresources. - Keycloak Operator watches
Keycloak,KeycloakRealmresources.
- Strimzi watches
- When a CR is created (via GitOps), the operator provisions the stateful service.
- OLM handles operator upgrades based on the Subscription's approval strategy (Automatic or Manual).
Operator Update Strategy
- Automatic: OLM upgrades operators when new versions appear in the catalog.
- Manual: OLM creates an
InstallPlanrequiring explicit approval before upgrading.
openCenter defaults to Manual approval to prevent unplanned operator upgrades in production.
Related
- Logical Diagram — full cluster architecture
- GitOps Flow — how FluxCD deploys OLM and operator CRs