From 5a905db1f51fcf3007fde4ea19efb13a867fb4ee Mon Sep 17 00:00:00 2001 From: Jakub Scholz Date: Fri, 11 Oct 2024 18:34:54 +0200 Subject: [PATCH] Add support for Kafka 3.9.0 Signed-off-by: Jakub Scholz --- CHANGELOG.md | 3 +- .../cluster/KafkaVersionTestUtils.java | 21 +- .../KafkaBrokerConfigurationBuilderTest.java | 4 +- .../model/KafkaClusterMigrationTest.java | 3 +- .../cluster/model/KafkaClusterTest.java | 4 +- .../model/KafkaClusterZooBasedTest.java | 12 +- .../model/KafkaConfigurationTests.java | 24 +- .../operator/assembly/ConnectCluster.java | 4 +- .../metadata/KafkaConfigModelGenerator.java | 3 + .../kafka-thirdparty-libs/3.9.x/ignorelist | 2 + .../kafka-thirdparty-libs/3.9.x/pom.xml | 420 ++++++++++++++++++ documentation/modules/snip-images.adoc | 3 +- .../modules/snip-kafka-versions.adoc | 3 +- documentation/shared/attributes.adoc | 18 +- .../shared/version-dependent-attrs.adoc | 2 +- kafka-versions.yaml | 14 +- .../examples/connect/kafka-connect-build.yaml | 6 +- packaging/examples/connect/kafka-connect.yaml | 2 +- ...kafka-cruise-control-auto-rebalancing.yaml | 4 +- .../kafka-cruise-control-with-goals.yaml | 4 +- .../cruise-control/kafka-cruise-control.yaml | 4 +- .../kafka/kafka-ephemeral-single.yaml | 4 +- packaging/examples/kafka/kafka-ephemeral.yaml | 4 +- packaging/examples/kafka/kafka-jbod.yaml | 4 +- .../kafka/kafka-persistent-single.yaml | 4 +- .../examples/kafka/kafka-persistent.yaml | 4 +- .../examples/kafka/kafka-with-node-pools.yaml | 4 +- .../examples/kafka/kraft/kafka-ephemeral.yaml | 4 +- .../examples/kafka/kraft/kafka-jbod.yaml | 4 +- .../kafka/kraft/kafka-single-node.yaml | 4 +- .../kraft/kafka-with-dual-role-nodes.yaml | 4 +- packaging/examples/kafka/kraft/kafka.yaml | 4 +- .../metrics/kafka-connect-metrics.yaml | 2 +- .../metrics/kafka-cruise-control-metrics.yaml | 4 +- packaging/examples/metrics/kafka-metrics.yaml | 4 +- .../metrics/kafka-mirror-maker-2-metrics.yaml | 2 +- ...ror-maker-2-custom-replication-policy.yaml | 2 +- .../kafka-mirror-maker-2-sync-groups.yaml | 2 +- .../kafka-mirror-maker-2-tls.yaml | 2 +- .../mirror-maker/kafka-mirror-maker-2.yaml | 2 +- .../mirror-maker/kafka-mirror-maker-tls.yaml | 2 +- .../mirror-maker/kafka-mirror-maker.yaml | 2 +- .../examples/mirror-maker/kafka-source.yaml | 4 +- .../examples/mirror-maker/kafka-target.yaml | 4 +- ...l-oauth-single-keycloak-authz-metrics.yaml | 4 +- ...ephemeral-oauth-single-keycloak-authz.yaml | 4 +- .../security/scram-sha-512-auth/connect.yaml | 2 +- .../security/scram-sha-512-auth/kafka.yaml | 4 +- .../scram-sha-512-auth/mirror-maker-2.yaml | 10 +- .../examples/security/tls-auth/connect.yaml | 2 +- .../examples/security/tls-auth/kafka.yaml | 4 +- .../security/tls-auth/mirror-maker-2.yaml | 10 +- .../templates/_kafka_image_map.tpl | 16 +- ...0-Deployment-strimzi-cluster-operator.yaml | 16 +- pom.xml | 2 +- .../resources/upgrade/BundleDowngrade.yaml | 4 +- .../test/resources/upgrade/BundleUpgrade.yaml | 6 +- 57 files changed, 583 insertions(+), 137 deletions(-) create mode 100644 docker-images/artifacts/kafka-thirdparty-libs/3.9.x/ignorelist create mode 100644 docker-images/artifacts/kafka-thirdparty-libs/3.9.x/pom.xml diff --git a/CHANGELOG.md b/CHANGELOG.md index 998df90d568..fc7ed300dc1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,8 @@ ## 0.45.0 -* Add support for Kafka 3.8.1 +* Add support for Kafka 3.9.0 and 3.8.1. + Remove support for Kafka 3.7.0 and 3.7.1 * Ability to move data between JBOD disks using Cruise Control. ## 0.44.0 diff --git a/cluster-operator/src/test/java/io/strimzi/operator/cluster/KafkaVersionTestUtils.java b/cluster-operator/src/test/java/io/strimzi/operator/cluster/KafkaVersionTestUtils.java index d8aeec38664..2e291f8f152 100644 --- a/cluster-operator/src/test/java/io/strimzi/operator/cluster/KafkaVersionTestUtils.java +++ b/cluster-operator/src/test/java/io/strimzi/operator/cluster/KafkaVersionTestUtils.java @@ -21,26 +21,25 @@ public class KafkaVersionTestUtils { private static final Set SUPPORTED_VERSIONS = new KafkaVersion.Lookup(Collections.emptyMap(), Collections.emptyMap(), Collections.emptyMap(), Collections.emptyMap()).supportedVersions(); - public static final String LATEST_KAFKA_VERSION = "3.8.1"; - public static final String LATEST_FORMAT_VERSION = "3.8"; - public static final String LATEST_PROTOCOL_VERSION = "3.8"; - public static final String LATEST_METADATA_VERSION = "3.8-IV0"; + public static final String LATEST_KAFKA_VERSION = "3.9.0"; + public static final String LATEST_FORMAT_VERSION = "3.9"; + public static final String LATEST_PROTOCOL_VERSION = "3.9"; + public static final String LATEST_METADATA_VERSION = "3.9-IV0"; public static final String LATEST_ZOOKEEPER_VERSION = "3.8.4"; public static final String LATEST_CHECKSUM = "ABCD1234"; - public static final String LATEST_THIRD_PARTY_VERSION = "3.8.x"; - public static final String KAFKA_390_VERSION = "3.9.0"; + public static final String LATEST_THIRD_PARTY_VERSION = "3.9.x"; public static final String LATEST_KAFKA_IMAGE = KAFKA_IMAGE_STR + LATEST_KAFKA_VERSION; public static final String LATEST_KAFKA_CONNECT_IMAGE = KAFKA_CONNECT_IMAGE_STR + LATEST_KAFKA_VERSION; public static final String LATEST_KAFKA_MIRROR_MAKER_IMAGE = KAFKA_MIRROR_MAKER_IMAGE_STR + LATEST_KAFKA_VERSION; public static final String LATEST_KAFKA_MIRROR_MAKER_2_IMAGE = KAFKA_MIRROR_MAKER_2_IMAGE_STR + LATEST_KAFKA_VERSION; - public static final String PREVIOUS_KAFKA_VERSION = "3.7.1"; - public static final String PREVIOUS_FORMAT_VERSION = "3.7"; - public static final String PREVIOUS_PROTOCOL_VERSION = "3.7"; - public static final String PREVIOUS_METADATA_VERSION = "3.7-IV4"; + public static final String PREVIOUS_KAFKA_VERSION = "3.8.0"; + public static final String PREVIOUS_FORMAT_VERSION = "3.8"; + public static final String PREVIOUS_PROTOCOL_VERSION = "3.8"; + public static final String PREVIOUS_METADATA_VERSION = "3.8-IV0"; public static final String PREVIOUS_ZOOKEEPER_VERSION = "3.8.4"; public static final String PREVIOUS_CHECKSUM = "ABCD1234"; - public static final String PREVIOUS_THIRD_PARTY_VERSION = "3.7.x"; + public static final String PREVIOUS_THIRD_PARTY_VERSION = "3.8.x"; public static final String PREVIOUS_KAFKA_IMAGE = KAFKA_IMAGE_STR + PREVIOUS_KAFKA_VERSION; public static final String PREVIOUS_KAFKA_CONNECT_IMAGE = KAFKA_CONNECT_IMAGE_STR + PREVIOUS_KAFKA_VERSION; public static final String PREVIOUS_KAFKA_MIRROR_MAKER_IMAGE = KAFKA_MIRROR_MAKER_IMAGE_STR + PREVIOUS_KAFKA_VERSION; diff --git a/cluster-operator/src/test/java/io/strimzi/operator/cluster/model/KafkaBrokerConfigurationBuilderTest.java b/cluster-operator/src/test/java/io/strimzi/operator/cluster/model/KafkaBrokerConfigurationBuilderTest.java index ba8b9c31e4f..7e5a8e94b34 100644 --- a/cluster-operator/src/test/java/io/strimzi/operator/cluster/model/KafkaBrokerConfigurationBuilderTest.java +++ b/cluster-operator/src/test/java/io/strimzi/operator/cluster/model/KafkaBrokerConfigurationBuilderTest.java @@ -67,8 +67,8 @@ public class KafkaBrokerConfigurationBuilderTest { private final static NodeRef NODE_REF = new NodeRef("my-cluster-kafka-2", 2, "kafka", false, true); - private final static KafkaVersion KAFKA_3_8_0 = new KafkaVersion(KafkaVersionTestUtils.LATEST_KAFKA_VERSION, "", "", "", "", false, false, ""); - private final static KafkaVersion KAFKA_3_9_0 = new KafkaVersion(KafkaVersionTestUtils.KAFKA_390_VERSION, "", "", "", "", false, false, ""); + private final static KafkaVersion KAFKA_3_8_0 = new KafkaVersion(KafkaVersionTestUtils.PREVIOUS_KAFKA_VERSION, "", "", "", "", false, false, ""); + private final static KafkaVersion KAFKA_3_9_0 = new KafkaVersion(KafkaVersionTestUtils.LATEST_KAFKA_VERSION, "", "", "", "", false, false, ""); @ParallelTest public void testBrokerId() { diff --git a/cluster-operator/src/test/java/io/strimzi/operator/cluster/model/KafkaClusterMigrationTest.java b/cluster-operator/src/test/java/io/strimzi/operator/cluster/model/KafkaClusterMigrationTest.java index 3e32ea18cad..bb258e45d3e 100644 --- a/cluster-operator/src/test/java/io/strimzi/operator/cluster/model/KafkaClusterMigrationTest.java +++ b/cluster-operator/src/test/java/io/strimzi/operator/cluster/model/KafkaClusterMigrationTest.java @@ -231,8 +231,7 @@ public void testControllerNodeConfigurationOnMigration() { assertThat(configuration, containsString("listener.name.controlplane-9090")); assertThat(configuration, containsString("listeners=CONTROLPLANE-9090://0.0.0.0:9090")); - // controllers never advertises listeners - assertThat(configuration, not(containsString("advertised.listeners"))); + assertThat(configuration, containsString("advertised.listeners=CONTROLPLANE-9090://my-cluster-controllers-3.my-cluster-kafka-brokers.my-namespace.svc:9090")); assertThat(configuration, containsString("controller.listener.names=CONTROLPLANE-9090")); assertThat(configuration, containsString("controller.quorum.voters=3@my-cluster-controllers-3.my-cluster-kafka-brokers.my-namespace.svc.cluster.local:9090,4@my-cluster-controllers-4.my-cluster-kafka-brokers.my-namespace.svc.cluster.local:9090,5@my-cluster-controllers-5.my-cluster-kafka-brokers.my-namespace.svc.cluster.local:9090")); diff --git a/cluster-operator/src/test/java/io/strimzi/operator/cluster/model/KafkaClusterTest.java b/cluster-operator/src/test/java/io/strimzi/operator/cluster/model/KafkaClusterTest.java index 33712c191f6..3f4318b9e01 100644 --- a/cluster-operator/src/test/java/io/strimzi/operator/cluster/model/KafkaClusterTest.java +++ b/cluster-operator/src/test/java/io/strimzi/operator/cluster/model/KafkaClusterTest.java @@ -1118,7 +1118,7 @@ public void testPerBrokerConfiguration() { assertThat(config, CoreMatchers.containsString("node.id=1")); assertThat(config, CoreMatchers.containsString("log.dirs=/var/lib/kafka/data-0/kafka-log1")); assertThat(config, CoreMatchers.containsString("\nlisteners=CONTROLPLANE-9090://0.0.0.0:9090\n")); - assertThat(config, not(CoreMatchers.containsString("advertised.listeners"))); + assertThat(config, CoreMatchers.containsString("advertised.listeners=CONTROLPLANE-9090://foo-controllers-1.foo-kafka-brokers.test.svc:9090\n")); assertThat(config, CoreMatchers.containsString("process.roles=controller\n")); assertThat(config, CoreMatchers.containsString("controller.quorum.voters=0@foo-controllers-0.foo-kafka-brokers.test.svc.cluster.local:9090,1@foo-controllers-1.foo-kafka-brokers.test.svc.cluster.local:9090,2@foo-controllers-2.foo-kafka-brokers.test.svc.cluster.local:9090,3@foo-mixed-3.foo-kafka-brokers.test.svc.cluster.local:9090,4@foo-mixed-4.foo-kafka-brokers.test.svc.cluster.local:9090\n")); @@ -1126,7 +1126,7 @@ public void testPerBrokerConfiguration() { assertThat(config, CoreMatchers.containsString("node.id=4")); assertThat(config, CoreMatchers.containsString("log.dirs=/var/lib/kafka/data-0/kafka-log4")); assertThat(config, CoreMatchers.containsString("\nlisteners=CONTROLPLANE-9090://0.0.0.0:9090,REPLICATION-9091://0.0.0.0:9091,PLAIN-9092://0.0.0.0:9092,TLS-9093://0.0.0.0:9093\n")); - assertThat(config, CoreMatchers.containsString("advertised.listeners=REPLICATION-9091://foo-mixed-4.foo-kafka-brokers.test.svc:9091,PLAIN-9092://mixed-4:9092,TLS-9093://mixed-4:10004\n")); + assertThat(config, CoreMatchers.containsString("advertised.listeners=CONTROLPLANE-9090://foo-mixed-4.foo-kafka-brokers.test.svc:9090,REPLICATION-9091://foo-mixed-4.foo-kafka-brokers.test.svc:9091,PLAIN-9092://mixed-4:9092,TLS-9093://mixed-4:10004\n")); assertThat(config, CoreMatchers.containsString("process.roles=broker,controller\n")); assertThat(config, CoreMatchers.containsString("controller.quorum.voters=0@foo-controllers-0.foo-kafka-brokers.test.svc.cluster.local:9090,1@foo-controllers-1.foo-kafka-brokers.test.svc.cluster.local:9090,2@foo-controllers-2.foo-kafka-brokers.test.svc.cluster.local:9090,3@foo-mixed-3.foo-kafka-brokers.test.svc.cluster.local:9090,4@foo-mixed-4.foo-kafka-brokers.test.svc.cluster.local:9090\n")); diff --git a/cluster-operator/src/test/java/io/strimzi/operator/cluster/model/KafkaClusterZooBasedTest.java b/cluster-operator/src/test/java/io/strimzi/operator/cluster/model/KafkaClusterZooBasedTest.java index d39187b5d79..ad6838188f5 100644 --- a/cluster-operator/src/test/java/io/strimzi/operator/cluster/model/KafkaClusterZooBasedTest.java +++ b/cluster-operator/src/test/java/io/strimzi/operator/cluster/model/KafkaClusterZooBasedTest.java @@ -3901,7 +3901,7 @@ public void testInvalidInterBrokerProtocolAndLogMessageFormatOnKRaftMigration() Kafka kafka = new KafkaBuilder(KAFKA) .editSpec() .editKafka() - .withVersion("3.7.0") + .withVersion("3.9.0") .withConfig(config) .endKafka() .endSpec() @@ -3921,7 +3921,7 @@ public void testInvalidInterBrokerProtocolAndLogMessageFormatOnKRaftMigration() KafkaCluster.fromCrd(Reconciliation.DUMMY_RECONCILIATION, kafka, pools, VERSIONS, kafkaVersionChange, KafkaMetadataConfigurationState.PRE_MIGRATION, null, SHARED_ENV_PROVIDER); }); - assertThat(ex.getMessage(), containsString("Migration cannot be performed with Kafka version 3.7-IV4, metadata version 3.7-IV4, inter.broker.protocol.version 3.6-IV2, log.message.format.version 3.6-IV2.")); + assertThat(ex.getMessage(), containsString("Migration cannot be performed with Kafka version 3.9-IV0, metadata version 3.9-IV0, inter.broker.protocol.version 3.6-IV2, log.message.format.version 3.6-IV2.")); } @ParallelTest @@ -3930,7 +3930,7 @@ public void testInvalidMetadataVersionOnKRaftMigration() { Kafka kafka = new KafkaBuilder(KAFKA) .editSpec() .editKafka() - .withVersion("3.7.0") + .withVersion("3.9.0") .withMetadataVersion("3.6-IV2") .withConfig(Map.of()) .endKafka() @@ -3951,7 +3951,7 @@ public void testInvalidMetadataVersionOnKRaftMigration() { KafkaCluster.fromCrd(Reconciliation.DUMMY_RECONCILIATION, kafka, pools, VERSIONS, kafkaVersionChange, KafkaMetadataConfigurationState.PRE_MIGRATION, null, SHARED_ENV_PROVIDER); }); - assertThat(ex.getMessage(), containsString("Migration cannot be performed with Kafka version 3.7-IV4, metadata version 3.6-IV2, inter.broker.protocol.version 3.7-IV4, log.message.format.version 3.7-IV4.")); + assertThat(ex.getMessage(), containsString("Migration cannot be performed with Kafka version 3.9-IV0, metadata version 3.6-IV2, inter.broker.protocol.version 3.9-IV0, log.message.format.version 3.9-IV0.")); } @ParallelTest @@ -3963,8 +3963,8 @@ public void testValidVersionsOnKRaftMigration() { Kafka kafka = new KafkaBuilder(KAFKA) .editSpec() .editKafka() - .withVersion("3.7.0") - .withMetadataVersion("3.7-IV4") + .withVersion("3.9.0") + .withMetadataVersion("3.9-IV0") .withConfig(config) .endKafka() .endSpec() diff --git a/cluster-operator/src/test/java/io/strimzi/operator/cluster/model/KafkaConfigurationTests.java b/cluster-operator/src/test/java/io/strimzi/operator/cluster/model/KafkaConfigurationTests.java index c7db68607d4..bd59f6b6e82 100644 --- a/cluster-operator/src/test/java/io/strimzi/operator/cluster/model/KafkaConfigurationTests.java +++ b/cluster-operator/src/test/java/io/strimzi/operator/cluster/model/KafkaConfigurationTests.java @@ -92,7 +92,7 @@ public void passwordType() { @ParallelTest public void invalidVersion() { assertConfigError("inter.broker.protocol.version", "dclncswn", - "inter.broker.protocol.version has value 'dclncswn' which does not match the required pattern: \\Q0.8.0\\E(\\.[0-9]+)*|\\Q0.8.0\\E|\\Q0.8.1\\E(\\.[0-9]+)*|\\Q0.8.1\\E|\\Q0.8.2\\E(\\.[0-9]+)*|\\Q0.8.2\\E|\\Q0.9.0\\E(\\.[0-9]+)*|\\Q0.9.0\\E|\\Q0.10.0\\E(\\.[0-9]+)*|\\Q0.10.0-IV0\\E|\\Q0.10.0-IV1\\E|\\Q0.10.1\\E(\\.[0-9]+)*|\\Q0.10.1-IV0\\E|\\Q0.10.1-IV1\\E|\\Q0.10.1-IV2\\E|\\Q0.10.2\\E(\\.[0-9]+)*|\\Q0.10.2-IV0\\E|\\Q0.11.0\\E(\\.[0-9]+)*|\\Q0.11.0-IV0\\E|\\Q0.11.0-IV1\\E|\\Q0.11.0-IV2\\E|\\Q1.0\\E(\\.[0-9]+)*|\\Q1.0-IV0\\E|\\Q1.1\\E(\\.[0-9]+)*|\\Q1.1-IV0\\E|\\Q2.0\\E(\\.[0-9]+)*|\\Q2.0-IV0\\E|\\Q2.0-IV1\\E|\\Q2.1\\E(\\.[0-9]+)*|\\Q2.1-IV0\\E|\\Q2.1-IV1\\E|\\Q2.1-IV2\\E|\\Q2.2\\E(\\.[0-9]+)*|\\Q2.2-IV0\\E|\\Q2.2-IV1\\E|\\Q2.3\\E(\\.[0-9]+)*|\\Q2.3-IV0\\E|\\Q2.3-IV1\\E|\\Q2.4\\E(\\.[0-9]+)*|\\Q2.4-IV0\\E|\\Q2.4-IV1\\E|\\Q2.5\\E(\\.[0-9]+)*|\\Q2.5-IV0\\E|\\Q2.6\\E(\\.[0-9]+)*|\\Q2.6-IV0\\E|\\Q2.7\\E(\\.[0-9]+)*|\\Q2.7-IV0\\E|\\Q2.7-IV1\\E|\\Q2.7-IV2\\E|\\Q2.8\\E(\\.[0-9]+)*|\\Q2.8-IV0\\E|\\Q2.8-IV1\\E|\\Q3.0\\E(\\.[0-9]+)*|\\Q3.0-IV0\\E|\\Q3.0-IV1\\E|\\Q3.1\\E(\\.[0-9]+)*|\\Q3.1-IV0\\E|\\Q3.2\\E(\\.[0-9]+)*|\\Q3.2-IV0\\E|\\Q3.3\\E(\\.[0-9]+)*|\\Q3.3-IV0\\E|\\Q3.3-IV1\\E|\\Q3.3-IV2\\E|\\Q3.3-IV3\\E|\\Q3.4\\E(\\.[0-9]+)*|\\Q3.4-IV0\\E|\\Q3.5\\E(\\.[0-9]+)*|\\Q3.5-IV0\\E|\\Q3.5-IV1\\E|\\Q3.5-IV2\\E|\\Q3.6\\E(\\.[0-9]+)*|\\Q3.6-IV0\\E|\\Q3.6-IV1\\E|\\Q3.6-IV2\\E|\\Q3.7\\E(\\.[0-9]+)*|\\Q3.7-IV0\\E|\\Q3.7-IV1\\E|\\Q3.7-IV2\\E|\\Q3.7-IV3\\E|\\Q3.7-IV4\\E|\\Q3.8\\E(\\.[0-9]+)*|\\Q3.8-IV0\\E|\\Q3.9\\E(\\.[0-9]+)*|\\Q3.9-IV0\\E"); + "inter.broker.protocol.version has value 'dclncswn' which does not match the required pattern: \\Q0.8.0\\E(\\.[0-9]+)*|\\Q0.8.0\\E|\\Q0.8.1\\E(\\.[0-9]+)*|\\Q0.8.1\\E|\\Q0.8.2\\E(\\.[0-9]+)*|\\Q0.8.2\\E|\\Q0.9.0\\E(\\.[0-9]+)*|\\Q0.9.0\\E|\\Q0.10.0\\E(\\.[0-9]+)*|\\Q0.10.0-IV0\\E|\\Q0.10.0-IV1\\E|\\Q0.10.1\\E(\\.[0-9]+)*|\\Q0.10.1-IV0\\E|\\Q0.10.1-IV1\\E|\\Q0.10.1-IV2\\E|\\Q0.10.2\\E(\\.[0-9]+)*|\\Q0.10.2-IV0\\E|\\Q0.11.0\\E(\\.[0-9]+)*|\\Q0.11.0-IV0\\E|\\Q0.11.0-IV1\\E|\\Q0.11.0-IV2\\E|\\Q1.0\\E(\\.[0-9]+)*|\\Q1.0-IV0\\E|\\Q1.1\\E(\\.[0-9]+)*|\\Q1.1-IV0\\E|\\Q2.0\\E(\\.[0-9]+)*|\\Q2.0-IV0\\E|\\Q2.0-IV1\\E|\\Q2.1\\E(\\.[0-9]+)*|\\Q2.1-IV0\\E|\\Q2.1-IV1\\E|\\Q2.1-IV2\\E|\\Q2.2\\E(\\.[0-9]+)*|\\Q2.2-IV0\\E|\\Q2.2-IV1\\E|\\Q2.3\\E(\\.[0-9]+)*|\\Q2.3-IV0\\E|\\Q2.3-IV1\\E|\\Q2.4\\E(\\.[0-9]+)*|\\Q2.4-IV0\\E|\\Q2.4-IV1\\E|\\Q2.5\\E(\\.[0-9]+)*|\\Q2.5-IV0\\E|\\Q2.6\\E(\\.[0-9]+)*|\\Q2.6-IV0\\E|\\Q2.7\\E(\\.[0-9]+)*|\\Q2.7-IV0\\E|\\Q2.7-IV1\\E|\\Q2.7-IV2\\E|\\Q2.8\\E(\\.[0-9]+)*|\\Q2.8-IV0\\E|\\Q2.8-IV1\\E|\\Q3.0\\E(\\.[0-9]+)*|\\Q3.0-IV0\\E|\\Q3.0-IV1\\E|\\Q3.1\\E(\\.[0-9]+)*|\\Q3.1-IV0\\E|\\Q3.2\\E(\\.[0-9]+)*|\\Q3.2-IV0\\E|\\Q3.3\\E(\\.[0-9]+)*|\\Q3.3-IV0\\E|\\Q3.3-IV1\\E|\\Q3.3-IV2\\E|\\Q3.3-IV3\\E|\\Q3.4\\E(\\.[0-9]+)*|\\Q3.4-IV0\\E|\\Q3.5\\E(\\.[0-9]+)*|\\Q3.5-IV0\\E|\\Q3.5-IV1\\E|\\Q3.5-IV2\\E|\\Q3.6\\E(\\.[0-9]+)*|\\Q3.6-IV0\\E|\\Q3.6-IV1\\E|\\Q3.6-IV2\\E|\\Q3.7\\E(\\.[0-9]+)*|\\Q3.7-IV0\\E|\\Q3.7-IV1\\E|\\Q3.7-IV2\\E|\\Q3.7-IV3\\E|\\Q3.7-IV4\\E|\\Q3.8\\E(\\.[0-9]+)*|\\Q3.8-IV0\\E|\\Q3.9\\E(\\.[0-9]+)*|\\Q3.9-IV0\\E|\\Q4.0\\E(\\.[0-9]+)*|\\Q4.0-IV0\\E|\\Q4.0-IV1\\E"); } @ParallelTest @@ -131,4 +131,26 @@ public void testCaseInsensitiveOptions() { assertNoError("group.consumer.migration.policy", "Upgrade"); assertConfigError("group.consumer.migration.policy", "wrong_option", "group.consumer.migration.policy has value 'wrong_option' which is not one of the allowed values (case-insensitive): [DISABLED, DOWNGRADE, UPGRADE, BIDIRECTIONAL]"); } + + @ParallelTest + public void testRemoteStorageCopierThreadPoolSize() { + assertNoError("remote.log.manager.copier.thread.pool.size", "9"); + assertNoError("remote.log.manager.copier.thread.pool.size", "-1"); + assertNoError("remote.log.manager.copier.thread.pool.size", "1"); + assertNoError("remote.log.manager.copier.thread.pool.size", "10"); + assertNoError("remote.log.manager.copier.thread.pool.size", "16"); + assertConfigError("remote.log.manager.copier.thread.pool.size", "0", "remote.log.manager.copier.thread.pool.size has value '0' which does not match the required pattern: [1-9]{1}[0-9]*|-1"); + assertConfigError("remote.log.manager.copier.thread.pool.size", "-5", "remote.log.manager.copier.thread.pool.size has value '-5' which does not match the required pattern: [1-9]{1}[0-9]*|-1"); + } + + @ParallelTest + public void testRemoteStorageExpirationThreadPoolSize() { + assertNoError("remote.log.manager.expiration.thread.pool.size", "9"); + assertNoError("remote.log.manager.expiration.thread.pool.size", "-1"); + assertNoError("remote.log.manager.expiration.thread.pool.size", "1"); + assertNoError("remote.log.manager.expiration.thread.pool.size", "10"); + assertNoError("remote.log.manager.expiration.thread.pool.size", "16"); + assertConfigError("remote.log.manager.expiration.thread.pool.size", "0", "remote.log.manager.expiration.thread.pool.size has value '0' which does not match the required pattern: [1-9]{1}[0-9]*|-1"); + assertConfigError("remote.log.manager.expiration.thread.pool.size", "-5", "remote.log.manager.expiration.thread.pool.size has value '-5' which does not match the required pattern: [1-9]{1}[0-9]*|-1"); + } } diff --git a/cluster-operator/src/test/java/io/strimzi/operator/cluster/operator/assembly/ConnectCluster.java b/cluster-operator/src/test/java/io/strimzi/operator/cluster/operator/assembly/ConnectCluster.java index 4dab04962d7..6de4801a642 100644 --- a/cluster-operator/src/test/java/io/strimzi/operator/cluster/operator/assembly/ConnectCluster.java +++ b/cluster-operator/src/test/java/io/strimzi/operator/cluster/operator/assembly/ConnectCluster.java @@ -86,14 +86,14 @@ public void startup() throws InterruptedException { } private static void waitForAllServicesToStart(Connect connect, int seconds) { - while (!connect.isRunning() && seconds-- > 0) { + while (!connect.herder().isReady() && seconds-- > 0) { try { TimeUnit.SECONDS.sleep(1); } catch (InterruptedException e) { throw new ConnectException(e); } } - if (!connect.isRunning()) { + if (!connect.herder().isReady()) { throw new ConnectException(format("Connect failed to start.")); } } diff --git a/config-model-generator/src/main/java/io/strimzi/build/kafka/metadata/KafkaConfigModelGenerator.java b/config-model-generator/src/main/java/io/strimzi/build/kafka/metadata/KafkaConfigModelGenerator.java index 7f724242a44..2b63095f2a4 100644 --- a/config-model-generator/src/main/java/io/strimzi/build/kafka/metadata/KafkaConfigModelGenerator.java +++ b/config-model-generator/src/main/java/io/strimzi/build/kafka/metadata/KafkaConfigModelGenerator.java @@ -140,6 +140,9 @@ private static Map configs(String version) throws NoSuchMet descriptor.setPattern("[1-9]{1}|-1"); } else if (key.validator != null && "class org.apache.kafka.common.record.CompressionType$1$1".equals(key.validator.getClass().toString()) && configName.equals("compression.gzip.level")) { // we compare the class names because of changes done between Kafka version 3.8.0 and 3.8.1 => this is for Kafka 3.8.1 and newer. Given it is an anonymous class, we also check the field name to protect against some changes descriptor.setPattern("[1-9]{1}|-1"); + } else if (key.validator != null && "class org.apache.kafka.common.config.ConfigDef$LambdaValidator".equals(key.validator.getClass().toString()) + && (configName.equals("remote.log.manager.copier.thread.pool.size") || configName.equals("remote.log.manager.expiration.thread.pool.size"))) { // This validator might be used also for other fields. So we compare also the field names to handle it differently for various fields. This is used from Kafka 3.9.0-rc5. + descriptor.setPattern("[1-9]{1}[0-9]*|-1"); } else if (key.validator != null) { throw new IllegalStateException("Invalid validator '" + key.validator.getClass() + "' for option '" + configName + "'"); } diff --git a/docker-images/artifacts/kafka-thirdparty-libs/3.9.x/ignorelist b/docker-images/artifacts/kafka-thirdparty-libs/3.9.x/ignorelist new file mode 100644 index 00000000000..f0124fcb8b5 --- /dev/null +++ b/docker-images/artifacts/kafka-thirdparty-libs/3.9.x/ignorelist @@ -0,0 +1,2 @@ +jmx_prometheus_javaagent-1.0.1.jar +snakeyaml-2.2.jar \ No newline at end of file diff --git a/docker-images/artifacts/kafka-thirdparty-libs/3.9.x/pom.xml b/docker-images/artifacts/kafka-thirdparty-libs/3.9.x/pom.xml new file mode 100644 index 00000000000..3dc811a10be --- /dev/null +++ b/docker-images/artifacts/kafka-thirdparty-libs/3.9.x/pom.xml @@ -0,0 +1,420 @@ + + + io.strimzi + 1.0.0-SNAPSHOT + 4.0.0 + kafka-thirdparty-libs + pom + + + + Apache License, Version 2.0 + https://www.apache.org/licenses/LICENSE-2.0.txt + + + + + 0.15.0 + 2.9.0 + 2.5.141 + 1.5.1 + 0.3.1 + 1.2.0 + 1.2.0 + 1.1.0 + 1.0.1 + 2.4.9 + 1.7 + 1.34.1 + 1.34.1-alpha + 1.32.0-alpha + 1.61.0 + 32.1.3-jre + + + + + cruise-control + https://linkedin.jfrog.io/artifactory/cruise-control/ + + + + + + + + net.minidev + json-smart + ${json-smart.version} + + + org.ow2.asm + asm + + + + + + com.google.guava + guava + ${guava.version} + + + + + + + + io.prometheus.jmx + jmx_prometheus_javaagent + ${jmx-prometheus-javaagent.version} + + + + net.logstash.log4j + jsonevent-layout + ${jsonevent-layout.version} + + + + io.opentelemetry + opentelemetry-sdk-extension-autoconfigure + ${opentelemetry.version} + + + io.opentelemetry.instrumentation + opentelemetry-kafka-clients-2.6 + ${opentelemetry.instrumentation.version} + + + io.opentelemetry + opentelemetry-exporter-otlp + ${opentelemetry.version} + + + io.opentelemetry + opentelemetry-exporter-sender-okhttp + + + + + io.opentelemetry + opentelemetry-exporter-sender-jdk + ${opentelemetry-alpha.version} + runtime + + + io.opentelemetry + opentelemetry-exporter-sender-grpc-managed-channel + ${opentelemetry.version} + runtime + + + + com.google.errorprone + error_prone_annotations + + + + + io.grpc + grpc-netty-shaded + ${grpc-netty-shaded.version} + runtime + + + + org.checkerframework + checker-qual + + + + com.google.errorprone + error_prone_annotations + + + + + + io.strimzi + kafka-oauth-common + ${strimzi-oauth.version} + + + org.slf4j + slf4j-api + + + org.apache.kafka + kafka-clients + + + com.fasterxml.jackson.core + jackson-databind + + + com.github.spotbugs + spotbugs-annotations + + + com.fasterxml.jackson.core + jackson-core + + + com.sun.activation + jakarta.activation + + + com.github.stephenc.jcip + jcip-annotations + + + + com.jayway.jsonpath + json-path + + + + + + com.jayway.jsonpath + json-path + ${jayway-json-path.version} + + + org.slf4j + slf4j-api + + + + + io.strimzi + kafka-oauth-server + ${strimzi-oauth.version} + + + org.apache.kafka + kafka-clients + + + com.fasterxml.jackson.core + jackson-databind + + + com.github.spotbugs + spotbugs-annotations + + + com.fasterxml.jackson.core + jackson-core + + + com.sun.activation + jakarta.activation + + + + + io.strimzi + kafka-oauth-server-plain + ${strimzi-oauth.version} + + + org.apache.kafka + kafka-clients + + + com.fasterxml.jackson.core + jackson-databind + + + com.github.spotbugs + spotbugs-annotations + + + com.fasterxml.jackson.core + jackson-core + + + com.sun.activation + jakarta.activation + + + + + io.strimzi + kafka-oauth-client + ${strimzi-oauth.version} + + + org.apache.kafka + kafka-clients + + + com.fasterxml.jackson.core + jackson-databind + + + com.github.spotbugs + spotbugs-annotations + + + com.sun.activation + jakarta.activation + + + + + io.strimzi + kafka-oauth-keycloak-authorizer + ${strimzi-oauth.version} + + + org.apache.kafka + kafka-clients + + + com.fasterxml.jackson.core + jackson-databind + + + com.github.spotbugs + spotbugs-annotations + + + com.fasterxml.jackson.core + jackson-core + + + com.sun.activation + jakarta.activation + + + + + + com.linkedin.cruisecontrol + cruise-control-metrics-reporter + ${cruise-control.version} + + + org.apache.kafka + kafka_2.13 + + + org.apache.kafka + kafka-clients + + + org.slf4j + slf4j-api + + + org.apache.logging.log4j + log4j-slf4j-impl + + + com.fasterxml.jackson.core + jackson-databind + + + + + + org.openpolicyagent.kafka + opa-authorizer + ${opa-authorizer.version} + + + com.fasterxml.jackson.module + jackson-module-scala_2.13 + + + org.apache.kafka + kafka_2.13 + + + com.google.code.findbugs + jsr305 + + + com.google.errorprone + error_prone_annotations + + + org.checkerframework + checker-qual + + + + + + io.strimzi + mirror-maker-2-extensions + ${kafka-mirror-maker-2-extensions.version} + + + + io.strimzi + kafka-quotas-plugin + ${kafka-quotas-plugin.version} + + + + io.strimzi + kafka-kubernetes-config-provider + ${kafka-kubernetes-config-provider.version} + + + org.slf4j + slf4j-api + + + com.fasterxml.jackson.core + jackson-core + + + com.fasterxml.jackson.core + jackson-annotations + + + com.fasterxml.jackson.core + jackson-databind + + + + com.fasterxml.jackson.dataformat + jackson-dataformat-yaml + + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + + + + + com.fasterxml.jackson.dataformat + jackson-dataformat-yaml + 2.16.2 + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + 2.16.2 + + + + io.strimzi + kafka-env-var-config-provider + ${kafka-env-var-config-provider.version} + + + diff --git a/documentation/modules/snip-images.adoc b/documentation/modules/snip-images.adoc index 294eca71e55..e6a750569c3 100644 --- a/documentation/modules/snip-images.adoc +++ b/documentation/modules/snip-images.adoc @@ -6,10 +6,9 @@ |Kafka a| -* {DockerOrg}/kafka:{DockerTag}-kafka-3.7.0 -* {DockerOrg}/kafka:{DockerTag}-kafka-3.7.1 * {DockerOrg}/kafka:{DockerTag}-kafka-3.8.0 * {DockerOrg}/kafka:{DockerTag}-kafka-3.8.1 +* {DockerOrg}/kafka:{DockerTag}-kafka-3.9.0 a| Strimzi image for running Kafka, including: diff --git a/documentation/modules/snip-kafka-versions.adoc b/documentation/modules/snip-kafka-versions.adoc index 1e3ef1095df..0635d2a6a56 100644 --- a/documentation/modules/snip-kafka-versions.adoc +++ b/documentation/modules/snip-kafka-versions.adoc @@ -6,8 +6,7 @@ [options="header"] |================= |Kafka version |Inter-broker protocol version |Log message format version| ZooKeeper version -| 3.7.0 | 3.7 | 3.7 | 3.8.3 -| 3.7.1 | 3.7 | 3.7 | 3.8.4 | 3.8.0 | 3.8 | 3.8 | 3.8.4 | 3.8.1 | 3.8 | 3.8 | 3.8.4 +| 3.9.0 | 3.9 | 3.9 | 3.8.4 |================= diff --git a/documentation/shared/attributes.adoc b/documentation/shared/attributes.adoc index d78d345e74c..76f74a50a1b 100644 --- a/documentation/shared/attributes.adoc +++ b/documentation/shared/attributes.adoc @@ -23,18 +23,18 @@ :KubernetesVersion: 1.25 and later // Kafka upgrade attributes used in kafka upgrades section -:DefaultKafkaVersion: 3.8.1 -:DefaultKafkaMetadataVersion: 3.8 -:KafkaMetadataVersionLower: 3.7-IV4 -:KafkaMetadataVersionHigher: 3.8-IV0 -:KafkaVersionLower: 3.7.0 -:KafkaVersionHigher: 3.8.1 +:DefaultKafkaVersion: 3.9.0 +:DefaultKafkaMetadataVersion: 3.9 +:KafkaMetadataVersionLower: 3.8-IV0 +:KafkaMetadataVersionHigher: 3.9-IV0 +:KafkaVersionLower: 3.8.0 +:KafkaVersionHigher: 3.9.0 :ExampleImageTagUpgrades: quay.io/strimzi/kafka:{ProductVersion}-kafka-{KafkaVersionHigher} //inter-broker protocol and log message version -:DefaultInterBrokerVersion: 3.8 -:InterBrokerVersionLower: 3.7 -:InterBrokerVersionHigher: 3.8 +:DefaultInterBrokerVersion: 3.9 +:InterBrokerVersionLower: 3.8 +:InterBrokerVersionHigher: 3.9 // Bridge version :BridgeVersion: 0.30.0 diff --git a/documentation/shared/version-dependent-attrs.adoc b/documentation/shared/version-dependent-attrs.adoc index 46dc9f075d6..93a67e4a868 100644 --- a/documentation/shared/version-dependent-attrs.adoc +++ b/documentation/shared/version-dependent-attrs.adoc @@ -1,3 +1,3 @@ // Generated by documentation/version-dependent-attrs.sh during the build // DO NOT EDIT BY HAND -:DefaultKafkaVersion: 3.8.1 +:DefaultKafkaVersion: 3.9.0 diff --git a/kafka-versions.yaml b/kafka-versions.yaml index 92e4dac85fc..e97ef22090a 100644 --- a/kafka-versions.yaml +++ b/kafka-versions.yaml @@ -323,7 +323,7 @@ checksum: B8679283A2D8DAB86E7C636B2C688FE9D9E64AC437241F65EF7A1733F4D26A2BD415EEFA04F09F1911373BCD2A5DBC3838C76347F68656425C09202CD290CE91 zookeeper: 3.8.3 third-party-libs: 3.7.0 - supported: true + supported: false default: false - version: 3.7.1 format: 3.7 @@ -333,7 +333,7 @@ checksum: 78E985235D245BA9E2951A82E723A62B8ABA8B74A2C8376F7271906AF715A36DE9142C446096F13FD4BFF3A4C10F1D080EB924E91E2256EC2DB779906FD6737D zookeeper: 3.8.4 third-party-libs: 3.7.1 - supported: true + supported: false default: false - version: 3.8.0 format: 3.8 @@ -354,4 +354,14 @@ zookeeper: 3.8.4 third-party-libs: 3.8.x supported: true + default: false +- version: 3.9.0 + format: 3.9 + protocol: 3.9 + metadata: 3.9 + url: https://archive.apache.org/dist/kafka/3.9.0/kafka_2.13-3.9.0.tgz + checksum: 5324C1F44D4C84EA469712C2CC3D2D15545C3716EDBB5353722DF9C661FCC78B031FCF07D1C4F0309C5FDB32686665DFB0CFFE55210CD3A1FE2A370538CB4E6D + zookeeper: 3.8.4 + third-party-libs: 3.9.x + supported: true default: true \ No newline at end of file diff --git a/packaging/examples/connect/kafka-connect-build.yaml b/packaging/examples/connect/kafka-connect-build.yaml index 76347351ccd..56043fe5f1b 100644 --- a/packaging/examples/connect/kafka-connect-build.yaml +++ b/packaging/examples/connect/kafka-connect-build.yaml @@ -8,7 +8,7 @@ metadata: # # needing to call the Connect REST API directly # strimzi.io/use-connector-resources: "true" spec: - version: 3.8.1 + version: 3.9.0 replicas: 1 bootstrapServers: my-cluster-kafka-bootstrap:9093 tls: @@ -33,11 +33,11 @@ spec: # it should not happen that you pull someone else's container image. However, we # recommend changing this to your own container registry or using a different # image name for any other than demo purposes. - image: ttl.sh/strimzi-connect-example-3.8.1:24h + image: ttl.sh/strimzi-connect-example-3.9.0:24h plugins: - name: kafka-connect-file artifacts: - type: maven group: org.apache.kafka artifact: connect-file - version: 3.8.1 + version: 3.9.0 diff --git a/packaging/examples/connect/kafka-connect.yaml b/packaging/examples/connect/kafka-connect.yaml index 71585637b26..7e09dab8f56 100644 --- a/packaging/examples/connect/kafka-connect.yaml +++ b/packaging/examples/connect/kafka-connect.yaml @@ -8,7 +8,7 @@ metadata: # # needing to call the Connect REST API directly # strimzi.io/use-connector-resources: "true" spec: - version: 3.8.1 + version: 3.9.0 replicas: 1 bootstrapServers: my-cluster-kafka-bootstrap:9093 tls: diff --git a/packaging/examples/cruise-control/kafka-cruise-control-auto-rebalancing.yaml b/packaging/examples/cruise-control/kafka-cruise-control-auto-rebalancing.yaml index 341eaa100ef..8f58102fe17 100644 --- a/packaging/examples/cruise-control/kafka-cruise-control-auto-rebalancing.yaml +++ b/packaging/examples/cruise-control/kafka-cruise-control-auto-rebalancing.yaml @@ -4,7 +4,7 @@ metadata: name: my-cluster spec: kafka: - version: 3.8.1 + version: 3.9.0 replicas: 3 listeners: - name: plain @@ -21,7 +21,7 @@ spec: transaction.state.log.min.isr: 2 default.replication.factor: 3 min.insync.replicas: 2 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: ephemeral zookeeper: diff --git a/packaging/examples/cruise-control/kafka-cruise-control-with-goals.yaml b/packaging/examples/cruise-control/kafka-cruise-control-with-goals.yaml index f9764b3a2ff..8cf8bcb8ce6 100644 --- a/packaging/examples/cruise-control/kafka-cruise-control-with-goals.yaml +++ b/packaging/examples/cruise-control/kafka-cruise-control-with-goals.yaml @@ -4,7 +4,7 @@ metadata: name: my-cluster spec: kafka: - version: 3.8.1 + version: 3.9.0 replicas: 3 listeners: - name: plain @@ -21,7 +21,7 @@ spec: transaction.state.log.min.isr: 2 default.replication.factor: 3 min.insync.replicas: 2 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: ephemeral zookeeper: diff --git a/packaging/examples/cruise-control/kafka-cruise-control.yaml b/packaging/examples/cruise-control/kafka-cruise-control.yaml index 22d49329575..18c216fa6b7 100644 --- a/packaging/examples/cruise-control/kafka-cruise-control.yaml +++ b/packaging/examples/cruise-control/kafka-cruise-control.yaml @@ -4,7 +4,7 @@ metadata: name: my-cluster spec: kafka: - version: 3.8.1 + version: 3.9.0 replicas: 3 listeners: - name: plain @@ -21,7 +21,7 @@ spec: transaction.state.log.min.isr: 2 default.replication.factor: 3 min.insync.replicas: 2 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: ephemeral zookeeper: diff --git a/packaging/examples/kafka/kafka-ephemeral-single.yaml b/packaging/examples/kafka/kafka-ephemeral-single.yaml index 01976863fcb..7aa5f954bd7 100644 --- a/packaging/examples/kafka/kafka-ephemeral-single.yaml +++ b/packaging/examples/kafka/kafka-ephemeral-single.yaml @@ -4,7 +4,7 @@ metadata: name: my-cluster spec: kafka: - version: 3.8.1 + version: 3.9.0 replicas: 1 listeners: - name: plain @@ -21,7 +21,7 @@ spec: transaction.state.log.min.isr: 1 default.replication.factor: 1 min.insync.replicas: 1 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: ephemeral zookeeper: diff --git a/packaging/examples/kafka/kafka-ephemeral.yaml b/packaging/examples/kafka/kafka-ephemeral.yaml index 26d404db676..b2b82607b5b 100644 --- a/packaging/examples/kafka/kafka-ephemeral.yaml +++ b/packaging/examples/kafka/kafka-ephemeral.yaml @@ -4,7 +4,7 @@ metadata: name: my-cluster spec: kafka: - version: 3.8.1 + version: 3.9.0 replicas: 3 listeners: - name: plain @@ -21,7 +21,7 @@ spec: transaction.state.log.min.isr: 2 default.replication.factor: 3 min.insync.replicas: 2 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: ephemeral zookeeper: diff --git a/packaging/examples/kafka/kafka-jbod.yaml b/packaging/examples/kafka/kafka-jbod.yaml index c4853d6e29c..d6a92f34dde 100644 --- a/packaging/examples/kafka/kafka-jbod.yaml +++ b/packaging/examples/kafka/kafka-jbod.yaml @@ -4,7 +4,7 @@ metadata: name: my-cluster spec: kafka: - version: 3.8.1 + version: 3.9.0 replicas: 3 listeners: - name: plain @@ -21,7 +21,7 @@ spec: transaction.state.log.min.isr: 2 default.replication.factor: 3 min.insync.replicas: 2 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: jbod volumes: diff --git a/packaging/examples/kafka/kafka-persistent-single.yaml b/packaging/examples/kafka/kafka-persistent-single.yaml index 49c591bbb1f..488fd8a5b7e 100644 --- a/packaging/examples/kafka/kafka-persistent-single.yaml +++ b/packaging/examples/kafka/kafka-persistent-single.yaml @@ -4,7 +4,7 @@ metadata: name: my-cluster spec: kafka: - version: 3.8.1 + version: 3.9.0 replicas: 1 listeners: - name: plain @@ -21,7 +21,7 @@ spec: transaction.state.log.min.isr: 1 default.replication.factor: 1 min.insync.replicas: 1 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: jbod volumes: diff --git a/packaging/examples/kafka/kafka-persistent.yaml b/packaging/examples/kafka/kafka-persistent.yaml index ec5da820737..0913e65d259 100644 --- a/packaging/examples/kafka/kafka-persistent.yaml +++ b/packaging/examples/kafka/kafka-persistent.yaml @@ -4,7 +4,7 @@ metadata: name: my-cluster spec: kafka: - version: 3.8.1 + version: 3.9.0 replicas: 3 listeners: - name: plain @@ -21,7 +21,7 @@ spec: transaction.state.log.min.isr: 2 default.replication.factor: 3 min.insync.replicas: 2 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: jbod volumes: diff --git a/packaging/examples/kafka/kafka-with-node-pools.yaml b/packaging/examples/kafka/kafka-with-node-pools.yaml index 84180e3c425..0f157dc59df 100644 --- a/packaging/examples/kafka/kafka-with-node-pools.yaml +++ b/packaging/examples/kafka/kafka-with-node-pools.yaml @@ -44,7 +44,7 @@ metadata: strimzi.io/node-pools: enabled spec: kafka: - version: 3.8.1 + version: 3.9.0 listeners: - name: plain port: 9092 @@ -60,7 +60,7 @@ spec: transaction.state.log.min.isr: 2 default.replication.factor: 3 min.insync.replicas: 2 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" zookeeper: replicas: 3 storage: diff --git a/packaging/examples/kafka/kraft/kafka-ephemeral.yaml b/packaging/examples/kafka/kraft/kafka-ephemeral.yaml index d895f74178a..cf0219a9ef3 100644 --- a/packaging/examples/kafka/kraft/kafka-ephemeral.yaml +++ b/packaging/examples/kafka/kraft/kafka-ephemeral.yaml @@ -43,8 +43,8 @@ metadata: strimzi.io/kraft: enabled spec: kafka: - version: 3.8.1 - metadataVersion: 3.8-IV0 + version: 3.9.0 + metadataVersion: 3.9-IV0 listeners: - name: plain port: 9092 diff --git a/packaging/examples/kafka/kraft/kafka-jbod.yaml b/packaging/examples/kafka/kraft/kafka-jbod.yaml index 80bdc6e91c3..ef8a557dc4e 100644 --- a/packaging/examples/kafka/kraft/kafka-jbod.yaml +++ b/packaging/examples/kafka/kraft/kafka-jbod.yaml @@ -52,8 +52,8 @@ metadata: strimzi.io/kraft: enabled spec: kafka: - version: 3.8.1 - metadataVersion: 3.8-IV0 + version: 3.9.0 + metadataVersion: 3.9-IV0 listeners: - name: plain port: 9092 diff --git a/packaging/examples/kafka/kraft/kafka-single-node.yaml b/packaging/examples/kafka/kraft/kafka-single-node.yaml index 8d871b39a60..70d35563932 100644 --- a/packaging/examples/kafka/kraft/kafka-single-node.yaml +++ b/packaging/examples/kafka/kraft/kafka-single-node.yaml @@ -28,8 +28,8 @@ metadata: strimzi.io/kraft: enabled spec: kafka: - version: 3.8.1 - metadataVersion: 3.8-IV0 + version: 3.9.0 + metadataVersion: 3.9-IV0 listeners: - name: plain port: 9092 diff --git a/packaging/examples/kafka/kraft/kafka-with-dual-role-nodes.yaml b/packaging/examples/kafka/kraft/kafka-with-dual-role-nodes.yaml index 15b6a495bf0..a164f98adfe 100644 --- a/packaging/examples/kafka/kraft/kafka-with-dual-role-nodes.yaml +++ b/packaging/examples/kafka/kraft/kafka-with-dual-role-nodes.yaml @@ -28,8 +28,8 @@ metadata: strimzi.io/kraft: enabled spec: kafka: - version: 3.8.1 - metadataVersion: 3.8-IV0 + version: 3.9.0 + metadataVersion: 3.9-IV0 listeners: - name: plain port: 9092 diff --git a/packaging/examples/kafka/kraft/kafka.yaml b/packaging/examples/kafka/kraft/kafka.yaml index 67e07fcebfa..00c88bad75c 100644 --- a/packaging/examples/kafka/kraft/kafka.yaml +++ b/packaging/examples/kafka/kraft/kafka.yaml @@ -47,8 +47,8 @@ metadata: strimzi.io/kraft: enabled spec: kafka: - version: 3.8.1 - metadataVersion: 3.8-IV0 + version: 3.9.0 + metadataVersion: 3.9-IV0 listeners: - name: plain port: 9092 diff --git a/packaging/examples/metrics/kafka-connect-metrics.yaml b/packaging/examples/metrics/kafka-connect-metrics.yaml index c9c193d44ba..56d25cbc784 100644 --- a/packaging/examples/metrics/kafka-connect-metrics.yaml +++ b/packaging/examples/metrics/kafka-connect-metrics.yaml @@ -5,7 +5,7 @@ metadata: labels: app: my-connect-cluster spec: - version: 3.8.1 + version: 3.9.0 replicas: 1 bootstrapServers: my-cluster-kafka-bootstrap:9092 metricsConfig: diff --git a/packaging/examples/metrics/kafka-cruise-control-metrics.yaml b/packaging/examples/metrics/kafka-cruise-control-metrics.yaml index a64c129458c..e9bd6b90cc9 100644 --- a/packaging/examples/metrics/kafka-cruise-control-metrics.yaml +++ b/packaging/examples/metrics/kafka-cruise-control-metrics.yaml @@ -4,7 +4,7 @@ metadata: name: my-cluster spec: kafka: - version: 3.8.1 + version: 3.9.0 replicas: 3 listeners: - name: plain @@ -19,7 +19,7 @@ spec: offsets.topic.replication.factor: 3 transaction.state.log.replication.factor: 3 transaction.state.log.min.isr: 2 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: ephemeral zookeeper: diff --git a/packaging/examples/metrics/kafka-metrics.yaml b/packaging/examples/metrics/kafka-metrics.yaml index ac0f5ec7661..2ffa9840209 100644 --- a/packaging/examples/metrics/kafka-metrics.yaml +++ b/packaging/examples/metrics/kafka-metrics.yaml @@ -4,7 +4,7 @@ metadata: name: my-cluster spec: kafka: - version: 3.8.1 + version: 3.9.0 replicas: 3 listeners: - name: plain @@ -21,7 +21,7 @@ spec: transaction.state.log.min.isr: 2 default.replication.factor: 3 min.insync.replicas: 2 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: jbod volumes: diff --git a/packaging/examples/metrics/kafka-mirror-maker-2-metrics.yaml b/packaging/examples/metrics/kafka-mirror-maker-2-metrics.yaml index 3058a225298..e71ceceee62 100644 --- a/packaging/examples/metrics/kafka-mirror-maker-2-metrics.yaml +++ b/packaging/examples/metrics/kafka-mirror-maker-2-metrics.yaml @@ -5,7 +5,7 @@ metadata: labels: app: my-mm2-cluster spec: - version: 3.8.1 + version: 3.9.0 replicas: 1 connectCluster: "my-cluster-target" clusters: diff --git a/packaging/examples/mirror-maker/kafka-mirror-maker-2-custom-replication-policy.yaml b/packaging/examples/mirror-maker/kafka-mirror-maker-2-custom-replication-policy.yaml index f34e69c4be8..1772c82614d 100644 --- a/packaging/examples/mirror-maker/kafka-mirror-maker-2-custom-replication-policy.yaml +++ b/packaging/examples/mirror-maker/kafka-mirror-maker-2-custom-replication-policy.yaml @@ -3,7 +3,7 @@ kind: KafkaMirrorMaker2 metadata: name: my-mirror-maker-2 spec: - version: 3.8.1 + version: 3.9.0 replicas: 1 connectCluster: "cluster-b" # Must be the target custer clusters: diff --git a/packaging/examples/mirror-maker/kafka-mirror-maker-2-sync-groups.yaml b/packaging/examples/mirror-maker/kafka-mirror-maker-2-sync-groups.yaml index 0a3b0569cb9..2c44f7de22b 100644 --- a/packaging/examples/mirror-maker/kafka-mirror-maker-2-sync-groups.yaml +++ b/packaging/examples/mirror-maker/kafka-mirror-maker-2-sync-groups.yaml @@ -3,7 +3,7 @@ kind: KafkaMirrorMaker2 metadata: name: my-mirror-maker-2 spec: - version: 3.8.1 + version: 3.9.0 replicas: 1 connectCluster: "cluster-b" # Must be the target custer clusters: diff --git a/packaging/examples/mirror-maker/kafka-mirror-maker-2-tls.yaml b/packaging/examples/mirror-maker/kafka-mirror-maker-2-tls.yaml index 96592a12bcc..38f1cf9aaaf 100644 --- a/packaging/examples/mirror-maker/kafka-mirror-maker-2-tls.yaml +++ b/packaging/examples/mirror-maker/kafka-mirror-maker-2-tls.yaml @@ -3,7 +3,7 @@ kind: KafkaMirrorMaker2 metadata: name: my-mirror-maker-2 spec: - version: 3.8.1 + version: 3.9.0 replicas: 1 connectCluster: "cluster-b" # Must be the target custer clusters: diff --git a/packaging/examples/mirror-maker/kafka-mirror-maker-2.yaml b/packaging/examples/mirror-maker/kafka-mirror-maker-2.yaml index f575c198353..e583a0c9dcd 100644 --- a/packaging/examples/mirror-maker/kafka-mirror-maker-2.yaml +++ b/packaging/examples/mirror-maker/kafka-mirror-maker-2.yaml @@ -3,7 +3,7 @@ kind: KafkaMirrorMaker2 metadata: name: my-mirror-maker-2 spec: - version: 3.8.1 + version: 3.9.0 replicas: 1 connectCluster: "cluster-b" # Must be the target custer clusters: diff --git a/packaging/examples/mirror-maker/kafka-mirror-maker-tls.yaml b/packaging/examples/mirror-maker/kafka-mirror-maker-tls.yaml index 480f3309e24..21b54d602ed 100644 --- a/packaging/examples/mirror-maker/kafka-mirror-maker-tls.yaml +++ b/packaging/examples/mirror-maker/kafka-mirror-maker-tls.yaml @@ -3,7 +3,7 @@ kind: KafkaMirrorMaker metadata: name: my-mirror-maker spec: - version: 3.8.1 + version: 3.9.0 replicas: 1 consumer: bootstrapServers: cluster-a-kafka-bootstrap:9093 # Source cluster diff --git a/packaging/examples/mirror-maker/kafka-mirror-maker.yaml b/packaging/examples/mirror-maker/kafka-mirror-maker.yaml index eb14937894f..83997636d9f 100644 --- a/packaging/examples/mirror-maker/kafka-mirror-maker.yaml +++ b/packaging/examples/mirror-maker/kafka-mirror-maker.yaml @@ -3,7 +3,7 @@ kind: KafkaMirrorMaker metadata: name: my-mirror-maker spec: - version: 3.8.1 + version: 3.9.0 replicas: 1 consumer: bootstrapServers: cluster-a-kafka-bootstrap:9092 # Source cluster diff --git a/packaging/examples/mirror-maker/kafka-source.yaml b/packaging/examples/mirror-maker/kafka-source.yaml index 7175104b4a1..579e6a65165 100644 --- a/packaging/examples/mirror-maker/kafka-source.yaml +++ b/packaging/examples/mirror-maker/kafka-source.yaml @@ -4,7 +4,7 @@ metadata: name: cluster-a spec: kafka: - version: 3.8.1 + version: 3.9.0 replicas: 1 listeners: - name: plain @@ -21,7 +21,7 @@ spec: transaction.state.log.min.isr: 1 default.replication.factor: 1 min.insync.replicas: 1 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: jbod volumes: diff --git a/packaging/examples/mirror-maker/kafka-target.yaml b/packaging/examples/mirror-maker/kafka-target.yaml index ae58cbdcb66..a32cb4a6209 100644 --- a/packaging/examples/mirror-maker/kafka-target.yaml +++ b/packaging/examples/mirror-maker/kafka-target.yaml @@ -4,7 +4,7 @@ metadata: name: cluster-b spec: kafka: - version: 3.8.1 + version: 3.9.0 replicas: 1 listeners: - name: plain @@ -21,7 +21,7 @@ spec: transaction.state.log.min.isr: 1 default.replication.factor: 1 min.insync.replicas: 1 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: jbod volumes: diff --git a/packaging/examples/security/keycloak-authorization/kafka-ephemeral-oauth-single-keycloak-authz-metrics.yaml b/packaging/examples/security/keycloak-authorization/kafka-ephemeral-oauth-single-keycloak-authz-metrics.yaml index dbc5ad9ce75..a4b117719c4 100644 --- a/packaging/examples/security/keycloak-authorization/kafka-ephemeral-oauth-single-keycloak-authz-metrics.yaml +++ b/packaging/examples/security/keycloak-authorization/kafka-ephemeral-oauth-single-keycloak-authz-metrics.yaml @@ -4,7 +4,7 @@ metadata: name: my-cluster spec: kafka: - version: 3.8.1 + version: 3.9.0 replicas: 1 listeners: - name: tls @@ -42,7 +42,7 @@ spec: offsets.topic.replication.factor: 1 transaction.state.log.replication.factor: 1 transaction.state.log.min.isr: 1 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: ephemeral metricsConfig: diff --git a/packaging/examples/security/keycloak-authorization/kafka-ephemeral-oauth-single-keycloak-authz.yaml b/packaging/examples/security/keycloak-authorization/kafka-ephemeral-oauth-single-keycloak-authz.yaml index 0df4d2647e5..f76f556b415 100644 --- a/packaging/examples/security/keycloak-authorization/kafka-ephemeral-oauth-single-keycloak-authz.yaml +++ b/packaging/examples/security/keycloak-authorization/kafka-ephemeral-oauth-single-keycloak-authz.yaml @@ -4,7 +4,7 @@ metadata: name: my-cluster spec: kafka: - version: 3.8.1 + version: 3.9.0 replicas: 1 listeners: - name: tls @@ -40,7 +40,7 @@ spec: offsets.topic.replication.factor: 1 transaction.state.log.replication.factor: 1 transaction.state.log.min.isr: 1 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: ephemeral zookeeper: diff --git a/packaging/examples/security/scram-sha-512-auth/connect.yaml b/packaging/examples/security/scram-sha-512-auth/connect.yaml index e1254402fa5..00ae3587379 100644 --- a/packaging/examples/security/scram-sha-512-auth/connect.yaml +++ b/packaging/examples/security/scram-sha-512-auth/connect.yaml @@ -66,7 +66,7 @@ metadata: # # needing to call the Connect REST API directly # strimzi.io/use-connector-resources: "true" spec: - version: 3.8.1 + version: 3.9.0 replicas: 1 bootstrapServers: my-cluster-kafka-bootstrap:9093 tls: diff --git a/packaging/examples/security/scram-sha-512-auth/kafka.yaml b/packaging/examples/security/scram-sha-512-auth/kafka.yaml index fdda93c19c3..cd56c946043 100644 --- a/packaging/examples/security/scram-sha-512-auth/kafka.yaml +++ b/packaging/examples/security/scram-sha-512-auth/kafka.yaml @@ -4,7 +4,7 @@ metadata: name: my-cluster spec: kafka: - version: 3.8.1 + version: 3.9.0 replicas: 3 listeners: - name: tls @@ -21,7 +21,7 @@ spec: transaction.state.log.min.isr: 2 default.replication.factor: 3 min.insync.replicas: 2 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: jbod volumes: diff --git a/packaging/examples/security/scram-sha-512-auth/mirror-maker-2.yaml b/packaging/examples/security/scram-sha-512-auth/mirror-maker-2.yaml index 0effa98d10b..72a691e7427 100644 --- a/packaging/examples/security/scram-sha-512-auth/mirror-maker-2.yaml +++ b/packaging/examples/security/scram-sha-512-auth/mirror-maker-2.yaml @@ -4,7 +4,7 @@ metadata: name: cluster-a spec: kafka: - version: 3.8.1 + version: 3.9.0 replicas: 1 listeners: - name: tls @@ -21,7 +21,7 @@ spec: transaction.state.log.min.isr: 1 default.replication.factor: 1 min.insync.replicas: 1 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: jbod volumes: @@ -46,7 +46,7 @@ metadata: name: cluster-b spec: kafka: - version: 3.8.1 + version: 3.9.0 replicas: 1 listeners: - name: tls @@ -63,7 +63,7 @@ spec: transaction.state.log.min.isr: 1 default.replication.factor: 1 min.insync.replicas: 1 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: jbod volumes: @@ -218,7 +218,7 @@ kind: KafkaMirrorMaker2 metadata: name: my-mirror-maker-2 spec: - version: 3.8.1 + version: 3.9.0 replicas: 1 connectCluster: "cluster-b" # Must be the target custer clusters: diff --git a/packaging/examples/security/tls-auth/connect.yaml b/packaging/examples/security/tls-auth/connect.yaml index 5df616dacd3..48d9dcced08 100644 --- a/packaging/examples/security/tls-auth/connect.yaml +++ b/packaging/examples/security/tls-auth/connect.yaml @@ -66,7 +66,7 @@ metadata: # # needing to call the Connect REST API directly # strimzi.io/use-connector-resources: "true" spec: - version: 3.8.1 + version: 3.9.0 replicas: 1 bootstrapServers: my-cluster-kafka-bootstrap:9093 tls: diff --git a/packaging/examples/security/tls-auth/kafka.yaml b/packaging/examples/security/tls-auth/kafka.yaml index 73b83f3887f..c38d03440b5 100644 --- a/packaging/examples/security/tls-auth/kafka.yaml +++ b/packaging/examples/security/tls-auth/kafka.yaml @@ -4,7 +4,7 @@ metadata: name: my-cluster spec: kafka: - version: 3.8.1 + version: 3.9.0 replicas: 3 listeners: - name: tls @@ -21,7 +21,7 @@ spec: transaction.state.log.min.isr: 2 default.replication.factor: 3 min.insync.replicas: 2 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: jbod volumes: diff --git a/packaging/examples/security/tls-auth/mirror-maker-2.yaml b/packaging/examples/security/tls-auth/mirror-maker-2.yaml index 99636ea1a49..0a9375f8988 100644 --- a/packaging/examples/security/tls-auth/mirror-maker-2.yaml +++ b/packaging/examples/security/tls-auth/mirror-maker-2.yaml @@ -4,7 +4,7 @@ metadata: name: cluster-a spec: kafka: - version: 3.8.1 + version: 3.9.0 replicas: 1 listeners: - name: tls @@ -21,7 +21,7 @@ spec: transaction.state.log.min.isr: 1 default.replication.factor: 1 min.insync.replicas: 1 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: jbod volumes: @@ -46,7 +46,7 @@ metadata: name: cluster-b spec: kafka: - version: 3.8.1 + version: 3.9.0 replicas: 1 listeners: - name: tls @@ -63,7 +63,7 @@ spec: transaction.state.log.min.isr: 1 default.replication.factor: 1 min.insync.replicas: 1 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: jbod volumes: @@ -209,7 +209,7 @@ kind: KafkaMirrorMaker2 metadata: name: my-mirror-maker-2 spec: - version: 3.8.1 + version: 3.9.0 replicas: 1 connectCluster: "cluster-b" # Must be the target custer clusters: diff --git a/packaging/helm-charts/helm3/strimzi-kafka-operator/templates/_kafka_image_map.tpl b/packaging/helm-charts/helm3/strimzi-kafka-operator/templates/_kafka_image_map.tpl index a5faa804a4f..c1ff9e62b88 100644 --- a/packaging/helm-charts/helm3/strimzi-kafka-operator/templates/_kafka_image_map.tpl +++ b/packaging/helm-charts/helm3/strimzi-kafka-operator/templates/_kafka_image_map.tpl @@ -6,31 +6,27 @@ {{/* Generate the kafka image map */}} {{- define "strimzi.kafka.image.map" }} - name: STRIMZI_DEFAULT_KAFKA_EXPORTER_IMAGE - value: {{ template "strimzi.image" (merge . (dict "key" "kafkaExporter" "tagSuffix" "-kafka-3.8.1")) }} + value: {{ template "strimzi.image" (merge . (dict "key" "kafkaExporter" "tagSuffix" "-kafka-3.9.0")) }} - name: STRIMZI_DEFAULT_CRUISE_CONTROL_IMAGE - value: {{ template "strimzi.image" (merge . (dict "key" "cruiseControl" "tagSuffix" "-kafka-3.8.1")) }} + value: {{ template "strimzi.image" (merge . (dict "key" "cruiseControl" "tagSuffix" "-kafka-3.9.0")) }} - name: STRIMZI_KAFKA_IMAGES value: | - 3.7.0={{ template "strimzi.image" (merge . (dict "key" "kafka" "tagSuffix" "-kafka-3.7.0")) }} - 3.7.1={{ template "strimzi.image" (merge . (dict "key" "kafka" "tagSuffix" "-kafka-3.7.1")) }} 3.8.0={{ template "strimzi.image" (merge . (dict "key" "kafka" "tagSuffix" "-kafka-3.8.0")) }} 3.8.1={{ template "strimzi.image" (merge . (dict "key" "kafka" "tagSuffix" "-kafka-3.8.1")) }} + 3.9.0={{ template "strimzi.image" (merge . (dict "key" "kafka" "tagSuffix" "-kafka-3.9.0")) }} - name: STRIMZI_KAFKA_CONNECT_IMAGES value: | - 3.7.0={{ template "strimzi.image" (merge . (dict "key" "kafkaConnect" "tagSuffix" "-kafka-3.7.0")) }} - 3.7.1={{ template "strimzi.image" (merge . (dict "key" "kafkaConnect" "tagSuffix" "-kafka-3.7.1")) }} 3.8.0={{ template "strimzi.image" (merge . (dict "key" "kafkaConnect" "tagSuffix" "-kafka-3.8.0")) }} 3.8.1={{ template "strimzi.image" (merge . (dict "key" "kafkaConnect" "tagSuffix" "-kafka-3.8.1")) }} + 3.9.0={{ template "strimzi.image" (merge . (dict "key" "kafkaConnect" "tagSuffix" "-kafka-3.9.0")) }} - name: STRIMZI_KAFKA_MIRROR_MAKER_IMAGES value: | - 3.7.0={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker" "tagSuffix" "-kafka-3.7.0")) }} - 3.7.1={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker" "tagSuffix" "-kafka-3.7.1")) }} 3.8.0={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker" "tagSuffix" "-kafka-3.8.0")) }} 3.8.1={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker" "tagSuffix" "-kafka-3.8.1")) }} + 3.9.0={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker" "tagSuffix" "-kafka-3.9.0")) }} - name: STRIMZI_KAFKA_MIRROR_MAKER_2_IMAGES value: | - 3.7.0={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker2" "tagSuffix" "-kafka-3.7.0")) }} - 3.7.1={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker2" "tagSuffix" "-kafka-3.7.1")) }} 3.8.0={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker2" "tagSuffix" "-kafka-3.8.0")) }} 3.8.1={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker2" "tagSuffix" "-kafka-3.8.1")) }} + 3.9.0={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker2" "tagSuffix" "-kafka-3.9.0")) }} {{- end -}} diff --git a/packaging/install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml b/packaging/install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml index 2559382f796..d65cb8180b3 100644 --- a/packaging/install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml +++ b/packaging/install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml @@ -48,33 +48,29 @@ spec: - name: STRIMZI_OPERATION_TIMEOUT_MS value: "300000" - name: STRIMZI_DEFAULT_KAFKA_EXPORTER_IMAGE - value: quay.io/strimzi/kafka:latest-kafka-3.8.1 + value: quay.io/strimzi/kafka:latest-kafka-3.9.0 - name: STRIMZI_DEFAULT_CRUISE_CONTROL_IMAGE - value: quay.io/strimzi/kafka:latest-kafka-3.8.1 + value: quay.io/strimzi/kafka:latest-kafka-3.9.0 - name: STRIMZI_KAFKA_IMAGES value: | - 3.7.0=quay.io/strimzi/kafka:latest-kafka-3.7.0 - 3.7.1=quay.io/strimzi/kafka:latest-kafka-3.7.1 3.8.0=quay.io/strimzi/kafka:latest-kafka-3.8.0 3.8.1=quay.io/strimzi/kafka:latest-kafka-3.8.1 + 3.9.0=quay.io/strimzi/kafka:latest-kafka-3.9.0 - name: STRIMZI_KAFKA_CONNECT_IMAGES value: | - 3.7.0=quay.io/strimzi/kafka:latest-kafka-3.7.0 - 3.7.1=quay.io/strimzi/kafka:latest-kafka-3.7.1 3.8.0=quay.io/strimzi/kafka:latest-kafka-3.8.0 3.8.1=quay.io/strimzi/kafka:latest-kafka-3.8.1 + 3.9.0=quay.io/strimzi/kafka:latest-kafka-3.9.0 - name: STRIMZI_KAFKA_MIRROR_MAKER_IMAGES value: | - 3.7.0=quay.io/strimzi/kafka:latest-kafka-3.7.0 - 3.7.1=quay.io/strimzi/kafka:latest-kafka-3.7.1 3.8.0=quay.io/strimzi/kafka:latest-kafka-3.8.0 3.8.1=quay.io/strimzi/kafka:latest-kafka-3.8.1 + 3.9.0=quay.io/strimzi/kafka:latest-kafka-3.9.0 - name: STRIMZI_KAFKA_MIRROR_MAKER_2_IMAGES value: | - 3.7.0=quay.io/strimzi/kafka:latest-kafka-3.7.0 - 3.7.1=quay.io/strimzi/kafka:latest-kafka-3.7.1 3.8.0=quay.io/strimzi/kafka:latest-kafka-3.8.0 3.8.1=quay.io/strimzi/kafka:latest-kafka-3.8.1 + 3.9.0=quay.io/strimzi/kafka:latest-kafka-3.9.0 - name: STRIMZI_DEFAULT_TOPIC_OPERATOR_IMAGE value: quay.io/strimzi/operator:latest - name: STRIMZI_DEFAULT_USER_OPERATOR_IMAGE diff --git a/pom.xml b/pom.xml index d3e84774deb..8c03151328c 100644 --- a/pom.xml +++ b/pom.xml @@ -132,7 +132,7 @@ 2.16.2 4.5.10 4.5.10 - 3.8.1 + 3.9.0 2.2.0 3.8.4 1.1.10.5 diff --git a/systemtest/src/test/resources/upgrade/BundleDowngrade.yaml b/systemtest/src/test/resources/upgrade/BundleDowngrade.yaml index e911528b7b5..43387b81139 100644 --- a/systemtest/src/test/resources/upgrade/BundleDowngrade.yaml +++ b/systemtest/src/test/resources/upgrade/BundleDowngrade.yaml @@ -38,8 +38,8 @@ fromKafkaVersionsUrl: HEAD additionalTopics: 2 imagesAfterOperations: - zookeeper: strimzi/kafka:0.44.0-kafka-3.7.0 - kafka: strimzi/kafka:0.44.0-kafka-3.7.0 + zookeeper: strimzi/kafka:0.44.0-kafka-3.8.0 + kafka: strimzi/kafka:0.44.0-kafka-3.8.0 topicOperator: strimzi/operator:0.44.0 userOperator: strimzi/operator:0.44.0 deployKafkaVersion: 3.8.0 diff --git a/systemtest/src/test/resources/upgrade/BundleUpgrade.yaml b/systemtest/src/test/resources/upgrade/BundleUpgrade.yaml index 70e23d8b04b..68301fa5bcf 100644 --- a/systemtest/src/test/resources/upgrade/BundleUpgrade.yaml +++ b/systemtest/src/test/resources/upgrade/BundleUpgrade.yaml @@ -31,13 +31,13 @@ - fromVersion: 0.44.0 fromExamples: strimzi-0.44.0 - oldestKafka: 3.7.0 + oldestKafka: 3.8.0 fromUrl: https://github.com/strimzi/strimzi-kafka-operator/releases/download/0.44.0/strimzi-0.44.0.zip fromKafkaVersionsUrl: https://raw.githubusercontent.com/strimzi/strimzi-kafka-operator/0.44.0/kafka-versions.yaml additionalTopics: 2 imagesAfterOperations: - zookeeper: strimzi/kafka:latest-kafka-3.8.1 - kafka: strimzi/kafka:latest-kafka-3.8.1 + zookeeper: strimzi/kafka:latest-kafka-3.9.0 + kafka: strimzi/kafka:latest-kafka-3.9.0 topicOperator: strimzi/operator:latest userOperator: strimzi/operator:latest client: