Update Kafka-operator v0.46.0

Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
This commit is contained in:
Andrei Kvapil
2025-06-19 17:33:47 +02:00
parent f0fc3238ca
commit 3c7f7d1127
20 changed files with 525 additions and 3183 deletions

View File

@@ -1,5 +1,5 @@
apiVersion: v2
appVersion: 0.45.0
appVersion: 0.46.0
description: 'Strimzi: Apache Kafka running on Kubernetes'
home: https://strimzi.io/
icon: https://raw.githubusercontent.com/strimzi/strimzi-kafka-operator/main/documentation/logo/strimzi_logo.png
@@ -24,4 +24,4 @@ maintainers:
name: strimzi-kafka-operator
sources:
- https://github.com/strimzi/strimzi-kafka-operator
version: 0.45.0
version: 0.46.0

View File

@@ -6,14 +6,12 @@ See our [website](https://strimzi.io) for more details about the project.
**!!! IMPORTANT !!!**
* **Strimzi 0.45 is the last Strimzi version with support for ZooKeeper-based Apache Kafka clusters and MirrorMaker 1 deployments.**
**Please make sure to [migrate to KRaft](https://strimzi.io/docs/operators/latest/full/deploying.html#assembly-kraft-mode-str) and MirrorMaker 2 before upgrading to Strimzi 0.46 or newer.**
* Strimzi 0.45 is the last Strimzi version to include the [Strimzi EnvVar Configuration Provider](https://github.com/strimzi/kafka-env-var-config-provider) (deprecated in Strimzi 0.38.0) and [Strimzi MirrorMaker 2 Extensions](https://github.com/strimzi/mirror-maker-2-extensions) (deprecated in Strimzi 0.28.0).
* **Support for ZooKeeper-based clusters and for migration from ZooKeeper-based clusters to KRaft has been removed.**
**Please make sure all your clusters are using KRaft before upgrading to Strimzi 0.46.0 or newer!**
* Support for MirrorMaker 1 has been removed.
Please make sure to migrate to MirrorMaker 2 before upgrading to Strimzi 0.46 or newer.
* [Strimzi EnvVar Configuration Provider](https://github.com/strimzi/kafka-env-var-config-provider) (deprecated in Strimzi 0.38.0) and [Strimzi MirrorMaker 2 Extensions](https://github.com/strimzi/mirror-maker-2-extensions) (deprecated in Strimzi 0.28.0) plugins were removed from Strimzi container images.
Please use the Apache Kafka [EnvVarConfigProvider](https://github.com/strimzi/kafka-env-var-config-provider?tab=readme-ov-file#deprecation-notice) and [Identity Replication Policy](https://github.com/strimzi/mirror-maker-2-extensions?tab=readme-ov-file#identity-replication-policy) instead.
* From Strimzi 0.44.0 on, we support only Kubernetes 1.25 and newer.
Kubernetes 1.23 and 1.24 are not supported anymore.
* Upgrading to Strimzi 0.32 and newer directly from Strimzi 0.22 and earlier is no longer possible.
Please follow the [documentation](https://strimzi.io/docs/operators/latest/full/deploying.html#assembly-upgrade-str) for more details.
## Introduction
@@ -40,9 +38,14 @@ cluster using the [Helm](https://helm.sh) package manager.
### Upgrading your Clusters
To upgrade the Strimzi operator, you can use the `helm upgrade` command.
The `helm upgrade` command does not upgrade the [Custom Resource Definitions](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/).
Install the new CRDs manually after upgrading the Cluster Operator.
**The `helm upgrade` command does not upgrade the [Custom Resource Definitions](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/).**
**Update the CRDs manually after upgrading the Cluster Operator.**
You can access the CRDs from our [GitHub release page](https://github.com/strimzi/strimzi-kafka-operator/releases) or find them in the `crd` subdirectory inside the Helm Chart.
For example, when upgrading to Strimzi 0.46.0, you can do:
```bash
kubectl apply -f https://github.com/strimzi/strimzi-kafka-operator/releases/download/0.46.0/strimzi-crds-0.46.0.yaml
```
The Strimzi Operator understands how to run and upgrade between a set of Kafka versions.
When specifying a new version in your config, check to make sure you aren't using any features that may have been removed.
@@ -72,7 +75,7 @@ Strimzi is licensed under the [Apache License, Version 2.0](https://github.com/s
To install the chart with the release name `my-strimzi-cluster-operator`:
```bash
$ helm install my-strimzi-cluster-operator oci://quay.io/strimzi-helm/strimzi-kafka-operator
helm install my-strimzi-cluster-operator oci://quay.io/strimzi-helm/strimzi-kafka-operator
```
The command deploys the Strimzi Cluster Operator on the Kubernetes cluster with the default configuration.
@@ -83,7 +86,7 @@ The [configuration](#configuration) section lists the parameters that can be con
To uninstall/delete the `my-strimzi-cluster-operator` deployment:
```bash
$ helm delete my-strimzi-cluster-operator
helm delete my-strimzi-cluster-operator
```
The command removes all the Kubernetes components associated with the operator and deletes the release.
@@ -102,10 +105,10 @@ the documentation for more details.
| `watchAnyNamespace` | Watch the whole Kubernetes cluster (all namespaces) | `false` |
| `defaultImageRegistry` | Default image registry for all the images | `quay.io` |
| `defaultImageRepository` | Default image registry for all the images | `strimzi` |
| `defaultImageTag` | Default image tag for all the images except Kafka Bridge | `0.45.0` |
| `defaultImageTag` | Default image tag for all the images except Kafka Bridge | `0.46.0` |
| `image.registry` | Override default Cluster Operator image registry | `nil` |
| `image.repository` | Override default Cluster Operator image repository | `nil` |
| `image.name` | Cluster Operator image name | `cluster-operator` |
| `image.name` | Cluster Operator image name | `operator` |
| `image.tag` | Override default Cluster Operator image tag | `nil` |
| `image.digest` | Override Cluster Operator image tag with digest | `nil` |
| `image.imagePullPolicy` | Image pull policy for all pods deployed by Cluster Operator | `IfNotPresent` |
@@ -136,12 +139,6 @@ the documentation for more details.
| `kafkaConnect.image.tagPrefix` | Override default Kafka Connect image tag prefix | `nil` |
| `kafkaConnect.image.tag` | Override default Kafka Connect image tag and ignore suffix | `nil` |
| `kafkaConnect.image.digest` | Override Kafka Connect image tag with digest | `nil` |
| `kafkaMirrorMaker.image.registry` | Override default Kafka Mirror Maker image registry | `nil` |
| `kafkaMirrorMaker.image.repository` | Override default Kafka Mirror Maker image repository | `nil` |
| `kafkaMirrorMaker.image.name` | Kafka Mirror Maker image name | `kafka` |
| `kafkaMirrorMaker.image.tagPrefix` | Override default Kafka Mirror Maker image tag prefix | `nil` |
| `kafkaMirrorMaker.image.tag` | Override default Kafka Mirror Maker image tag and ignore suffix | `nil` |
| `kafkaMirrorMaker.image.digest` | Override Kafka Mirror Maker image tag with digest | `nil` |
| `cruiseControl.image.registry` | Override default Cruise Control image registry | `nil` |
| `cruiseControl.image.repository` | Override default Cruise Control image repository | `nil` |
| `cruiseControl.image.name` | Cruise Control image name | `kafka` |
@@ -166,7 +163,7 @@ the documentation for more details.
| `kafkaBridge.image.registry` | Override default Kafka Bridge image registry | `quay.io` |
| `kafkaBridge.image.repository` | Override default Kafka Bridge image repository | `strimzi` |
| `kafkaBridge.image.name` | Kafka Bridge image name | `kafka-bridge` |
| `kafkaBridge.image.tag` | Override default Kafka Bridge image tag | `0.31.1` |
| `kafkaBridge.image.tag` | Override default Kafka Bridge image tag | `0.32.0` |
| `kafkaBridge.image.digest` | Override Kafka Bridge image tag with digest | `nil` |
| `kafkaExporter.image.registry` | Override default Kafka Exporter image registry | `nil` |
| `kafkaExporter.image.repository` | Override default Kafka Exporter image repository | `nil` |
@@ -222,5 +219,5 @@ the documentation for more details.
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
```bash
$ helm install my-strimzi-cluster-operator --set replicas=2 oci://quay.io/strimzi-helm/strimzi-kafka-operator
helm install my-strimzi-cluster-operator --set replicas=2 oci://quay.io/strimzi-helm/strimzi-kafka-operator
```

View File

@@ -27,14 +27,6 @@ spec:
subresources:
status: {}
additionalPrinterColumns:
- name: Desired Kafka replicas
description: The desired number of Kafka replicas in the cluster
jsonPath: .spec.kafka.replicas
type: integer
- name: Desired ZK replicas
description: The desired number of ZooKeeper replicas in the cluster
jsonPath: .spec.zookeeper.replicas
type: integer
- name: Ready
description: The state of the custom resource
jsonPath: ".status.conditions[?(@.type==\"Ready\")].status"
@@ -74,7 +66,7 @@ spec:
replicas:
type: integer
minimum: 1
description: The number of pods in the cluster. This property is required when node pools are not used.
description: Replicas are now configured in `KafkaNodePool` resources and this option is ignored.
image:
type: string
description: "The container image used for Kafka pods. If the property is not set, the default Kafka image version is determined based on the `version` configuration. The image names are specifically mapped to corresponding versions in the Cluster Operator configuration. Changing the Kafka image version does not automatically update the image versions for other components, such as Kafka Exporter. "
@@ -587,7 +579,7 @@ spec:
broker:
type: integer
description: Id of the kafka broker (broker identifier).
description: Overrides for individual brokers. The `overrides` field allows you to specify a different configuration for different brokers.
description: "As of Strimzi 0.46.0, the storage overrides for individual brokers are not supported anymore and this option is ignored."
selector:
additionalProperties:
type: string
@@ -638,7 +630,7 @@ spec:
broker:
type: integer
description: Id of the kafka broker (broker identifier).
description: Overrides for individual brokers. The `overrides` field allows you to specify a different configuration for different brokers.
description: "As of Strimzi 0.46.0, the storage overrides for individual brokers are not supported anymore and this option is ignored."
selector:
additionalProperties:
type: string
@@ -662,7 +654,7 @@ spec:
description: List of volumes as Storage objects representing the JBOD disks array.
required:
- type
description: Storage configuration (disk). Cannot be updated. This property is required when node pools are not used.
description: Storage is now configured in the `KafkaNodePool` resources and this option is ignored.
authorization:
type: object
properties:
@@ -771,7 +763,7 @@ spec:
- opa
- keycloak
- custom
description: "Authorization type. Currently, the supported types are `simple`, `keycloak`, `opa` and `custom`. `simple` authorization type uses Kafka's built-in authorizer for authorization. `keycloak` authorization type uses Keycloak Authorization Services for authorization. `opa` authorization type uses Open Policy Agent based authorization.`custom` authorization type uses user-provided implementation for authorization."
description: "Authorization type. Currently, the supported types are `simple`, `keycloak`, `opa` and `custom`. `simple` authorization type uses Kafka's built-in authorizer for authorization. `keycloak` authorization type uses Keycloak Authorization Services for authorization. `opa` authorization type uses Open Policy Agent based authorization. `custom` authorization type uses user-provided implementation for authorization. As of Strimzi 0.46.0, `opa` type is deprecated and will be removed in the future. Please use `custom` type instead."
url:
type: string
example: http://opa:8181/v1/data/kafka/authz/allow
@@ -897,6 +889,8 @@ spec:
properties:
name:
type: string
request:
type: string
limits:
additionalProperties:
anyOf:
@@ -1043,6 +1037,8 @@ spec:
type: boolean
runAsUser:
type: integer
seLinuxChangePolicy:
type: string
seLinuxOptions:
type: object
properties:
@@ -1065,6 +1061,8 @@ spec:
type: array
items:
type: integer
supplementalGroupsPolicy:
type: string
sysctls:
type: array
items:
@@ -1495,6 +1493,35 @@ spec:
ip:
type: string
description: The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.
dnsPolicy:
type: string
enum:
- ClusterFirst
- ClusterFirstWithHostNet
- Default
- None
description: "The pod's DNSPolicy. Defaults to `ClusterFirst`. Valid values are `ClusterFirstWithHostNet`, `ClusterFirst`, `Default` or `None`."
dnsConfig:
type: object
properties:
nameservers:
type: array
items:
type: string
options:
type: array
items:
type: object
properties:
name:
type: string
value:
type: string
searches:
type: array
items:
type: string
description: "The pod's DNSConfig. If specified, it will be merged to the generated DNS configuration based on the DNSPolicy."
enableServiceLinks:
type: boolean
description: Indicates whether information about services should be injected into Pod's environment variables.
@@ -2302,7 +2329,7 @@ spec:
broker:
type: integer
description: Id of the kafka broker (broker identifier).
description: Overrides for individual brokers. The `overrides` field allows you to specify a different configuration for different brokers.
description: "As of Strimzi 0.46.0, the storage overrides for individual brokers are not supported anymore and this option is ignored."
selector:
additionalProperties:
type: string
@@ -2433,6 +2460,8 @@ spec:
properties:
name:
type: string
request:
type: string
limits:
additionalProperties:
anyOf:
@@ -2597,6 +2626,8 @@ spec:
type: boolean
runAsUser:
type: integer
seLinuxChangePolicy:
type: string
seLinuxOptions:
type: object
properties:
@@ -2619,6 +2650,8 @@ spec:
type: array
items:
type: integer
supplementalGroupsPolicy:
type: string
sysctls:
type: array
items:
@@ -3049,6 +3082,35 @@ spec:
ip:
type: string
description: The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.
dnsPolicy:
type: string
enum:
- ClusterFirst
- ClusterFirstWithHostNet
- Default
- None
description: "The pod's DNSPolicy. Defaults to `ClusterFirst`. Valid values are `ClusterFirstWithHostNet`, `ClusterFirst`, `Default` or `None`."
dnsConfig:
type: object
properties:
nameservers:
type: array
items:
type: string
options:
type: array
items:
type: object
properties:
name:
type: string
value:
type: string
searches:
type: array
items:
type: string
description: "The pod's DNSConfig. If specified, it will be merged to the generated DNS configuration based on the DNSPolicy."
enableServiceLinks:
type: boolean
description: Indicates whether information about services should be injected into Pod's environment variables.
@@ -3444,7 +3506,7 @@ spec:
required:
- replicas
- storage
description: Configuration of the ZooKeeper cluster. This section is required when running a ZooKeeper-based Apache Kafka cluster.
description: "As of Strimzi 0.46.0, ZooKeeper-based Apache Kafka clusters are not supported anymore and this option is ignored."
entityOperator:
type: object
properties:
@@ -3551,6 +3613,8 @@ spec:
properties:
name:
type: string
request:
type: string
limits:
additionalProperties:
anyOf:
@@ -3718,6 +3782,8 @@ spec:
properties:
name:
type: string
request:
type: string
limits:
additionalProperties:
anyOf:
@@ -3815,6 +3881,8 @@ spec:
properties:
name:
type: string
request:
type: string
limits:
additionalProperties:
anyOf:
@@ -3965,6 +4033,8 @@ spec:
type: boolean
runAsUser:
type: integer
seLinuxChangePolicy:
type: string
seLinuxOptions:
type: object
properties:
@@ -3987,6 +4057,8 @@ spec:
type: array
items:
type: integer
supplementalGroupsPolicy:
type: string
sysctls:
type: array
items:
@@ -4417,6 +4489,35 @@ spec:
ip:
type: string
description: The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.
dnsPolicy:
type: string
enum:
- ClusterFirst
- ClusterFirstWithHostNet
- Default
- None
description: "The pod's DNSPolicy. Defaults to `ClusterFirst`. Valid values are `ClusterFirstWithHostNet`, `ClusterFirst`, `Default` or `None`."
dnsConfig:
type: object
properties:
nameservers:
type: array
items:
type: string
options:
type: array
items:
type: object
properties:
name:
type: string
value:
type: string
searches:
type: array
items:
type: string
description: "The pod's DNSConfig. If specified, it will be merged to the generated DNS configuration based on the DNSPolicy."
enableServiceLinks:
type: boolean
description: Indicates whether information about services should be injected into Pod's environment variables.
@@ -5096,6 +5197,8 @@ spec:
properties:
name:
type: string
request:
type: string
limits:
additionalProperties:
anyOf:
@@ -5184,6 +5287,8 @@ spec:
properties:
name:
type: string
request:
type: string
limits:
additionalProperties:
anyOf:
@@ -5384,6 +5489,8 @@ spec:
type: boolean
runAsUser:
type: integer
seLinuxChangePolicy:
type: string
seLinuxOptions:
type: object
properties:
@@ -5406,6 +5513,8 @@ spec:
type: array
items:
type: integer
supplementalGroupsPolicy:
type: string
sysctls:
type: array
items:
@@ -5836,6 +5945,35 @@ spec:
ip:
type: string
description: The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.
dnsPolicy:
type: string
enum:
- ClusterFirst
- ClusterFirstWithHostNet
- Default
- None
description: "The pod's DNSPolicy. Defaults to `ClusterFirst`. Valid values are `ClusterFirstWithHostNet`, `ClusterFirst`, `Default` or `None`."
dnsConfig:
type: object
properties:
nameservers:
type: array
items:
type: string
options:
type: array
items:
type: object
properties:
name:
type: string
value:
type: string
searches:
type: array
items:
type: string
description: "The pod's DNSConfig. If specified, it will be merged to the generated DNS configuration based on the DNSPolicy."
enableServiceLinks:
type: boolean
description: Indicates whether information about services should be injected into Pod's environment variables.
@@ -6501,6 +6639,8 @@ spec:
properties:
name:
type: string
request:
type: string
limits:
additionalProperties:
anyOf:
@@ -6590,6 +6730,8 @@ spec:
type: boolean
runAsUser:
type: integer
seLinuxChangePolicy:
type: string
seLinuxOptions:
type: object
properties:
@@ -6612,6 +6754,8 @@ spec:
type: array
items:
type: integer
supplementalGroupsPolicy:
type: string
sysctls:
type: array
items:
@@ -7042,6 +7186,35 @@ spec:
ip:
type: string
description: The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.
dnsPolicy:
type: string
enum:
- ClusterFirst
- ClusterFirstWithHostNet
- Default
- None
description: "The pod's DNSPolicy. Defaults to `ClusterFirst`. Valid values are `ClusterFirstWithHostNet`, `ClusterFirst`, `Default` or `None`."
dnsConfig:
type: object
properties:
nameservers:
type: array
items:
type: string
options:
type: array
items:
type: object
properties:
name:
type: string
value:
type: string
searches:
type: array
items:
type: string
description: "The pod's DNSConfig. If specified, it will be merged to the generated DNS configuration based on the DNSPolicy."
enableServiceLinks:
type: boolean
description: Indicates whether information about services should be injected into Pod's environment variables.
@@ -7342,6 +7515,8 @@ spec:
properties:
name:
type: string
request:
type: string
limits:
additionalProperties:
anyOf:
@@ -7488,6 +7663,8 @@ spec:
type: boolean
runAsUser:
type: integer
seLinuxChangePolicy:
type: string
seLinuxOptions:
type: object
properties:
@@ -7510,6 +7687,8 @@ spec:
type: array
items:
type: integer
supplementalGroupsPolicy:
type: string
sysctls:
type: array
items:
@@ -7940,6 +8119,35 @@ spec:
ip:
type: string
description: The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.
dnsPolicy:
type: string
enum:
- ClusterFirst
- ClusterFirstWithHostNet
- Default
- None
description: "The pod's DNSPolicy. Defaults to `ClusterFirst`. Valid values are `ClusterFirstWithHostNet`, `ClusterFirst`, `Default` or `None`."
dnsConfig:
type: object
properties:
nameservers:
type: array
items:
type: string
options:
type: array
items:
type: object
properties:
name:
type: string
value:
type: string
searches:
type: array
items:
type: string
description: "The pod's DNSConfig. If specified, it will be merged to the generated DNS configuration based on the DNSPolicy."
enableServiceLinks:
type: boolean
description: Indicates whether information about services should be injected into Pod's environment variables.
@@ -8234,7 +8442,7 @@ spec:
description: "A list of time windows for maintenance tasks (that is, certificates renewal). Each time window is defined by a cron expression."
required:
- kafka
description: "The specification of the Kafka and ZooKeeper clusters, and Topic Operator."
description: The specification of the Kafka cluster.
status:
type: object
properties:
@@ -8329,7 +8537,7 @@ spec:
- KRaftPostMigration
- PreKRaft
- KRaft
description: "Defines where cluster metadata are stored. Possible values are: ZooKeeper if the metadata are stored in ZooKeeper; KRaftMigration if the controllers are connected to ZooKeeper, brokers are being rolled with Zookeeper migration enabled and connection information to controllers, and the metadata migration process is running; KRaftDualWriting if the metadata migration process finished and the cluster is in dual-write mode; KRaftPostMigration if the brokers are fully KRaft-based but controllers being rolled to disconnect from ZooKeeper; PreKRaft if brokers and controller are fully KRaft-based, metadata are stored in KRaft, but ZooKeeper must be deleted; KRaft if the metadata are stored in KRaft."
description: "Defines where cluster metadata are stored. Since Kafka KRaft has been fully adopted, the only applicable value is `KRaft`."
autoRebalance:
type: object
properties:
@@ -8361,4 +8569,4 @@ spec:
description: "List of broker IDs involved in an auto-rebalancing operation related to the current mode. \nThe list contains one of the following: \n\n* Broker IDs for a current auto-rebalance. \n* Broker IDs for a queued auto-rebalance (if a previous auto-rebalance is still in progress). \n"
description: "List of modes where an auto-rebalancing operation is either running or queued. \nEach mode entry (`add-brokers` or `remove-brokers`) includes one of the following: \n\n* Broker IDs for a current auto-rebalance. \n* Broker IDs for a queued auto-rebalance (if a previous rebalance is still in progress)."
description: The status of an auto-rebalancing triggered by a cluster scaling request.
description: "The status of the Kafka and ZooKeeper clusters, and Topic Operator."
description: The status of the Kafka cluster.

View File

@@ -289,6 +289,8 @@ spec:
properties:
name:
type: string
request:
type: string
limits:
additionalProperties:
anyOf:
@@ -573,6 +575,8 @@ spec:
type: boolean
runAsUser:
type: integer
seLinuxChangePolicy:
type: string
seLinuxOptions:
type: object
properties:
@@ -595,6 +599,8 @@ spec:
type: array
items:
type: integer
supplementalGroupsPolicy:
type: string
sysctls:
type: array
items:
@@ -1025,6 +1031,35 @@ spec:
ip:
type: string
description: The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.
dnsPolicy:
type: string
enum:
- ClusterFirst
- ClusterFirstWithHostNet
- Default
- None
description: "The pod's DNSPolicy. Defaults to `ClusterFirst`. Valid values are `ClusterFirstWithHostNet`, `ClusterFirst`, `Default` or `None`."
dnsConfig:
type: object
properties:
nameservers:
type: array
items:
type: string
options:
type: array
items:
type: object
properties:
name:
type: string
value:
type: string
searches:
type: array
items:
type: string
description: "The pod's DNSConfig. If specified, it will be merged to the generated DNS configuration based on the DNSPolicy."
enableServiceLinks:
type: boolean
description: Indicates whether information about services should be injected into Pod's environment variables.
@@ -1586,6 +1621,8 @@ spec:
type: boolean
runAsUser:
type: integer
seLinuxChangePolicy:
type: string
seLinuxOptions:
type: object
properties:
@@ -1608,6 +1645,8 @@ spec:
type: array
items:
type: integer
supplementalGroupsPolicy:
type: string
sysctls:
type: array
items:
@@ -2038,6 +2077,35 @@ spec:
ip:
type: string
description: The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.
dnsPolicy:
type: string
enum:
- ClusterFirst
- ClusterFirstWithHostNet
- Default
- None
description: "The pod's DNSPolicy. Defaults to `ClusterFirst`. Valid values are `ClusterFirstWithHostNet`, `ClusterFirst`, `Default` or `None`."
dnsConfig:
type: object
properties:
nameservers:
type: array
items:
type: string
options:
type: array
items:
type: object
properties:
name:
type: string
value:
type: string
searches:
type: array
items:
type: string
description: "The pod's DNSConfig. If specified, it will be merged to the generated DNS configuration based on the DNSPolicy."
enableServiceLinks:
type: boolean
description: Indicates whether information about services should be injected into Pod's environment variables.
@@ -2466,7 +2534,7 @@ spec:
type: array
items:
type: string
description: "Configures additional options which will be passed to the Kaniko executor when building the new Connect image. Allowed options are: --customPlatform, --custom-platform, --insecure, --insecure-pull, --insecure-registry, --log-format, --log-timestamp, --registry-mirror, --reproducible, --single-snapshot, --skip-tls-verify, --skip-tls-verify-pull, --skip-tls-verify-registry, --verbosity, --snapshotMode, --use-new-run, --registry-certificate, --registry-client-cert. These options will be used only on Kubernetes where the Kaniko executor is used. They will be ignored on OpenShift. The options are described in the link:https://github.com/GoogleContainerTools/kaniko[Kaniko GitHub repository^]. Changing this field does not trigger new build of the Kafka Connect image."
description: "Configures additional options which will be passed to the Kaniko executor when building the new Connect image. Allowed options are: --customPlatform, --custom-platform, --insecure, --insecure-pull, --insecure-registry, --log-format, --log-timestamp, --registry-mirror, --reproducible, --single-snapshot, --skip-tls-verify, --skip-tls-verify-pull, --skip-tls-verify-registry, --verbosity, --snapshotMode, --use-new-run, --registry-certificate, --registry-client-cert, --ignore-path. These options will be used only on Kubernetes where the Kaniko executor is used. They will be ignored on OpenShift. The options are described in the link:https://github.com/GoogleContainerTools/kaniko[Kaniko GitHub repository^]. Changing this field does not trigger new build of the Kafka Connect image."
image:
type: string
description: The name of the image which will be built. Required.
@@ -2548,6 +2616,8 @@ spec:
properties:
name:
type: string
request:
type: string
limits:
additionalProperties:
anyOf:

View File

@@ -104,7 +104,7 @@ spec:
enum:
- allow
- deny
description: The type of the rule. Currently the only supported type is `allow`. ACL rules with type `allow` are used to allow user to execute the specified operations. Default value is `allow`.
description: The type of the rule. ACL rules with type `allow` are used to allow user to execute the specified operations. ACL rules with type `deny` are used to deny user to execute the specified operations. Default value is `allow`.
resource:
type: object
properties:
@@ -335,7 +335,7 @@ spec:
enum:
- allow
- deny
description: The type of the rule. Currently the only supported type is `allow`. ACL rules with type `allow` are used to allow user to execute the specified operations. Default value is `allow`.
description: The type of the rule. ACL rules with type `allow` are used to allow user to execute the specified operations. ACL rules with type `deny` are used to deny user to execute the specified operations. Default value is `allow`.
resource:
type: object
properties:
@@ -566,7 +566,7 @@ spec:
enum:
- allow
- deny
description: The type of the rule. Currently the only supported type is `allow`. ACL rules with type `allow` are used to allow user to execute the specified operations. Default value is `allow`.
description: The type of the rule. ACL rules with type `allow` are used to allow user to execute the specified operations. ACL rules with type `deny` are used to deny user to execute the specified operations. Default value is `allow`.
resource:
type: object
properties:

View File

@@ -91,7 +91,7 @@ spec:
broker:
type: integer
description: Id of the kafka broker (broker identifier).
description: Overrides for individual brokers. The `overrides` field allows you to specify a different configuration for different brokers.
description: "As of Strimzi 0.46.0, the storage overrides for individual brokers are not supported anymore and this option is ignored."
selector:
additionalProperties:
type: string
@@ -142,7 +142,7 @@ spec:
broker:
type: integer
description: Id of the kafka broker (broker identifier).
description: Overrides for individual brokers. The `overrides` field allows you to specify a different configuration for different brokers.
description: "As of Strimzi 0.46.0, the storage overrides for individual brokers are not supported anymore and this option is ignored."
selector:
additionalProperties:
type: string
@@ -174,7 +174,7 @@ spec:
enum:
- controller
- broker
description: "The roles that the nodes in this pool will have when KRaft mode is enabled. Supported values are 'broker' and 'controller'. This field is required. When KRaft mode is disabled, the only allowed value if `broker`."
description: The roles assigned to the node pool. Supported values are `broker` and `controller`. This property is required.
resources:
type: object
properties:
@@ -185,6 +185,8 @@ spec:
properties:
name:
type: string
request:
type: string
limits:
additionalProperties:
anyOf:
@@ -300,6 +302,8 @@ spec:
type: boolean
runAsUser:
type: integer
seLinuxChangePolicy:
type: string
seLinuxOptions:
type: object
properties:
@@ -322,6 +326,8 @@ spec:
type: array
items:
type: integer
supplementalGroupsPolicy:
type: string
sysctls:
type: array
items:
@@ -752,6 +758,35 @@ spec:
ip:
type: string
description: The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.
dnsPolicy:
type: string
enum:
- ClusterFirst
- ClusterFirstWithHostNet
- Default
- None
description: "The pod's DNSPolicy. Defaults to `ClusterFirst`. Valid values are `ClusterFirstWithHostNet`, `ClusterFirst`, `Default` or `None`."
dnsConfig:
type: object
properties:
nameservers:
type: array
items:
type: string
options:
type: array
items:
type: object
properties:
name:
type: string
value:
type: string
searches:
type: array
items:
type: string
description: "The pod's DNSConfig. If specified, it will be merged to the generated DNS configuration based on the DNSPolicy."
enableServiceLinks:
type: boolean
description: Indicates whether information about services should be injected into Pod's environment variables.

View File

@@ -346,6 +346,8 @@ spec:
properties:
name:
type: string
request:
type: string
limits:
additionalProperties:
anyOf:
@@ -562,6 +564,8 @@ spec:
type: boolean
runAsUser:
type: integer
seLinuxChangePolicy:
type: string
seLinuxOptions:
type: object
properties:
@@ -584,6 +588,8 @@ spec:
type: array
items:
type: integer
supplementalGroupsPolicy:
type: string
sysctls:
type: array
items:
@@ -1014,6 +1020,35 @@ spec:
ip:
type: string
description: The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.
dnsPolicy:
type: string
enum:
- ClusterFirst
- ClusterFirstWithHostNet
- Default
- None
description: "The pod's DNSPolicy. Defaults to `ClusterFirst`. Valid values are `ClusterFirstWithHostNet`, `ClusterFirst`, `Default` or `None`."
dnsConfig:
type: object
properties:
nameservers:
type: array
items:
type: string
options:
type: array
items:
type: object
properties:
name:
type: string
value:
type: string
searches:
type: array
items:
type: string
description: "The pod's DNSConfig. If specified, it will be merged to the generated DNS configuration based on the DNSPolicy."
enableServiceLinks:
type: boolean
description: Indicates whether information about services should be injected into Pod's environment variables.

View File

@@ -506,6 +506,8 @@ spec:
properties:
name:
type: string
request:
type: string
limits:
additionalProperties:
anyOf:
@@ -790,6 +792,8 @@ spec:
type: boolean
runAsUser:
type: integer
seLinuxChangePolicy:
type: string
seLinuxOptions:
type: object
properties:
@@ -812,6 +816,8 @@ spec:
type: array
items:
type: integer
supplementalGroupsPolicy:
type: string
sysctls:
type: array
items:
@@ -1242,6 +1248,35 @@ spec:
ip:
type: string
description: The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.
dnsPolicy:
type: string
enum:
- ClusterFirst
- ClusterFirstWithHostNet
- Default
- None
description: "The pod's DNSPolicy. Defaults to `ClusterFirst`. Valid values are `ClusterFirstWithHostNet`, `ClusterFirst`, `Default` or `None`."
dnsConfig:
type: object
properties:
nameservers:
type: array
items:
type: string
options:
type: array
items:
type: object
properties:
name:
type: string
value:
type: string
searches:
type: array
items:
type: string
description: "The pod's DNSConfig. If specified, it will be merged to the generated DNS configuration based on the DNSPolicy."
enableServiceLinks:
type: boolean
description: Indicates whether information about services should be injected into Pod's environment variables.
@@ -1803,6 +1838,8 @@ spec:
type: boolean
runAsUser:
type: integer
seLinuxChangePolicy:
type: string
seLinuxOptions:
type: object
properties:
@@ -1825,6 +1862,8 @@ spec:
type: array
items:
type: integer
supplementalGroupsPolicy:
type: string
sysctls:
type: array
items:
@@ -2255,6 +2294,35 @@ spec:
ip:
type: string
description: The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.
dnsPolicy:
type: string
enum:
- ClusterFirst
- ClusterFirstWithHostNet
- Default
- None
description: "The pod's DNSPolicy. Defaults to `ClusterFirst`. Valid values are `ClusterFirstWithHostNet`, `ClusterFirst`, `Default` or `None`."
dnsConfig:
type: object
properties:
nameservers:
type: array
items:
type: string
options:
type: array
items:
type: object
properties:
name:
type: string
value:
type: string
searches:
type: array
items:
type: string
description: "The pod's DNSConfig. If specified, it will be merged to the generated DNS configuration based on the DNSPolicy."
enableServiceLinks:
type: boolean
description: Indicates whether information about services should be injected into Pod's environment variables.

View File

@@ -220,7 +220,7 @@
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "Bytes/sec",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
@@ -263,7 +263,7 @@
}
]
},
"unit": "bytes"
"unit": "binBps"
},
"overrides": []
},
@@ -317,7 +317,7 @@
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "Bytes/sec",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
@@ -360,7 +360,7 @@
}
]
},
"unit": "bytes"
"unit": "binBps"
},
"overrides": []
},
@@ -557,6 +557,7 @@
},
{
"datasource": "${DS_PROMETHEUS}",
"description": "The number of records that this task has consumed from the source but not yet produced to the target.",
"fieldConfig": {
"defaults": {
"color": {
@@ -658,7 +659,7 @@
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "bytes",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
@@ -700,7 +701,7 @@
}
]
},
"unit": "short"
"unit": "bytes"
},
"overrides": []
},
@@ -740,6 +741,7 @@
},
{
"datasource": "${DS_PROMETHEUS}",
"description": "Time duration that this task takes to commit its offsets to the target.",
"fieldConfig": {
"defaults": {
"color": {
@@ -749,7 +751,7 @@
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "ms",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
@@ -791,7 +793,7 @@
}
]
},
"unit": "short"
"unit": "ms"
},
"overrides": []
},
@@ -831,6 +833,7 @@
},
{
"datasource": "${DS_PROMETHEUS}",
"description": "Time duration between record timestamp in the source topic and the time when the source connector handles the record (aka. MM2 consumer lag time).",
"fieldConfig": {
"defaults": {
"color": {
@@ -894,6 +897,10 @@
{
"id": "custom.width",
"value": 65
},
{
"id": "unit",
"value": "ms"
}
]
},
@@ -918,6 +925,10 @@
{
"id": "custom.width",
"value": 45
},
{
"id": "unit",
"value": "ms"
}
]
},
@@ -930,6 +941,10 @@
{
"id": "custom.width",
"value": 41
},
{
"id": "unit",
"value": "ms"
}
]
},
@@ -1064,6 +1079,7 @@
},
{
"datasource": "${DS_PROMETHEUS}",
"description": "The end to end latency from the record timestamp in the source topic to the time when the record is written successfully to the target cluster.",
"fieldConfig": {
"defaults": {
"color": {
@@ -1126,6 +1142,10 @@
{
"id": "custom.width",
"value": 65
},
{
"id": "unit",
"value": "ms"
}
]
},
@@ -1138,6 +1158,10 @@
{
"id": "custom.width",
"value": 70
},
{
"id": "unit",
"value": "ms"
}
]
},
@@ -1150,6 +1174,10 @@
{
"id": "custom.width",
"value": 45
},
{
"id": "unit",
"value": "ms"
}
]
},
@@ -1162,6 +1190,10 @@
{
"id": "custom.width",
"value": 41
},
{
"id": "unit",
"value": "ms"
}
]
},
@@ -1296,6 +1328,7 @@
},
{
"datasource": "${DS_PROMETHEUS}",
"description": "The latency for synchronizing the consumer groups of the source cluster to the target cluster.",
"fieldConfig": {
"defaults": {
"color": {
@@ -1333,7 +1366,7 @@
"properties": [
{
"id": "unit",
"value": "dtdurationms"
"value": "ms"
},
{
"id": "custom.width",
@@ -1379,7 +1412,7 @@
"refId": "A"
}
],
"title": "Offset Synchronization Latency",
"title": "Consumer Group Offset Sync Latency",
"transformations": [
{
"id": "organize",
@@ -1416,6 +1449,7 @@
},
{
"datasource": "${DS_PROMETHEUS}",
"description": "Consumer lag which in the context of the replication indicates whether the consumer in the source connector can keep up with the rate records are produced in the source.",
"fieldConfig": {
"defaults": {
"color": {
@@ -1425,7 +1459,7 @@
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisLabel": "offset",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
@@ -1506,6 +1540,7 @@
},
{
"datasource": "${DS_PROMETHEUS}",
"description": "Consumer lag which in the context of the replication indicates whether the consumer in the source connector can keep up with the rate records are produced in the source.",
"fieldConfig": {
"defaults": {
"color": {
@@ -2321,6 +2356,6 @@
},
"timezone": "",
"title": "Strimzi Kafka Mirror Maker 2",
"version": 9,
"version": 10,
"weekStart": ""
}

View File

@@ -2383,7 +2383,7 @@
},
"gridPos": {
"h": 8,
"w": 8,
"w": 12,
"x": 0,
"y": 47
},
@@ -2475,8 +2475,8 @@
},
"gridPos": {
"h": 8,
"w": 8,
"x": 8,
"w": 12,
"x": 12,
"y": 47
},
"id": 105,
@@ -2567,9 +2567,9 @@
},
"gridPos": {
"h": 8,
"w": 8,
"x": 16,
"y": 47
"w": 12,
"x": 0,
"y": 55
},
"id": 106,
"options": {
@@ -2636,7 +2636,7 @@
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"x": 12,
"y": 55
},
"id": 91,
@@ -2722,97 +2722,6 @@
}
],
"type": "table"
},
{
"datasource": "${DS_PROMETHEUS}",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "short"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 55
},
"id": 110,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"pluginVersion": "7.4.5",
"targets": [
{
"datasource": "${DS_PROMETHEUS}",
"expr": "sum(kafka_server_zookeeperclientmetrics_zookeeperrequestlatencyms{namespace=\"$kubernetes_namespace\",kubernetes_pod_name=~\"$strimzi_cluster_name-$kafka_broker\",strimzi_io_name=\"$strimzi_cluster_name-kafka\"}) by (kubernetes_pod_name)",
"format": "time_series",
"instant": false,
"intervalFactor": 1,
"legendFormat": "{{kubernetes_pod_name}}",
"refId": "A"
}
],
"title": "ZK request latecy",
"type": "timeseries"
}
],
"refresh": "5s",

View File

@@ -493,13 +493,13 @@
"targets": [
{
"datasource": "${DS_PROMETHEUS}",
"expr": "sum(strimzi_resources{kind=\"KafkaMirrorMaker\"})",
"expr": "sum(strimzi_resources{kind=\"KafkaNodePool\"})",
"format": "time_series",
"intervalFactor": 1,
"refId": "A"
}
],
"title": "Mirror Maker CRs",
"title": "Node Pool CRs",
"type": "stat"
},
{

View File

@@ -69,8 +69,6 @@ rules:
resources:
# The cluster operator needs to access and manage deployments to run deployment based Strimzi components
- deployments
# The cluster operator needs to access and manage stateful sets to run stateful sets based Strimzi components
- statefulsets
# The cluster operator needs to access replica-sets to manage Strimzi components and to determine error states
- replicasets
verbs:

View File

@@ -30,7 +30,6 @@ rules:
- kafkanodepools
- kafkaconnects
- kafkaconnectors
- kafkamirrormakers
- kafkabridges
- kafkamirrormaker2s
- kafkarebalances
@@ -49,7 +48,6 @@ rules:
- kafkanodepools/status
- kafkaconnects/status
- kafkaconnectors/status
- kafkamirrormakers/status
- kafkabridges/status
- kafkamirrormaker2s/status
- kafkarebalances/status
@@ -60,7 +58,7 @@ rules:
- apiGroups:
- "core.strimzi.io"
resources:
# The cluster operator uses StrimziPodSets to manage the Kafka and ZooKeeper pods
# The cluster operator uses StrimziPodSets to manage the Kafka, Kafka Connect, and Kafka MirrorMaker 2 pods
- strimzipodsets
verbs:
- get

View File

@@ -30,10 +30,6 @@ data:
logger.kafka.name = org.apache.kafka
logger.kafka.level = WARN
# Zookeeper is very verbose even on INFO level -> We set it to WARN by default
logger.zookeepertrustmanager.name = org.apache.zookeeper
logger.zookeepertrustmanager.level = WARN
# Keeps separate level for Netty logging -> to not be changed by the root logger
logger.netty.name = io.netty
logger.netty.level = INFO

View File

@@ -21,8 +21,6 @@ rules:
- kafkanodepools/scale
- kafkaconnects
- kafkaconnects/scale
- kafkamirrormakers
- kafkamirrormakers/scale
- kafkausers
- kafkatopics
- kafkabridges

View File

@@ -18,7 +18,6 @@ rules:
- kafkas
- kafkanodepools
- kafkaconnects
- kafkamirrormakers
- kafkausers
- kafkatopics
- kafkabridges

View File

@@ -6,27 +6,19 @@
{{/* 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.9.0")) }}
value: {{ template "strimzi.image" (merge . (dict "key" "kafkaExporter" "tagSuffix" "-kafka-4.0.0")) }}
- name: STRIMZI_DEFAULT_CRUISE_CONTROL_IMAGE
value: {{ template "strimzi.image" (merge . (dict "key" "cruiseControl" "tagSuffix" "-kafka-3.9.0")) }}
value: {{ template "strimzi.image" (merge . (dict "key" "cruiseControl" "tagSuffix" "-kafka-4.0.0")) }}
- name: STRIMZI_KAFKA_IMAGES
value: |
3.8.0={{ template "strimzi.image" (merge . (dict "key" "kafka" "tagSuffix" "-kafka-3.8.0")) }}
3.8.1={{ template "strimzi.image" (merge . (dict "key" "kafka" "tagSuffix" "-kafka-3.8.1")) }}
3.9.0={{ template "strimzi.image" (merge . (dict "key" "kafka" "tagSuffix" "-kafka-3.9.0")) }}
4.0.0={{ template "strimzi.image" (merge . (dict "key" "kafka" "tagSuffix" "-kafka-4.0.0")) }}
- name: STRIMZI_KAFKA_CONNECT_IMAGES
value: |
3.8.0={{ template "strimzi.image" (merge . (dict "key" "kafkaConnect" "tagSuffix" "-kafka-3.8.0")) }}
3.8.1={{ template "strimzi.image" (merge . (dict "key" "kafkaConnect" "tagSuffix" "-kafka-3.8.1")) }}
3.9.0={{ template "strimzi.image" (merge . (dict "key" "kafkaConnect" "tagSuffix" "-kafka-3.9.0")) }}
- name: STRIMZI_KAFKA_MIRROR_MAKER_IMAGES
value: |
3.8.0={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker" "tagSuffix" "-kafka-3.8.0")) }}
3.8.1={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker" "tagSuffix" "-kafka-3.8.1")) }}
3.9.0={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker" "tagSuffix" "-kafka-3.9.0")) }}
4.0.0={{ template "strimzi.image" (merge . (dict "key" "kafkaConnect" "tagSuffix" "-kafka-4.0.0")) }}
- name: STRIMZI_KAFKA_MIRROR_MAKER_2_IMAGES
value: |
3.8.0={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker2" "tagSuffix" "-kafka-3.8.0")) }}
3.8.1={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker2" "tagSuffix" "-kafka-3.8.1")) }}
3.9.0={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker2" "tagSuffix" "-kafka-3.9.0")) }}
4.0.0={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker2" "tagSuffix" "-kafka-4.0.0")) }}
{{- end -}}

View File

@@ -10,7 +10,7 @@ watchAnyNamespace: false
defaultImageRegistry: quay.io
defaultImageRepository: strimzi
defaultImageTag: 0.45.0
defaultImageTag: 0.46.0
image:
registry: ""
@@ -115,18 +115,12 @@ kafkaInit:
repository: ""
name: operator
tag: ""
kafkaMirrorMaker:
image:
registry: ""
repository: ""
name: kafka
tagPrefix: ""
kafkaBridge:
image:
registry: ""
repository:
name: kafka-bridge
tag: 0.31.1
tag: 0.32.0
kafkaExporter:
image:
registry: ""