How strimzi/strimzi-kafka-operator works
Strimzi is a Kubernetes and OpenShift operator for running and managing Apache Kafka. The principal workflow is an administrator declaring Kafka configuration as custom resources; the cluster operator reconciles cluster resources, while topic and user operators separately manage Kafka topics and user credentials. The API models expose additional managed capabilities, including Connect, MirrorMaker 2, Bridge, and rebalancing. The tree and README establish these product areas, but most implementation excerpts were not sampled, so the graph omits uncertain internal call wiring.
Main entry points: ClusterOperator.java Cluster operator · StrimziPodSetController.java PodSet controller · BatchingTopicController.java Topic operator · UserController.java User operator
Components 20
Cluster control
- Cluster operator
cluster-operator/src/main/java/io/strimzi/operator/cluster/ClusterOperator.java - PodSet controller
cluster-operator/src/main/java/io/strimzi/operator/cluster/operator/assembly/StrimziPodSetController.java - Storage change analysis
cluster-operator/src/main/java/io/strimzi/operator/cluster/model/StorageDiff.java
Kafka resources
- Topic operator
topic-operator/src/main/java/io/strimzi/operator/topic/BatchingTopicController.java - User operator
user-operator/src/main/java/io/strimzi/operator/user/UserController.java
Kafka integrations
- Kafka Connect
api/src/main/java/io/strimzi/api/kafka/model/connect - MirrorMaker 2
api/src/main/java/io/strimzi/api/kafka/model/mirrormaker2 - Kafka Bridge
api/src/main/java/io/strimzi/api/kafka/model/bridge - Cluster rebalancing
api/src/main/java/io/strimzi/api/kafka/model/rebalance
Resource API
- Resource definitions
api/src/main/java/io/strimzi/api/kafka/Crds.java - Kafka configuration
api/src/main/java/io/strimzi/api/kafka/model/kafka/Kafka.java - Topic configuration
api/src/main/java/io/strimzi/api/kafka/model/topic/KafkaTopic.java - User configuration
api/src/main/java/io/strimzi/api/kafka/model/user/KafkaUser.java - Connect configuration
api/src/main/java/io/strimzi/api/kafka/model/connect/KafkaConnect.java - MirrorMaker configuration
api/src/main/java/io/strimzi/api/kafka/model/mirrormaker2/KafkaMirrorMaker2.java - Bridge configuration
api/src/main/java/io/strimzi/api/kafka/model/bridge/KafkaBridge.java - Rebalance configuration
api/src/main/java/io/strimzi/api/kafka/model/rebalance/KafkaRebalance.java
Other components
- Administrator
- Kubernetes API
- Kafka cluster
Connections 21
- Administrator → Kubernetes API: applies resources
- Kubernetes API → Resource definitions: validates kinds
- Kubernetes API → Cluster operator: provides events
- Cluster operator → Kafka configuration: reconciles desired state
- Cluster operator → PodSet controller: manages pods
- Cluster operator → Storage change analysis: checks storage changes
- PodSet controller → Kubernetes API: updates pods
- Cluster operator → Kubernetes API: manages cluster resources
- Cluster operator → Kafka Connect: manages integration
- Cluster operator → MirrorMaker 2: manages replication
- Cluster operator → Kafka Bridge: manages access
- Cluster operator → Cluster rebalancing: handles requests
- Kafka configuration → Cluster operator: configures cluster
- Topic configuration → Topic operator: requests topic state
- User configuration → User operator: requests user state
- Topic operator → Kafka cluster: reconciles topics
- User operator → Kafka cluster: manages users
- Kafka Connect → Kafka cluster: connects to
- MirrorMaker 2 → Kafka cluster: replicates Kafka data
- Kafka Bridge → Kafka cluster: provides HTTP access
- Cluster rebalancing → Kafka cluster: requests cluster changes