Main Changes since 0.21.x
- Add
v1beta2
version for all resources.v1beta2
removes 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
ConfigMap
name 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
.status
section of theKafkaConnector
custom resource - Bump Cruise Control to v2.5.37 for Kafka 2.7 support. Note this new version of Cruise Control uses
Log4j 2
and is supported by dynamic logging configuration (where logging properties are defined in a ConfigMap). However, existingLog4j
configurations must be updated toLog4j 2
configurations. - 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.class
annotation was automatically set tonginx
. Because of the support for the new
IngressClass resource and the newingressClassName
field in the Ingress resource, the default value will not be set
anymore. Please use theclass
field in.spec.kafka.listeners[].configuration
to specify the class name. - The
KafkaConnectS2I
custom resource is deprecated and will be removed in the future. You can use the newKafkaConnect
build feature instead. - Removed support for Helm2 charts as that version is now unsupported. There is no longer the need for separate
helm2
andhelm3
binaries, 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-pvc
instead)operator.strimzi.io/manual-rolling-update
(usestrimzi.io/manual-rolling-update
instead)
- External logging configuration has changed.
spec.logging.name
is deprecated. Moved tospec.logging.valueFrom.configMapKeyRef.name
. Key in theConfigMap
is 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
Log4j
syntax toLog4j 2
syntax.- For existing inline configurations, replace the
cruisecontrol.root.logger
property withrootLogger.level
. - For existing external configurations, replace the existing configuration with a new configuration file named
log4j2.properties
usinglog4j 2
syntax.
- 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
watchedNamespace
option), 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.