<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Confluent for Kubernetes Release Notes</title><link>https://docs.confluent.io/operator/3.2/release-notes.html</link><description>Latest features and updates for Confluent for Kubernetes</description><language>en-us</language><lastBuildDate>Thu, 12 Nov 2026 10:39:43 GMT</lastBuildDate><ttl>180</ttl><copyright>Copyright © Confluent Inc.</copyright><atom:link href="https://docs.confluent.io/operator/3.2/release-notes.xml" rel="self" type="application/rss+xml"/><item><title>[25 September, 2026] Confluent for Kubernetes 3.2.4 Release Notes</title><link>https://docs.confluent.io/operator/3.2/release-notes.html#september-2026-co-long-3-2-4-release-notes</link><guid>https://docs.confluent.io/operator/3.2/release-notes.html#september-2026-co-long-3-2-4-release-notes</guid><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate><description><![CDATA[ <span id="co-rn-3-2-4"></span> <section id="compatibility-and-container-images"> <h3>Compatibility and container images<a class="headerlink" href="#compatibility-and-container-images" title="Link to this heading"></a></h3> <p>CFK 3.2.4 allows you to deploy and manage Confluent Platform versions from 7.4.x to 8.2.x on Kubernetes versions 1.27 - 1.35 (OpenShift 4.14 - 4.21).</p> <p>The images released in CFK 3.2.4 are:</p> <ul class="simple"> <li><p><code class="docutils literal notranslate"><span class="pre">confluentinc/confluent-operator:0.1514.158</span></code></p></li> <li><p><code class="docutils literal notranslate"><span class="pre">confluentinc/confluent-init-container:3.2.4</span></code></p></li> <li><p><code class="docutils literal notranslate"><span class="pre">confluentinc/confluent-observer-container:3.2.4</span></code></p></li> </ul> </section> <section id="breaking-changes"> <h3>Breaking changes<a class="headerlink" href="#breaking-changes" title="Link to this heading"></a></h3> <p>There are no breaking changes in this release.</p> </section> <section id="new-features"> <h3>New features<a class="headerlink" href="#new-features" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>Adds <code class="docutils literal notranslate"><span class="pre">kubectl</span> <span class="pre">confluent</span> <span class="pre">block-reconcile</span></code> and <code class="docutils literal notranslate"><span class="pre">kubectl</span> <span class="pre">confluent</span>
<span class="pre">enable-reconcile</span></code> plugin commands. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-plugin-cli/kubectl_confluent_block-reconcile.html#kubectl-confluent-block-reconcile"><span class="std std-ref">kubectl confluent block-reconcile</span></a> and <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-plugin-cli/kubectl_confluent_enable-reconcile.html#kubectl-confluent-enable-reconcile"><span class="std std-ref">kubectl confluent enable-reconcile</span></a>.</p></li> </ul> </section> <section id="enhancements"> <h3>Enhancements<a class="headerlink" href="#enhancements" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>Removes hard-coded <code class="docutils literal notranslate"><span class="pre">ParallelGCThreads=1</span></code> or <code class="docutils literal notranslate"><span class="pre">ConcGCThreads=1</span></code> JVM defaults. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-configure-misc.html#co-default-jvm-settings"><span class="std std-ref">Default JVM settings</span></a>.</p></li> <li><p>Enables FIPS on the Kafka broker and applies FIPS JVM settings through <code class="docutils literal notranslate"><span class="pre">jvm.config</span></code>.</p></li> <li><p>Adds <code class="docutils literal notranslate"><span class="pre">InternalClientConfig</span></code> override support for the operator’s internal Kafka client. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-network-encryption.html#co-disable-internal-client-hostname-verification"><span class="std std-ref">Disable TLS hostname verification for the Kafka internal client</span></a>.</p></li> <li><p>Checks Schema Registry status directly instead of trusting a cached configuration hash.</p></li> <li><p>Makes the Kafka-to-LDAP TLS client FIPS-aware using a Bouncy Castle FIPS Keystore (BCFKS).</p></li> <li><p>Removes stale multi-region cluster (MRC) bypass-prechecks guidance, a follow-up to the ZooKeeper <code class="docutils literal notranslate"><span class="pre">chroot</span></code> fix below.</p></li> </ul> </section> <section id="bug-fixes"> <h3>Bug fixes<a class="headerlink" href="#bug-fixes" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>Fixed Jolokia configuration options not rendering as a single comma-separated line.</p></li> <li><p>Fixed the default ZooKeeper <code class="docutils literal notranslate"><span class="pre">chroot</span></code> to root during KRaft migration for MRC endpoints.</p></li> <li><p>Fixed the <code class="docutils literal notranslate"><span class="pre">KafkaTopic</span></code> controller so it keeps retrying replication factor (RF) fetches after a transient failure, instead of giving up permanently. The bug left <code class="docutils literal notranslate"><span class="pre">status.replicas</span></code> empty for topics created with <code class="docutils literal notranslate"><span class="pre">spec.replicas</span></code> unset, and was most noticeable when creating many topics at once through Helm. Broker-side RF was always correct. Only the <code class="docutils literal notranslate"><span class="pre">KafkaTopic</span></code> status was affected.</p></li> <li><p>Fixed the Metadata Service (MDS) client <code class="docutils literal notranslate"><span class="pre">keystore</span></code> rendering for the <code class="docutils literal notranslate"><span class="pre">mtls</span></code> type without <code class="docutils literal notranslate"><span class="pre">sslClientAuthentication</span></code>.</p></li> <li><p>Fixed the Schema Registry <code class="docutils literal notranslate"><span class="pre">restConfig</span></code> bootstrap URL.</p></li> <li><p>Fixed <code class="docutils literal notranslate"><span class="pre">spec.tls.fips.enabled:</span> <span class="pre">true</span></code> not being applied to the embedded Kafka REST proxy’s Metadata Service (MDS) client TLS configuration, which was always generated as <code class="docutils literal notranslate"><span class="pre">JKS</span></code> instead of <code class="docutils literal notranslate"><span class="pre">BCFKS</span></code>. Manual <code class="docutils literal notranslate"><span class="pre">kafka.rest.client.ssl.*</span></code> configuration overrides are no longer needed to run FIPS and RBAC deployments together.</p></li> <li><p>Fixed Kafka-to-ZooKeeper TLS connections crash-looping under FIPS mode due to a missing <code class="docutils literal notranslate"><span class="pre">BCFKS</span></code> keystore or truststore configuration.</p></li> <li><p>Fixed a <code class="docutils literal notranslate"><span class="pre">java.security.properties</span></code> path typo that silently prevented FIPS enforcement from taking effect.</p></li> <li><p>Fixed reconcile errors and a stale cluster phase being hidden in <code class="docutils literal notranslate"><span class="pre">Kafka</span></code> status. Status, Kubernetes events, and broker logs now surface the actual failure reason and cluster phase instead of generic or missing messages. This helps diagnose and recover from issues faster.</p></li> <li><p>Fixed an unnecessary full cluster roll caused by a stale cached read of tracked secret versions.</p></li> <li><p>Fixed a per-role Kafka discovery override issue in Connect, ksqlDB, and <code class="docutils literal notranslate"><span class="pre">KafkaRestProxy</span></code>.</p></li> <li><p>Fixed the Replicator <code class="docutils literal notranslate"><span class="pre">mTLS</span></code> connector plugin version.</p></li> <li><p>Fixed an RBAC name collision between External-DNS and Ingress-Nginx.</p></li> <li><p>Fixed FIPS-prefixed Kafka clients missing <code class="docutils literal notranslate"><span class="pre">security.providers</span></code>.</p></li> <li><p>Fixed excessive LDAP load caused by each mirror topic independently triggering an OAuth token request. Tokens are now batched and cached, preventing LDAP overload at scale.</p></li> <li><p>Fixed Cluster Linking remote-auth secrets not mounting on Kafka brokers.</p></li> <li><p>Fixed observer certificate rotation triggering an unnecessary cluster roll.</p></li> <li><p>Fixed CFK triggering unnecessary Kafka or KRaftController rolling restarts on metadata-only writes to a tracked secret. CFK now detects secret changes by content instead of <code class="docutils literal notranslate"><span class="pre">resourceVersion</span></code>.</p></li> <li><p>Fixed a <code class="docutils literal notranslate"><span class="pre">Schema</span></code> resource that could report <code class="docutils literal notranslate"><span class="pre">status.appState:</span> <span class="pre">Created</span></code> without the schema actually being registered in Schema Registry, following a reconcile interrupted at a specific point. Affected resources now self-heal on the next reconcile.</p></li> <li><p>Fixed Kafka custom resource (CR) reconciliation failures caused by TLS secrets (for example, <code class="docutils literal notranslate"><span class="pre">services.kafkaRest</span></code> mTLS) that contained only <code class="docutils literal notranslate"><span class="pre">JKS</span></code> or <code class="docutils literal notranslate"><span class="pre">PKCS12</span></code> material. Only PEM-style secrets were supported.</p></li> <li><p>Fixed an operator memory leak caused by idle outbound HTTP connections that were never closed, which could cause gradual memory growth and potential <code class="docutils literal notranslate"><span class="pre">OOMKilled</span></code> restarts. Idle connections now close after a configurable timeout set by <code class="docutils literal notranslate"><span class="pre">CONFLUENT_OPERATOR_HTTP_IDLE_CONN_TIMEOUT</span></code>, which defaults to 90 seconds. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-deploy-cfk.html#co-deployment-custom-vars"><span class="std std-ref">Deploy CFK with custom environment variables</span></a>.</p></li> <li><p>Fixed the default OpenID Connect (OIDC) session token expiry, increasing it from 90 seconds to 15 minutes.</p></li> <li><p>Fixed TLS handshake errors flooding Control Center Prometheus and Alertmanager logs, caused by Kubernetes health checks against TLS-enabled endpoints. Set <code class="docutils literal notranslate"><span class="pre">useProcNetPortCheck:</span> <span class="pre">true</span></code> under <code class="docutils literal notranslate"><span class="pre">spec.podTemplate.probe.readiness</span></code> or <code class="docutils literal notranslate"><span class="pre">spec.podTemplate.probe.liveness</span></code> on the <code class="docutils literal notranslate"><span class="pre">ControlCenter</span></code> CR to switch these health checks to a TLS-free method.</p></li> <li><p>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.</p></li> </ul> </section> <section id="known-limitations"> <h3>Known limitations<a class="headerlink" href="#known-limitations" title="Link to this heading"></a></h3> <p>There are no new known limitations in this release.</p> </section> <section id="known-issues"> <h3>Known issues<a class="headerlink" href="#known-issues" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>On a new KRaft controller deployment, CFK doesn’t automatically set <code class="docutils literal notranslate"><span class="pre">inter.broker.listener.name</span></code> on the KRaftController, regardless of CFK version. If this property is unset, it defaults to <code class="docutils literal notranslate"><span class="pre">null</span></code> and Self-Balancing can fail to start. As a workaround, set <code class="docutils literal notranslate"><span class="pre">inter.broker.listener.name=REPLICATION</span></code> through <code class="docutils literal notranslate"><span class="pre">configOverrides</span></code> on the KRaftController CR. In CFK 3.3 and later, you can instead set <code class="docutils literal notranslate"><span class="pre">spec.listeners.replication.enabled:</span> <span class="pre">true</span></code> on the KRaftController CR to have CFK set the property automatically. For details, see <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-configure-kraft.html#co-configure-kraft-controller"><span class="std std-ref">Configure KRaft controllers</span></a>.</p></li> </ul> </section> <section id="deprecations"> <h3>Deprecations<a class="headerlink" href="#deprecations" title="Link to this heading"></a></h3> <p>There are no new deprecations in this release.</p> </section> ]]></description><content:encoded><![CDATA[ <span id="co-rn-3-2-4"></span> <section id="compatibility-and-container-images"> <h3>Compatibility and container images<a class="headerlink" href="#compatibility-and-container-images" title="Link to this heading"></a></h3> <p>CFK 3.2.4 allows you to deploy and manage Confluent Platform versions from 7.4.x to 8.2.x on Kubernetes versions 1.27 - 1.35 (OpenShift 4.14 - 4.21).</p> <p>The images released in CFK 3.2.4 are:</p> <ul class="simple"> <li><p><code class="docutils literal notranslate"><span class="pre">confluentinc/confluent-operator:0.1514.158</span></code></p></li> <li><p><code class="docutils literal notranslate"><span class="pre">confluentinc/confluent-init-container:3.2.4</span></code></p></li> <li><p><code class="docutils literal notranslate"><span class="pre">confluentinc/confluent-observer-container:3.2.4</span></code></p></li> </ul> </section> <section id="breaking-changes"> <h3>Breaking changes<a class="headerlink" href="#breaking-changes" title="Link to this heading"></a></h3> <p>There are no breaking changes in this release.</p> </section> <section id="new-features"> <h3>New features<a class="headerlink" href="#new-features" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>Adds <code class="docutils literal notranslate"><span class="pre">kubectl</span> <span class="pre">confluent</span> <span class="pre">block-reconcile</span></code> and <code class="docutils literal notranslate"><span class="pre">kubectl</span> <span class="pre">confluent</span>
<span class="pre">enable-reconcile</span></code> plugin commands. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-plugin-cli/kubectl_confluent_block-reconcile.html#kubectl-confluent-block-reconcile"><span class="std std-ref">kubectl confluent block-reconcile</span></a> and <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-plugin-cli/kubectl_confluent_enable-reconcile.html#kubectl-confluent-enable-reconcile"><span class="std std-ref">kubectl confluent enable-reconcile</span></a>.</p></li> </ul> </section> <section id="enhancements"> <h3>Enhancements<a class="headerlink" href="#enhancements" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>Removes hard-coded <code class="docutils literal notranslate"><span class="pre">ParallelGCThreads=1</span></code> or <code class="docutils literal notranslate"><span class="pre">ConcGCThreads=1</span></code> JVM defaults. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-configure-misc.html#co-default-jvm-settings"><span class="std std-ref">Default JVM settings</span></a>.</p></li> <li><p>Enables FIPS on the Kafka broker and applies FIPS JVM settings through <code class="docutils literal notranslate"><span class="pre">jvm.config</span></code>.</p></li> <li><p>Adds <code class="docutils literal notranslate"><span class="pre">InternalClientConfig</span></code> override support for the operator’s internal Kafka client. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-network-encryption.html#co-disable-internal-client-hostname-verification"><span class="std std-ref">Disable TLS hostname verification for the Kafka internal client</span></a>.</p></li> <li><p>Checks Schema Registry status directly instead of trusting a cached configuration hash.</p></li> <li><p>Makes the Kafka-to-LDAP TLS client FIPS-aware using a Bouncy Castle FIPS Keystore (BCFKS).</p></li> <li><p>Removes stale multi-region cluster (MRC) bypass-prechecks guidance, a follow-up to the ZooKeeper <code class="docutils literal notranslate"><span class="pre">chroot</span></code> fix below.</p></li> </ul> </section> <section id="bug-fixes"> <h3>Bug fixes<a class="headerlink" href="#bug-fixes" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>Fixed Jolokia configuration options not rendering as a single comma-separated line.</p></li> <li><p>Fixed the default ZooKeeper <code class="docutils literal notranslate"><span class="pre">chroot</span></code> to root during KRaft migration for MRC endpoints.</p></li> <li><p>Fixed the <code class="docutils literal notranslate"><span class="pre">KafkaTopic</span></code> controller so it keeps retrying replication factor (RF) fetches after a transient failure, instead of giving up permanently. The bug left <code class="docutils literal notranslate"><span class="pre">status.replicas</span></code> empty for topics created with <code class="docutils literal notranslate"><span class="pre">spec.replicas</span></code> unset, and was most noticeable when creating many topics at once through Helm. Broker-side RF was always correct. Only the <code class="docutils literal notranslate"><span class="pre">KafkaTopic</span></code> status was affected.</p></li> <li><p>Fixed the Metadata Service (MDS) client <code class="docutils literal notranslate"><span class="pre">keystore</span></code> rendering for the <code class="docutils literal notranslate"><span class="pre">mtls</span></code> type without <code class="docutils literal notranslate"><span class="pre">sslClientAuthentication</span></code>.</p></li> <li><p>Fixed the Schema Registry <code class="docutils literal notranslate"><span class="pre">restConfig</span></code> bootstrap URL.</p></li> <li><p>Fixed <code class="docutils literal notranslate"><span class="pre">spec.tls.fips.enabled:</span> <span class="pre">true</span></code> not being applied to the embedded Kafka REST proxy’s Metadata Service (MDS) client TLS configuration, which was always generated as <code class="docutils literal notranslate"><span class="pre">JKS</span></code> instead of <code class="docutils literal notranslate"><span class="pre">BCFKS</span></code>. Manual <code class="docutils literal notranslate"><span class="pre">kafka.rest.client.ssl.*</span></code> configuration overrides are no longer needed to run FIPS and RBAC deployments together.</p></li> <li><p>Fixed Kafka-to-ZooKeeper TLS connections crash-looping under FIPS mode due to a missing <code class="docutils literal notranslate"><span class="pre">BCFKS</span></code> keystore or truststore configuration.</p></li> <li><p>Fixed a <code class="docutils literal notranslate"><span class="pre">java.security.properties</span></code> path typo that silently prevented FIPS enforcement from taking effect.</p></li> <li><p>Fixed reconcile errors and a stale cluster phase being hidden in <code class="docutils literal notranslate"><span class="pre">Kafka</span></code> status. Status, Kubernetes events, and broker logs now surface the actual failure reason and cluster phase instead of generic or missing messages. This helps diagnose and recover from issues faster.</p></li> <li><p>Fixed an unnecessary full cluster roll caused by a stale cached read of tracked secret versions.</p></li> <li><p>Fixed a per-role Kafka discovery override issue in Connect, ksqlDB, and <code class="docutils literal notranslate"><span class="pre">KafkaRestProxy</span></code>.</p></li> <li><p>Fixed the Replicator <code class="docutils literal notranslate"><span class="pre">mTLS</span></code> connector plugin version.</p></li> <li><p>Fixed an RBAC name collision between External-DNS and Ingress-Nginx.</p></li> <li><p>Fixed FIPS-prefixed Kafka clients missing <code class="docutils literal notranslate"><span class="pre">security.providers</span></code>.</p></li> <li><p>Fixed excessive LDAP load caused by each mirror topic independently triggering an OAuth token request. Tokens are now batched and cached, preventing LDAP overload at scale.</p></li> <li><p>Fixed Cluster Linking remote-auth secrets not mounting on Kafka brokers.</p></li> <li><p>Fixed observer certificate rotation triggering an unnecessary cluster roll.</p></li> <li><p>Fixed CFK triggering unnecessary Kafka or KRaftController rolling restarts on metadata-only writes to a tracked secret. CFK now detects secret changes by content instead of <code class="docutils literal notranslate"><span class="pre">resourceVersion</span></code>.</p></li> <li><p>Fixed a <code class="docutils literal notranslate"><span class="pre">Schema</span></code> resource that could report <code class="docutils literal notranslate"><span class="pre">status.appState:</span> <span class="pre">Created</span></code> without the schema actually being registered in Schema Registry, following a reconcile interrupted at a specific point. Affected resources now self-heal on the next reconcile.</p></li> <li><p>Fixed Kafka custom resource (CR) reconciliation failures caused by TLS secrets (for example, <code class="docutils literal notranslate"><span class="pre">services.kafkaRest</span></code> mTLS) that contained only <code class="docutils literal notranslate"><span class="pre">JKS</span></code> or <code class="docutils literal notranslate"><span class="pre">PKCS12</span></code> material. Only PEM-style secrets were supported.</p></li> <li><p>Fixed an operator memory leak caused by idle outbound HTTP connections that were never closed, which could cause gradual memory growth and potential <code class="docutils literal notranslate"><span class="pre">OOMKilled</span></code> restarts. Idle connections now close after a configurable timeout set by <code class="docutils literal notranslate"><span class="pre">CONFLUENT_OPERATOR_HTTP_IDLE_CONN_TIMEOUT</span></code>, which defaults to 90 seconds. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-deploy-cfk.html#co-deployment-custom-vars"><span class="std std-ref">Deploy CFK with custom environment variables</span></a>.</p></li> <li><p>Fixed the default OpenID Connect (OIDC) session token expiry, increasing it from 90 seconds to 15 minutes.</p></li> <li><p>Fixed TLS handshake errors flooding Control Center Prometheus and Alertmanager logs, caused by Kubernetes health checks against TLS-enabled endpoints. Set <code class="docutils literal notranslate"><span class="pre">useProcNetPortCheck:</span> <span class="pre">true</span></code> under <code class="docutils literal notranslate"><span class="pre">spec.podTemplate.probe.readiness</span></code> or <code class="docutils literal notranslate"><span class="pre">spec.podTemplate.probe.liveness</span></code> on the <code class="docutils literal notranslate"><span class="pre">ControlCenter</span></code> CR to switch these health checks to a TLS-free method.</p></li> <li><p>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.</p></li> </ul> </section> <section id="known-limitations"> <h3>Known limitations<a class="headerlink" href="#known-limitations" title="Link to this heading"></a></h3> <p>There are no new known limitations in this release.</p> </section> <section id="known-issues"> <h3>Known issues<a class="headerlink" href="#known-issues" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>On a new KRaft controller deployment, CFK doesn’t automatically set <code class="docutils literal notranslate"><span class="pre">inter.broker.listener.name</span></code> on the KRaftController, regardless of CFK version. If this property is unset, it defaults to <code class="docutils literal notranslate"><span class="pre">null</span></code> and Self-Balancing can fail to start. As a workaround, set <code class="docutils literal notranslate"><span class="pre">inter.broker.listener.name=REPLICATION</span></code> through <code class="docutils literal notranslate"><span class="pre">configOverrides</span></code> on the KRaftController CR. In CFK 3.3 and later, you can instead set <code class="docutils literal notranslate"><span class="pre">spec.listeners.replication.enabled:</span> <span class="pre">true</span></code> on the KRaftController CR to have CFK set the property automatically. For details, see <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-configure-kraft.html#co-configure-kraft-controller"><span class="std std-ref">Configure KRaft controllers</span></a>.</p></li> </ul> </section> <section id="deprecations"> <h3>Deprecations<a class="headerlink" href="#deprecations" title="Link to this heading"></a></h3> <p>There are no new deprecations in this release.</p> </section> ]]></content:encoded></item><item><title>[23 June, 2026] Confluent for Kubernetes 3.2.3 Release Notes</title><link>https://docs.confluent.io/operator/3.2/release-notes.html#june-2026-co-long-3-2-3-release-notes</link><guid>https://docs.confluent.io/operator/3.2/release-notes.html#june-2026-co-long-3-2-3-release-notes</guid><pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate><description><![CDATA[ <span id="co-rn-3-2-3"></span> <section id="id1"> <h3>Compatibility and container images<a class="headerlink" href="#id1" title="Link to this heading"></a></h3> <p>CFK 3.2.3 allows you to deploy and manage Confluent Platform versions from 7.4.x to 8.2.x on Kubernetes versions 1.27 - 1.35 (OpenShift 4.14 - 4.21).</p> <p>The images released in CFK 3.2.3 are:</p> <ul class="simple"> <li><p><code class="docutils literal notranslate"><span class="pre">confluentinc/confluent-operator:0.1514.76</span></code></p></li> <li><p><code class="docutils literal notranslate"><span class="pre">confluentinc/confluent-init-container:3.2.3</span></code></p></li> <li><p><code class="docutils literal notranslate"><span class="pre">confluentinc/confluent-observer-container:3.2.3</span></code></p></li> </ul> </section> <section id="id2"> <h3>New features<a class="headerlink" href="#id2" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>Adds support for the migration pre-check utility for single-cluster KRaft migrations. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-migrate-kraft-procedure.html#co-migrate-kraft-enable-preflight-v2"><span class="std std-ref">Step 3.2: Enable the ZooKeeper metadata preflight check</span></a>.</p></li> </ul> </section> <section id="id3"> <h3>Enhancements<a class="headerlink" href="#id3" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>Improves Kafka and KRaft readiness probing to avoid probe-generated connection churn and false mTLS authentication failures from polluting operational metrics.</p></li> <li><p>Masks sensitive credentials in CFK log output through a centralized redaction wrapper, so plain-text credentials are sanitized before reaching any log sink.</p></li> </ul> </section> <section id="id4"> <h3>Bug fixes<a class="headerlink" href="#id4" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>Fixed dynamic per-listener TLS certificate rotation triggering unnecessary Kafka broker rolling restarts. CFK now correctly classifies derived <code class="docutils literal notranslate"><span class="pre">PKCS12</span></code> secrets as <code class="docutils literal notranslate"><span class="pre">dynamic-config</span></code> secrets.</p></li> <li><p>Fixed the <code class="docutils literal notranslate"><span class="pre">zk-node-removal</span></code> plugin for RBAC and multi-region cluster (MRC) deployments.</p></li> <li><p>Fixed a multi-region KRaft migration issue where the KRaft controller required a manual override for the <code class="docutils literal notranslate"><span class="pre">zookeeper.connect</span></code> configuration.</p></li> <li><p>Fixed Schema Registry cluster discovery for external-access and multi-region deployments by handling multi-URL endpoints correctly when <code class="docutils literal notranslate"><span class="pre">schemaRegistryClusterRef</span></code> is used.</p></li> <li><p>Fixed a connector cleanup issue to ensure that CFK deletes connectors even if their creation previously returned an HTTP 500 error, preventing orphaned connectors from accumulating on the Connect cluster.</p></li> <li><p>Fixed incorrect <code class="docutils literal notranslate"><span class="pre">advertised.listeners</span></code> ports when multiple user-defined listeners share the same static or <code class="docutils literal notranslate"><span class="pre">nodePort</span></code> offset.</p></li> </ul> </section> <section id="id5"> <h3>Known limitations<a class="headerlink" href="#id5" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>The operator can leak memory and <code class="docutils literal notranslate"><span class="pre">goroutines</span></code> over time from idle outbound HTTP connections (to Kafka REST, Metadata Service (MDS), Schema Registry, or an OAuth identity provider) that are never closed. This can affect any deployment. Upgrade to CFK 3.2.4 or later, which adds a configurable idle-connection timeout to fix this. See <a class="reference internal" href="#co-rn-3-2-4"><span class="std std-ref">[25 September, 2026] Confluent for Kubernetes 3.2.4 Release Notes</span></a>.</p></li> </ul> </section> <section id="id6"> <h3>Deprecations<a class="headerlink" href="#id6" title="Link to this heading"></a></h3> <p>There are no new deprecations in this release.</p> </section> ]]></description><content:encoded><![CDATA[ <span id="co-rn-3-2-3"></span> <section id="id1"> <h3>Compatibility and container images<a class="headerlink" href="#id1" title="Link to this heading"></a></h3> <p>CFK 3.2.3 allows you to deploy and manage Confluent Platform versions from 7.4.x to 8.2.x on Kubernetes versions 1.27 - 1.35 (OpenShift 4.14 - 4.21).</p> <p>The images released in CFK 3.2.3 are:</p> <ul class="simple"> <li><p><code class="docutils literal notranslate"><span class="pre">confluentinc/confluent-operator:0.1514.76</span></code></p></li> <li><p><code class="docutils literal notranslate"><span class="pre">confluentinc/confluent-init-container:3.2.3</span></code></p></li> <li><p><code class="docutils literal notranslate"><span class="pre">confluentinc/confluent-observer-container:3.2.3</span></code></p></li> </ul> </section> <section id="id2"> <h3>New features<a class="headerlink" href="#id2" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>Adds support for the migration pre-check utility for single-cluster KRaft migrations. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-migrate-kraft-procedure.html#co-migrate-kraft-enable-preflight-v2"><span class="std std-ref">Step 3.2: Enable the ZooKeeper metadata preflight check</span></a>.</p></li> </ul> </section> <section id="id3"> <h3>Enhancements<a class="headerlink" href="#id3" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>Improves Kafka and KRaft readiness probing to avoid probe-generated connection churn and false mTLS authentication failures from polluting operational metrics.</p></li> <li><p>Masks sensitive credentials in CFK log output through a centralized redaction wrapper, so plain-text credentials are sanitized before reaching any log sink.</p></li> </ul> </section> <section id="id4"> <h3>Bug fixes<a class="headerlink" href="#id4" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>Fixed dynamic per-listener TLS certificate rotation triggering unnecessary Kafka broker rolling restarts. CFK now correctly classifies derived <code class="docutils literal notranslate"><span class="pre">PKCS12</span></code> secrets as <code class="docutils literal notranslate"><span class="pre">dynamic-config</span></code> secrets.</p></li> <li><p>Fixed the <code class="docutils literal notranslate"><span class="pre">zk-node-removal</span></code> plugin for RBAC and multi-region cluster (MRC) deployments.</p></li> <li><p>Fixed a multi-region KRaft migration issue where the KRaft controller required a manual override for the <code class="docutils literal notranslate"><span class="pre">zookeeper.connect</span></code> configuration.</p></li> <li><p>Fixed Schema Registry cluster discovery for external-access and multi-region deployments by handling multi-URL endpoints correctly when <code class="docutils literal notranslate"><span class="pre">schemaRegistryClusterRef</span></code> is used.</p></li> <li><p>Fixed a connector cleanup issue to ensure that CFK deletes connectors even if their creation previously returned an HTTP 500 error, preventing orphaned connectors from accumulating on the Connect cluster.</p></li> <li><p>Fixed incorrect <code class="docutils literal notranslate"><span class="pre">advertised.listeners</span></code> ports when multiple user-defined listeners share the same static or <code class="docutils literal notranslate"><span class="pre">nodePort</span></code> offset.</p></li> </ul> </section> <section id="id5"> <h3>Known limitations<a class="headerlink" href="#id5" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>The operator can leak memory and <code class="docutils literal notranslate"><span class="pre">goroutines</span></code> over time from idle outbound HTTP connections (to Kafka REST, Metadata Service (MDS), Schema Registry, or an OAuth identity provider) that are never closed. This can affect any deployment. Upgrade to CFK 3.2.4 or later, which adds a configurable idle-connection timeout to fix this. See <a class="reference internal" href="#co-rn-3-2-4"><span class="std std-ref">[25 September, 2026] Confluent for Kubernetes 3.2.4 Release Notes</span></a>.</p></li> </ul> </section> <section id="id6"> <h3>Deprecations<a class="headerlink" href="#id6" title="Link to this heading"></a></h3> <p>There are no new deprecations in this release.</p> </section> ]]></content:encoded></item><item><title>[30 April, 2026] Confluent for Kubernetes 3.2.2 Release Notes</title><link>https://docs.confluent.io/operator/3.2/release-notes.html#april-2026-co-long-3-2-2-release-notes</link><guid>https://docs.confluent.io/operator/3.2/release-notes.html#april-2026-co-long-3-2-2-release-notes</guid><pubDate>Thu, 30 Apr 2026 00:00:00 GMT</pubDate><description><![CDATA[ <span id="co-rn-3-2-2"></span> <section id="id7"> <h3>Compatibility and container images<a class="headerlink" href="#id7" title="Link to this heading"></a></h3> <p>CFK 3.2.2 allows you to deploy and manage Confluent Platform versions from 7.4.x to 8.2.x on Kubernetes versions 1.27 - 1.35 (OpenShift 4.14 - 4.21).</p> <p>The images released in CFK 3.2.2 are:</p> <ul class="simple"> <li><p><code class="docutils literal notranslate"><span class="pre">confluentinc/confluent-operator:0.1514.40</span></code></p></li> <li><p><code class="docutils literal notranslate"><span class="pre">confluentinc/confluent-init-container:3.2.2</span></code></p></li> <li><p><code class="docutils literal notranslate"><span class="pre">confluentinc/confluent-observer-container:3.2.2</span></code></p></li> </ul> </section> <section id="id8"> <h3>New features<a class="headerlink" href="#id8" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>Locks Kafka, ZooKeeper, and KRaftController CRs during KRaft migration to prevent accidental modifications or deletions. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-migrate-kraft-prerequisites.html#co-migrate-kraft-enforce-cr-locks-v2"><span class="std std-ref">CR lock enforcement</span></a>.</p></li> <li><p>Supports KRaft migration rollback from the <code class="docutils literal notranslate"><span class="pre">SETUP</span></code> and <code class="docutils literal notranslate"><span class="pre">MIGRATE</span></code> phases (previously <code class="docutils literal notranslate"><span class="pre">DUAL-WRITE</span></code> only). See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-migrate-kraft-rollback.html#co-migrate-kraft-rollback-v2"><span class="std std-ref">Roll Back to ZooKeeper</span></a>.</p></li> <li><p>Adds <code class="docutils literal notranslate"><span class="pre">kubectl</span> <span class="pre">confluent</span> <span class="pre">cluster</span> <span class="pre">kraft-migration</span></code> plugin for managing KRaft migration lifecycle operations: status, finalize, rollback, and CR lock release. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-migrate-kraft-command-reference.html#co-migrate-kraft-plugin-commands-v2"><span class="std std-ref">KRaft Migration Plugin Commands</span></a>.</p></li> <li><p>Adds mTLS authentication support between ksqlDB and MDS.</p></li> </ul> </section> <section id="id9"> <h3>Enhancements<a class="headerlink" href="#id9" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>Validates <code class="docutils literal notranslate"><span class="pre">configOverrides.server</span></code> for blocklisted keys (for example, <code class="docutils literal notranslate"><span class="pre">zookeeper.connect</span></code>) before starting KRaft migration; blocks migration with an actionable error on conflicts. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-migrate-kraft-procedure.html#co-migrate-kraft-deploy-migration-job-v2"><span class="std std-ref">Step 3: Start migration</span></a>.</p></li> </ul> </section> <section id="id10"> <h3>Bug fixes<a class="headerlink" href="#id10" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>Fixed duplicate OpenShift Route hostname between <code class="docutils literal notranslate"><span class="pre">TOKEN_SASL</span></code> and <code class="docutils literal notranslate"><span class="pre">REPLICATION</span></code> listeners when MDS mTLS is enabled.</p></li> <li><p>Fixed propagation of <code class="docutils literal notranslate"><span class="pre">podTemplate.affinity</span></code> to Confluent Gateway deployments so CR-defined affinity rules apply correctly to pods.</p></li> </ul> </section> <section id="id11"> <h3>Known limitations<a class="headerlink" href="#id11" title="Link to this heading"></a></h3> <p>There are no new known limitations in this release.</p> </section> <section id="id12"> <h3>Deprecations<a class="headerlink" href="#id12" title="Link to this heading"></a></h3> <p>There are no new deprecations in this release.</p> </section> ]]></description><content:encoded><![CDATA[ <span id="co-rn-3-2-2"></span> <section id="id7"> <h3>Compatibility and container images<a class="headerlink" href="#id7" title="Link to this heading"></a></h3> <p>CFK 3.2.2 allows you to deploy and manage Confluent Platform versions from 7.4.x to 8.2.x on Kubernetes versions 1.27 - 1.35 (OpenShift 4.14 - 4.21).</p> <p>The images released in CFK 3.2.2 are:</p> <ul class="simple"> <li><p><code class="docutils literal notranslate"><span class="pre">confluentinc/confluent-operator:0.1514.40</span></code></p></li> <li><p><code class="docutils literal notranslate"><span class="pre">confluentinc/confluent-init-container:3.2.2</span></code></p></li> <li><p><code class="docutils literal notranslate"><span class="pre">confluentinc/confluent-observer-container:3.2.2</span></code></p></li> </ul> </section> <section id="id8"> <h3>New features<a class="headerlink" href="#id8" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>Locks Kafka, ZooKeeper, and KRaftController CRs during KRaft migration to prevent accidental modifications or deletions. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-migrate-kraft-prerequisites.html#co-migrate-kraft-enforce-cr-locks-v2"><span class="std std-ref">CR lock enforcement</span></a>.</p></li> <li><p>Supports KRaft migration rollback from the <code class="docutils literal notranslate"><span class="pre">SETUP</span></code> and <code class="docutils literal notranslate"><span class="pre">MIGRATE</span></code> phases (previously <code class="docutils literal notranslate"><span class="pre">DUAL-WRITE</span></code> only). See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-migrate-kraft-rollback.html#co-migrate-kraft-rollback-v2"><span class="std std-ref">Roll Back to ZooKeeper</span></a>.</p></li> <li><p>Adds <code class="docutils literal notranslate"><span class="pre">kubectl</span> <span class="pre">confluent</span> <span class="pre">cluster</span> <span class="pre">kraft-migration</span></code> plugin for managing KRaft migration lifecycle operations: status, finalize, rollback, and CR lock release. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-migrate-kraft-command-reference.html#co-migrate-kraft-plugin-commands-v2"><span class="std std-ref">KRaft Migration Plugin Commands</span></a>.</p></li> <li><p>Adds mTLS authentication support between ksqlDB and MDS.</p></li> </ul> </section> <section id="id9"> <h3>Enhancements<a class="headerlink" href="#id9" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>Validates <code class="docutils literal notranslate"><span class="pre">configOverrides.server</span></code> for blocklisted keys (for example, <code class="docutils literal notranslate"><span class="pre">zookeeper.connect</span></code>) before starting KRaft migration; blocks migration with an actionable error on conflicts. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-migrate-kraft-procedure.html#co-migrate-kraft-deploy-migration-job-v2"><span class="std std-ref">Step 3: Start migration</span></a>.</p></li> </ul> </section> <section id="id10"> <h3>Bug fixes<a class="headerlink" href="#id10" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>Fixed duplicate OpenShift Route hostname between <code class="docutils literal notranslate"><span class="pre">TOKEN_SASL</span></code> and <code class="docutils literal notranslate"><span class="pre">REPLICATION</span></code> listeners when MDS mTLS is enabled.</p></li> <li><p>Fixed propagation of <code class="docutils literal notranslate"><span class="pre">podTemplate.affinity</span></code> to Confluent Gateway deployments so CR-defined affinity rules apply correctly to pods.</p></li> </ul> </section> <section id="id11"> <h3>Known limitations<a class="headerlink" href="#id11" title="Link to this heading"></a></h3> <p>There are no new known limitations in this release.</p> </section> <section id="id12"> <h3>Deprecations<a class="headerlink" href="#id12" title="Link to this heading"></a></h3> <p>There are no new deprecations in this release.</p> </section> ]]></content:encoded></item><item><title>[27 March, 2026] Confluent for Kubernetes 3.2.1 Release Notes</title><link>https://docs.confluent.io/operator/3.2/release-notes.html#march-2026-co-long-3-2-1-release-notes</link><guid>https://docs.confluent.io/operator/3.2/release-notes.html#march-2026-co-long-3-2-1-release-notes</guid><pubDate>Fri, 27 Mar 2026 00:00:00 GMT</pubDate><description><![CDATA[ <span id="co-rn-3-2-1"></span> <section id="id13"> <h3>Compatibility and container images<a class="headerlink" href="#id13" title="Link to this heading"></a></h3> <p>CFK 3.2.1 allows you to deploy and manage Confluent Platform versions from 7.4.x to 8.2.x on Kubernetes versions 1.27 - 1.35 (OpenShift 4.14 - 4.21).</p> <p>The images released in CFK 3.2.1 are:</p> <ul class="simple"> <li><p><code class="docutils literal notranslate"><span class="pre">confluentinc/confluent-operator:0.1514.19</span></code></p></li> <li><p><code class="docutils literal notranslate"><span class="pre">confluentinc/confluent-init-container:3.2.1</span></code></p></li> <li><p><code class="docutils literal notranslate"><span class="pre">confluentinc/confluent-observer-container:3.2.1</span></code></p></li> </ul> </section> <section id="id14"> <h3>New features<a class="headerlink" href="#id14" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>Adds JMX authentication and access control configuration using CR specifications to secure exposed JMX ports for all Confluent Platform components. This is a breaking change for existing deployments that access the JMX port remotely for metrics queries. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-monitor-cp.html#co-monitor-jmx"><span class="std std-ref">JMX Metrics</span></a>.</p></li> <li><p>Supports dynamic quorum configuration for KRaft deployments, including multi-region cluster (MRC) deployments. MRC requires Confluent Platform 7.9.6 or later (7.9.x) and 8.1.2 or later (8.1.x). Migrating existing MRC deployments from static to dynamic quorum requires Confluent Platform 8.0 or later. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-configure-kraft-dynamic-quorum.html#co-configure-kraft-dynamic-quorum"><span class="std std-ref">Configure Dynamic KRaft Quorum for Confluent Platform Using Confluent for Kubernetes</span></a>.</p></li> </ul> </section> <section id="id15"> <h3>Enhancements<a class="headerlink" href="#id15" title="Link to this heading"></a></h3> <p>There are no new enhancements in this release.</p> </section> <section id="id16"> <h3>Bug fixes<a class="headerlink" href="#id16" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>Fixed custom OAuth listener validation failure when JAAS configurations were omitted.</p></li> <li><p>Fixed metrics TLS configuration to correctly resolve keystore passwords from vault-injected files when <code class="docutils literal notranslate"><span class="pre">DirectoryPathInContainer</span></code> is used.</p></li> </ul> </section> <section id="id17"> <h3>Known limitations<a class="headerlink" href="#id17" title="Link to this heading"></a></h3> <p>There are no new known limitations in this release.</p> </section> <section id="id18"> <h3>Deprecations<a class="headerlink" href="#id18" title="Link to this heading"></a></h3> <p>There are no new deprecations in this release.</p> </section> ]]></description><content:encoded><![CDATA[ <span id="co-rn-3-2-1"></span> <section id="id13"> <h3>Compatibility and container images<a class="headerlink" href="#id13" title="Link to this heading"></a></h3> <p>CFK 3.2.1 allows you to deploy and manage Confluent Platform versions from 7.4.x to 8.2.x on Kubernetes versions 1.27 - 1.35 (OpenShift 4.14 - 4.21).</p> <p>The images released in CFK 3.2.1 are:</p> <ul class="simple"> <li><p><code class="docutils literal notranslate"><span class="pre">confluentinc/confluent-operator:0.1514.19</span></code></p></li> <li><p><code class="docutils literal notranslate"><span class="pre">confluentinc/confluent-init-container:3.2.1</span></code></p></li> <li><p><code class="docutils literal notranslate"><span class="pre">confluentinc/confluent-observer-container:3.2.1</span></code></p></li> </ul> </section> <section id="id14"> <h3>New features<a class="headerlink" href="#id14" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>Adds JMX authentication and access control configuration using CR specifications to secure exposed JMX ports for all Confluent Platform components. This is a breaking change for existing deployments that access the JMX port remotely for metrics queries. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-monitor-cp.html#co-monitor-jmx"><span class="std std-ref">JMX Metrics</span></a>.</p></li> <li><p>Supports dynamic quorum configuration for KRaft deployments, including multi-region cluster (MRC) deployments. MRC requires Confluent Platform 7.9.6 or later (7.9.x) and 8.1.2 or later (8.1.x). Migrating existing MRC deployments from static to dynamic quorum requires Confluent Platform 8.0 or later. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-configure-kraft-dynamic-quorum.html#co-configure-kraft-dynamic-quorum"><span class="std std-ref">Configure Dynamic KRaft Quorum for Confluent Platform Using Confluent for Kubernetes</span></a>.</p></li> </ul> </section> <section id="id15"> <h3>Enhancements<a class="headerlink" href="#id15" title="Link to this heading"></a></h3> <p>There are no new enhancements in this release.</p> </section> <section id="id16"> <h3>Bug fixes<a class="headerlink" href="#id16" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>Fixed custom OAuth listener validation failure when JAAS configurations were omitted.</p></li> <li><p>Fixed metrics TLS configuration to correctly resolve keystore passwords from vault-injected files when <code class="docutils literal notranslate"><span class="pre">DirectoryPathInContainer</span></code> is used.</p></li> </ul> </section> <section id="id17"> <h3>Known limitations<a class="headerlink" href="#id17" title="Link to this heading"></a></h3> <p>There are no new known limitations in this release.</p> </section> <section id="id18"> <h3>Deprecations<a class="headerlink" href="#id18" title="Link to this heading"></a></h3> <p>There are no new deprecations in this release.</p> </section> ]]></content:encoded></item><item><title>[11 March, 2026] Confluent for Kubernetes 3.2.0 Release Notes</title><link>https://docs.confluent.io/operator/3.2/release-notes.html#march-2026-co-long-3-2-0-release-notes</link><guid>https://docs.confluent.io/operator/3.2/release-notes.html#march-2026-co-long-3-2-0-release-notes</guid><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><description><![CDATA[ <span id="co-rn-3-2-0"></span> <section id="id19"> <h3>Compatibility and container images<a class="headerlink" href="#id19" title="Link to this heading"></a></h3> <p>CFK 3.2.0 allows you to deploy and manage Confluent Platform versions from 7.4.x to 8.2.x on Kubernetes versions 1.27 - 1.35 (OpenShift 4.14 - 4.21).</p> <p>The images released in CFK 3.2.0 are:</p> <ul class="simple"> <li><p><code class="docutils literal notranslate"><span class="pre">confluentinc/confluent-operator:0.1514.1</span></code></p></li> <li><p><code class="docutils literal notranslate"><span class="pre">confluentinc/confluent-init-container:3.2.0</span></code></p></li> <li><p><code class="docutils literal notranslate"><span class="pre">confluentinc/confluent-observer-container:3.2.0</span></code></p></li> </ul> </section> <section id="id20"> <h3>Breaking changes<a class="headerlink" href="#id20" title="Link to this heading"></a></h3> <p>There are no breaking changes in this release.</p> </section> <section id="id21"> <h3>New features<a class="headerlink" href="#id21" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>Adds an Observer container for self-contained readiness monitoring of Kafka and KRaft controller pods. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-observer-container.html#co-observer-container"><span class="std std-ref">Configure Observer container for Confluent Platform</span></a>.</p></li> <li><p>Supports dynamic quorum configuration for KRaft deployments, including MRC deployments. MRC requires Confluent Platform 7.9.6 or later (7.9.x) and 8.1.2 or later (8.1.x). See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-configure-kraft-dynamic-quorum.html#co-configure-kraft-dynamic-quorum"><span class="std std-ref">Configure Dynamic KRaft Quorum for Confluent Platform Using Confluent for Kubernetes</span></a>.</p></li> <li><p>Supports bidirectional cluster linking for data replication in both directions between two Kafka clusters. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-link-clusters.html#co-clusterlink-bidirectional"><span class="std std-ref">Bidirectional cluster linking</span></a>.</p></li> <li><p>Supports deploying FIPS 140-3 compliant Confluent Platform components. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-security-compliance.html#co-security-compliance"><span class="std std-ref">Security Compliance in Confluent for Kubernetes</span></a>.</p></li> <li><p>Supports increasing the partition count for existing Kafka topics by editing <code class="docutils literal notranslate"><span class="pre">spec.partitionCount</span></code> on the KafkaTopic CR (decreasing is not supported). Before upgrading brownfield deployments, verify <code class="docutils literal notranslate"><span class="pre">spec.partitionCount</span></code> matches the live cluster to avoid an unintended partition increase on first reconcile. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-manage-topics.html#co-manage-topics-update-kafka-topic"><span class="std std-ref">Update Kafka topic</span></a>.</p></li> <li><p>Supports adding or rotating external SASL/PLAIN client credentials without broker restarts. CFK hot-reloads credential changes when <code class="docutils literal notranslate"><span class="pre">jaasConfig</span></code> uses the default <code class="docutils literal notranslate"><span class="pre">FileBasedLoginModule</span></code>. Enabled by default. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-manage-authentication.html#co-update-sasl-plain-users"><span class="std std-ref">Update Kafka or KRaft SASL/PLAIN external client users</span></a>.</p></li> <li><p>Adds <code class="docutils literal notranslate"><span class="pre">spec.listeners.advertisedListenersEnabled</span></code> to the KRaftController CR; set to <code class="docutils literal notranslate"><span class="pre">true</span></code> for MRC deployments to prevent controller endpoint registration issues. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-multi-region.html#co-mrc-kraft"><span class="std std-ref">Configure KRaft in MRC</span></a>.</p></li> </ul> </section> <section id="id22"> <h3>Enhancements<a class="headerlink" href="#id22" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>Derives the inter-broker protocol (IBP) version automatically for standard Confluent Platform images during ZooKeeper to KRaft migration. Custom images still require the <code class="docutils literal notranslate"><span class="pre">platform.confluent.io/kraft-migration-ibp-version</span></code> annotation. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-migrate-kraft-procedure.html#co-migrate-kraft-deploy-kafka"><span class="std std-ref">Step 1: Configure IBP version</span></a>.</p></li> <li><p>Triggers operator-controlled rolling restarts on secret updates with under-replicated partition (URP) safety checks for Kafka and KRaft components, preventing cluster instability during certificate rotation. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-manage-certificates.html#secret-updates-safe-roll"><span class="std std-ref">Secret updates and safe rolling restarts</span></a>.</p></li> <li><p>Validates required init-container environment variables and supports appending custom environment variables to init containers using the common <code class="docutils literal notranslate"><span class="pre">podTemplate</span></code> spec.</p></li> <li><p>Optimizes the Unified Stream Manager Schema Registry automation workflow for improved performance.</p></li> </ul> </section> <section id="id23"> <h3>Bug fixes<a class="headerlink" href="#id23" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>Fixed an issue where CFK ignored the <code class="docutils literal notranslate"><span class="pre">platform.confluent.io/roll-delay-interval-seconds</span></code> annotation during upgrades, causing pods to roll immediately instead of waiting for the configured delay.</p></li> <li><p>Fixed connector reconciliation to properly handle Connect’s credential masking in the REST API, preventing unnecessary connector updates or restarts when sensitive configuration fields are masked.</p></li> <li><p>Fixed an issue where CFK did not add the Unified Stream Manager (USM) extension class when RBAC authorization was enabled.</p></li> <li><p>Fixed an issue where CFK issued <code class="docutils literal notranslate"><span class="pre">DELETE_TOPICS</span></code> requests for auto-mirrored topics during reconciliation. This causes brokers to repeatedly log <code class="docutils literal notranslate"><span class="pre">TopicDeletionDisabledException</span></code> errors and the destination cluster link to enter a <code class="docutils literal notranslate"><span class="pre">ClusterLinkUpdateFailed</span></code> condition. However, the data flow and mirroring were not affected. This is tracked in <a class="reference external" href="https://confluentinc.atlassian.net/browse/CFK-3888">CFK-3888</a>. For details on the symptoms in earlier versions, see <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-troubleshooting.html#co-troubleshooting"><span class="std std-ref">Troubleshoot Confluent for Kubernetes</span></a>.</p></li> </ul> </section> <section id="id24"> <h3>Known limitations<a class="headerlink" href="#id24" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>CFK 3.2.x can trigger unnecessary Kafka or KRaftController rolling restarts when a metadata-only update changes a tracked secret’s <code class="docutils literal notranslate"><span class="pre">resourceVersion</span></code>. As a workaround, set <code class="docutils literal notranslate"><span class="pre">platform.confluent.io/secret-change-roll-cluster="false"</span></code> on the affected resources. Note that after applying this workaround, intentional secret rotations then require a manual roll.</p></li> </ul> </section> <section id="id25"> <h3>Deprecations<a class="headerlink" href="#id25" title="Link to this heading"></a></h3> <p>There are no new deprecations in this release.</p> </section> ]]></description><content:encoded><![CDATA[ <span id="co-rn-3-2-0"></span> <section id="id19"> <h3>Compatibility and container images<a class="headerlink" href="#id19" title="Link to this heading"></a></h3> <p>CFK 3.2.0 allows you to deploy and manage Confluent Platform versions from 7.4.x to 8.2.x on Kubernetes versions 1.27 - 1.35 (OpenShift 4.14 - 4.21).</p> <p>The images released in CFK 3.2.0 are:</p> <ul class="simple"> <li><p><code class="docutils literal notranslate"><span class="pre">confluentinc/confluent-operator:0.1514.1</span></code></p></li> <li><p><code class="docutils literal notranslate"><span class="pre">confluentinc/confluent-init-container:3.2.0</span></code></p></li> <li><p><code class="docutils literal notranslate"><span class="pre">confluentinc/confluent-observer-container:3.2.0</span></code></p></li> </ul> </section> <section id="id20"> <h3>Breaking changes<a class="headerlink" href="#id20" title="Link to this heading"></a></h3> <p>There are no breaking changes in this release.</p> </section> <section id="id21"> <h3>New features<a class="headerlink" href="#id21" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>Adds an Observer container for self-contained readiness monitoring of Kafka and KRaft controller pods. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-observer-container.html#co-observer-container"><span class="std std-ref">Configure Observer container for Confluent Platform</span></a>.</p></li> <li><p>Supports dynamic quorum configuration for KRaft deployments, including MRC deployments. MRC requires Confluent Platform 7.9.6 or later (7.9.x) and 8.1.2 or later (8.1.x). See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-configure-kraft-dynamic-quorum.html#co-configure-kraft-dynamic-quorum"><span class="std std-ref">Configure Dynamic KRaft Quorum for Confluent Platform Using Confluent for Kubernetes</span></a>.</p></li> <li><p>Supports bidirectional cluster linking for data replication in both directions between two Kafka clusters. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-link-clusters.html#co-clusterlink-bidirectional"><span class="std std-ref">Bidirectional cluster linking</span></a>.</p></li> <li><p>Supports deploying FIPS 140-3 compliant Confluent Platform components. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-security-compliance.html#co-security-compliance"><span class="std std-ref">Security Compliance in Confluent for Kubernetes</span></a>.</p></li> <li><p>Supports increasing the partition count for existing Kafka topics by editing <code class="docutils literal notranslate"><span class="pre">spec.partitionCount</span></code> on the KafkaTopic CR (decreasing is not supported). Before upgrading brownfield deployments, verify <code class="docutils literal notranslate"><span class="pre">spec.partitionCount</span></code> matches the live cluster to avoid an unintended partition increase on first reconcile. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-manage-topics.html#co-manage-topics-update-kafka-topic"><span class="std std-ref">Update Kafka topic</span></a>.</p></li> <li><p>Supports adding or rotating external SASL/PLAIN client credentials without broker restarts. CFK hot-reloads credential changes when <code class="docutils literal notranslate"><span class="pre">jaasConfig</span></code> uses the default <code class="docutils literal notranslate"><span class="pre">FileBasedLoginModule</span></code>. Enabled by default. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-manage-authentication.html#co-update-sasl-plain-users"><span class="std std-ref">Update Kafka or KRaft SASL/PLAIN external client users</span></a>.</p></li> <li><p>Adds <code class="docutils literal notranslate"><span class="pre">spec.listeners.advertisedListenersEnabled</span></code> to the KRaftController CR; set to <code class="docutils literal notranslate"><span class="pre">true</span></code> for MRC deployments to prevent controller endpoint registration issues. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-multi-region.html#co-mrc-kraft"><span class="std std-ref">Configure KRaft in MRC</span></a>.</p></li> </ul> </section> <section id="id22"> <h3>Enhancements<a class="headerlink" href="#id22" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>Derives the inter-broker protocol (IBP) version automatically for standard Confluent Platform images during ZooKeeper to KRaft migration. Custom images still require the <code class="docutils literal notranslate"><span class="pre">platform.confluent.io/kraft-migration-ibp-version</span></code> annotation. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-migrate-kraft-procedure.html#co-migrate-kraft-deploy-kafka"><span class="std std-ref">Step 1: Configure IBP version</span></a>.</p></li> <li><p>Triggers operator-controlled rolling restarts on secret updates with under-replicated partition (URP) safety checks for Kafka and KRaft components, preventing cluster instability during certificate rotation. See <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-manage-certificates.html#secret-updates-safe-roll"><span class="std std-ref">Secret updates and safe rolling restarts</span></a>.</p></li> <li><p>Validates required init-container environment variables and supports appending custom environment variables to init containers using the common <code class="docutils literal notranslate"><span class="pre">podTemplate</span></code> spec.</p></li> <li><p>Optimizes the Unified Stream Manager Schema Registry automation workflow for improved performance.</p></li> </ul> </section> <section id="id23"> <h3>Bug fixes<a class="headerlink" href="#id23" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>Fixed an issue where CFK ignored the <code class="docutils literal notranslate"><span class="pre">platform.confluent.io/roll-delay-interval-seconds</span></code> annotation during upgrades, causing pods to roll immediately instead of waiting for the configured delay.</p></li> <li><p>Fixed connector reconciliation to properly handle Connect’s credential masking in the REST API, preventing unnecessary connector updates or restarts when sensitive configuration fields are masked.</p></li> <li><p>Fixed an issue where CFK did not add the Unified Stream Manager (USM) extension class when RBAC authorization was enabled.</p></li> <li><p>Fixed an issue where CFK issued <code class="docutils literal notranslate"><span class="pre">DELETE_TOPICS</span></code> requests for auto-mirrored topics during reconciliation. This causes brokers to repeatedly log <code class="docutils literal notranslate"><span class="pre">TopicDeletionDisabledException</span></code> errors and the destination cluster link to enter a <code class="docutils literal notranslate"><span class="pre">ClusterLinkUpdateFailed</span></code> condition. However, the data flow and mirroring were not affected. This is tracked in <a class="reference external" href="https://confluentinc.atlassian.net/browse/CFK-3888">CFK-3888</a>. For details on the symptoms in earlier versions, see <a class="reference internal" href="https://docs.confluent.io/operator/3.2/co-troubleshooting.html#co-troubleshooting"><span class="std std-ref">Troubleshoot Confluent for Kubernetes</span></a>.</p></li> </ul> </section> <section id="id24"> <h3>Known limitations<a class="headerlink" href="#id24" title="Link to this heading"></a></h3> <ul class="simple"> <li><p>CFK 3.2.x can trigger unnecessary Kafka or KRaftController rolling restarts when a metadata-only update changes a tracked secret’s <code class="docutils literal notranslate"><span class="pre">resourceVersion</span></code>. As a workaround, set <code class="docutils literal notranslate"><span class="pre">platform.confluent.io/secret-change-roll-cluster="false"</span></code> on the affected resources. Note that after applying this workaround, intentional secret rotations then require a manual roll.</p></li> </ul> </section> <section id="id25"> <h3>Deprecations<a class="headerlink" href="#id25" title="Link to this heading"></a></h3> <p>There are no new deprecations in this release.</p> </section> ]]></content:encoded></item></channel></rss>