A Kubernetes operator extends Kubernetes with custom controllers for complex, stateful applications. For Kafka, it translates Kubernetes custom resource definitions (CRDs) into actual Kafka configurations and helps automate scaling, self-healing, and rolling updates. section 10.2.2
A GitOps-driven Kafka configuration flow typically works as follows:
- Define Kafka resources such as topics, connectors, and ACLs as YAML-based CRDs, then store them in Git. section 10.2.2
- Use Argo CD or Flux to monitor Git through a pull-based workflow and synchronize declared resources with cluster state. section 10.2.2
- Let the operator create, update, or delete the corresponding Kafka resources after configuration changes are synchronized. section 10.2.2
Kafka on Kubernetes
A team commits a changed Kafka resource to Git. Argo CD detects the difference between the declared state and the cluster’s custom resources, applies the update, and the operator translates it into Kafka configuration. Strimzi and Confluent for Kubernetes are examples of operators used for this purpose. section 10.2.2
Figure 10.3 Applying changes with a Kubernetes operator. Argo CD synchronizes the desired state from Git with the current state of custom resources in the cluster, and applies the differences automatically.
The diagram traces how Argo CD synchronizes desired state from Git with current custom resources and applies the differences automatically. section 10.2.2






