Repository navigation
0.22.0
Main Changes since 0.21.x
- Add
v1beta2version for all resources.v1beta2removes all deprecated fields. - Add annotations that enable the operator to restart Kafka Connect connectors or tasks. The annotations can be applied to the KafkaConnector and the KafkaMirrorMaker2 custom resources.
- Add additional configuration options for the Kaniko executor used by the Kafka Connect Build on Kubernetes
- Add support for JMX options configuration of all Kafka Connect (KC, KC2SI, MM2)
- Update Strimzi Kafka OAuth to version 0.7 and add support for new features:
- OAuth authentication over SASL PLAIN mechanism
- Checking token audience
- Validating tokens using JSONPath filter queries to perform custom checks
- Fix Cruise Control crash loop when updating container configurations
- Configure external logging
ConfigMapname and key. - Add support for configuring labels and annotations in ClusterRoleBindings created as part of Kafka and Kafka Connect clusters
- Add support for Ingress v1 in Kubernetes 1.19 and newer
- Add support for Kafka 2.6.1
- List topics used by a Kafka Connect connector in the
.statussection of theKafkaConnectorcustom resource - Bump Cruise Control to v2.5.37 for Kafka 2.7 support. Note this new version of Cruise Control uses
Log4j 2and is supported by dynamic logging configuration (where logging properties are defined in a ConfigMap). However, existingLog4jconfigurations must be updated toLog4j 2configurations. - Support pausing reconciliation of CR with annotation
strimzi.io/pause-reconciliation
All changes can be found under the 0.22.0 milestone.
CRD Upgrades
!!! IMPORTANT !!!
This release introduces new API version v1beta2 to all Strimzi custom resources. This is a preparation for migration to apiextensions/v1 which is needed because Kubernetes 1.22 will remove support for apiextensions/v1beta1. Migration to v1beta2 needs to be completed for all Strimzi CRDs and CRs after the upgrade to 0.22 is done and before upgrading to Strimzi 0.23 which will support only Strimzi v1beta2 APIs and apiextensions/v1 CRDs.
For more details about the CRD upgrades, see the documentation.
Deprecations and removals
- In the past, when no Ingress class was specified in the Ingress-type listener in the Kafka custom resource, the
kubernetes.io/ingress.classannotation was automatically set tonginx. Because of the support for the new
IngressClass resource and the newingressClassNamefield in the Ingress resource, the default value will not be set
anymore. Please use theclassfield in.spec.kafka.listeners[].configurationto specify the class name. - The
KafkaConnectS2Icustom resource is deprecated and will be removed in the future. You can use the newKafkaConnectbuild feature instead. - Removed support for Helm2 charts as that version is now unsupported. There is no longer the need for separate
helm2andhelm3binaries, onlyhelm(version 3) is required. - The following annotations are deprecated for a long time and will be removed in 0.23.0:
cluster.operator.strimzi.io/delete-claim(used internally only - replaced bystrimzi.io/delete-claim)operator.strimzi.io/generation(used internally only - replaced bystrimzi.io/generation)operator.strimzi.io/delete-pod-and-pvc(usestrimzi.io/delete-pod-and-pvcinstead)operator.strimzi.io/manual-rolling-update(usestrimzi.io/manual-rolling-updateinstead)
- External logging configuration has changed.
spec.logging.nameis deprecated. Moved tospec.logging.valueFrom.configMapKeyRef.name. Key in theConfigMapis configurable viaspec.logging.valueFrom.configMapKeyRef.key.- from
logging: type: external name: my-config-map- to
logging: type: external valueFrom: configMapKeyRef: name: my-config-map key: my-key - Existing Cruise Control logging configurations must be updated from
Log4jsyntax toLog4j 2syntax.- For existing inline configurations, replace the
cruisecontrol.root.loggerproperty withrootLogger.level. - For existing external configurations, replace the existing configuration with a new configuration file named
log4j2.propertiesusinglog4j 2syntax.
- For existing inline configurations, replace the
Upgrading from Strimzi 0.21
See the documentation for upgrade instructions.
Known issues
- On Kubernetes 1.20 and newer, when user configures the Topic or User Operators in the Kafka CR to watch different namespace than the one in which they run (using the
watchedNamespaceoption), the Entity Operator pod will not start properly because of missing RBAC. This will be fixed in 0.22.1 (expected next week). If needed, the required Role and RoleBinding for the Entity Operator can be also created manually as a workaround.