Confluent for Kubernetes Release Notes
Confluent for Kubernetes is continuously updated with new features and enhancements. This topic highlights significant new and updated features, bug fixes, and known limitations in each release.
For Confluent Platform and CFK compatibility information, see Confluent Platform.
For CFK image tags by version, see Confluent for Kubernetes image tags.
To learn how to install CFK and Confluent Platform, see Deploy Confluent for Kubernetes and Deploy Confluent Platform Using Confluent for Kubernetes.
Note
For the list of security and vulnerability issues fixed in any release, see Security Advisories and Security Release Notes.
[28 October, 2026] Confluent for Kubernetes 3.4.0 Release Notes
Compatibility and container images
CFK 3.4.0 allows you to deploy and manage Confluent Platform versions from 7.6.x to 8.4.x on Kubernetes versions 1.28 - 1.36 (OpenShift 4.15 - 4.22).
The images released in CFK 3.4.0 are:
confluentinc/confluent-operator:0.2038.1confluentinc/confluent-init-container:3.4.0confluentinc/confluent-observer-container:3.4.0
Breaking changes
There are no breaking changes in this release.
Upgrade considerations
Previously, the default JVM heap for Kafka brokers and KRaftControllers was 100% of the pod memory request. The default heap is now capped as follows:
Kafka brokers: The smaller of 50% of
requests.memoryand 32 Gi.KRaftControllers: The smaller of 80% of
requests.memoryand 32 Gi.
If you have already set the heap in spec.configOverrides.jvm, this change doesn’t
affect you. If you don’t, check the heap that each broker and KRaftController
runs with today. If that heap is larger than the new cap, set it in
spec.configOverrides.jvm before you upgrade. If you don’t, the upgrade
reduces the heap to the cap. For more information, see
Kafka broker and KRaftController heap-size default change in CFK 3.4.0 and Default JVM heap size.
New features
Supports multi-tenancy for Kafka clusters. For more information, see Enable Confluent Private Cloud Multi-Tenancy on a Kafka cluster.
Captures multi-tenancy state in
kubectl confluent support-bundle, includingLogicalKafkaClusterCRs and tenant-scoped Services. For more information, see Multi-tenancy information in the support bundle.CFK now manages its own custom resource definitions (CRDs) at startup. It reconciles the CRDs to the highest version, guards against downgrades, and never deletes CRDs. You no longer need to apply the CRDs manually with
kubectl apply -f crds/during upgrades. For more information, see Step 5: Upgrade Confluent Platform Custom Resource Definitions (CRDs).Adds
kubectl confluent block-reconcileandkubectl confluent enable-reconcileplugin commands. For more information, see kubectl confluent block-reconcile and kubectl confluent enable-reconcile.Supports a dedicated password encoder secret on the KRaftController CR for ZooKeeper to KRaft migration. You no longer need to store
password.encoder.secretin plaintext throughconfigOverrides.server. When a co-located Kafka CR setsspec.passwordEncoder, the KRaftController uses it automatically. In lite mode, where there is no Kafka CR, setspec.dependencies.migration.passwordEncoderexplicitly. For more information, see Manage Password Encoder Secrets for Confluent Platform Using Confluent for Kubernetes.Supports
staticForHostBasedRoutingfor external access to Metadata Service (MDS) through Routes.Supports changing the replication factor of a
KafkaTopic. Updatingspec.replicason theKafkaTopicCR now drives the change to completion. For more information, see Change the replication factor of a topic.Adds drift protection for Day-2 CRs. CFK now prevents orphaned resources when you edit a spec. You can also opt in to detect and correct drift against the live cluster state for
ConfluentRolebinding,KafkaTopic,ClusterLink, and other Day-2 CRs. For more information, see Annotate Confluent custom resources.Adds fencing v2 to the Confluent Gateway CR. You can fence traffic at the topic level and fence a specific type of traffic, produce or consume. For more information, see Fencing filter.
Adds dynamic routing to Confluent Gateway as an Early Access feature. For more information, see Configure routes.
Supports field-level and payload encryption on Confluent Gateway through the new
dataGovernancepolicy. For more information, see Configure encryption.Supports multiple Schema Registry URLs in the Confluent Gateway SchemaRegistry client dependency for high availability and failover. For more information, see Connect to Schema Registry.
Adds a pod annotation that triggers a
kubeletsync for faster Confluent Gateway hot-reload.Adds
commandHandlersupport to the USM Agent CR. This runs the command-handler container in the USM Agent pod, which receives connector management commands from Confluent Cloud and runs them against the configured Connect clusters. For more information, see Configure the Command Handler for connector management.Adds support for bringing your own Prometheus for Control Center. Control Center can skip its bundled Prometheus and Alertmanager and read metrics from an external Prometheus. For more information, see Bring your own Prometheus (BYOP).
Enhancements
Makes
PublishNotReadyAddressesconfigurable for CFK-generated Services. For more information, see Configure Networking.Adds an
internalClientConfigfield on the Kafka CR to override TLS hostname verification for the operator’s internal Kafka and REST client connections. For more information, see Disable TLS hostname verification for the Kafka internal client.Caps the default JVM heap for Kafka brokers and KRaftControllers. For more information, see Default JVM heap size. Before you upgrade, review Kafka broker and KRaftController heap-size default change in CFK 3.4.0.
Removes hard-coded
ParallelGCThreads=1orConcGCThreads=1JVM defaults. For more information, see Default JVM settings.Bundles the
cfkproberbinary in the operator bundle for Iron Bank and FedRAMP parity.Gates the Confluent Gateway hot-reload informers on an RBAC preflight check.
Adds cluster-auth binding awareness and an
enableCanaryflag to the Confluent Gateway CR to optionally skip hot-reload canary validation.Adds
spec.configIdto the Confluent Gateway custom resource (CR) for tracking hot-reload configuration revisions.Sets
confluent.catalog.collector.multitenant.cluster.link.enable=falseon the KRaftController so that the catalog collector emits cluster-link metadata for USM on Confluent Platform. The upstream default for this property istrue, which targets Confluent Cloud.Updates the default USM Agent version to 1.2.1 from 1.2.0.
Flink resources that set
skipApplynow have their status refreshed through reconcile.Rejects bringing your own Prometheus on Control Center images that predate external Prometheus support. Control Center now returns a clear error instead of failing silently.
Adds missing Control Center next-generation tenant quota, system, and cluster monitoring metrics to the telemetry allowlist and syncs the Prometheus recording rules.
Bug fixes
Fixed
connectRest.endpointdropping the query string when building REST URLs.Fixed
sasl.oauthbearer.expected.issuernot being rendered for OAuth listeners.Fixed a crash in Control Center with OAuth.
sasl.login.callback.handler.classwas incorrectly stripped for RBAC with OAuth-typed Metadata Service (MDS) authentication.Fixed Jolokia configuration options not rendering as a single comma-separated line.
Fixed the KRaftController so that it discovers its co-located Kafka CR for net-new KRaft deployments and sets the interbroker listener name to
replication.Fixed TLS handshake errors flooding Control Center Prometheus and Alertmanager logs, caused by Kubernetes health checks against TLS-enabled endpoints. Set
useProcNetPortCheck: trueunderspec.podTemplate.probe.readinessorspec.podTemplate.probe.livenesson theControlCenterCR to switch these health checks to a TLS-free method.Fixed RBAC drift in the Operator Lifecycle Manager (OLM) bundle.
Fixed an issue that prevented installing or pinning to a specific, non-latest, CFK version through the OpenShift OperatorHub. Each release now retains a direct upgrade link to its predecessor in the Red Hat operator catalog. Also fixed missing
usm,gateway, andobserverimages and askipRangebound in the Red Hat bundle.Fixed the CMF ownership annotation for
FlinkStatement.Fixed a cascade-delete regression on Flink CRDs. A CRD regeneration that relaxed enum validation introduced the regression.
Fixed
FlinkEnvironmentcreation being rejected by CMF due to a name collision betweenmetadata.nameand the top-levelnamefield.Fixed Common Expression Language (CEL) validation for
passthroughConfigon the Confluent Gateway CR.Fixed Confluent Gateway authentication-swapping validation so
oauthSettings.jwksEndpointUriis required only when swapping to OAuth authentication, andoauthSettings.audienceis no longer always required.Fixed a Confluent Gateway CEL rule bug.
Fixed duplicated container ports for Confluent Gateway host-based routes.
Known limitations
If the leader controller crashes while a
KafkaTopicreplication factor change is in progress, Self-Balancing can lose status tracking for the affected topics and not return them to CFK. CFK then cannot recover the full status of the in-flight change.Changing the replication factor of a
KafkaTopicby editingspec.replicasrequires Confluent Platform 8.4 or later. Topics in a LogicalKafkaCluster are not supported.
Deprecations
There are no new deprecations in this release.