⚠️ IMPORTANT: Strimzi 0.49 introduces new API version v1 to all Strimzi custom resources.
- Make sure to Upgrade the CRDs as part of the Strimzi upgrade as well (especially when using Helm).
- The old API versions (
v1alpha1,v1beta1, andv1beta2) will continue to be supported until Strimzi 1.0.0 / 0.52.0. - Before upgrading to Strimzi 0.49.0 or newer, make sure that you update your
KafkaUserresources to use the.spec.authorization.acls[]operationsfield instead of the deprecated.spec.authorization.acls[]operation. - For more details about the migration to the
v1API and CRD upgrades, see the documentation.
Main changes since 0.48
This release contains the following new features and improvements:
- Introduce the
v1API to Strimzi CRDs and move User and Topic Operators to use it.
Thev1API Conversion Tool can be used to convert the resources in files or in your Kubernetes cluter from thev1beta2API to thev1API. - Add support for Kafka 4.0.1
- Set
blockOwnerDeletiontotruein the owner references in Strimzi managed resources.
Deleting the Strimzi custom resources will now by default wait for the deletion of all the owned Kubernetes resources. - Make
.spec.replicasproperties required in thev1of theKafkaBridge,KafkaConnect, andKafkaMirrorMaker2custom resources. - New fields
.spec.groupId,.spec.configStorageTopic,.spec.offsetStorageTopic, and.spec.statusStorageTopicin theKafkaConnectcustom resource for configuring Connect's group ID and internal topics. - New way of defining the target (
.spec.target) and source clusters (.spec.mirrors[].source) in theKafkaMirrorMaker2custom resources. - Improved behavior for merging the
KafkaandKafkaNodePooltemplatesections.
The templates are now merged at a property level.
If two different properties are defined in the twotemplatesections, both are applied.
If the same property is defined in bothtemplatesections, only the property from theKafkaNodePooltemplate is used.
See the Strimzi Proposal 120 for more details. - New feature gate
UseConnectBuildWithBuildah(disabled by default) for running the Connect Build feature with Buildah instead of Kaniko on Kubernetes - according to Strimzi Proposal #114. - New field
spec.versionin theKafkaConnectercustom resource, and newversionfields for each connector underspec.mirrors[]in theKafkaMirrorMaker2custom resource for configuring the desired version of a connector. - New field
.volumeAttributesClassforpersistent-claimtype Storage inKafkaandKafkaNodePoolcustom resource. Enables configuringVolumeAttributesClassforPersistentVolumeClaims available since Kubernetes v1.34.
All changes can be found under the 0.49.0 milestone.
Major changes, deprecations, and removals
There are also many important changes, deprecations, and removals:
- This version introduces a new API version to our CRDs.
Before upgrading to Strimzi 0.49 or newer, make sure that you update yourKafkaUserresources to use the.spec.authorization.acls[]operationsfield instead of the deprecated.spec.authorization.acls[]operation.
Especially when using Helm, make sure that the CRDs are updated when you upgrade the operator. - When rack-awareness is enabled in the
Kafkacustom resource (.spec.kafka.rack), Strimzi will not automatically add the best-effort-affinity rules for spreading the Kafka Pods between the zones.
Please make sure to set your owntopologySpreadConstraintoraffinityrules instead. - The
.status.kafkaMetadataStatefield in theKafkacustom resource is deprecated and not used anymore. - The
type: oauthauthentication in Kafka brokers and Kafka clients (Kafka Connect, MirrorMaker 2, and Strimzi HTTP Bridge) has been deprecated.
Please use thetype: customauthentication instead.
The Strimzi OAuth library continues to be packaged with the Strimzi container images.
Follow the documentation for the examples and migration details. - The Keycloak authorization (
type: keycloak) has been deprecated and will be removed in the future.
To use the Keycloak authorizer, you can use thetype: customauthorization.
The Strimzi OAuth library with the Keycloak authorizer continues to be packaged with the Strimzi container images.
Follow the documentation for the examples and migration details. - CPU and memory configuration for the Kafka nodes in
.spec.kafka.resourcesis deprecated and will be removed in thev1CRD API.
Please use theKafkaNodePoolresources to configure CPU and memory for Kafka nodes. - The
group.id,config.storage.topic,offset.storage.topic, andstatus.storage.topicfields in.spec.configsection of theKafkaConnectresource are deprecated and will be forbidden in thev1CRD API.
Please use the new.spec.groupId,.spec.configStorageTopic,.spec.offsetStorageTopic, and.spec.statusStorageTopicfields instead. - The
.spec.connectCluster,.spec.clusters,.spec.mirrors[].sourceCluster,.spec.mirrors[].targetCluster, and.spec.mirrors[].heartbeatConnectorfields of theKafkaMirrorMaker2resource are deprecated and will be removed in thev1CRD API.
Please use the new fields.spec.targetand.spec.mirrors[].sourceinstead to configure the source and target clusters.
If you want to deploy and run the Heartbeat connector, you can use separateKafkaConnectandKafkaConnectorcustom resources. - The
.spec.build.output.additionalKanikoOptionsfield in theKafkaConnectcustom resource is deprecated and will be removed in the future.- Use
.spec.build.output.additionalBuildOptionsfield instead.
- Use
- The way the
templateproperties in theKafkaandKafkaNodePoolresources are handled has changed.
See the 0.49.0 section or the Strimzi Proposal 120 for more details. - Kafka nodes are now configured with PEM certificates instead of P12/JKS for keystore and truststore.
- Configuring
connector.plugin.versionunderspec.configin theKafkaConnectorcustom resource, and underspec.mirrors[].sourceConnector.config,spec.mirrors[].checkpointConnector.config, andspec.mirrors[].heartbeatConnector.configin theKafkaMirrorMaker2custom resource is deprecated and will be forbidden in Strimzi 0.50.0.
Instead, please usespec.versionin theKafkaConnectercustom resource, and the connector specificversionfields in theKafkaMirrorMaker2custom resource.
Maven artifacts
To test the Maven artifacts that are part of this release, use the 0.49.0-RC1 version in your pom.xml.
Upgrading from Strimzi 0.48.0
See the documentation for upgrade instructions.
Container images
The following container images are part of this release:
| Name | Image |
|---|---|
| Operators | quay.io/strimzi/operator@sha256:666ac99317c3b3c2999e6b79fe9c22ef4ee0490d2bffa583cac83bdbb1fd8027
|
| Apache Kafka 4.0.0 | quay.io/strimzi/kafka@sha256:0cbfebdf62e3bf87d7848d34438a8b98c5636b776c72c2b4fbc4d97608f66b2c
|
| Apache Kafka 4.0.1 | quay.io/strimzi/kafka@sha256:45cc6aceb3b3db47ffb1b15dc72571098d4afba9cacfcc8931a2a5a0523a8419
|
| Apache Kafka 4.1.0 | quay.io/strimzi/kafka@sha256:446fafd949e3650af06a453c46f7f8dcdf45c99e0b858303291900e818ae2b92
|
| Strimzi Bridge | quay.io/strimzi/kafka-bridge@sha256:53034f64f0b672f10b5bacea1c7a25132f118df7fd5c9032c4dbf702ed93796a
|
| Kaniko executor | quay.io/strimzi/kaniko-executor@sha256:a5088c14d7b8bf1d336669cba047b971bf3ece8969647dae2c1e3a07a7be0c5e
|
| Maven Builder | quay.io/strimzi/maven-builder@sha256:051939442c2aebffb57b1a199f7ba9192dc6884685f7d92aaba747370636e429
|
| Buildah builder | quay.io/strimzi/buildah@sha256:ba89470b45a49e5e09aaab91a5c3c03ecb14f9013d598bc14b3d756eb9a145b4
|
New Contributors
- @rodrigo-molina made their first contribution in #11917
- @totochichi made their first contribution in #11948
- @championshuttler made their first contribution in #11995
- @Smoothengineer made their first contribution in #11953
- @Firoj-Patel made their first contribution in #12044
- @TanmaySrivastav made their first contribution in #12019
Full Changelog: 0.48.0...0.49.0-rc1