Skip to main content

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

ComponentNamespaceRole
OLM ManagerolmWatches Subscriptions, installs/upgrades operators
OLM CatalogolmServes the operator index (available operators and versions)
Strimzi Operatorstrimzi-systemManages Kafka clusters via Kafka CRDs
Keycloak OperatorkeycloakManages Keycloak instances via Keycloak CRDs

Sequence

  1. FluxCD deploys OLM (Operator Lifecycle Manager) into the olm namespace.
  2. OLM Catalog pod serves the operator index containing available operators.
  3. Subscription CRDs declare which operators to install and their update channels.
  4. OLM resolves dependencies and installs operator pods (ClusterServiceVersion → Deployment).
  5. Installed operators watch their CRDs:
    • Strimzi watches Kafka, KafkaTopic, KafkaUser resources.
    • Keycloak Operator watches Keycloak, KeycloakRealm resources.
  6. When a CR is created (via GitOps), the operator provisions the stateful service.
  7. 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 InstallPlan requiring explicit approval before upgrading.

openCenter defaults to Manual approval to prevent unplanned operator upgrades in production.