Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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

Expand Down
2 changes: 1 addition & 1 deletion docs/modules/kafka/examples/getting_started/kafka.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ metadata:
name: simple-kafka
spec:
image:
productVersion: 3.9.1
productVersion: 3.9.2
Comment thread
sbernauer marked this conversation as resolved.
clusterConfig:
tls:
serverSecretClass: null
Expand Down
2 changes: 1 addition & 1 deletion docs/modules/kafka/examples/kraft_migration/01-setup.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ metadata:
namespace: kraft-migration
spec:
image:
productVersion: 3.9.1
productVersion: 3.9.2
pullPolicy: IfNotPresent
clusterConfig:
metadataManager: zookeeper
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ metadata:
namespace: kraft-migration
spec:
image:
productVersion: 3.9.1
productVersion: 3.9.2
pullPolicy: IfNotPresent
clusterConfig:
metadataManager: zookeeper
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ metadata:
namespace: kraft-migration
spec:
image:
productVersion: 3.9.1
productVersion: 3.9.2
pullPolicy: IfNotPresent
clusterConfig:
metadataManager: zookeeper
Expand All @@ -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"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ metadata:
namespace: kraft-migration
spec:
image:
productVersion: 3.9.1
productVersion: 3.9.2
pullPolicy: IfNotPresent
clusterConfig:
metadataManager: zookeeper
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ metadata:
namespace: kraft-migration
spec:
image:
productVersion: 3.9.1
productVersion: 3.9.2
pullPolicy: IfNotPresent
clusterConfig:
metadataManager: kraft
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ metadata:
namespace: mm-migration
spec:
image:
productVersion: 3.9.1
productVersion: 3.9.2
pullPolicy: IfNotPresent
clusterConfig:
metadataManager: zookeeper
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ metadata:
namespace: mm-migration
spec:
image:
productVersion: 3.9.1
productVersion: 3.9.2
pullPolicy: IfNotPresent
clusterConfig:
metadataManager: kraft
Expand Down
2 changes: 1 addition & 1 deletion docs/modules/kafka/pages/getting_started/first_steps.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -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: <none>
Selector: listener.stackable.tech/mnt.9555cbb6f38d4b0ca1771e6d83d28e27=simple-kafka-broker-default-bootstrap
Expand Down
4 changes: 2 additions & 2 deletions docs/modules/kafka/pages/usage-guide/kraft-controller.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ spec:
clusterConfig:
metadataManager: kraft
image:
productVersion: "3.9.1"
productVersion: "3.9.2"
brokers:
roleGroups:
default:
Expand Down Expand Up @@ -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.
Expand Down
10 changes: 5 additions & 5 deletions docs/modules/kafka/pages/usage-guide/security.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ metadata:
name: simple-kafka
spec:
image:
productVersion: 3.9.1
productVersion: 3.9.2
clusterConfig:
zookeeperConfigMapName: simple-kafka-znode
tls:
Expand Down Expand Up @@ -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>
Expand Down Expand Up @@ -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>
Expand Down Expand Up @@ -184,7 +184,7 @@ metadata:
name: simple-kafka
spec:
image:
productVersion: 3.9.1
productVersion: 3.9.2
clusterConfig:
authorization:
opa:
Expand All @@ -208,7 +208,7 @@ metadata:
name: simple-kafka
spec:
image:
productVersion: 3.9.1
productVersion: 3.9.2
clusterConfig:
authorization:
opa:
Expand Down
6 changes: 4 additions & 2 deletions docs/modules/kafka/partials/supported-versions.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down
4 changes: 2 additions & 2 deletions rust/operator-binary/src/config/jvm.rs
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ mod tests {
name: simple-kafka
spec:
image:
productVersion: 3.9.1
productVersion: 3.9.2
clusterConfig:
zookeeperConfigMapName: xyz
brokers:
Expand Down Expand Up @@ -152,7 +152,7 @@ mod tests {
name: simple-kafka
spec:
image:
productVersion: 3.9.1
productVersion: 3.9.2
clusterConfig:
zookeeperConfigMapName: xyz
brokers:
Expand Down
2 changes: 1 addition & 1 deletion rust/operator-binary/src/crd/affinity.rs
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ mod tests {
name: simple-kafka
spec:
image:
productVersion: 3.9.1
productVersion: 3.9.2
clusterConfig:
zookeeperConfigMapName: xyz
brokers:
Expand Down
4 changes: 2 additions & 2 deletions rust/operator-binary/src/crd/listener.rs
Original file line number Diff line number Diff line change
Expand Up @@ -382,7 +382,7 @@ mod tests {
namespace: default
spec:
image:
productVersion: 3.9.1
productVersion: 3.9.2
clusterConfig:
authentication:
- authenticationClass: kafka-client-tls
Expand Down Expand Up @@ -588,7 +588,7 @@ mod tests {
namespace: default
spec:
image:
productVersion: 3.9.1
productVersion: 3.9.2
clusterConfig:
authentication:
- authenticationClass: kafka-kerberos
Expand Down
20 changes: 10 additions & 10 deletions rust/operator-binary/src/crd/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -615,7 +615,7 @@ mod tests {
name: simple-kafka
spec:
image:
productVersion: 3.9.1
productVersion: 3.9.2
clusterConfig:
zookeeperConfigMapName: xyz
"#;
Expand All @@ -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
Expand All @@ -659,7 +659,7 @@ mod tests {
name: simple-kafka
spec:
image:
productVersion: 3.9.1
productVersion: 3.9.2
clusterConfig:
tls:
serverSecretClass: null
Expand All @@ -680,7 +680,7 @@ mod tests {
name: simple-kafka
spec:
image:
productVersion: 3.9.1
productVersion: 3.9.2
zookeeperConfigMapName: xyz
clusterConfig:
tls:
Expand All @@ -705,7 +705,7 @@ mod tests {
name: simple-kafka
spec:
image:
productVersion: 3.9.1
productVersion: 3.9.2
clusterConfig:
zookeeperConfigMapName: xyz
"#;
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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",
Expand Down
2 changes: 1 addition & 1 deletion tests/templates/kuttl/upgrade/02-install-kafka.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -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' %}
Expand Down
14 changes: 8 additions & 6 deletions tests/test-definition.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Comment thread
razvan marked this conversation as resolved.
# 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
Expand All @@ -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"
Expand Down
Loading