github strimzi/strimzi-kafka-operator 0.49.0-rc1

pre-release17 hours ago

⚠️ IMPORTANT: Strimzi 0.49 introduces new API version v1 to all Strimzi custom resources.


Main changes since 0.48

This release contains the following new features and improvements:

  • Introduce the v1 API to Strimzi CRDs and move User and Topic Operators to use it.
    The v1 API Conversion Tool can be used to convert the resources in files or in your Kubernetes cluter from the v1beta2 API to the v1 API.
  • Add support for Kafka 4.0.1
  • Set blockOwnerDeletion to true in 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.replicas properties required in the v1 of the KafkaBridge, KafkaConnect, and KafkaMirrorMaker2 custom resources.
  • New fields .spec.groupId, .spec.configStorageTopic, .spec.offsetStorageTopic, and .spec.statusStorageTopic in the KafkaConnect custom 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 the KafkaMirrorMaker2 custom resources.
  • Improved behavior for merging the Kafka and KafkaNodePool template sections.
    The templates are now merged at a property level.
    If two different properties are defined in the two template sections, both are applied.
    If the same property is defined in both template sections, only the property from the KafkaNodePool template 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.version in the KafkaConnecter custom resource, and new version fields for each connector under spec.mirrors[] in the KafkaMirrorMaker2 custom resource for configuring the desired version of a connector.
  • New field .volumeAttributesClass for persistent-claim type Storage in Kafka and KafkaNodePool custom resource. Enables configuring VolumeAttributesClass for PersistentVolumeClaims 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 your KafkaUser resources to use the .spec.authorization.acls[]operations field 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 Kafka custom 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 own topologySpreadConstraint or affinity rules instead.
  • The .status.kafkaMetadataState field in the Kafka custom resource is deprecated and not used anymore.
  • The type: oauth authentication in Kafka brokers and Kafka clients (Kafka Connect, MirrorMaker 2, and Strimzi HTTP Bridge) has been deprecated.
    Please use the type: custom authentication 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 the type: custom authorization.
    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.resources is deprecated and will be removed in the v1 CRD API.
    Please use the KafkaNodePool resources to configure CPU and memory for Kafka nodes.
  • The group.id, config.storage.topic, offset.storage.topic, and status.storage.topic fields in .spec.config section of the KafkaConnect resource are deprecated and will be forbidden in the v1 CRD API.
    Please use the new .spec.groupId, .spec.configStorageTopic, .spec.offsetStorageTopic, and .spec.statusStorageTopic fields instead.
  • The .spec.connectCluster, .spec.clusters, .spec.mirrors[].sourceCluster, .spec.mirrors[].targetCluster, and .spec.mirrors[].heartbeatConnector fields of the KafkaMirrorMaker2 resource are deprecated and will be removed in the v1 CRD API.
    Please use the new fields .spec.target and .spec.mirrors[].source instead to configure the source and target clusters.
    If you want to deploy and run the Heartbeat connector, you can use separate KafkaConnect and KafkaConnector custom resources.
  • The .spec.build.output.additionalKanikoOptions field in the KafkaConnect custom resource is deprecated and will be removed in the future.
    • Use .spec.build.output.additionalBuildOptions field instead.
  • The way the template properties in the Kafka and KafkaNodePool resources 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.version under spec.config in the KafkaConnector custom resource, and under spec.mirrors[].sourceConnector.config, spec.mirrors[].checkpointConnector.config, and spec.mirrors[].heartbeatConnector.config in the KafkaMirrorMaker2 custom resource is deprecated and will be forbidden in Strimzi 0.50.0.
    Instead, please use spec.version in the KafkaConnecter custom resource, and the connector specific version fields in the KafkaMirrorMaker2 custom 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

Full Changelog: 0.48.0...0.49.0-rc1

Don't miss a new strimzi-kafka-operator release

NewReleases is sending notifications on new releases.