Skip to main content

Strimzi Capability Assessment

Purpose: For platform engineers, provides Strimzi feature matrix, gap analysis, and version support evaluation.

Overview

Strimzi is the Kubernetes operator selected for openCenter Managed Kafka. This document evaluates Strimzi's capabilities against the requirements defined in ADR-004's Kafka blueprint specification. The assessment covers CRD coverage, lifecycle management, security, observability, and air-gap compatibility.

CRD Feature Matrix

CRDStatusopenCenter Use
KafkaStable (v1beta2)Core — defines broker cluster, listeners, storage, TLS, auth
KafkaTopicStable (v1beta2)Core — declarative topic management via Entity Operator
KafkaUserStable (v1beta2)Core — client identity, authentication, ACL authorization
KafkaConnectStable (v1beta2)Deferred — not in v1 blueprint
KafkaMirrorMaker2Stable (v1beta2)Deferred — DR replication add-on
KafkaBridgeStable (v1beta2)Not planned — HTTP bridge not in scope
KafkaRebalanceStable (v1beta2)Future — partition rebalancing for capacity management
KafkaNodePoolGA (v1beta2)Future — mixed node types for tiered storage

Lifecycle Management Capabilities

CapabilitySupportedNotes
Rolling upgrades (Kafka version)YesBroker-by-broker restart with configurable strategy
Rolling upgrades (Strimzi operator)YesOperator upgrade triggers broker reconciliation
Scaling brokers upYesAdd replicas, Strimzi handles partition reassignment
Scaling brokers downPartialRequires manual partition reassignment before removal
Storage expansionYesPVC resize supported (storage class must allow expansion)
Storage migrationNoChanging storage class requires cluster recreation
Rollback after failed upgradeManualRevert the Kafka CR to previous version; Strimzi rolls back brokers

Security Capabilities

RequirementStrimzi SupportopenCenter Fit
TLS in transit (broker-to-broker)Yes — automatic via ClusterCAMeets requirement
TLS in transit (client-to-broker)Yes — per-listener TLS configMeets requirement
mTLS client authenticationYes — via KafkaUser with type: tlsPrimary auth method
SCRAM-SHA-512 authenticationYes — via KafkaUser with type: scram-sha-512Secondary auth method
OAuth 2.0 authenticationYes — via listener configAvailable for Keycloak integration
ACL authorizationYes — via KafkaUser authorization.aclsMeets requirement
OPA authorizationYes — external authorizer pluginNot planned for v1
Certificate rotationYes — automatic renewal before expiryMeets requirement
Custom CA integrationYes — bring your own CA certificatesAvailable if needed
Network policiesPartial — Strimzi generates basic policiesSupplemented by openCenter Kyverno policies

Observability Capabilities

CapabilitySupportedNotes
JMX Prometheus exporterYesBuilt-in sidecar, configured via metricsConfig in Kafka CR
Broker metricsYesStandard Kafka JMX MBeans exported
ZooKeeper metricsYesJMX exporter on ZooKeeper pods
Entity Operator metricsYesOperator-level metrics
Cruise Control metricsYesAvailable when Cruise Control is enabled
Log output formatJSON or plainConfigurable via logging in Kafka CR
Distributed tracingYesOpenTelemetry support via interceptors

Air-Gap Compatibility

RequirementAssessment
Container images from known registriesYes — all images from quay.io/strimzi/
No runtime internet dependenciesYes — operator and brokers run fully offline
Image count per deployment~6 images (operator, kafka, zookeeper, entity-operator, bridge, init)
Helm chart for operatorYes — strimzi/strimzi-kafka-operator chart
Offline Helm installYes — chart can be pulled and stored in Harbor
CRD installationBundled with operator Helm chart

All Strimzi images can be mirrored through Harbor using openCenter-AirGap. The operator does not phone home or require external API access.

Version Support Matrix

Strimzi VersionKafka Versions SupportedKubernetes VersionsStatus
0.40.x3.6.x, 3.7.x1.25–1.30Current
0.39.x3.6.x, 3.7.x1.25–1.29Supported
0.38.x3.5.x, 3.6.x1.23–1.28End of life

openCenter pins to a tested Strimzi + Kafka version pair. Upgrades follow a validated path: non-prod first, then production with a maintenance window. The supported version matrix is published with each blueprint release.

Gap Analysis

GapImpactMitigation
No built-in backup for topic dataCustomer data protection requires external tooling or MirrorMaker2Document as customer responsibility in base; offer DR add-on
Scaling down requires manual partition reassignmentOperational complexity for capacity reductionDocument runbook; automate with Cruise Control in future
ZooKeeper mode still defaultKRaft (ZooKeeper-less) mode is available but not GA in all Strimzi versionsPlan migration to KRaft when Strimzi declares it stable
No built-in schema registrySchema governance requires separate componentPlanned as Q4 add-on (Apicurio or Confluent Schema Registry)
Network policy generation is basicDoes not cover all openCenter isolation requirementsSupplement with Kyverno-generated NetworkPolicies

Evaluation Summary

Strimzi meets the core requirements for openCenter Managed Kafka v1:

  • Stable CRDs for Kafka, KafkaTopic, and KafkaUser
  • Rolling upgrades with configurable strategy
  • TLS and authentication built into the operator lifecycle
  • JMX metrics export for Prometheus integration
  • Full air-gap compatibility with no runtime internet dependencies
  • Active community with regular releases and security patches

The gaps (topic data backup, ZooKeeper dependency, schema registry) are addressed through the blueprint's shared responsibility model and the planned add-on roadmap.