diff --git a/CHANGELOG.md b/CHANGELOG.md index 4cd8d3a0..323d05c6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ All notable changes to this project will be documented in this file. ### Added - BREAKING: Add required CLI argument and env var to set the image repository used to construct final product image names: `IMAGE_REPOSITORY` (`--image-repository`), eg. `oci.example.org/my/namespace` ([#961]). +- Add Kafka 3.9.2 and 4.2.1 in tests, docs, getting started guide, etc. ([#973]). ### Changed @@ -24,6 +25,7 @@ All notable changes to this project will be documented in this file. [#961]: https://github.com/stackabletech/kafka-operator/pull/961 [#968]: https://github.com/stackabletech/kafka-operator/pull/968 [#971]: https://github.com/stackabletech/kafka-operator/pull/971 +[#973]: https://github.com/stackabletech/kafka-operator/pull/973 ## [26.3.0] - 2026-03-16 diff --git a/docs/modules/kafka/examples/getting_started/kafka.yaml b/docs/modules/kafka/examples/getting_started/kafka.yaml index 4b75bbe7..33bd0c3b 100644 --- a/docs/modules/kafka/examples/getting_started/kafka.yaml +++ b/docs/modules/kafka/examples/getting_started/kafka.yaml @@ -5,7 +5,7 @@ metadata: name: simple-kafka spec: image: - productVersion: 3.9.1 + productVersion: 3.9.2 clusterConfig: tls: serverSecretClass: null diff --git a/docs/modules/kafka/examples/kraft_migration/01-setup.yaml b/docs/modules/kafka/examples/kraft_migration/01-setup.yaml index bb765307..ab4a2bad 100644 --- a/docs/modules/kafka/examples/kraft_migration/01-setup.yaml +++ b/docs/modules/kafka/examples/kraft_migration/01-setup.yaml @@ -81,7 +81,7 @@ metadata: namespace: kraft-migration spec: image: - productVersion: 3.9.1 + productVersion: 3.9.2 pullPolicy: IfNotPresent clusterConfig: metadataManager: zookeeper diff --git a/docs/modules/kafka/examples/kraft_migration/02-start-controllers.yaml b/docs/modules/kafka/examples/kraft_migration/02-start-controllers.yaml index 5fce10af..c4e2eeb5 100644 --- a/docs/modules/kafka/examples/kraft_migration/02-start-controllers.yaml +++ b/docs/modules/kafka/examples/kraft_migration/02-start-controllers.yaml @@ -6,7 +6,7 @@ metadata: namespace: kraft-migration spec: image: - productVersion: 3.9.1 + productVersion: 3.9.2 pullPolicy: IfNotPresent clusterConfig: metadataManager: zookeeper diff --git a/docs/modules/kafka/examples/kraft_migration/03-migrate-metadata.yaml b/docs/modules/kafka/examples/kraft_migration/03-migrate-metadata.yaml index 87304945..34fab66b 100644 --- a/docs/modules/kafka/examples/kraft_migration/03-migrate-metadata.yaml +++ b/docs/modules/kafka/examples/kraft_migration/03-migrate-metadata.yaml @@ -6,7 +6,7 @@ metadata: namespace: kraft-migration spec: image: - productVersion: 3.9.1 + productVersion: 3.9.2 pullPolicy: IfNotPresent clusterConfig: metadataManager: zookeeper @@ -25,7 +25,7 @@ spec: replicas: 3 configOverrides: broker.properties: - inter.broker.protocol.version: "3.9" # - Latest value known to Kafka 3.9.1 + inter.broker.protocol.version: "3.9" # - Latest value known to Kafka 3.9.2 zookeeper.metadata.migration.enable: "true" # - Enable migration mode so the broker can participate in metadata migration. controller.listener.names: "CONTROLLER" controller.quorum.bootstrap.servers: "simple-kafka-controller-default-0.simple-kafka-controller-default-headless.kraft-migration.svc.cluster.local:9093,simple-kafka-controller-default-1.simple-kafka-controller-default-headless.kraft-migration.svc.cluster.local:9093,simple-kafka-controller-default-2.simple-kafka-controller-default-headless.kraft-migration.svc.cluster.local:9093" diff --git a/docs/modules/kafka/examples/kraft_migration/04-migrate-brokers.yaml b/docs/modules/kafka/examples/kraft_migration/04-migrate-brokers.yaml index 5e4a61cd..c48f88c5 100644 --- a/docs/modules/kafka/examples/kraft_migration/04-migrate-brokers.yaml +++ b/docs/modules/kafka/examples/kraft_migration/04-migrate-brokers.yaml @@ -6,7 +6,7 @@ metadata: namespace: kraft-migration spec: image: - productVersion: 3.9.1 + productVersion: 3.9.2 pullPolicy: IfNotPresent clusterConfig: metadataManager: zookeeper diff --git a/docs/modules/kafka/examples/kraft_migration/05-kraft-mode.yaml b/docs/modules/kafka/examples/kraft_migration/05-kraft-mode.yaml index 16921d1f..93de2360 100644 --- a/docs/modules/kafka/examples/kraft_migration/05-kraft-mode.yaml +++ b/docs/modules/kafka/examples/kraft_migration/05-kraft-mode.yaml @@ -6,7 +6,7 @@ metadata: namespace: kraft-migration spec: image: - productVersion: 3.9.1 + productVersion: 3.9.2 pullPolicy: IfNotPresent clusterConfig: metadataManager: kraft diff --git a/docs/modules/kafka/examples/mirror_maker/01-setup-source.yaml b/docs/modules/kafka/examples/mirror_maker/01-setup-source.yaml index 4d95005a..56a98aeb 100644 --- a/docs/modules/kafka/examples/mirror_maker/01-setup-source.yaml +++ b/docs/modules/kafka/examples/mirror_maker/01-setup-source.yaml @@ -71,7 +71,7 @@ metadata: namespace: mm-migration spec: image: - productVersion: 3.9.1 + productVersion: 3.9.2 pullPolicy: IfNotPresent clusterConfig: metadataManager: zookeeper diff --git a/docs/modules/kafka/examples/mirror_maker/02-setup-target.yaml b/docs/modules/kafka/examples/mirror_maker/02-setup-target.yaml index a69421fa..e5c51b6c 100644 --- a/docs/modules/kafka/examples/mirror_maker/02-setup-target.yaml +++ b/docs/modules/kafka/examples/mirror_maker/02-setup-target.yaml @@ -41,7 +41,7 @@ metadata: namespace: mm-migration spec: image: - productVersion: 3.9.1 + productVersion: 3.9.2 pullPolicy: IfNotPresent clusterConfig: metadataManager: kraft diff --git a/docs/modules/kafka/pages/getting_started/first_steps.adoc b/docs/modules/kafka/pages/getting_started/first_steps.adoc index 6b5500e2..92210679 100644 --- a/docs/modules/kafka/pages/getting_started/first_steps.adoc +++ b/docs/modules/kafka/pages/getting_started/first_steps.adoc @@ -85,7 +85,7 @@ Labels: app.kubernetes.io/component=broker app.kubernetes.io/managed-by=listeners.stackable.tech_listener app.kubernetes.io/name=listener app.kubernetes.io/role-group=default - app.kubernetes.io/version=3.9.1-stackable0.0.0-dev + app.kubernetes.io/version=3.9.2-stackable0.0.0-dev stackable.tech/vendor=Stackable Annotations: Selector: listener.stackable.tech/mnt.9555cbb6f38d4b0ca1771e6d83d28e27=simple-kafka-broker-default-bootstrap diff --git a/docs/modules/kafka/pages/usage-guide/kraft-controller.adoc b/docs/modules/kafka/pages/usage-guide/kraft-controller.adoc index 36959c51..455188c9 100644 --- a/docs/modules/kafka/pages/usage-guide/kraft-controller.adoc +++ b/docs/modules/kafka/pages/usage-guide/kraft-controller.adoc @@ -31,7 +31,7 @@ spec: clusterConfig: metadataManager: kraft image: - productVersion: "3.9.1" + productVersion: "3.9.2" brokers: roleGroups: default: @@ -124,7 +124,7 @@ NOTE: Before starting the migration we recommend to reduce producer/consumer ope To make the migration step as clear as possible, we'll use a complete working example throughout this guide. The example cluster will be kept minimal without any additional configuration. -We'll use Kafka version `3.9.1` for this purpose. This is because this is the last version from the 3.x Kafka series that runs on ZooKeeper mode and is supported by the SDP. +We'll use Kafka version `3.9.2` for this purpose. This is because this is the last version from the 3.x Kafka series that runs on ZooKeeper mode and is supported by the SDP. We'll also assign broker ids manually from the beginning to simplify this guide. In a real-workd scenario, you do not have this option at this step because your cluster is already running. In a real world-scenario you'll have to collect these ids and configure manual assignment at the second step of the migration. diff --git a/docs/modules/kafka/pages/usage-guide/security.adoc b/docs/modules/kafka/pages/usage-guide/security.adoc index a712bcf4..601f2660 100644 --- a/docs/modules/kafka/pages/usage-guide/security.adoc +++ b/docs/modules/kafka/pages/usage-guide/security.adoc @@ -15,7 +15,7 @@ metadata: name: simple-kafka spec: image: - productVersion: 3.9.1 + productVersion: 3.9.2 clusterConfig: zookeeperConfigMapName: simple-kafka-znode tls: @@ -95,7 +95,7 @@ metadata: name: simple-kafka spec: image: - productVersion: 3.9.1 + productVersion: 3.9.2 clusterConfig: authentication: - authenticationClass: kafka-client-tls # <1> @@ -140,7 +140,7 @@ metadata: name: simple-kafka spec: image: - productVersion: 3.9.1 + productVersion: 3.9.2 clusterConfig: authentication: - authenticationClass: kafka-client-kerberos # <1> @@ -184,7 +184,7 @@ metadata: name: simple-kafka spec: image: - productVersion: 3.9.1 + productVersion: 3.9.2 clusterConfig: authorization: opa: @@ -208,7 +208,7 @@ metadata: name: simple-kafka spec: image: - productVersion: 3.9.1 + productVersion: 3.9.2 clusterConfig: authorization: opa: diff --git a/docs/modules/kafka/partials/supported-versions.adoc b/docs/modules/kafka/partials/supported-versions.adoc index 7794f675..1a57dce0 100644 --- a/docs/modules/kafka/partials/supported-versions.adoc +++ b/docs/modules/kafka/partials/supported-versions.adoc @@ -2,8 +2,10 @@ // This is a separate file, since it is used by both the direct Kafka documentation, and the overarching // Stackable Platform documentation. -* 4.1.1 (experimental) - Requires KRaft, please read on the xref:kafka:usage-guide/kraft-controller.adoc[Kraft migration guide]. -* 3.9.1 (LTS) +* 4.2.1 (experimental, deprecated) - Requires KRaft, please read on the xref:kafka:usage-guide/kraft-controller.adoc[Kraft migration guide]. +* 4.1.1 (experimental, deprecated) - Requires KRaft, please read on the xref:kafka:usage-guide/kraft-controller.adoc[Kraft migration guide]. +* 3.9.2 (LTS) +* 3.9.1 (deprecated) Support for clusters running in Kraft mode (which includes Apache Kafka 4.x.x) is experimental because it has not been thoroughly tested in production environments yet. diff --git a/rust/operator-binary/src/config/jvm.rs b/rust/operator-binary/src/config/jvm.rs index 29622105..79023618 100644 --- a/rust/operator-binary/src/config/jvm.rs +++ b/rust/operator-binary/src/config/jvm.rs @@ -122,7 +122,7 @@ mod tests { name: simple-kafka spec: image: - productVersion: 3.9.1 + productVersion: 3.9.2 clusterConfig: zookeeperConfigMapName: xyz brokers: @@ -152,7 +152,7 @@ mod tests { name: simple-kafka spec: image: - productVersion: 3.9.1 + productVersion: 3.9.2 clusterConfig: zookeeperConfigMapName: xyz brokers: diff --git a/rust/operator-binary/src/crd/affinity.rs b/rust/operator-binary/src/crd/affinity.rs index 27b6a59e..da01acca 100644 --- a/rust/operator-binary/src/crd/affinity.rs +++ b/rust/operator-binary/src/crd/affinity.rs @@ -44,7 +44,7 @@ mod tests { name: simple-kafka spec: image: - productVersion: 3.9.1 + productVersion: 3.9.2 clusterConfig: zookeeperConfigMapName: xyz brokers: diff --git a/rust/operator-binary/src/crd/listener.rs b/rust/operator-binary/src/crd/listener.rs index 41d7796c..7451fad3 100644 --- a/rust/operator-binary/src/crd/listener.rs +++ b/rust/operator-binary/src/crd/listener.rs @@ -382,7 +382,7 @@ mod tests { namespace: default spec: image: - productVersion: 3.9.1 + productVersion: 3.9.2 clusterConfig: authentication: - authenticationClass: kafka-client-tls @@ -588,7 +588,7 @@ mod tests { namespace: default spec: image: - productVersion: 3.9.1 + productVersion: 3.9.2 clusterConfig: authentication: - authenticationClass: kafka-kerberos diff --git a/rust/operator-binary/src/crd/mod.rs b/rust/operator-binary/src/crd/mod.rs index cd6a1046..d662de30 100644 --- a/rust/operator-binary/src/crd/mod.rs +++ b/rust/operator-binary/src/crd/mod.rs @@ -615,7 +615,7 @@ mod tests { name: simple-kafka spec: image: - productVersion: 3.9.1 + productVersion: 3.9.2 clusterConfig: zookeeperConfigMapName: xyz "#; @@ -634,7 +634,7 @@ mod tests { name: simple-kafka spec: image: - productVersion: 3.9.1 + productVersion: 3.9.2 clusterConfig: tls: serverSecretClass: simple-kafka-server-tls @@ -659,7 +659,7 @@ mod tests { name: simple-kafka spec: image: - productVersion: 3.9.1 + productVersion: 3.9.2 clusterConfig: tls: serverSecretClass: null @@ -680,7 +680,7 @@ mod tests { name: simple-kafka spec: image: - productVersion: 3.9.1 + productVersion: 3.9.2 zookeeperConfigMapName: xyz clusterConfig: tls: @@ -705,7 +705,7 @@ mod tests { name: simple-kafka spec: image: - productVersion: 3.9.1 + productVersion: 3.9.2 clusterConfig: zookeeperConfigMapName: xyz "#; @@ -724,7 +724,7 @@ mod tests { name: simple-kafka spec: image: - productVersion: 3.9.1 + productVersion: 3.9.2 clusterConfig: tls: internalSecretClass: simple-kafka-internal-tls @@ -745,7 +745,7 @@ mod tests { name: simple-kafka spec: image: - productVersion: 3.9.1 + productVersion: 3.9.2 clusterConfig: tls: serverSecretClass: simple-kafka-server-tls @@ -764,13 +764,13 @@ mod tests { } #[rstest] - #[case("3.9.1", None, Ok(MetadataManager::ZooKeeper))] + #[case("3.9.2", None, Ok(MetadataManager::ZooKeeper))] #[case( - "3.9.1", + "3.9.2", Some(MetadataManager::ZooKeeper), Ok(MetadataManager::ZooKeeper) )] - #[case("3.9.1", Some(MetadataManager::KRaft), Ok(MetadataManager::KRaft))] + #[case("3.9.2", Some(MetadataManager::KRaft), Ok(MetadataManager::KRaft))] #[case("4.1.1", None, Ok(MetadataManager::KRaft))] #[case( "4.1.1", diff --git a/tests/templates/kuttl/upgrade/02-install-kafka.yaml.j2 b/tests/templates/kuttl/upgrade/02-install-kafka.yaml.j2 index 93e1d415..972b8251 100644 --- a/tests/templates/kuttl/upgrade/02-install-kafka.yaml.j2 +++ b/tests/templates/kuttl/upgrade/02-install-kafka.yaml.j2 @@ -32,7 +32,7 @@ spec: productVersion: "{{ test_scenario['values']['upgrade_old'] }}" pullPolicy: IfNotPresent clusterConfig: - # Need to set this explicitly because the default would be zookeeper for 3.9.1 + # Need to set this explicitly because the default would be zookeeper for 3.9.2 # but we don't want to test zookeeper -> kraft migration here metadataManager: kraft {% if test_scenario['values']['use-client-auth-tls'] == 'true' %} diff --git a/tests/test-definition.yaml b/tests/test-definition.yaml index 23b35194..0543cca9 100644 --- a/tests/test-definition.yaml +++ b/tests/test-definition.yaml @@ -6,20 +6,22 @@ dimensions: - name: kafka-kraft values: - - 3.9.1 + - 3.9.2 - 4.1.1 + - 4.2.1 - name: kafka values: - 3.9.1 + - 3.9.2 # Alternatively, if you want to use a custom image, append a comma and the full image name to the product version # as in the example below. - # - 3.9.1,oci.stackable.tech/sdp/kafka:3.9.1-stackable0.0.0-dev + # - 3.9.2,oci.stackable.tech/sdp/kafka:3.9.2-stackable0.0.0-dev - name: kafka-latest values: - - 3.9.1 # Using LTS version here + - 3.9.2 # Using LTS version here # Alternatively, if you want to use a custom image, append a comma and the full image name to the product version # as in the example below. - # - 3.9.1,oci.stackable.tech/sdp/kafka:3.9.1-stackable0.0.0-dev + # - 3.9.2,oci.stackable.tech/sdp/kafka:3.9.2-stackable0.0.0-dev - name: zookeeper values: - 3.9.4 @@ -31,10 +33,10 @@ dimensions: - 1.16.2 - name: upgrade_old values: - - 3.9.1 + - 3.9.2 - name: upgrade_new values: - - 4.1.1 + - 4.2.1 - name: use-client-tls values: - "true"