From 212b2856ba658b789290a95d7d83d26c6a801998 Mon Sep 17 00:00:00 2001 From: Paolo Patierno Date: Fri, 6 Dec 2024 15:21:59 +0100 Subject: [PATCH] Prepare for Strimzi 0.45.0 release Signed-off-by: Paolo Patierno --- .checksums | 6 +- api/pom.xml | 2 +- certificate-manager/pom.xml | 2 +- cluster-operator/pom.xml | 2 +- config-model-generator/pom.xml | 2 +- config-model/pom.xml | 2 +- crd-annotations/pom.xml | 2 +- crd-generator/pom.xml | 2 +- examples/connect/kafka-connect-build.yaml | 6 +- examples/connect/kafka-connect.yaml | 2 +- ...kafka-cruise-control-auto-rebalancing.yaml | 4 +- .../kafka-cruise-control-with-goals.yaml | 4 +- .../cruise-control/kafka-cruise-control.yaml | 4 +- .../kafka-rebalance-remove-disks.yaml | 12 + examples/kafka/kafka-ephemeral-single.yaml | 4 +- examples/kafka/kafka-ephemeral.yaml | 4 +- examples/kafka/kafka-jbod.yaml | 4 +- examples/kafka/kafka-persistent-single.yaml | 4 +- examples/kafka/kafka-persistent.yaml | 4 +- examples/kafka/kafka-with-node-pools.yaml | 4 +- examples/kafka/kraft/kafka-ephemeral.yaml | 4 +- examples/kafka/kraft/kafka-jbod.yaml | 4 +- examples/kafka/kraft/kafka-single-node.yaml | 4 +- .../kraft/kafka-with-dual-role-nodes.yaml | 4 +- examples/kafka/kraft/kafka.yaml | 4 +- examples/metrics/kafka-connect-metrics.yaml | 2 +- .../metrics/kafka-cruise-control-metrics.yaml | 4 +- examples/metrics/kafka-metrics.yaml | 4 +- .../metrics/kafka-mirror-maker-2-metrics.yaml | 2 +- ...ror-maker-2-custom-replication-policy.yaml | 2 +- .../kafka-mirror-maker-2-sync-groups.yaml | 2 +- .../kafka-mirror-maker-2-tls.yaml | 2 +- .../mirror-maker/kafka-mirror-maker-2.yaml | 2 +- .../mirror-maker/kafka-mirror-maker-tls.yaml | 2 +- examples/mirror-maker/kafka-mirror-maker.yaml | 2 +- examples/mirror-maker/kafka-source.yaml | 4 +- examples/mirror-maker/kafka-target.yaml | 4 +- .../security/keycloak-authorization/README.md | 2 +- ...l-oauth-single-keycloak-authz-metrics.yaml | 4 +- ...ephemeral-oauth-single-keycloak-authz.yaml | 4 +- .../security/scram-sha-512-auth/connect.yaml | 2 +- .../security/scram-sha-512-auth/kafka.yaml | 4 +- .../scram-sha-512-auth/mirror-maker-2.yaml | 10 +- examples/security/tls-auth/connect.yaml | 2 +- examples/security/tls-auth/kafka.yaml | 4 +- .../security/tls-auth/mirror-maker-2.yaml | 10 +- .../helm3/strimzi-kafka-operator/README.md | 15 +- .../crds/040-Crd-kafka.yaml | 126 + .../crds/041-Crd-kafkaconnect.yaml | 42 +- .../crds/045-Crd-kafkamirrormaker.yaml | 20 + .../crds/046-Crd-kafkabridge.yaml | 20 + .../crds/048-Crd-kafkamirrormaker2.yaml | 40 + .../crds/049-Crd-kafkarebalance.yaml | 19 +- .../crds/04A-Crd-kafkanodepool.yaml | 2229 +++++++++-------- .../templates/_kafka_image_map.tpl | 20 +- .../helm3/strimzi-kafka-operator/values.yaml | 4 +- install/cluster-operator/040-Crd-kafka.yaml | 126 + .../041-Crd-kafkaconnect.yaml | 42 +- .../045-Crd-kafkamirrormaker.yaml | 20 + .../cluster-operator/046-Crd-kafkabridge.yaml | 20 + .../048-Crd-kafkamirrormaker2.yaml | 40 + .../049-Crd-kafkarebalance.yaml | 19 +- .../04A-Crd-kafkanodepool.yaml | 20 + ...0-Deployment-strimzi-cluster-operator.yaml | 42 +- .../05-Deployment-strimzi-topic-operator.yaml | 2 +- .../05-Deployment-strimzi-user-operator.yaml | 2 +- kafka-agent/pom.xml | 2 +- kafka-init/pom.xml | 2 +- mirror-maker-agent/pom.xml | 2 +- mockkube/pom.xml | 2 +- operator-common/pom.xml | 2 +- .../security/keycloak-authorization/README.md | 2 +- .../helm3/strimzi-kafka-operator/README.md | 2 +- .../helm3/strimzi-kafka-operator/values.yaml | 2 +- ...0-Deployment-strimzi-cluster-operator.yaml | 40 +- .../05-Deployment-strimzi-topic-operator.yaml | 2 +- .../05-Deployment-strimzi-user-operator.yaml | 2 +- pom.xml | 2 +- release.version | 2 +- systemtest/pom.xml | 2 +- test/pom.xml | 2 +- topic-operator/pom.xml | 2 +- tracing-agent/pom.xml | 2 +- user-operator/pom.xml | 2 +- 84 files changed, 1844 insertions(+), 1268 deletions(-) create mode 100644 examples/cruise-control/kafka-rebalance-remove-disks.yaml diff --git a/.checksums b/.checksums index adf89c3a00d..b28386eca98 100644 --- a/.checksums +++ b/.checksums @@ -6,7 +6,7 @@ # if this checksum has changed as part of any non-release specific changes, please apply your changes to the # development version of the helm charts in ./packaging/helm-charts ### IMPORTANT ### -HELM_CHART_CHECKSUM="50e2ee0738ebfd558fa2e35c189b3abb5e3a5663 -" +HELM_CHART_CHECKSUM="136da6359a2b29c9aaf96fb3f0288aa379743e83 -" ### IMPORTANT ### # if the below line has changed, this means the ./install directory has changed @@ -14,7 +14,7 @@ HELM_CHART_CHECKSUM="50e2ee0738ebfd558fa2e35c189b3abb5e3a5663 -" # if this checksum has changed as part of any non-release specific changes, please apply your changes to the # development version of the helm charts in ./packaging/install ### IMPORTANT ### -INSTALL_CHECKSUM="4e3bc4774c0d1803e895d42e22d792364b2f14c5 -" +INSTALL_CHECKSUM="375c9b558fa0b01b0e7e77ebc49f975a83ec4526 -" ### IMPORTANT ### # if the below line has changed, this means the ./examples directory has changed @@ -22,4 +22,4 @@ INSTALL_CHECKSUM="4e3bc4774c0d1803e895d42e22d792364b2f14c5 -" # if this checksum has changed as part of any non-release specific changes, please apply your changes to the # development version of the helm charts in ./packaging/examples ### IMPORTANT ### -EXAMPLES_CHECKSUM="2bbd52b17af9b7ef63731b4a0a81165b182d77e6 -" +EXAMPLES_CHECKSUM="8b8d688379102e88c258a5f164ab7b878869982f -" diff --git a/api/pom.xml b/api/pom.xml index 19dd6a3a343..b720076f392 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -4,7 +4,7 @@ io.strimzi strimzi - 0.45.0-SNAPSHOT + 0.45.0 4.0.0 api diff --git a/certificate-manager/pom.xml b/certificate-manager/pom.xml index 26303d0e50d..66ee3692fa3 100644 --- a/certificate-manager/pom.xml +++ b/certificate-manager/pom.xml @@ -5,7 +5,7 @@ strimzi io.strimzi - 0.45.0-SNAPSHOT + 0.45.0 4.0.0 certificate-manager diff --git a/cluster-operator/pom.xml b/cluster-operator/pom.xml index d2470f945cd..e948854f86a 100644 --- a/cluster-operator/pom.xml +++ b/cluster-operator/pom.xml @@ -4,7 +4,7 @@ io.strimzi strimzi - 0.45.0-SNAPSHOT + 0.45.0 4.0.0 cluster-operator diff --git a/config-model-generator/pom.xml b/config-model-generator/pom.xml index a93bff82ca0..43d2931809d 100644 --- a/config-model-generator/pom.xml +++ b/config-model-generator/pom.xml @@ -5,7 +5,7 @@ strimzi io.strimzi - 0.45.0-SNAPSHOT + 0.45.0 4.0.0 diff --git a/config-model/pom.xml b/config-model/pom.xml index 0fde55664d2..942205840ba 100644 --- a/config-model/pom.xml +++ b/config-model/pom.xml @@ -5,7 +5,7 @@ strimzi io.strimzi - 0.45.0-SNAPSHOT + 0.45.0 4.0.0 diff --git a/crd-annotations/pom.xml b/crd-annotations/pom.xml index d4d8eb17b40..50be0432280 100644 --- a/crd-annotations/pom.xml +++ b/crd-annotations/pom.xml @@ -5,7 +5,7 @@ strimzi io.strimzi - 0.45.0-SNAPSHOT + 0.45.0 4.0.0 diff --git a/crd-generator/pom.xml b/crd-generator/pom.xml index e1004dca484..ae0df0099db 100644 --- a/crd-generator/pom.xml +++ b/crd-generator/pom.xml @@ -5,7 +5,7 @@ strimzi io.strimzi - 0.45.0-SNAPSHOT + 0.45.0 4.0.0 crd-generator diff --git a/examples/connect/kafka-connect-build.yaml b/examples/connect/kafka-connect-build.yaml index d85ae7bc6c0..56043fe5f1b 100644 --- a/examples/connect/kafka-connect-build.yaml +++ b/examples/connect/kafka-connect-build.yaml @@ -8,7 +8,7 @@ metadata: # # needing to call the Connect REST API directly # strimzi.io/use-connector-resources: "true" spec: - version: 3.8.0 + version: 3.9.0 replicas: 1 bootstrapServers: my-cluster-kafka-bootstrap:9093 tls: @@ -33,11 +33,11 @@ spec: # it should not happen that you pull someone else's container image. However, we # recommend changing this to your own container registry or using a different # image name for any other than demo purposes. - image: ttl.sh/strimzi-connect-example-3.8.0:24h + image: ttl.sh/strimzi-connect-example-3.9.0:24h plugins: - name: kafka-connect-file artifacts: - type: maven group: org.apache.kafka artifact: connect-file - version: 3.8.0 + version: 3.9.0 diff --git a/examples/connect/kafka-connect.yaml b/examples/connect/kafka-connect.yaml index b52eedc5fc1..7e09dab8f56 100644 --- a/examples/connect/kafka-connect.yaml +++ b/examples/connect/kafka-connect.yaml @@ -8,7 +8,7 @@ metadata: # # needing to call the Connect REST API directly # strimzi.io/use-connector-resources: "true" spec: - version: 3.8.0 + version: 3.9.0 replicas: 1 bootstrapServers: my-cluster-kafka-bootstrap:9093 tls: diff --git a/examples/cruise-control/kafka-cruise-control-auto-rebalancing.yaml b/examples/cruise-control/kafka-cruise-control-auto-rebalancing.yaml index 712cdda8328..8f58102fe17 100644 --- a/examples/cruise-control/kafka-cruise-control-auto-rebalancing.yaml +++ b/examples/cruise-control/kafka-cruise-control-auto-rebalancing.yaml @@ -4,7 +4,7 @@ metadata: name: my-cluster spec: kafka: - version: 3.8.0 + version: 3.9.0 replicas: 3 listeners: - name: plain @@ -21,7 +21,7 @@ spec: transaction.state.log.min.isr: 2 default.replication.factor: 3 min.insync.replicas: 2 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: ephemeral zookeeper: diff --git a/examples/cruise-control/kafka-cruise-control-with-goals.yaml b/examples/cruise-control/kafka-cruise-control-with-goals.yaml index e4909b78b54..8cf8bcb8ce6 100644 --- a/examples/cruise-control/kafka-cruise-control-with-goals.yaml +++ b/examples/cruise-control/kafka-cruise-control-with-goals.yaml @@ -4,7 +4,7 @@ metadata: name: my-cluster spec: kafka: - version: 3.8.0 + version: 3.9.0 replicas: 3 listeners: - name: plain @@ -21,7 +21,7 @@ spec: transaction.state.log.min.isr: 2 default.replication.factor: 3 min.insync.replicas: 2 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: ephemeral zookeeper: diff --git a/examples/cruise-control/kafka-cruise-control.yaml b/examples/cruise-control/kafka-cruise-control.yaml index 0fc8051a387..18c216fa6b7 100644 --- a/examples/cruise-control/kafka-cruise-control.yaml +++ b/examples/cruise-control/kafka-cruise-control.yaml @@ -4,7 +4,7 @@ metadata: name: my-cluster spec: kafka: - version: 3.8.0 + version: 3.9.0 replicas: 3 listeners: - name: plain @@ -21,7 +21,7 @@ spec: transaction.state.log.min.isr: 2 default.replication.factor: 3 min.insync.replicas: 2 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: ephemeral zookeeper: diff --git a/examples/cruise-control/kafka-rebalance-remove-disks.yaml b/examples/cruise-control/kafka-rebalance-remove-disks.yaml new file mode 100644 index 00000000000..feb07f9eff2 --- /dev/null +++ b/examples/cruise-control/kafka-rebalance-remove-disks.yaml @@ -0,0 +1,12 @@ +apiVersion: kafka.strimzi.io/v1beta2 +kind: KafkaRebalance +metadata: + name: my-rebalance + labels: + strimzi.io/cluster: my-cluster +# no goals specified, using the default goals from the Cruise Control configuration +spec: + mode: remove-disks + moveReplicasOffVolumes: + - brokerId: 0 + volumeIds: [1] diff --git a/examples/kafka/kafka-ephemeral-single.yaml b/examples/kafka/kafka-ephemeral-single.yaml index 8d0b9377fa8..7aa5f954bd7 100644 --- a/examples/kafka/kafka-ephemeral-single.yaml +++ b/examples/kafka/kafka-ephemeral-single.yaml @@ -4,7 +4,7 @@ metadata: name: my-cluster spec: kafka: - version: 3.8.0 + version: 3.9.0 replicas: 1 listeners: - name: plain @@ -21,7 +21,7 @@ spec: transaction.state.log.min.isr: 1 default.replication.factor: 1 min.insync.replicas: 1 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: ephemeral zookeeper: diff --git a/examples/kafka/kafka-ephemeral.yaml b/examples/kafka/kafka-ephemeral.yaml index 7dc41ff1a17..b2b82607b5b 100644 --- a/examples/kafka/kafka-ephemeral.yaml +++ b/examples/kafka/kafka-ephemeral.yaml @@ -4,7 +4,7 @@ metadata: name: my-cluster spec: kafka: - version: 3.8.0 + version: 3.9.0 replicas: 3 listeners: - name: plain @@ -21,7 +21,7 @@ spec: transaction.state.log.min.isr: 2 default.replication.factor: 3 min.insync.replicas: 2 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: ephemeral zookeeper: diff --git a/examples/kafka/kafka-jbod.yaml b/examples/kafka/kafka-jbod.yaml index 321ebaa3926..d6a92f34dde 100644 --- a/examples/kafka/kafka-jbod.yaml +++ b/examples/kafka/kafka-jbod.yaml @@ -4,7 +4,7 @@ metadata: name: my-cluster spec: kafka: - version: 3.8.0 + version: 3.9.0 replicas: 3 listeners: - name: plain @@ -21,7 +21,7 @@ spec: transaction.state.log.min.isr: 2 default.replication.factor: 3 min.insync.replicas: 2 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: jbod volumes: diff --git a/examples/kafka/kafka-persistent-single.yaml b/examples/kafka/kafka-persistent-single.yaml index cb1ffdce8af..488fd8a5b7e 100644 --- a/examples/kafka/kafka-persistent-single.yaml +++ b/examples/kafka/kafka-persistent-single.yaml @@ -4,7 +4,7 @@ metadata: name: my-cluster spec: kafka: - version: 3.8.0 + version: 3.9.0 replicas: 1 listeners: - name: plain @@ -21,7 +21,7 @@ spec: transaction.state.log.min.isr: 1 default.replication.factor: 1 min.insync.replicas: 1 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: jbod volumes: diff --git a/examples/kafka/kafka-persistent.yaml b/examples/kafka/kafka-persistent.yaml index dcec81416f7..0913e65d259 100644 --- a/examples/kafka/kafka-persistent.yaml +++ b/examples/kafka/kafka-persistent.yaml @@ -4,7 +4,7 @@ metadata: name: my-cluster spec: kafka: - version: 3.8.0 + version: 3.9.0 replicas: 3 listeners: - name: plain @@ -21,7 +21,7 @@ spec: transaction.state.log.min.isr: 2 default.replication.factor: 3 min.insync.replicas: 2 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: jbod volumes: diff --git a/examples/kafka/kafka-with-node-pools.yaml b/examples/kafka/kafka-with-node-pools.yaml index 3811a75f063..0f157dc59df 100644 --- a/examples/kafka/kafka-with-node-pools.yaml +++ b/examples/kafka/kafka-with-node-pools.yaml @@ -44,7 +44,7 @@ metadata: strimzi.io/node-pools: enabled spec: kafka: - version: 3.8.0 + version: 3.9.0 listeners: - name: plain port: 9092 @@ -60,7 +60,7 @@ spec: transaction.state.log.min.isr: 2 default.replication.factor: 3 min.insync.replicas: 2 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" zookeeper: replicas: 3 storage: diff --git a/examples/kafka/kraft/kafka-ephemeral.yaml b/examples/kafka/kraft/kafka-ephemeral.yaml index a210f3ff356..cf0219a9ef3 100644 --- a/examples/kafka/kraft/kafka-ephemeral.yaml +++ b/examples/kafka/kraft/kafka-ephemeral.yaml @@ -43,8 +43,8 @@ metadata: strimzi.io/kraft: enabled spec: kafka: - version: 3.8.0 - metadataVersion: 3.8-IV0 + version: 3.9.0 + metadataVersion: 3.9-IV0 listeners: - name: plain port: 9092 diff --git a/examples/kafka/kraft/kafka-jbod.yaml b/examples/kafka/kraft/kafka-jbod.yaml index 9e8c7ccd8f7..ef8a557dc4e 100644 --- a/examples/kafka/kraft/kafka-jbod.yaml +++ b/examples/kafka/kraft/kafka-jbod.yaml @@ -52,8 +52,8 @@ metadata: strimzi.io/kraft: enabled spec: kafka: - version: 3.8.0 - metadataVersion: 3.8-IV0 + version: 3.9.0 + metadataVersion: 3.9-IV0 listeners: - name: plain port: 9092 diff --git a/examples/kafka/kraft/kafka-single-node.yaml b/examples/kafka/kraft/kafka-single-node.yaml index 8ba85270117..70d35563932 100644 --- a/examples/kafka/kraft/kafka-single-node.yaml +++ b/examples/kafka/kraft/kafka-single-node.yaml @@ -28,8 +28,8 @@ metadata: strimzi.io/kraft: enabled spec: kafka: - version: 3.8.0 - metadataVersion: 3.8-IV0 + version: 3.9.0 + metadataVersion: 3.9-IV0 listeners: - name: plain port: 9092 diff --git a/examples/kafka/kraft/kafka-with-dual-role-nodes.yaml b/examples/kafka/kraft/kafka-with-dual-role-nodes.yaml index 2720a6c0c0d..a164f98adfe 100644 --- a/examples/kafka/kraft/kafka-with-dual-role-nodes.yaml +++ b/examples/kafka/kraft/kafka-with-dual-role-nodes.yaml @@ -28,8 +28,8 @@ metadata: strimzi.io/kraft: enabled spec: kafka: - version: 3.8.0 - metadataVersion: 3.8-IV0 + version: 3.9.0 + metadataVersion: 3.9-IV0 listeners: - name: plain port: 9092 diff --git a/examples/kafka/kraft/kafka.yaml b/examples/kafka/kraft/kafka.yaml index 1367a45c566..00c88bad75c 100644 --- a/examples/kafka/kraft/kafka.yaml +++ b/examples/kafka/kraft/kafka.yaml @@ -47,8 +47,8 @@ metadata: strimzi.io/kraft: enabled spec: kafka: - version: 3.8.0 - metadataVersion: 3.8-IV0 + version: 3.9.0 + metadataVersion: 3.9-IV0 listeners: - name: plain port: 9092 diff --git a/examples/metrics/kafka-connect-metrics.yaml b/examples/metrics/kafka-connect-metrics.yaml index a92d5ef6dd4..56d25cbc784 100644 --- a/examples/metrics/kafka-connect-metrics.yaml +++ b/examples/metrics/kafka-connect-metrics.yaml @@ -5,7 +5,7 @@ metadata: labels: app: my-connect-cluster spec: - version: 3.8.0 + version: 3.9.0 replicas: 1 bootstrapServers: my-cluster-kafka-bootstrap:9092 metricsConfig: diff --git a/examples/metrics/kafka-cruise-control-metrics.yaml b/examples/metrics/kafka-cruise-control-metrics.yaml index 323f8a50fe4..e9bd6b90cc9 100644 --- a/examples/metrics/kafka-cruise-control-metrics.yaml +++ b/examples/metrics/kafka-cruise-control-metrics.yaml @@ -4,7 +4,7 @@ metadata: name: my-cluster spec: kafka: - version: 3.8.0 + version: 3.9.0 replicas: 3 listeners: - name: plain @@ -19,7 +19,7 @@ spec: offsets.topic.replication.factor: 3 transaction.state.log.replication.factor: 3 transaction.state.log.min.isr: 2 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: ephemeral zookeeper: diff --git a/examples/metrics/kafka-metrics.yaml b/examples/metrics/kafka-metrics.yaml index 50d6401ae15..2ffa9840209 100644 --- a/examples/metrics/kafka-metrics.yaml +++ b/examples/metrics/kafka-metrics.yaml @@ -4,7 +4,7 @@ metadata: name: my-cluster spec: kafka: - version: 3.8.0 + version: 3.9.0 replicas: 3 listeners: - name: plain @@ -21,7 +21,7 @@ spec: transaction.state.log.min.isr: 2 default.replication.factor: 3 min.insync.replicas: 2 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: jbod volumes: diff --git a/examples/metrics/kafka-mirror-maker-2-metrics.yaml b/examples/metrics/kafka-mirror-maker-2-metrics.yaml index aba1da3ce18..e71ceceee62 100644 --- a/examples/metrics/kafka-mirror-maker-2-metrics.yaml +++ b/examples/metrics/kafka-mirror-maker-2-metrics.yaml @@ -5,7 +5,7 @@ metadata: labels: app: my-mm2-cluster spec: - version: 3.8.0 + version: 3.9.0 replicas: 1 connectCluster: "my-cluster-target" clusters: diff --git a/examples/mirror-maker/kafka-mirror-maker-2-custom-replication-policy.yaml b/examples/mirror-maker/kafka-mirror-maker-2-custom-replication-policy.yaml index 7ff097e84ee..1772c82614d 100644 --- a/examples/mirror-maker/kafka-mirror-maker-2-custom-replication-policy.yaml +++ b/examples/mirror-maker/kafka-mirror-maker-2-custom-replication-policy.yaml @@ -3,7 +3,7 @@ kind: KafkaMirrorMaker2 metadata: name: my-mirror-maker-2 spec: - version: 3.8.0 + version: 3.9.0 replicas: 1 connectCluster: "cluster-b" # Must be the target custer clusters: diff --git a/examples/mirror-maker/kafka-mirror-maker-2-sync-groups.yaml b/examples/mirror-maker/kafka-mirror-maker-2-sync-groups.yaml index bf78aae2afd..2c44f7de22b 100644 --- a/examples/mirror-maker/kafka-mirror-maker-2-sync-groups.yaml +++ b/examples/mirror-maker/kafka-mirror-maker-2-sync-groups.yaml @@ -3,7 +3,7 @@ kind: KafkaMirrorMaker2 metadata: name: my-mirror-maker-2 spec: - version: 3.8.0 + version: 3.9.0 replicas: 1 connectCluster: "cluster-b" # Must be the target custer clusters: diff --git a/examples/mirror-maker/kafka-mirror-maker-2-tls.yaml b/examples/mirror-maker/kafka-mirror-maker-2-tls.yaml index 4e509fcf383..38f1cf9aaaf 100644 --- a/examples/mirror-maker/kafka-mirror-maker-2-tls.yaml +++ b/examples/mirror-maker/kafka-mirror-maker-2-tls.yaml @@ -3,7 +3,7 @@ kind: KafkaMirrorMaker2 metadata: name: my-mirror-maker-2 spec: - version: 3.8.0 + version: 3.9.0 replicas: 1 connectCluster: "cluster-b" # Must be the target custer clusters: diff --git a/examples/mirror-maker/kafka-mirror-maker-2.yaml b/examples/mirror-maker/kafka-mirror-maker-2.yaml index 4106948424b..e583a0c9dcd 100644 --- a/examples/mirror-maker/kafka-mirror-maker-2.yaml +++ b/examples/mirror-maker/kafka-mirror-maker-2.yaml @@ -3,7 +3,7 @@ kind: KafkaMirrorMaker2 metadata: name: my-mirror-maker-2 spec: - version: 3.8.0 + version: 3.9.0 replicas: 1 connectCluster: "cluster-b" # Must be the target custer clusters: diff --git a/examples/mirror-maker/kafka-mirror-maker-tls.yaml b/examples/mirror-maker/kafka-mirror-maker-tls.yaml index c2efe3a703b..21b54d602ed 100644 --- a/examples/mirror-maker/kafka-mirror-maker-tls.yaml +++ b/examples/mirror-maker/kafka-mirror-maker-tls.yaml @@ -3,7 +3,7 @@ kind: KafkaMirrorMaker metadata: name: my-mirror-maker spec: - version: 3.8.0 + version: 3.9.0 replicas: 1 consumer: bootstrapServers: cluster-a-kafka-bootstrap:9093 # Source cluster diff --git a/examples/mirror-maker/kafka-mirror-maker.yaml b/examples/mirror-maker/kafka-mirror-maker.yaml index 04246f35297..83997636d9f 100644 --- a/examples/mirror-maker/kafka-mirror-maker.yaml +++ b/examples/mirror-maker/kafka-mirror-maker.yaml @@ -3,7 +3,7 @@ kind: KafkaMirrorMaker metadata: name: my-mirror-maker spec: - version: 3.8.0 + version: 3.9.0 replicas: 1 consumer: bootstrapServers: cluster-a-kafka-bootstrap:9092 # Source cluster diff --git a/examples/mirror-maker/kafka-source.yaml b/examples/mirror-maker/kafka-source.yaml index c381610b8c5..579e6a65165 100644 --- a/examples/mirror-maker/kafka-source.yaml +++ b/examples/mirror-maker/kafka-source.yaml @@ -4,7 +4,7 @@ metadata: name: cluster-a spec: kafka: - version: 3.8.0 + version: 3.9.0 replicas: 1 listeners: - name: plain @@ -21,7 +21,7 @@ spec: transaction.state.log.min.isr: 1 default.replication.factor: 1 min.insync.replicas: 1 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: jbod volumes: diff --git a/examples/mirror-maker/kafka-target.yaml b/examples/mirror-maker/kafka-target.yaml index 43ede887f34..a32cb4a6209 100644 --- a/examples/mirror-maker/kafka-target.yaml +++ b/examples/mirror-maker/kafka-target.yaml @@ -4,7 +4,7 @@ metadata: name: cluster-b spec: kafka: - version: 3.8.0 + version: 3.9.0 replicas: 1 listeners: - name: plain @@ -21,7 +21,7 @@ spec: transaction.state.log.min.isr: 1 default.replication.factor: 1 min.insync.replicas: 1 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: jbod volumes: diff --git a/examples/security/keycloak-authorization/README.md b/examples/security/keycloak-authorization/README.md index 1dd3886e0cb..eca740fb0b1 100644 --- a/examples/security/keycloak-authorization/README.md +++ b/examples/security/keycloak-authorization/README.md @@ -13,7 +13,7 @@ Full instructions for the example are available in the [Strimzi Documentation](h - The Keycloak realm export file - [kafka-ephemeral-oauth-single-keycloak-authz.yaml](./kafka-ephemeral-oauth-single-keycloak-authz.yaml) - The Kafka CR that defines a single-node Kafka cluster with `oauth` authentication and `keycloak` authorization, - using the `kafka-authz` realm. See [full example instructions](https://strimzi.io/docs/operators/0.44.0/configuring.html#proc-oauth-authorization-keycloak-example_str) for proper preparation and deployment. + using the `kafka-authz` realm. See [full example instructions](https://strimzi.io/docs/operators/0.45.0/configuring.html#proc-oauth-authorization-keycloak-example_str) for proper preparation and deployment. - [kafka-ephemeral-oauth-single-keycloak-authz-metrics.yaml](./kafka-ephemeral-oauth-single-keycloak-authz-metrics.yaml) - The Kafka CR that defines a single-node Kafka cluster with `oauth` authentication and `keycloak` authorization, with included configuration for exporting the OAuth metrics using Prometheus JMX exporter. diff --git a/examples/security/keycloak-authorization/kafka-ephemeral-oauth-single-keycloak-authz-metrics.yaml b/examples/security/keycloak-authorization/kafka-ephemeral-oauth-single-keycloak-authz-metrics.yaml index 0dddb964102..a4b117719c4 100644 --- a/examples/security/keycloak-authorization/kafka-ephemeral-oauth-single-keycloak-authz-metrics.yaml +++ b/examples/security/keycloak-authorization/kafka-ephemeral-oauth-single-keycloak-authz-metrics.yaml @@ -4,7 +4,7 @@ metadata: name: my-cluster spec: kafka: - version: 3.8.0 + version: 3.9.0 replicas: 1 listeners: - name: tls @@ -42,7 +42,7 @@ spec: offsets.topic.replication.factor: 1 transaction.state.log.replication.factor: 1 transaction.state.log.min.isr: 1 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: ephemeral metricsConfig: diff --git a/examples/security/keycloak-authorization/kafka-ephemeral-oauth-single-keycloak-authz.yaml b/examples/security/keycloak-authorization/kafka-ephemeral-oauth-single-keycloak-authz.yaml index c61b0d167f6..f76f556b415 100644 --- a/examples/security/keycloak-authorization/kafka-ephemeral-oauth-single-keycloak-authz.yaml +++ b/examples/security/keycloak-authorization/kafka-ephemeral-oauth-single-keycloak-authz.yaml @@ -4,7 +4,7 @@ metadata: name: my-cluster spec: kafka: - version: 3.8.0 + version: 3.9.0 replicas: 1 listeners: - name: tls @@ -40,7 +40,7 @@ spec: offsets.topic.replication.factor: 1 transaction.state.log.replication.factor: 1 transaction.state.log.min.isr: 1 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: ephemeral zookeeper: diff --git a/examples/security/scram-sha-512-auth/connect.yaml b/examples/security/scram-sha-512-auth/connect.yaml index db55946f969..00ae3587379 100644 --- a/examples/security/scram-sha-512-auth/connect.yaml +++ b/examples/security/scram-sha-512-auth/connect.yaml @@ -66,7 +66,7 @@ metadata: # # needing to call the Connect REST API directly # strimzi.io/use-connector-resources: "true" spec: - version: 3.8.0 + version: 3.9.0 replicas: 1 bootstrapServers: my-cluster-kafka-bootstrap:9093 tls: diff --git a/examples/security/scram-sha-512-auth/kafka.yaml b/examples/security/scram-sha-512-auth/kafka.yaml index 9b02e319ddb..cd56c946043 100644 --- a/examples/security/scram-sha-512-auth/kafka.yaml +++ b/examples/security/scram-sha-512-auth/kafka.yaml @@ -4,7 +4,7 @@ metadata: name: my-cluster spec: kafka: - version: 3.8.0 + version: 3.9.0 replicas: 3 listeners: - name: tls @@ -21,7 +21,7 @@ spec: transaction.state.log.min.isr: 2 default.replication.factor: 3 min.insync.replicas: 2 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: jbod volumes: diff --git a/examples/security/scram-sha-512-auth/mirror-maker-2.yaml b/examples/security/scram-sha-512-auth/mirror-maker-2.yaml index a4dd87c5cb6..72a691e7427 100644 --- a/examples/security/scram-sha-512-auth/mirror-maker-2.yaml +++ b/examples/security/scram-sha-512-auth/mirror-maker-2.yaml @@ -4,7 +4,7 @@ metadata: name: cluster-a spec: kafka: - version: 3.8.0 + version: 3.9.0 replicas: 1 listeners: - name: tls @@ -21,7 +21,7 @@ spec: transaction.state.log.min.isr: 1 default.replication.factor: 1 min.insync.replicas: 1 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: jbod volumes: @@ -46,7 +46,7 @@ metadata: name: cluster-b spec: kafka: - version: 3.8.0 + version: 3.9.0 replicas: 1 listeners: - name: tls @@ -63,7 +63,7 @@ spec: transaction.state.log.min.isr: 1 default.replication.factor: 1 min.insync.replicas: 1 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: jbod volumes: @@ -218,7 +218,7 @@ kind: KafkaMirrorMaker2 metadata: name: my-mirror-maker-2 spec: - version: 3.8.0 + version: 3.9.0 replicas: 1 connectCluster: "cluster-b" # Must be the target custer clusters: diff --git a/examples/security/tls-auth/connect.yaml b/examples/security/tls-auth/connect.yaml index a315b1cb379..48d9dcced08 100644 --- a/examples/security/tls-auth/connect.yaml +++ b/examples/security/tls-auth/connect.yaml @@ -66,7 +66,7 @@ metadata: # # needing to call the Connect REST API directly # strimzi.io/use-connector-resources: "true" spec: - version: 3.8.0 + version: 3.9.0 replicas: 1 bootstrapServers: my-cluster-kafka-bootstrap:9093 tls: diff --git a/examples/security/tls-auth/kafka.yaml b/examples/security/tls-auth/kafka.yaml index cce0ae9b44d..c38d03440b5 100644 --- a/examples/security/tls-auth/kafka.yaml +++ b/examples/security/tls-auth/kafka.yaml @@ -4,7 +4,7 @@ metadata: name: my-cluster spec: kafka: - version: 3.8.0 + version: 3.9.0 replicas: 3 listeners: - name: tls @@ -21,7 +21,7 @@ spec: transaction.state.log.min.isr: 2 default.replication.factor: 3 min.insync.replicas: 2 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: jbod volumes: diff --git a/examples/security/tls-auth/mirror-maker-2.yaml b/examples/security/tls-auth/mirror-maker-2.yaml index 7e963db9a40..0a9375f8988 100644 --- a/examples/security/tls-auth/mirror-maker-2.yaml +++ b/examples/security/tls-auth/mirror-maker-2.yaml @@ -4,7 +4,7 @@ metadata: name: cluster-a spec: kafka: - version: 3.8.0 + version: 3.9.0 replicas: 1 listeners: - name: tls @@ -21,7 +21,7 @@ spec: transaction.state.log.min.isr: 1 default.replication.factor: 1 min.insync.replicas: 1 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: jbod volumes: @@ -46,7 +46,7 @@ metadata: name: cluster-b spec: kafka: - version: 3.8.0 + version: 3.9.0 replicas: 1 listeners: - name: tls @@ -63,7 +63,7 @@ spec: transaction.state.log.min.isr: 1 default.replication.factor: 1 min.insync.replicas: 1 - inter.broker.protocol.version: "3.8" + inter.broker.protocol.version: "3.9" storage: type: jbod volumes: @@ -209,7 +209,7 @@ kind: KafkaMirrorMaker2 metadata: name: my-mirror-maker-2 spec: - version: 3.8.0 + version: 3.9.0 replicas: 1 connectCluster: "cluster-b" # Must be the target custer clusters: diff --git a/helm-charts/helm3/strimzi-kafka-operator/README.md b/helm-charts/helm3/strimzi-kafka-operator/README.md index ad2bee5a96a..e66e9fd710a 100644 --- a/helm-charts/helm3/strimzi-kafka-operator/README.md +++ b/helm-charts/helm3/strimzi-kafka-operator/README.md @@ -6,15 +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). + 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. -* ZooKeeper support will be soon removed from Apache Kafka and Strimzi. - Currently, the last Strimzi version with ZooKeeper support is expected to be Strimzi 0.45. - Please plan your migration to KRaft (ZooKeeper-less Apache Kafka) accordingly. - Follow the [documentation](https://strimzi.io/docs/operators/latest/full/deploying.html#assembly-kraft-mode-str) for more details. -* Kafka Mirror Maker 1 support will be soon removed from Apache Kafka and Strimzi. - Currently, the last Strimzi version with Mirror Maker 1 support is expected to be Strimzi 0.45. - Please plan your migration to Mirror Maker 2 or another mirroring tool. * 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. @@ -105,7 +102,7 @@ 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.44.0` | +| `defaultImageTag` | Default image tag for all the images except Kafka Bridge | `0.45.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` | @@ -169,7 +166,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.30.0` | +| `kafkaBridge.image.tag` | Override default Kafka Bridge image tag | `0.31.1` | | `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` | diff --git a/helm-charts/helm3/strimzi-kafka-operator/crds/040-Crd-kafka.yaml b/helm-charts/helm3/strimzi-kafka-operator/crds/040-Crd-kafka.yaml index e9a49174007..a5d0bb9ee20 100644 --- a/helm-charts/helm3/strimzi-kafka-operator/crds/040-Crd-kafka.yaml +++ b/helm-charts/helm3/strimzi-kafka-operator/crds/040-Crd-kafka.yaml @@ -486,6 +486,12 @@ spec: advertisedHostTemplate: type: string description: "Configures the template for generating the advertised hostnames of the individual brokers. Valid placeholders that you can use in the template are `{nodeId}` and `{nodePodName}`." + allocateLoadBalancerNodePorts: + type: boolean + description: |- + Configures whether to allocate NodePort automatically for the `Service` with type `LoadBalancer`. + This is a one to one with the `spec.allocateLoadBalancerNodePorts` configuration in the `Service` type + For `loadbalancer` listeners only. description: Additional listener configuration. networkPolicyPeers: type: array @@ -1567,12 +1573,32 @@ spec: readOnly: type: boolean description: PersistentVolumeClaim object to use to populate the volume. + csi: + type: object + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + type: object + properties: + name: + type: string + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + description: CSIVolumeSource object to use to populate the volume. oneOf: - properties: secret: {} configMap: {} emptyDir: {} persistentVolumeClaim: {} + csi: {} description: Additional volumes that can be mounted to the pod. description: Template for Kafka `Pods`. bootstrapService: @@ -3101,12 +3127,32 @@ spec: readOnly: type: boolean description: PersistentVolumeClaim object to use to populate the volume. + csi: + type: object + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + type: object + properties: + name: + type: string + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + description: CSIVolumeSource object to use to populate the volume. oneOf: - properties: secret: {} configMap: {} emptyDir: {} persistentVolumeClaim: {} + csi: {} description: Additional volumes that can be mounted to the pod. description: Template for ZooKeeper `Pods`. clientService: @@ -4449,12 +4495,32 @@ spec: readOnly: type: boolean description: PersistentVolumeClaim object to use to populate the volume. + csi: + type: object + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + type: object + properties: + name: + type: string + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + description: CSIVolumeSource object to use to populate the volume. oneOf: - properties: secret: {} configMap: {} emptyDir: {} persistentVolumeClaim: {} + csi: {} description: Additional volumes that can be mounted to the pod. description: Template for Entity Operator `Pods`. topicOperatorContainer: @@ -5848,12 +5914,32 @@ spec: readOnly: type: boolean description: PersistentVolumeClaim object to use to populate the volume. + csi: + type: object + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + type: object + properties: + name: + type: string + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + description: CSIVolumeSource object to use to populate the volume. oneOf: - properties: secret: {} configMap: {} emptyDir: {} persistentVolumeClaim: {} + csi: {} description: Additional volumes that can be mounted to the pod. description: Template for Cruise Control `Pods`. apiService: @@ -7034,12 +7120,32 @@ spec: readOnly: type: boolean description: PersistentVolumeClaim object to use to populate the volume. + csi: + type: object + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + type: object + properties: + name: + type: string + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + description: CSIVolumeSource object to use to populate the volume. oneOf: - properties: secret: {} configMap: {} emptyDir: {} persistentVolumeClaim: {} + csi: {} description: Additional volumes that can be mounted to the pod. description: Template for JmxTrans `Pods`. container: @@ -7912,12 +8018,32 @@ spec: readOnly: type: boolean description: PersistentVolumeClaim object to use to populate the volume. + csi: + type: object + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + type: object + properties: + name: + type: string + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + description: CSIVolumeSource object to use to populate the volume. oneOf: - properties: secret: {} configMap: {} emptyDir: {} persistentVolumeClaim: {} + csi: {} description: Additional volumes that can be mounted to the pod. description: Template for Kafka Exporter `Pods`. service: diff --git a/helm-charts/helm3/strimzi-kafka-operator/crds/041-Crd-kafkaconnect.yaml b/helm-charts/helm3/strimzi-kafka-operator/crds/041-Crd-kafkaconnect.yaml index 613304dba94..661820071b0 100644 --- a/helm-charts/helm3/strimzi-kafka-operator/crds/041-Crd-kafkaconnect.yaml +++ b/helm-charts/helm3/strimzi-kafka-operator/crds/041-Crd-kafkaconnect.yaml @@ -1103,12 +1103,32 @@ spec: readOnly: type: boolean description: PersistentVolumeClaim object to use to populate the volume. + csi: + type: object + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + type: object + properties: + name: + type: string + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + description: CSIVolumeSource object to use to populate the volume. oneOf: - properties: secret: {} configMap: {} emptyDir: {} persistentVolumeClaim: {} + csi: {} description: Additional volumes that can be mounted to the pod. description: Template for Kafka Connect `Pods`. apiService: @@ -2096,12 +2116,32 @@ spec: readOnly: type: boolean description: PersistentVolumeClaim object to use to populate the volume. + csi: + type: object + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + type: object + properties: + name: + type: string + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + description: CSIVolumeSource object to use to populate the volume. oneOf: - properties: secret: {} configMap: {} emptyDir: {} persistentVolumeClaim: {} + csi: {} description: Additional volumes that can be mounted to the pod. description: Template for Kafka Connect Build `Pods`. The build pod is used only on Kubernetes. buildContainer: @@ -2426,7 +2466,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, --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. 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. 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. diff --git a/helm-charts/helm3/strimzi-kafka-operator/crds/045-Crd-kafkamirrormaker.yaml b/helm-charts/helm3/strimzi-kafka-operator/crds/045-Crd-kafkamirrormaker.yaml index 9280c182424..1e6d6ce4457 100644 --- a/helm-charts/helm3/strimzi-kafka-operator/crds/045-Crd-kafkamirrormaker.yaml +++ b/helm-charts/helm3/strimzi-kafka-operator/crds/045-Crd-kafkamirrormaker.yaml @@ -1268,12 +1268,32 @@ spec: readOnly: type: boolean description: PersistentVolumeClaim object to use to populate the volume. + csi: + type: object + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + type: object + properties: + name: + type: string + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + description: CSIVolumeSource object to use to populate the volume. oneOf: - properties: secret: {} configMap: {} emptyDir: {} persistentVolumeClaim: {} + csi: {} description: Additional volumes that can be mounted to the pod. description: Template for Kafka MirrorMaker `Pods`. podDisruptionBudget: diff --git a/helm-charts/helm3/strimzi-kafka-operator/crds/046-Crd-kafkabridge.yaml b/helm-charts/helm3/strimzi-kafka-operator/crds/046-Crd-kafkabridge.yaml index 5906edc893d..8355ae95797 100644 --- a/helm-charts/helm3/strimzi-kafka-operator/crds/046-Crd-kafkabridge.yaml +++ b/helm-charts/helm3/strimzi-kafka-operator/crds/046-Crd-kafkabridge.yaml @@ -1092,12 +1092,32 @@ spec: readOnly: type: boolean description: PersistentVolumeClaim object to use to populate the volume. + csi: + type: object + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + type: object + properties: + name: + type: string + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + description: CSIVolumeSource object to use to populate the volume. oneOf: - properties: secret: {} configMap: {} emptyDir: {} persistentVolumeClaim: {} + csi: {} description: Additional volumes that can be mounted to the pod. description: Template for Kafka Bridge `Pods`. apiService: diff --git a/helm-charts/helm3/strimzi-kafka-operator/crds/048-Crd-kafkamirrormaker2.yaml b/helm-charts/helm3/strimzi-kafka-operator/crds/048-Crd-kafkamirrormaker2.yaml index 1b602e9a1e9..55b514a853f 100644 --- a/helm-charts/helm3/strimzi-kafka-operator/crds/048-Crd-kafkamirrormaker2.yaml +++ b/helm-charts/helm3/strimzi-kafka-operator/crds/048-Crd-kafkamirrormaker2.yaml @@ -1320,12 +1320,32 @@ spec: readOnly: type: boolean description: PersistentVolumeClaim object to use to populate the volume. + csi: + type: object + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + type: object + properties: + name: + type: string + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + description: CSIVolumeSource object to use to populate the volume. oneOf: - properties: secret: {} configMap: {} emptyDir: {} persistentVolumeClaim: {} + csi: {} description: Additional volumes that can be mounted to the pod. description: Template for Kafka Connect `Pods`. apiService: @@ -2313,12 +2333,32 @@ spec: readOnly: type: boolean description: PersistentVolumeClaim object to use to populate the volume. + csi: + type: object + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + type: object + properties: + name: + type: string + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + description: CSIVolumeSource object to use to populate the volume. oneOf: - properties: secret: {} configMap: {} emptyDir: {} persistentVolumeClaim: {} + csi: {} description: Additional volumes that can be mounted to the pod. description: Template for Kafka Connect Build `Pods`. The build pod is used only on Kubernetes. buildContainer: diff --git a/helm-charts/helm3/strimzi-kafka-operator/crds/049-Crd-kafkarebalance.yaml b/helm-charts/helm3/strimzi-kafka-operator/crds/049-Crd-kafkarebalance.yaml index c3313e4a2ac..024b15248cf 100644 --- a/helm-charts/helm3/strimzi-kafka-operator/crds/049-Crd-kafkarebalance.yaml +++ b/helm-charts/helm3/strimzi-kafka-operator/crds/049-Crd-kafkarebalance.yaml @@ -60,7 +60,8 @@ spec: - full - add-brokers - remove-brokers - description: "Mode to run the rebalancing. The supported modes are `full`, `add-brokers`, `remove-brokers`.\nIf not specified, the `full` mode is used by default. \n\n* `full` mode runs the rebalancing across all the brokers in the cluster.\n* `add-brokers` mode can be used after scaling up the cluster to move some replicas to the newly added brokers.\n* `remove-brokers` mode can be used before scaling down the cluster to move replicas out of the brokers to be removed.\n" + - remove-disks + description: "Mode to run the rebalancing. The supported modes are `full`, `add-brokers`, `remove-brokers`.\nIf not specified, the `full` mode is used by default. \n\n* `full` mode runs the rebalancing across all the brokers in the cluster.\n* `add-brokers` mode can be used after scaling up the cluster to move some replicas to the newly added brokers.\n* `remove-brokers` mode can be used before scaling down the cluster to move replicas out of the brokers to be removed.\n* `remove-disks` mode can be used to move data across the volumes within the same broker\n." brokers: type: array items: @@ -101,6 +102,22 @@ spec: items: type: string description: "A list of strategy class names used to determine the execution order for the replica movements in the generated optimization proposal. By default BaseReplicaMovementStrategy is used, which will execute the replica movements in the order that they were generated." + moveReplicasOffVolumes: + type: array + minItems: 1 + items: + type: object + properties: + brokerId: + type: integer + description: ID of the broker that contains the disk from which you want to move the partition replicas. + volumeIds: + type: array + minItems: 1 + items: + type: integer + description: IDs of the disks from which the partition replicas need to be moved. + description: List of brokers and their corresponding volumes from which replicas need to be moved. description: The specification of the Kafka rebalance. status: type: object diff --git a/helm-charts/helm3/strimzi-kafka-operator/crds/04A-Crd-kafkanodepool.yaml b/helm-charts/helm3/strimzi-kafka-operator/crds/04A-Crd-kafkanodepool.yaml index 36187ec4334..2e48bf0a2a5 100644 --- a/helm-charts/helm3/strimzi-kafka-operator/crds/04A-Crd-kafkanodepool.yaml +++ b/helm-charts/helm3/strimzi-kafka-operator/crds/04A-Crd-kafkanodepool.yaml @@ -5,6 +5,7 @@ metadata: labels: app: strimzi strimzi.io/crd-install: "true" + component: kafkanodepools.kafka.strimzi.io-crd spec: group: kafka.strimzi.io names: @@ -13,1241 +14,1261 @@ spec: singular: kafkanodepool plural: kafkanodepools shortNames: - - knp + - knp categories: - - strimzi + - strimzi scope: Namespaced conversion: strategy: None versions: - - name: v1beta2 - served: true - storage: true - subresources: - status: {} - scale: - specReplicasPath: .spec.replicas - statusReplicasPath: .status.replicas - labelSelectorPath: .status.labelSelector - additionalPrinterColumns: - - name: Desired replicas - description: The desired number of replicas - jsonPath: .spec.replicas - type: integer - - name: Roles - description: Roles of the nodes in the pool - jsonPath: .status.roles - type: string - - name: NodeIds - description: Node IDs used by Kafka nodes in this pool - jsonPath: .status.nodeIds - type: string - schema: - openAPIV3Schema: - type: object - properties: - apiVersion: - type: string - description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources" - kind: - type: string - description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" - metadata: - type: object - spec: - type: object - properties: - replicas: - type: integer - minimum: 0 - description: The number of pods in the pool. - storage: - type: object - properties: - class: - type: string - description: The storage class to use for dynamic volume allocation. - deleteClaim: - type: boolean - description: Specifies if the persistent volume claim has to be deleted when the cluster is un-deployed. - id: - type: integer - minimum: 0 - description: Storage identification number. It is mandatory only for storage volumes defined in a storage of type 'jbod'. - kraftMetadata: - type: string - enum: - - shared - description: "Specifies whether this volume should be used for storing KRaft metadata. This property is optional. When set, the only currently supported value is `shared`. At most one volume can have this property set." - overrides: - type: array - items: - type: object - properties: - class: - type: string - description: The storage class to use for dynamic volume allocation for this broker. - 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. - selector: - additionalProperties: + - name: v1beta2 + served: true + storage: true + subresources: + status: {} + scale: + specReplicasPath: .spec.replicas + statusReplicasPath: .status.replicas + labelSelectorPath: .status.labelSelector + additionalPrinterColumns: + - name: Desired replicas + description: The desired number of replicas + jsonPath: .spec.replicas + type: integer + - name: Roles + description: Roles of the nodes in the pool + jsonPath: .status.roles + type: string + - name: NodeIds + description: Node IDs used by Kafka nodes in this pool + jsonPath: .status.nodeIds + type: string + schema: + openAPIV3Schema: + type: object + properties: + apiVersion: + type: string + description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources" + kind: + type: string + description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + metadata: + type: object + spec: + type: object + properties: + replicas: + type: integer + minimum: 0 + description: The number of pods in the pool. + storage: + type: object + properties: + class: type: string - type: object - description: Specifies a specific persistent volume to use. It contains key:value pairs representing labels for selecting such a volume. - size: - type: string - description: "When `type=persistent-claim`, defines the size of the persistent volume claim, such as 100Gi. Mandatory when `type=persistent-claim`." - sizeLimit: - type: string - pattern: "^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$" - description: "When type=ephemeral, defines the total amount of local storage required for this EmptyDir volume (for example 1Gi)." - type: - type: string - enum: - - ephemeral - - persistent-claim - - jbod - description: "Storage type, must be either 'ephemeral', 'persistent-claim', or 'jbod'." - volumes: - type: array - items: - type: object - properties: - class: - type: string - description: The storage class to use for dynamic volume allocation. - deleteClaim: - type: boolean - description: Specifies if the persistent volume claim has to be deleted when the cluster is un-deployed. - id: - type: integer - minimum: 0 - description: Storage identification number. Mandatory for storage volumes defined with a `jbod` storage type configuration. - kraftMetadata: - type: string - enum: - - shared - description: "Specifies whether this volume should be used for storing KRaft metadata. This property is optional. When set, the only currently supported value is `shared`. At most one volume can have this property set." - overrides: - type: array - items: - type: object - properties: - class: - type: string - description: The storage class to use for dynamic volume allocation for this broker. - 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. - selector: - additionalProperties: + description: The storage class to use for dynamic volume allocation. + deleteClaim: + type: boolean + description: Specifies if the persistent volume claim has to be deleted when the cluster is un-deployed. + id: + type: integer + minimum: 0 + description: Storage identification number. It is mandatory only for storage volumes defined in a storage of type 'jbod'. + kraftMetadata: + type: string + enum: + - shared + description: "Specifies whether this volume should be used for storing KRaft metadata. This property is optional. When set, the only currently supported value is `shared`. At most one volume can have this property set." + overrides: + type: array + items: + type: object + properties: + class: type: string - type: object - description: Specifies a specific persistent volume to use. It contains key:value pairs representing labels for selecting such a volume. - size: - type: string - description: "When `type=persistent-claim`, defines the size of the persistent volume claim, such as 100Gi. Mandatory when `type=persistent-claim`." - sizeLimit: - type: string - pattern: "^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$" - description: "When type=ephemeral, defines the total amount of local storage required for this EmptyDir volume (for example 1Gi)." - type: - type: string - enum: - - ephemeral - - persistent-claim - description: "Storage type, must be either 'ephemeral' or 'persistent-claim'." - required: - - type - description: List of volumes as Storage objects representing the JBOD disks array. - required: - - type - description: Storage configuration (disk). Cannot be updated. - roles: - type: array - items: - type: string - 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`." - resources: - type: object - properties: - claims: - type: array - items: + description: The storage class to use for dynamic volume allocation for this broker. + 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. + selector: + additionalProperties: + type: string type: object - properties: - name: - type: string - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" - x-kubernetes-int-or-string: true - type: object - description: CPU and memory resources to reserve. - jvmOptions: - type: object - properties: - "-XX": - additionalProperties: + description: Specifies a specific persistent volume to use. It contains key:value pairs representing labels for selecting such a volume. + size: type: string - type: object - description: A map of -XX options to the JVM. - "-Xmx": - type: string - pattern: "^[0-9]+[mMgG]?$" - description: -Xmx option to to the JVM. - "-Xms": - type: string - pattern: "^[0-9]+[mMgG]?$" - description: -Xms option to to the JVM. - gcLoggingEnabled: - type: boolean - description: Specifies whether the Garbage Collection logging is enabled. The default is false. - javaSystemProperties: - type: array - items: - type: object - properties: - name: - type: string - description: The system property name. - value: - type: string - description: The system property value. - description: A map of additional system properties which will be passed using the `-D` option to the JVM. - description: JVM Options for pods. - template: - type: object - properties: - podSet: - type: object - properties: - metadata: + description: "When `type=persistent-claim`, defines the size of the persistent volume claim, such as 100Gi. Mandatory when `type=persistent-claim`." + sizeLimit: + type: string + pattern: "^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$" + description: "When type=ephemeral, defines the total amount of local storage required for this EmptyDir volume (for example 1Gi)." + type: + type: string + enum: + - ephemeral + - persistent-claim + - jbod + description: "Storage type, must be either 'ephemeral', 'persistent-claim', or 'jbod'." + volumes: + type: array + items: type: object properties: - labels: - additionalProperties: - type: string - type: object - description: Labels added to the Kubernetes resource. - annotations: + class: + type: string + description: The storage class to use for dynamic volume allocation. + deleteClaim: + type: boolean + description: Specifies if the persistent volume claim has to be deleted when the cluster is un-deployed. + id: + type: integer + minimum: 0 + description: Storage identification number. Mandatory for storage volumes defined with a `jbod` storage type configuration. + kraftMetadata: + type: string + enum: + - shared + description: "Specifies whether this volume should be used for storing KRaft metadata. This property is optional. When set, the only currently supported value is `shared`. At most one volume can have this property set." + overrides: + type: array + items: + type: object + properties: + class: + type: string + description: The storage class to use for dynamic volume allocation for this broker. + 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. + selector: additionalProperties: type: string type: object - description: Annotations added to the Kubernetes resource. - description: Metadata applied to the resource. - description: Template for Kafka `StrimziPodSet` resource. - pod: - type: object - properties: - metadata: + description: Specifies a specific persistent volume to use. It contains key:value pairs representing labels for selecting such a volume. + size: + type: string + description: "When `type=persistent-claim`, defines the size of the persistent volume claim, such as 100Gi. Mandatory when `type=persistent-claim`." + sizeLimit: + type: string + pattern: "^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$" + description: "When type=ephemeral, defines the total amount of local storage required for this EmptyDir volume (for example 1Gi)." + type: + type: string + enum: + - ephemeral + - persistent-claim + description: "Storage type, must be either 'ephemeral' or 'persistent-claim'." + required: + - type + description: List of volumes as Storage objects representing the JBOD disks array. + required: + - type + description: Storage configuration (disk). Cannot be updated. + roles: + type: array + items: + type: string + 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`." + resources: + type: object + properties: + claims: + type: array + items: type: object properties: - labels: - additionalProperties: - type: string - type: object - description: Labels added to the Kubernetes resource. - annotations: - additionalProperties: - type: string - type: object - description: Annotations added to the Kubernetes resource. - description: Metadata applied to the resource. - imagePullSecrets: - type: array - items: - type: object - properties: - name: - type: string - description: "List of references to secrets in the same namespace to use for pulling any of the images used by this Pod. When the `STRIMZI_IMAGE_PULL_SECRETS` environment variable in Cluster Operator and the `imagePullSecrets` option are specified, only the `imagePullSecrets` variable is used and the `STRIMZI_IMAGE_PULL_SECRETS` variable is ignored." - securityContext: + name: + type: string + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$" + x-kubernetes-int-or-string: true + type: object + description: CPU and memory resources to reserve. + jvmOptions: + type: object + properties: + "-XX": + additionalProperties: + type: string + type: object + description: A map of -XX options to the JVM. + "-Xmx": + type: string + pattern: "^[0-9]+[mMgG]?$" + description: -Xmx option to to the JVM. + "-Xms": + type: string + pattern: "^[0-9]+[mMgG]?$" + description: -Xms option to to the JVM. + gcLoggingEnabled: + type: boolean + description: Specifies whether the Garbage Collection logging is enabled. The default is false. + javaSystemProperties: + type: array + items: type: object properties: - appArmorProfile: - type: object - properties: - localhostProfile: - type: string - type: - type: string - fsGroup: - type: integer - fsGroupChangePolicy: + name: type: string - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - runAsUser: - type: integer - seLinuxOptions: - type: object - properties: - level: + description: The system property name. + value: + type: string + description: The system property value. + description: A map of additional system properties which will be passed using the `-D` option to the JVM. + description: JVM Options for pods. + template: + type: object + properties: + podSet: + type: object + properties: + metadata: + type: object + properties: + labels: + additionalProperties: type: string - role: + type: object + description: Labels added to the Kubernetes resource. + annotations: + additionalProperties: type: string - type: + type: object + description: Annotations added to the Kubernetes resource. + description: Metadata applied to the resource. + description: Template for Kafka `StrimziPodSet` resource. + pod: + type: object + properties: + metadata: + type: object + properties: + labels: + additionalProperties: type: string - user: + type: object + description: Labels added to the Kubernetes resource. + annotations: + additionalProperties: type: string - seccompProfile: + type: object + description: Annotations added to the Kubernetes resource. + description: Metadata applied to the resource. + imagePullSecrets: + type: array + items: type: object properties: - localhostProfile: - type: string - type: + name: type: string - supplementalGroups: - type: array - items: + description: "List of references to secrets in the same namespace to use for pulling any of the images used by this Pod. When the `STRIMZI_IMAGE_PULL_SECRETS` environment variable in Cluster Operator and the `imagePullSecrets` option are specified, only the `imagePullSecrets` variable is used and the `STRIMZI_IMAGE_PULL_SECRETS` variable is ignored." + securityContext: + type: object + properties: + appArmorProfile: + type: object + properties: + localhostProfile: + type: string + type: + type: string + fsGroup: type: integer - sysctls: - type: array - items: + fsGroupChangePolicy: + type: string + runAsGroup: + type: integer + runAsNonRoot: + type: boolean + runAsUser: + type: integer + seLinuxOptions: type: object properties: - name: + level: type: string - value: + role: type: string - windowsOptions: - type: object - properties: - gmsaCredentialSpec: - type: string - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - runAsUserName: - type: string - description: Configures pod-level security attributes and common container settings. - terminationGracePeriodSeconds: - type: integer - minimum: 0 - description: "The grace period is the duration in seconds after the processes running in the pod are sent a termination signal, and the time when the processes are forcibly halted with a kill signal. Set this value to longer than the expected cleanup time for your process. Value must be a non-negative integer. A zero value indicates delete immediately. You might need to increase the grace period for very large Kafka clusters, so that the Kafka brokers have enough time to transfer their work to another broker before they are terminated. Defaults to 30 seconds." - affinity: - type: object - properties: - nodeAffinity: - type: object - properties: - preferredDuringSchedulingIgnoredDuringExecution: - type: array - items: + type: + type: string + user: + type: string + seccompProfile: + type: object + properties: + localhostProfile: + type: string + type: + type: string + supplementalGroups: + type: array + items: + type: integer + sysctls: + type: array + items: + type: object + properties: + name: + type: string + value: + type: string + windowsOptions: + type: object + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + description: Configures pod-level security attributes and common container settings. + terminationGracePeriodSeconds: + type: integer + minimum: 0 + description: "The grace period is the duration in seconds after the processes running in the pod are sent a termination signal, and the time when the processes are forcibly halted with a kill signal. Set this value to longer than the expected cleanup time for your process. Value must be a non-negative integer. A zero value indicates delete immediately. You might need to increase the grace period for very large Kafka clusters, so that the Kafka brokers have enough time to transfer their work to another broker before they are terminated. Defaults to 30 seconds." + affinity: + type: object + properties: + nodeAffinity: + type: object + properties: + preferredDuringSchedulingIgnoredDuringExecution: + type: array + items: + type: object + properties: + preference: + type: object + properties: + matchExpressions: + type: array + items: + type: object + properties: + key: + type: string + operator: + type: string + values: + type: array + items: + type: string + matchFields: + type: array + items: + type: object + properties: + key: + type: string + operator: + type: string + values: + type: array + items: + type: string + weight: + type: integer + requiredDuringSchedulingIgnoredDuringExecution: type: object properties: - preference: - type: object - properties: - matchExpressions: - type: array - items: - type: object - properties: - key: - type: string - operator: - type: string - values: - type: array - items: + nodeSelectorTerms: + type: array + items: + type: object + properties: + matchExpressions: + type: array + items: + type: object + properties: + key: type: string - matchFields: - type: array - items: - type: object - properties: - key: - type: string - operator: - type: string - values: - type: array - items: + operator: type: string - weight: - type: integer - requiredDuringSchedulingIgnoredDuringExecution: - type: object - properties: - nodeSelectorTerms: - type: array - items: - type: object - properties: - matchExpressions: - type: array - items: + values: + type: array + items: + type: string + matchFields: + type: array + items: + type: object + properties: + key: + type: string + operator: + type: string + values: + type: array + items: + type: string + podAffinity: + type: object + properties: + preferredDuringSchedulingIgnoredDuringExecution: + type: array + items: + type: object + properties: + podAffinityTerm: + type: object + properties: + labelSelector: type: object properties: - key: - type: string - operator: - type: string - values: + matchExpressions: type: array items: + type: object + properties: + key: + type: string + operator: + type: string + values: + type: array + items: + type: string + matchLabels: + additionalProperties: type: string - matchFields: - type: array - items: + type: object + matchLabelKeys: + type: array + items: + type: string + mismatchLabelKeys: + type: array + items: + type: string + namespaceSelector: type: object properties: - key: - type: string - operator: - type: string - values: + matchExpressions: type: array items: + type: object + properties: + key: + type: string + operator: + type: string + values: + type: array + items: + type: string + matchLabels: + additionalProperties: type: string - podAffinity: - type: object - properties: - preferredDuringSchedulingIgnoredDuringExecution: - type: array - items: - type: object - properties: - podAffinityTerm: - type: object - properties: - labelSelector: - type: object - properties: - matchExpressions: - type: array - items: type: object - properties: - key: - type: string - operator: - type: string - values: - type: array - items: - type: string - matchLabels: - additionalProperties: - type: string - type: object - matchLabelKeys: - type: array - items: - type: string - mismatchLabelKeys: - type: array - items: + namespaces: + type: array + items: + type: string + topologyKey: type: string - namespaceSelector: - type: object - properties: - matchExpressions: - type: array - items: - type: object - properties: - key: - type: string - operator: - type: string - values: - type: array - items: - type: string - matchLabels: - additionalProperties: - type: string - type: object - namespaces: - type: array - items: - type: string - topologyKey: + weight: + type: integer + requiredDuringSchedulingIgnoredDuringExecution: + type: array + items: + type: object + properties: + labelSelector: + type: object + properties: + matchExpressions: + type: array + items: + type: object + properties: + key: + type: string + operator: + type: string + values: + type: array + items: + type: string + matchLabels: + additionalProperties: + type: string + type: object + matchLabelKeys: + type: array + items: type: string - weight: - type: integer - requiredDuringSchedulingIgnoredDuringExecution: - type: array - items: - type: object - properties: - labelSelector: - type: object - properties: - matchExpressions: - type: array - items: + mismatchLabelKeys: + type: array + items: + type: string + namespaceSelector: + type: object + properties: + matchExpressions: + type: array + items: + type: object + properties: + key: + type: string + operator: + type: string + values: + type: array + items: + type: string + matchLabels: + additionalProperties: + type: string + type: object + namespaces: + type: array + items: + type: string + topologyKey: + type: string + podAntiAffinity: + type: object + properties: + preferredDuringSchedulingIgnoredDuringExecution: + type: array + items: + type: object + properties: + podAffinityTerm: + type: object + properties: + labelSelector: type: object properties: - key: - type: string - operator: - type: string - values: + matchExpressions: type: array items: + type: object + properties: + key: + type: string + operator: + type: string + values: + type: array + items: + type: string + matchLabels: + additionalProperties: type: string - matchLabels: - additionalProperties: - type: string - type: object - matchLabelKeys: - type: array - items: - type: string - mismatchLabelKeys: - type: array - items: - type: string - namespaceSelector: - type: object - properties: - matchExpressions: - type: array - items: + type: object + matchLabelKeys: + type: array + items: + type: string + mismatchLabelKeys: + type: array + items: + type: string + namespaceSelector: type: object properties: - key: - type: string - operator: - type: string - values: + matchExpressions: type: array items: + type: object + properties: + key: + type: string + operator: + type: string + values: + type: array + items: + type: string + matchLabels: + additionalProperties: type: string - matchLabels: - additionalProperties: + type: object + namespaces: + type: array + items: + type: string + topologyKey: type: string - type: object - namespaces: - type: array - items: + weight: + type: integer + requiredDuringSchedulingIgnoredDuringExecution: + type: array + items: + type: object + properties: + labelSelector: + type: object + properties: + matchExpressions: + type: array + items: + type: object + properties: + key: + type: string + operator: + type: string + values: + type: array + items: + type: string + matchLabels: + additionalProperties: + type: string + type: object + matchLabelKeys: + type: array + items: + type: string + mismatchLabelKeys: + type: array + items: + type: string + namespaceSelector: + type: object + properties: + matchExpressions: + type: array + items: + type: object + properties: + key: + type: string + operator: + type: string + values: + type: array + items: + type: string + matchLabels: + additionalProperties: + type: string + type: object + namespaces: + type: array + items: + type: string + topologyKey: type: string - topologyKey: - type: string - podAntiAffinity: + description: The pod's affinity rules. + tolerations: + type: array + items: type: object properties: - preferredDuringSchedulingIgnoredDuringExecution: - type: array - items: - type: object - properties: - podAffinityTerm: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + description: The pod's tolerations. + topologySpreadConstraints: + type: array + items: + type: object + properties: + labelSelector: + type: object + properties: + matchExpressions: + type: array + items: type: object properties: - labelSelector: - type: object - properties: - matchExpressions: - type: array - items: - type: object - properties: - key: - type: string - operator: - type: string - values: - type: array - items: - type: string - matchLabels: - additionalProperties: - type: string - type: object - matchLabelKeys: - type: array - items: - type: string - mismatchLabelKeys: - type: array - items: - type: string - namespaceSelector: - type: object - properties: - matchExpressions: - type: array - items: - type: object - properties: - key: - type: string - operator: - type: string - values: - type: array - items: - type: string - matchLabels: - additionalProperties: - type: string - type: object - namespaces: + key: + type: string + operator: + type: string + values: type: array items: type: string - topologyKey: - type: string - weight: - type: integer - requiredDuringSchedulingIgnoredDuringExecution: + matchLabels: + additionalProperties: + type: string + type: object + matchLabelKeys: type: array items: - type: object - properties: - labelSelector: + type: string + maxSkew: + type: integer + minDomains: + type: integer + nodeAffinityPolicy: + type: string + nodeTaintsPolicy: + type: string + topologyKey: + type: string + whenUnsatisfiable: + type: string + description: The pod's topology spread constraints. + priorityClassName: + type: string + description: 'The name of the priority class used to assign priority to the pods. ' + schedulerName: + type: string + description: "The name of the scheduler used to dispatch this `Pod`. If not specified, the default scheduler will be used." + hostAliases: + type: array + items: + type: object + properties: + hostnames: + type: array + items: + type: string + 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. + enableServiceLinks: + type: boolean + description: Indicates whether information about services should be injected into Pod's environment variables. + tmpDirSizeLimit: + type: string + pattern: "^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$" + description: "Defines the total amount of pod memory allocated for the temporary `EmptyDir` volume `/tmp`. Specify the allocation in memory units, for example, `100Mi` for 100 mebibytes. Default value is `5Mi`. The `/tmp` volume is backed by pod memory, not disk storage, so avoid setting a high value as it consumes pod memory resources." + volumes: + type: array + items: + type: object + properties: + name: + type: string + description: Name to use for the volume. Required. + secret: + type: object + properties: + defaultMode: + type: integer + items: + type: array + items: type: object properties: - matchExpressions: - type: array - items: - type: object - properties: - key: - type: string - operator: - type: string - values: - type: array - items: - type: string - matchLabels: - additionalProperties: - type: string - type: object - matchLabelKeys: - type: array - items: - type: string - mismatchLabelKeys: - type: array - items: - type: string - namespaceSelector: + key: + type: string + mode: + type: integer + path: + type: string + optional: + type: boolean + secretName: + type: string + description: Secret to use populate the volume. + configMap: + type: object + properties: + defaultMode: + type: integer + items: + type: array + items: type: object properties: - matchExpressions: - type: array - items: - type: object - properties: - key: - type: string - operator: - type: string - values: - type: array - items: - type: string - matchLabels: - additionalProperties: - type: string - type: object - namespaces: - type: array - items: + key: + type: string + mode: + type: integer + path: + type: string + name: + type: string + optional: + type: boolean + description: ConfigMap to use to populate the volume. + emptyDir: + type: object + properties: + medium: + type: string + sizeLimit: + type: object + properties: + amount: + type: string + format: + type: string + description: EmptyDir to use to populate the volume. + persistentVolumeClaim: + type: object + properties: + claimName: + type: string + readOnly: + type: boolean + description: PersistentVolumeClaim object to use to populate the volume. + csi: + type: object + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + type: object + properties: + name: type: string - topologyKey: + readOnly: + type: boolean + volumeAttributes: + additionalProperties: type: string - description: The pod's affinity rules. - tolerations: - type: array - items: + type: object + description: CSIVolumeSource object to use to populate the volume. + oneOf: + - properties: + secret: {} + configMap: {} + emptyDir: {} + persistentVolumeClaim: {} + csi: {} + description: Additional volumes that can be mounted to the pod. + description: Template for Kafka `Pods`. + perPodService: + type: object + properties: + metadata: type: object properties: - effect: - type: string - key: - type: string - operator: - type: string - tolerationSeconds: - type: integer - value: - type: string - description: The pod's tolerations. - topologySpreadConstraints: - type: array - items: + labels: + additionalProperties: + type: string + type: object + description: Labels added to the Kubernetes resource. + annotations: + additionalProperties: + type: string + type: object + description: Annotations added to the Kubernetes resource. + description: Metadata applied to the resource. + description: Template for Kafka per-pod `Services` used for access from outside of Kubernetes. + perPodRoute: + type: object + properties: + metadata: type: object properties: - labelSelector: + labels: + additionalProperties: + type: string type: object - properties: - matchExpressions: - type: array - items: - type: object - properties: - key: - type: string - operator: - type: string - values: - type: array - items: - type: string - matchLabels: - additionalProperties: - type: string - type: object - matchLabelKeys: - type: array - items: + description: Labels added to the Kubernetes resource. + annotations: + additionalProperties: type: string - maxSkew: - type: integer - minDomains: - type: integer - nodeAffinityPolicy: - type: string - nodeTaintsPolicy: - type: string - topologyKey: - type: string - whenUnsatisfiable: - type: string - description: The pod's topology spread constraints. - priorityClassName: - type: string - description: 'The name of the priority class used to assign priority to the pods. ' - schedulerName: - type: string - description: "The name of the scheduler used to dispatch this `Pod`. If not specified, the default scheduler will be used." - hostAliases: - type: array - items: + type: object + description: Annotations added to the Kubernetes resource. + description: Metadata applied to the resource. + description: Template for Kafka per-pod `Routes` used for access from outside of OpenShift. + perPodIngress: + type: object + properties: + metadata: type: object properties: - hostnames: - type: array - items: + labels: + additionalProperties: type: string - 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. - enableServiceLinks: - type: boolean - description: Indicates whether information about services should be injected into Pod's environment variables. - tmpDirSizeLimit: - type: string - pattern: "^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$" - description: "Defines the total amount of pod memory allocated for the temporary `EmptyDir` volume `/tmp`. Specify the allocation in memory units, for example, `100Mi` for 100 mebibytes. Default value is `5Mi`. The `/tmp` volume is backed by pod memory, not disk storage, so avoid setting a high value as it consumes pod memory resources." - volumes: - type: array - items: + type: object + description: Labels added to the Kubernetes resource. + annotations: + additionalProperties: + type: string + type: object + description: Annotations added to the Kubernetes resource. + description: Metadata applied to the resource. + description: Template for Kafka per-pod `Ingress` used for access from outside of Kubernetes. + persistentVolumeClaim: + type: object + properties: + metadata: type: object properties: - name: - type: string - description: Name to use for the volume. Required. - secret: + labels: + additionalProperties: + type: string type: object - properties: - defaultMode: - type: integer - items: - type: array - items: - type: object - properties: - key: - type: string - mode: - type: integer - path: - type: string - optional: - type: boolean - secretName: - type: string - description: Secret to use populate the volume. - configMap: + description: Labels added to the Kubernetes resource. + annotations: + additionalProperties: + type: string type: object - properties: - defaultMode: - type: integer - items: - type: array - items: + description: Annotations added to the Kubernetes resource. + description: Metadata applied to the resource. + description: Template for all Kafka `PersistentVolumeClaims`. + kafkaContainer: + type: object + properties: + env: + type: array + items: + type: object + properties: + name: + type: string + description: The environment variable key. + value: + type: string + description: The environment variable value. + valueFrom: + type: object + properties: + secretKeyRef: + type: object + properties: + key: + type: string + name: + type: string + optional: + type: boolean + description: Reference to a key in a secret. + configMapKeyRef: type: object properties: key: type: string - mode: - type: integer - path: + name: type: string - name: + optional: + type: boolean + description: Reference to a key in a config map. + oneOf: + - properties: + secretKeyRef: {} + required: + - secretKeyRef + - properties: + configMapKeyRef: {} + required: + - configMapKeyRef + description: Reference to the secret or config map property to which the environment variable is set. + oneOf: + - properties: + value: {} + required: + - value + - properties: + valueFrom: {} + required: + - valueFrom + description: Environment variables which should be applied to the container. + securityContext: + type: object + properties: + allowPrivilegeEscalation: + type: boolean + appArmorProfile: + type: object + properties: + localhostProfile: type: string - optional: - type: boolean - description: ConfigMap to use to populate the volume. - emptyDir: + type: + type: string + capabilities: type: object properties: - medium: + add: + type: array + items: + type: string + drop: + type: array + items: + type: string + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + type: integer + runAsNonRoot: + type: boolean + runAsUser: + type: integer + seLinuxOptions: + type: object + properties: + level: type: string - sizeLimit: - type: object - properties: - amount: - type: string - format: - type: string - description: EmptyDir to use to populate the volume. - persistentVolumeClaim: + role: + type: string + type: + type: string + user: + type: string + seccompProfile: type: object properties: - claimName: + localhostProfile: type: string - readOnly: - type: boolean - description: PersistentVolumeClaim object to use to populate the volume. - oneOf: - - properties: - secret: {} - configMap: {} - emptyDir: {} - persistentVolumeClaim: {} - description: Additional volumes that can be mounted to the pod. - description: Template for Kafka `Pods`. - perPodService: - type: object - properties: - metadata: - type: object - properties: - labels: - additionalProperties: - type: string - type: object - description: Labels added to the Kubernetes resource. - annotations: - additionalProperties: - type: string - type: object - description: Annotations added to the Kubernetes resource. - description: Metadata applied to the resource. - description: Template for Kafka per-pod `Services` used for access from outside of Kubernetes. - perPodRoute: - type: object - properties: - metadata: - type: object - properties: - labels: - additionalProperties: - type: string - type: object - description: Labels added to the Kubernetes resource. - annotations: - additionalProperties: - type: string - type: object - description: Annotations added to the Kubernetes resource. - description: Metadata applied to the resource. - description: Template for Kafka per-pod `Routes` used for access from outside of OpenShift. - perPodIngress: - type: object - properties: - metadata: - type: object - properties: - labels: - additionalProperties: - type: string - type: object - description: Labels added to the Kubernetes resource. - annotations: - additionalProperties: - type: string - type: object - description: Annotations added to the Kubernetes resource. - description: Metadata applied to the resource. - description: Template for Kafka per-pod `Ingress` used for access from outside of Kubernetes. - persistentVolumeClaim: - type: object - properties: - metadata: - type: object - properties: - labels: - additionalProperties: - type: string - type: object - description: Labels added to the Kubernetes resource. - annotations: - additionalProperties: - type: string - type: object - description: Annotations added to the Kubernetes resource. - description: Metadata applied to the resource. - description: Template for all Kafka `PersistentVolumeClaims`. - kafkaContainer: - type: object - properties: - env: - type: array - items: - type: object - properties: - name: - type: string - description: The environment variable key. - value: - type: string - description: The environment variable value. - valueFrom: + type: + type: string + windowsOptions: type: object properties: - secretKeyRef: - type: object - properties: - key: - type: string - name: - type: string - optional: - type: boolean - description: Reference to a key in a secret. - configMapKeyRef: - type: object - properties: - key: - type: string - name: - type: string - optional: - type: boolean - description: Reference to a key in a config map. - oneOf: - - properties: - secretKeyRef: {} - required: - - secretKeyRef - - properties: - configMapKeyRef: {} - required: - - configMapKeyRef - description: Reference to the secret or config map property to which the environment variable is set. - oneOf: - - properties: - value: {} - required: - - value - - properties: - valueFrom: {} - required: - - valueFrom - description: Environment variables which should be applied to the container. - securityContext: - type: object - properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: - type: object - properties: - localhostProfile: - type: string - type: - type: string - capabilities: - type: object - properties: - add: - type: array - items: + gmsaCredentialSpec: type: string - drop: - type: array - items: + gmsaCredentialSpecName: type: string - privileged: - type: boolean - procMount: - type: string - readOnlyRootFilesystem: - type: boolean - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - runAsUser: - type: integer - seLinuxOptions: + hostProcess: + type: boolean + runAsUserName: + type: string + description: Security context for the container. + volumeMounts: + type: array + items: type: object properties: - level: + mountPath: type: string - role: + mountPropagation: type: string - type: + name: type: string - user: + readOnly: + type: boolean + recursiveReadOnly: type: string - seccompProfile: - type: object - properties: - localhostProfile: + subPath: type: string - type: + subPathExpr: type: string - windowsOptions: + description: Additional volume mounts which should be applied to the container. + description: Template for the Kafka broker container. + initContainer: + type: object + properties: + env: + type: array + items: type: object properties: - gmsaCredentialSpec: - type: string - gmsaCredentialSpecName: + name: type: string - hostProcess: - type: boolean - runAsUserName: + description: The environment variable key. + value: type: string - description: Security context for the container. - volumeMounts: - type: array - items: + description: The environment variable value. + valueFrom: + type: object + properties: + secretKeyRef: + type: object + properties: + key: + type: string + name: + type: string + optional: + type: boolean + description: Reference to a key in a secret. + configMapKeyRef: + type: object + properties: + key: + type: string + name: + type: string + optional: + type: boolean + description: Reference to a key in a config map. + oneOf: + - properties: + secretKeyRef: {} + required: + - secretKeyRef + - properties: + configMapKeyRef: {} + required: + - configMapKeyRef + description: Reference to the secret or config map property to which the environment variable is set. + oneOf: + - properties: + value: {} + required: + - value + - properties: + valueFrom: {} + required: + - valueFrom + description: Environment variables which should be applied to the container. + securityContext: type: object properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: + allowPrivilegeEscalation: type: boolean - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - description: Additional volume mounts which should be applied to the container. - description: Template for the Kafka broker container. - initContainer: - type: object - properties: - env: - type: array - items: - type: object - properties: - name: - type: string - description: The environment variable key. - value: + appArmorProfile: + type: object + properties: + localhostProfile: + type: string + type: + type: string + capabilities: + type: object + properties: + add: + type: array + items: + type: string + drop: + type: array + items: + type: string + privileged: + type: boolean + procMount: type: string - description: The environment variable value. - valueFrom: + readOnlyRootFilesystem: + type: boolean + runAsGroup: + type: integer + runAsNonRoot: + type: boolean + runAsUser: + type: integer + seLinuxOptions: type: object properties: - secretKeyRef: - type: object - properties: - key: - type: string - name: - type: string - optional: - type: boolean - description: Reference to a key in a secret. - configMapKeyRef: - type: object - properties: - key: - type: string - name: - type: string - optional: - type: boolean - description: Reference to a key in a config map. - oneOf: - - properties: - secretKeyRef: {} - required: - - secretKeyRef - - properties: - configMapKeyRef: {} - required: - - configMapKeyRef - description: Reference to the secret or config map property to which the environment variable is set. - oneOf: - - properties: - value: {} - required: - - value - - properties: - valueFrom: {} - required: - - valueFrom - description: Environment variables which should be applied to the container. - securityContext: - type: object - properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: - type: object - properties: - localhostProfile: - type: string - type: - type: string - capabilities: - type: object - properties: - add: - type: array - items: + level: type: string - drop: - type: array - items: + role: type: string - privileged: - type: boolean - procMount: - type: string - readOnlyRootFilesystem: - type: boolean - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - runAsUser: - type: integer - seLinuxOptions: + type: + type: string + user: + type: string + seccompProfile: + type: object + properties: + localhostProfile: + type: string + type: + type: string + windowsOptions: + type: object + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + description: Security context for the container. + volumeMounts: + type: array + items: type: object properties: - level: - type: string - role: - type: string - type: + mountPath: type: string - user: + mountPropagation: type: string - seccompProfile: - type: object - properties: - localhostProfile: + name: type: string - type: - type: string - windowsOptions: - type: object - properties: - gmsaCredentialSpec: + readOnly: + type: boolean + recursiveReadOnly: type: string - gmsaCredentialSpecName: + subPath: type: string - hostProcess: - type: boolean - runAsUserName: + subPathExpr: type: string - description: Security context for the container. - volumeMounts: - type: array - items: - type: object - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - description: Additional volume mounts which should be applied to the container. - description: Template for the Kafka init container. - description: Template for pool resources. The template allows users to specify how the resources belonging to this pool are generated. - required: - - replicas - - storage - - roles - description: The specification of the KafkaNodePool. - status: - type: object - properties: - conditions: - type: array - items: - type: object - properties: - type: - type: string - description: "The unique identifier of a condition, used to distinguish between other conditions in the resource." - status: - type: string - description: "The status of the condition, either True, False or Unknown." - lastTransitionTime: - type: string - description: "Last time the condition of a type changed from one status to another. The required format is 'yyyy-MM-ddTHH:mm:ssZ', in the UTC time zone." - reason: - type: string - description: The reason for the condition's last transition (a single word in CamelCase). - message: - type: string - description: Human-readable message indicating details about the condition's last transition. - description: List of status conditions. - observedGeneration: - type: integer - description: The generation of the CRD that was last reconciled by the operator. - nodeIds: - type: array - items: + description: Additional volume mounts which should be applied to the container. + description: Template for the Kafka init container. + description: Template for pool resources. The template allows users to specify how the resources belonging to this pool are generated. + required: + - replicas + - storage + - roles + description: The specification of the KafkaNodePool. + status: + type: object + properties: + conditions: + type: array + items: + type: object + properties: + type: + type: string + description: "The unique identifier of a condition, used to distinguish between other conditions in the resource." + status: + type: string + description: "The status of the condition, either True, False or Unknown." + lastTransitionTime: + type: string + description: "Last time the condition of a type changed from one status to another. The required format is 'yyyy-MM-ddTHH:mm:ssZ', in the UTC time zone." + reason: + type: string + description: The reason for the condition's last transition (a single word in CamelCase). + message: + type: string + description: Human-readable message indicating details about the condition's last transition. + description: List of status conditions. + observedGeneration: + type: integer + description: The generation of the CRD that was last reconciled by the operator. + nodeIds: + type: array + items: + type: integer + description: Node IDs used by Kafka nodes in this pool. + clusterId: + type: string + description: Kafka cluster ID. + roles: + type: array + items: + type: string + enum: + - controller + - broker + description: The roles currently assigned to this pool. + replicas: type: integer - description: Node IDs used by Kafka nodes in this pool. - clusterId: - type: string - description: Kafka cluster ID. - roles: - type: array - items: + description: The current number of pods being used to provide this resource. + labelSelector: type: string - enum: - - controller - - broker - description: The roles currently assigned to this pool. - replicas: - type: integer - description: The current number of pods being used to provide this resource. - labelSelector: - type: string - description: Label selector for pods providing this resource. - description: The status of the KafkaNodePool. + description: Label selector for pods providing this resource. + description: The status of the KafkaNodePool. diff --git a/helm-charts/helm3/strimzi-kafka-operator/templates/_kafka_image_map.tpl b/helm-charts/helm3/strimzi-kafka-operator/templates/_kafka_image_map.tpl index 8b93709939b..c1ff9e62b88 100644 --- a/helm-charts/helm3/strimzi-kafka-operator/templates/_kafka_image_map.tpl +++ b/helm-charts/helm3/strimzi-kafka-operator/templates/_kafka_image_map.tpl @@ -6,27 +6,27 @@ {{/* 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.8.0")) }} + value: {{ template "strimzi.image" (merge . (dict "key" "kafkaExporter" "tagSuffix" "-kafka-3.9.0")) }} - name: STRIMZI_DEFAULT_CRUISE_CONTROL_IMAGE - value: {{ template "strimzi.image" (merge . (dict "key" "cruiseControl" "tagSuffix" "-kafka-3.8.0")) }} + value: {{ template "strimzi.image" (merge . (dict "key" "cruiseControl" "tagSuffix" "-kafka-3.9.0")) }} - name: STRIMZI_KAFKA_IMAGES value: | - 3.7.0={{ template "strimzi.image" (merge . (dict "key" "kafka" "tagSuffix" "-kafka-3.7.0")) }} - 3.7.1={{ template "strimzi.image" (merge . (dict "key" "kafka" "tagSuffix" "-kafka-3.7.1")) }} 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")) }} - name: STRIMZI_KAFKA_CONNECT_IMAGES value: | - 3.7.0={{ template "strimzi.image" (merge . (dict "key" "kafkaConnect" "tagSuffix" "-kafka-3.7.0")) }} - 3.7.1={{ template "strimzi.image" (merge . (dict "key" "kafkaConnect" "tagSuffix" "-kafka-3.7.1")) }} 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.7.0={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker" "tagSuffix" "-kafka-3.7.0")) }} - 3.7.1={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker" "tagSuffix" "-kafka-3.7.1")) }} 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")) }} - name: STRIMZI_KAFKA_MIRROR_MAKER_2_IMAGES value: | - 3.7.0={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker2" "tagSuffix" "-kafka-3.7.0")) }} - 3.7.1={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker2" "tagSuffix" "-kafka-3.7.1")) }} 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")) }} {{- end -}} diff --git a/helm-charts/helm3/strimzi-kafka-operator/values.yaml b/helm-charts/helm3/strimzi-kafka-operator/values.yaml index ce1d8d3a7a3..9c82c743be1 100644 --- a/helm-charts/helm3/strimzi-kafka-operator/values.yaml +++ b/helm-charts/helm3/strimzi-kafka-operator/values.yaml @@ -10,7 +10,7 @@ watchAnyNamespace: false defaultImageRegistry: quay.io defaultImageRepository: strimzi -defaultImageTag: 0.44.0 +defaultImageTag: 0.45.0 image: registry: "" @@ -126,7 +126,7 @@ kafkaBridge: registry: "" repository: name: kafka-bridge - tag: 0.30.0 + tag: 0.31.1 kafkaExporter: image: registry: "" diff --git a/install/cluster-operator/040-Crd-kafka.yaml b/install/cluster-operator/040-Crd-kafka.yaml index 3d999f58e75..03c66e938fe 100644 --- a/install/cluster-operator/040-Crd-kafka.yaml +++ b/install/cluster-operator/040-Crd-kafka.yaml @@ -485,6 +485,12 @@ spec: advertisedHostTemplate: type: string description: "Configures the template for generating the advertised hostnames of the individual brokers. Valid placeholders that you can use in the template are `{nodeId}` and `{nodePodName}`." + allocateLoadBalancerNodePorts: + type: boolean + description: |- + Configures whether to allocate NodePort automatically for the `Service` with type `LoadBalancer`. + This is a one to one with the `spec.allocateLoadBalancerNodePorts` configuration in the `Service` type + For `loadbalancer` listeners only. description: Additional listener configuration. networkPolicyPeers: type: array @@ -1566,12 +1572,32 @@ spec: readOnly: type: boolean description: PersistentVolumeClaim object to use to populate the volume. + csi: + type: object + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + type: object + properties: + name: + type: string + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + description: CSIVolumeSource object to use to populate the volume. oneOf: - properties: secret: {} configMap: {} emptyDir: {} persistentVolumeClaim: {} + csi: {} description: Additional volumes that can be mounted to the pod. description: Template for Kafka `Pods`. bootstrapService: @@ -3100,12 +3126,32 @@ spec: readOnly: type: boolean description: PersistentVolumeClaim object to use to populate the volume. + csi: + type: object + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + type: object + properties: + name: + type: string + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + description: CSIVolumeSource object to use to populate the volume. oneOf: - properties: secret: {} configMap: {} emptyDir: {} persistentVolumeClaim: {} + csi: {} description: Additional volumes that can be mounted to the pod. description: Template for ZooKeeper `Pods`. clientService: @@ -4448,12 +4494,32 @@ spec: readOnly: type: boolean description: PersistentVolumeClaim object to use to populate the volume. + csi: + type: object + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + type: object + properties: + name: + type: string + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + description: CSIVolumeSource object to use to populate the volume. oneOf: - properties: secret: {} configMap: {} emptyDir: {} persistentVolumeClaim: {} + csi: {} description: Additional volumes that can be mounted to the pod. description: Template for Entity Operator `Pods`. topicOperatorContainer: @@ -5847,12 +5913,32 @@ spec: readOnly: type: boolean description: PersistentVolumeClaim object to use to populate the volume. + csi: + type: object + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + type: object + properties: + name: + type: string + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + description: CSIVolumeSource object to use to populate the volume. oneOf: - properties: secret: {} configMap: {} emptyDir: {} persistentVolumeClaim: {} + csi: {} description: Additional volumes that can be mounted to the pod. description: Template for Cruise Control `Pods`. apiService: @@ -7033,12 +7119,32 @@ spec: readOnly: type: boolean description: PersistentVolumeClaim object to use to populate the volume. + csi: + type: object + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + type: object + properties: + name: + type: string + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + description: CSIVolumeSource object to use to populate the volume. oneOf: - properties: secret: {} configMap: {} emptyDir: {} persistentVolumeClaim: {} + csi: {} description: Additional volumes that can be mounted to the pod. description: Template for JmxTrans `Pods`. container: @@ -7911,12 +8017,32 @@ spec: readOnly: type: boolean description: PersistentVolumeClaim object to use to populate the volume. + csi: + type: object + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + type: object + properties: + name: + type: string + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + description: CSIVolumeSource object to use to populate the volume. oneOf: - properties: secret: {} configMap: {} emptyDir: {} persistentVolumeClaim: {} + csi: {} description: Additional volumes that can be mounted to the pod. description: Template for Kafka Exporter `Pods`. service: diff --git a/install/cluster-operator/041-Crd-kafkaconnect.yaml b/install/cluster-operator/041-Crd-kafkaconnect.yaml index 175cb977d49..c8db6039c65 100644 --- a/install/cluster-operator/041-Crd-kafkaconnect.yaml +++ b/install/cluster-operator/041-Crd-kafkaconnect.yaml @@ -1102,12 +1102,32 @@ spec: readOnly: type: boolean description: PersistentVolumeClaim object to use to populate the volume. + csi: + type: object + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + type: object + properties: + name: + type: string + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + description: CSIVolumeSource object to use to populate the volume. oneOf: - properties: secret: {} configMap: {} emptyDir: {} persistentVolumeClaim: {} + csi: {} description: Additional volumes that can be mounted to the pod. description: Template for Kafka Connect `Pods`. apiService: @@ -2095,12 +2115,32 @@ spec: readOnly: type: boolean description: PersistentVolumeClaim object to use to populate the volume. + csi: + type: object + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + type: object + properties: + name: + type: string + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + description: CSIVolumeSource object to use to populate the volume. oneOf: - properties: secret: {} configMap: {} emptyDir: {} persistentVolumeClaim: {} + csi: {} description: Additional volumes that can be mounted to the pod. description: Template for Kafka Connect Build `Pods`. The build pod is used only on Kubernetes. buildContainer: @@ -2425,7 +2465,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, --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. 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. 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. diff --git a/install/cluster-operator/045-Crd-kafkamirrormaker.yaml b/install/cluster-operator/045-Crd-kafkamirrormaker.yaml index 1a99c915df7..e5380d3c912 100644 --- a/install/cluster-operator/045-Crd-kafkamirrormaker.yaml +++ b/install/cluster-operator/045-Crd-kafkamirrormaker.yaml @@ -1267,12 +1267,32 @@ spec: readOnly: type: boolean description: PersistentVolumeClaim object to use to populate the volume. + csi: + type: object + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + type: object + properties: + name: + type: string + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + description: CSIVolumeSource object to use to populate the volume. oneOf: - properties: secret: {} configMap: {} emptyDir: {} persistentVolumeClaim: {} + csi: {} description: Additional volumes that can be mounted to the pod. description: Template for Kafka MirrorMaker `Pods`. podDisruptionBudget: diff --git a/install/cluster-operator/046-Crd-kafkabridge.yaml b/install/cluster-operator/046-Crd-kafkabridge.yaml index c53354eecec..23b02fa4999 100644 --- a/install/cluster-operator/046-Crd-kafkabridge.yaml +++ b/install/cluster-operator/046-Crd-kafkabridge.yaml @@ -1091,12 +1091,32 @@ spec: readOnly: type: boolean description: PersistentVolumeClaim object to use to populate the volume. + csi: + type: object + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + type: object + properties: + name: + type: string + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + description: CSIVolumeSource object to use to populate the volume. oneOf: - properties: secret: {} configMap: {} emptyDir: {} persistentVolumeClaim: {} + csi: {} description: Additional volumes that can be mounted to the pod. description: Template for Kafka Bridge `Pods`. apiService: diff --git a/install/cluster-operator/048-Crd-kafkamirrormaker2.yaml b/install/cluster-operator/048-Crd-kafkamirrormaker2.yaml index 4b0634ab44f..f69f377b676 100644 --- a/install/cluster-operator/048-Crd-kafkamirrormaker2.yaml +++ b/install/cluster-operator/048-Crd-kafkamirrormaker2.yaml @@ -1319,12 +1319,32 @@ spec: readOnly: type: boolean description: PersistentVolumeClaim object to use to populate the volume. + csi: + type: object + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + type: object + properties: + name: + type: string + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + description: CSIVolumeSource object to use to populate the volume. oneOf: - properties: secret: {} configMap: {} emptyDir: {} persistentVolumeClaim: {} + csi: {} description: Additional volumes that can be mounted to the pod. description: Template for Kafka Connect `Pods`. apiService: @@ -2312,12 +2332,32 @@ spec: readOnly: type: boolean description: PersistentVolumeClaim object to use to populate the volume. + csi: + type: object + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + type: object + properties: + name: + type: string + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + description: CSIVolumeSource object to use to populate the volume. oneOf: - properties: secret: {} configMap: {} emptyDir: {} persistentVolumeClaim: {} + csi: {} description: Additional volumes that can be mounted to the pod. description: Template for Kafka Connect Build `Pods`. The build pod is used only on Kubernetes. buildContainer: diff --git a/install/cluster-operator/049-Crd-kafkarebalance.yaml b/install/cluster-operator/049-Crd-kafkarebalance.yaml index 1698ab8be3b..9e8fcf8bcb3 100644 --- a/install/cluster-operator/049-Crd-kafkarebalance.yaml +++ b/install/cluster-operator/049-Crd-kafkarebalance.yaml @@ -59,7 +59,8 @@ spec: - full - add-brokers - remove-brokers - description: "Mode to run the rebalancing. The supported modes are `full`, `add-brokers`, `remove-brokers`.\nIf not specified, the `full` mode is used by default. \n\n* `full` mode runs the rebalancing across all the brokers in the cluster.\n* `add-brokers` mode can be used after scaling up the cluster to move some replicas to the newly added brokers.\n* `remove-brokers` mode can be used before scaling down the cluster to move replicas out of the brokers to be removed.\n" + - remove-disks + description: "Mode to run the rebalancing. The supported modes are `full`, `add-brokers`, `remove-brokers`.\nIf not specified, the `full` mode is used by default. \n\n* `full` mode runs the rebalancing across all the brokers in the cluster.\n* `add-brokers` mode can be used after scaling up the cluster to move some replicas to the newly added brokers.\n* `remove-brokers` mode can be used before scaling down the cluster to move replicas out of the brokers to be removed.\n* `remove-disks` mode can be used to move data across the volumes within the same broker\n." brokers: type: array items: @@ -100,6 +101,22 @@ spec: items: type: string description: "A list of strategy class names used to determine the execution order for the replica movements in the generated optimization proposal. By default BaseReplicaMovementStrategy is used, which will execute the replica movements in the order that they were generated." + moveReplicasOffVolumes: + type: array + minItems: 1 + items: + type: object + properties: + brokerId: + type: integer + description: ID of the broker that contains the disk from which you want to move the partition replicas. + volumeIds: + type: array + minItems: 1 + items: + type: integer + description: IDs of the disks from which the partition replicas need to be moved. + description: List of brokers and their corresponding volumes from which replicas need to be moved. description: The specification of the Kafka rebalance. status: type: object diff --git a/install/cluster-operator/04A-Crd-kafkanodepool.yaml b/install/cluster-operator/04A-Crd-kafkanodepool.yaml index 36187ec4334..5c7eb6729ed 100644 --- a/install/cluster-operator/04A-Crd-kafkanodepool.yaml +++ b/install/cluster-operator/04A-Crd-kafkanodepool.yaml @@ -829,12 +829,32 @@ spec: readOnly: type: boolean description: PersistentVolumeClaim object to use to populate the volume. + csi: + type: object + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + type: object + properties: + name: + type: string + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + description: CSIVolumeSource object to use to populate the volume. oneOf: - properties: secret: {} configMap: {} emptyDir: {} persistentVolumeClaim: {} + csi: {} description: Additional volumes that can be mounted to the pod. description: Template for Kafka `Pods`. perPodService: diff --git a/install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml b/install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml index 43ddc3cad58..ef3b99b0f12 100644 --- a/install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml +++ b/install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml @@ -27,7 +27,7 @@ spec: name: strimzi-cluster-operator containers: - name: strimzi-cluster-operator - image: quay.io/strimzi/operator:0.44.0 + image: quay.io/strimzi/operator:0.45.0 ports: - containerPort: 8080 name: http @@ -48,41 +48,41 @@ spec: - name: STRIMZI_OPERATION_TIMEOUT_MS value: "300000" - name: STRIMZI_DEFAULT_KAFKA_EXPORTER_IMAGE - value: quay.io/strimzi/kafka:0.44.0-kafka-3.8.0 + value: quay.io/strimzi/kafka:0.45.0-kafka-3.9.0 - name: STRIMZI_DEFAULT_CRUISE_CONTROL_IMAGE - value: quay.io/strimzi/kafka:0.44.0-kafka-3.8.0 + value: quay.io/strimzi/kafka:0.45.0-kafka-3.9.0 - name: STRIMZI_KAFKA_IMAGES value: | - 3.7.0=quay.io/strimzi/kafka:0.44.0-kafka-3.7.0 - 3.7.1=quay.io/strimzi/kafka:0.44.0-kafka-3.7.1 - 3.8.0=quay.io/strimzi/kafka:0.44.0-kafka-3.8.0 + 3.8.0=quay.io/strimzi/kafka:0.45.0-kafka-3.8.0 + 3.8.1=quay.io/strimzi/kafka:0.45.0-kafka-3.8.1 + 3.9.0=quay.io/strimzi/kafka:0.45.0-kafka-3.9.0 - name: STRIMZI_KAFKA_CONNECT_IMAGES value: | - 3.7.0=quay.io/strimzi/kafka:0.44.0-kafka-3.7.0 - 3.7.1=quay.io/strimzi/kafka:0.44.0-kafka-3.7.1 - 3.8.0=quay.io/strimzi/kafka:0.44.0-kafka-3.8.0 + 3.8.0=quay.io/strimzi/kafka:0.45.0-kafka-3.8.0 + 3.8.1=quay.io/strimzi/kafka:0.45.0-kafka-3.8.1 + 3.9.0=quay.io/strimzi/kafka:0.45.0-kafka-3.9.0 - name: STRIMZI_KAFKA_MIRROR_MAKER_IMAGES value: | - 3.7.0=quay.io/strimzi/kafka:0.44.0-kafka-3.7.0 - 3.7.1=quay.io/strimzi/kafka:0.44.0-kafka-3.7.1 - 3.8.0=quay.io/strimzi/kafka:0.44.0-kafka-3.8.0 + 3.8.0=quay.io/strimzi/kafka:0.45.0-kafka-3.8.0 + 3.8.1=quay.io/strimzi/kafka:0.45.0-kafka-3.8.1 + 3.9.0=quay.io/strimzi/kafka:0.45.0-kafka-3.9.0 - name: STRIMZI_KAFKA_MIRROR_MAKER_2_IMAGES value: | - 3.7.0=quay.io/strimzi/kafka:0.44.0-kafka-3.7.0 - 3.7.1=quay.io/strimzi/kafka:0.44.0-kafka-3.7.1 - 3.8.0=quay.io/strimzi/kafka:0.44.0-kafka-3.8.0 + 3.8.0=quay.io/strimzi/kafka:0.45.0-kafka-3.8.0 + 3.8.1=quay.io/strimzi/kafka:0.45.0-kafka-3.8.1 + 3.9.0=quay.io/strimzi/kafka:0.45.0-kafka-3.9.0 - name: STRIMZI_DEFAULT_TOPIC_OPERATOR_IMAGE - value: quay.io/strimzi/operator:0.44.0 + value: quay.io/strimzi/operator:0.45.0 - name: STRIMZI_DEFAULT_USER_OPERATOR_IMAGE - value: quay.io/strimzi/operator:0.44.0 + value: quay.io/strimzi/operator:0.45.0 - name: STRIMZI_DEFAULT_KAFKA_INIT_IMAGE - value: quay.io/strimzi/operator:0.44.0 + value: quay.io/strimzi/operator:0.45.0 - name: STRIMZI_DEFAULT_KAFKA_BRIDGE_IMAGE - value: quay.io/strimzi/kafka-bridge:0.30.0 + value: quay.io/strimzi/kafka-bridge:0.31.1 - name: STRIMZI_DEFAULT_KANIKO_EXECUTOR_IMAGE - value: quay.io/strimzi/kaniko-executor:0.44.0 + value: quay.io/strimzi/kaniko-executor:0.45.0 - name: STRIMZI_DEFAULT_MAVEN_BUILDER - value: quay.io/strimzi/maven-builder:0.44.0 + value: quay.io/strimzi/maven-builder:0.45.0 - name: STRIMZI_OPERATOR_NAMESPACE valueFrom: fieldRef: diff --git a/install/topic-operator/05-Deployment-strimzi-topic-operator.yaml b/install/topic-operator/05-Deployment-strimzi-topic-operator.yaml index ad8b98a2a52..865abcecaa8 100644 --- a/install/topic-operator/05-Deployment-strimzi-topic-operator.yaml +++ b/install/topic-operator/05-Deployment-strimzi-topic-operator.yaml @@ -22,7 +22,7 @@ spec: sizeLimit: 5Mi containers: - name: strimzi-topic-operator - image: quay.io/strimzi/operator:0.44.0 + image: quay.io/strimzi/operator:0.45.0 args: - /opt/strimzi/bin/topic_operator_run.sh volumeMounts: diff --git a/install/user-operator/05-Deployment-strimzi-user-operator.yaml b/install/user-operator/05-Deployment-strimzi-user-operator.yaml index 45252ed3a66..cc03c1727b5 100644 --- a/install/user-operator/05-Deployment-strimzi-user-operator.yaml +++ b/install/user-operator/05-Deployment-strimzi-user-operator.yaml @@ -22,7 +22,7 @@ spec: sizeLimit: 5Mi containers: - name: strimzi-user-operator - image: quay.io/strimzi/operator:0.44.0 + image: quay.io/strimzi/operator:0.45.0 args: - /opt/strimzi/bin/user_operator_run.sh volumeMounts: diff --git a/kafka-agent/pom.xml b/kafka-agent/pom.xml index 80e3bd65c9e..cc23397ca94 100644 --- a/kafka-agent/pom.xml +++ b/kafka-agent/pom.xml @@ -5,7 +5,7 @@ strimzi io.strimzi - 0.45.0-SNAPSHOT + 0.45.0 4.0.0 diff --git a/kafka-init/pom.xml b/kafka-init/pom.xml index b05618741ee..77497e71db5 100644 --- a/kafka-init/pom.xml +++ b/kafka-init/pom.xml @@ -5,7 +5,7 @@ strimzi io.strimzi - 0.45.0-SNAPSHOT + 0.45.0 4.0.0 kafka-init diff --git a/mirror-maker-agent/pom.xml b/mirror-maker-agent/pom.xml index fa7da9a752b..31d60153f2c 100644 --- a/mirror-maker-agent/pom.xml +++ b/mirror-maker-agent/pom.xml @@ -5,7 +5,7 @@ strimzi io.strimzi - 0.45.0-SNAPSHOT + 0.45.0 4.0.0 diff --git a/mockkube/pom.xml b/mockkube/pom.xml index 634ec5e2d1f..6a3882b41b8 100644 --- a/mockkube/pom.xml +++ b/mockkube/pom.xml @@ -5,7 +5,7 @@ strimzi io.strimzi - 0.45.0-SNAPSHOT + 0.45.0 4.0.0 diff --git a/operator-common/pom.xml b/operator-common/pom.xml index e2b15dc92c8..aa11f4ec156 100644 --- a/operator-common/pom.xml +++ b/operator-common/pom.xml @@ -4,7 +4,7 @@ io.strimzi strimzi - 0.45.0-SNAPSHOT + 0.45.0 4.0.0 operator-common diff --git a/packaging/examples/security/keycloak-authorization/README.md b/packaging/examples/security/keycloak-authorization/README.md index 0df468a0cb6..eca740fb0b1 100644 --- a/packaging/examples/security/keycloak-authorization/README.md +++ b/packaging/examples/security/keycloak-authorization/README.md @@ -13,7 +13,7 @@ Full instructions for the example are available in the [Strimzi Documentation](h - The Keycloak realm export file - [kafka-ephemeral-oauth-single-keycloak-authz.yaml](./kafka-ephemeral-oauth-single-keycloak-authz.yaml) - The Kafka CR that defines a single-node Kafka cluster with `oauth` authentication and `keycloak` authorization, - using the `kafka-authz` realm. See [full example instructions](https://strimzi.io/docs/operators/in-development/configuring.html#proc-oauth-authorization-keycloak-example_str) for proper preparation and deployment. + using the `kafka-authz` realm. See [full example instructions](https://strimzi.io/docs/operators/0.45.0/configuring.html#proc-oauth-authorization-keycloak-example_str) for proper preparation and deployment. - [kafka-ephemeral-oauth-single-keycloak-authz-metrics.yaml](./kafka-ephemeral-oauth-single-keycloak-authz-metrics.yaml) - The Kafka CR that defines a single-node Kafka cluster with `oauth` authentication and `keycloak` authorization, with included configuration for exporting the OAuth metrics using Prometheus JMX exporter. diff --git a/packaging/helm-charts/helm3/strimzi-kafka-operator/README.md b/packaging/helm-charts/helm3/strimzi-kafka-operator/README.md index a3e42ecae73..e66e9fd710a 100644 --- a/packaging/helm-charts/helm3/strimzi-kafka-operator/README.md +++ b/packaging/helm-charts/helm3/strimzi-kafka-operator/README.md @@ -102,7 +102,7 @@ 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 | `latest` | +| `defaultImageTag` | Default image tag for all the images except Kafka Bridge | `0.45.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` | diff --git a/packaging/helm-charts/helm3/strimzi-kafka-operator/values.yaml b/packaging/helm-charts/helm3/strimzi-kafka-operator/values.yaml index ddce1767499..9c82c743be1 100644 --- a/packaging/helm-charts/helm3/strimzi-kafka-operator/values.yaml +++ b/packaging/helm-charts/helm3/strimzi-kafka-operator/values.yaml @@ -10,7 +10,7 @@ watchAnyNamespace: false defaultImageRegistry: quay.io defaultImageRepository: strimzi -defaultImageTag: latest +defaultImageTag: 0.45.0 image: registry: "" diff --git a/packaging/install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml b/packaging/install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml index 1559494af32..ef3b99b0f12 100644 --- a/packaging/install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml +++ b/packaging/install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml @@ -27,7 +27,7 @@ spec: name: strimzi-cluster-operator containers: - name: strimzi-cluster-operator - image: quay.io/strimzi/operator:latest + image: quay.io/strimzi/operator:0.45.0 ports: - containerPort: 8080 name: http @@ -48,41 +48,41 @@ spec: - name: STRIMZI_OPERATION_TIMEOUT_MS value: "300000" - name: STRIMZI_DEFAULT_KAFKA_EXPORTER_IMAGE - value: quay.io/strimzi/kafka:latest-kafka-3.9.0 + value: quay.io/strimzi/kafka:0.45.0-kafka-3.9.0 - name: STRIMZI_DEFAULT_CRUISE_CONTROL_IMAGE - value: quay.io/strimzi/kafka:latest-kafka-3.9.0 + value: quay.io/strimzi/kafka:0.45.0-kafka-3.9.0 - name: STRIMZI_KAFKA_IMAGES value: | - 3.8.0=quay.io/strimzi/kafka:latest-kafka-3.8.0 - 3.8.1=quay.io/strimzi/kafka:latest-kafka-3.8.1 - 3.9.0=quay.io/strimzi/kafka:latest-kafka-3.9.0 + 3.8.0=quay.io/strimzi/kafka:0.45.0-kafka-3.8.0 + 3.8.1=quay.io/strimzi/kafka:0.45.0-kafka-3.8.1 + 3.9.0=quay.io/strimzi/kafka:0.45.0-kafka-3.9.0 - name: STRIMZI_KAFKA_CONNECT_IMAGES value: | - 3.8.0=quay.io/strimzi/kafka:latest-kafka-3.8.0 - 3.8.1=quay.io/strimzi/kafka:latest-kafka-3.8.1 - 3.9.0=quay.io/strimzi/kafka:latest-kafka-3.9.0 + 3.8.0=quay.io/strimzi/kafka:0.45.0-kafka-3.8.0 + 3.8.1=quay.io/strimzi/kafka:0.45.0-kafka-3.8.1 + 3.9.0=quay.io/strimzi/kafka:0.45.0-kafka-3.9.0 - name: STRIMZI_KAFKA_MIRROR_MAKER_IMAGES value: | - 3.8.0=quay.io/strimzi/kafka:latest-kafka-3.8.0 - 3.8.1=quay.io/strimzi/kafka:latest-kafka-3.8.1 - 3.9.0=quay.io/strimzi/kafka:latest-kafka-3.9.0 + 3.8.0=quay.io/strimzi/kafka:0.45.0-kafka-3.8.0 + 3.8.1=quay.io/strimzi/kafka:0.45.0-kafka-3.8.1 + 3.9.0=quay.io/strimzi/kafka:0.45.0-kafka-3.9.0 - name: STRIMZI_KAFKA_MIRROR_MAKER_2_IMAGES value: | - 3.8.0=quay.io/strimzi/kafka:latest-kafka-3.8.0 - 3.8.1=quay.io/strimzi/kafka:latest-kafka-3.8.1 - 3.9.0=quay.io/strimzi/kafka:latest-kafka-3.9.0 + 3.8.0=quay.io/strimzi/kafka:0.45.0-kafka-3.8.0 + 3.8.1=quay.io/strimzi/kafka:0.45.0-kafka-3.8.1 + 3.9.0=quay.io/strimzi/kafka:0.45.0-kafka-3.9.0 - name: STRIMZI_DEFAULT_TOPIC_OPERATOR_IMAGE - value: quay.io/strimzi/operator:latest + value: quay.io/strimzi/operator:0.45.0 - name: STRIMZI_DEFAULT_USER_OPERATOR_IMAGE - value: quay.io/strimzi/operator:latest + value: quay.io/strimzi/operator:0.45.0 - name: STRIMZI_DEFAULT_KAFKA_INIT_IMAGE - value: quay.io/strimzi/operator:latest + value: quay.io/strimzi/operator:0.45.0 - name: STRIMZI_DEFAULT_KAFKA_BRIDGE_IMAGE value: quay.io/strimzi/kafka-bridge:0.31.1 - name: STRIMZI_DEFAULT_KANIKO_EXECUTOR_IMAGE - value: quay.io/strimzi/kaniko-executor:latest + value: quay.io/strimzi/kaniko-executor:0.45.0 - name: STRIMZI_DEFAULT_MAVEN_BUILDER - value: quay.io/strimzi/maven-builder:latest + value: quay.io/strimzi/maven-builder:0.45.0 - name: STRIMZI_OPERATOR_NAMESPACE valueFrom: fieldRef: diff --git a/packaging/install/topic-operator/05-Deployment-strimzi-topic-operator.yaml b/packaging/install/topic-operator/05-Deployment-strimzi-topic-operator.yaml index cbc072d51c6..865abcecaa8 100644 --- a/packaging/install/topic-operator/05-Deployment-strimzi-topic-operator.yaml +++ b/packaging/install/topic-operator/05-Deployment-strimzi-topic-operator.yaml @@ -22,7 +22,7 @@ spec: sizeLimit: 5Mi containers: - name: strimzi-topic-operator - image: quay.io/strimzi/operator:latest + image: quay.io/strimzi/operator:0.45.0 args: - /opt/strimzi/bin/topic_operator_run.sh volumeMounts: diff --git a/packaging/install/user-operator/05-Deployment-strimzi-user-operator.yaml b/packaging/install/user-operator/05-Deployment-strimzi-user-operator.yaml index a45ad39226f..cc03c1727b5 100644 --- a/packaging/install/user-operator/05-Deployment-strimzi-user-operator.yaml +++ b/packaging/install/user-operator/05-Deployment-strimzi-user-operator.yaml @@ -22,7 +22,7 @@ spec: sizeLimit: 5Mi containers: - name: strimzi-user-operator - image: quay.io/strimzi/operator:latest + image: quay.io/strimzi/operator:0.45.0 args: - /opt/strimzi/bin/user_operator_run.sh volumeMounts: diff --git a/pom.xml b/pom.xml index 4518e251c38..f0803b4231f 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ io.strimzi strimzi pom - 0.45.0-SNAPSHOT + 0.45.0 diff --git a/release.version b/release.version index 167163c56c4..bcce5d06b8a 100644 --- a/release.version +++ b/release.version @@ -1 +1 @@ -0.45.0-SNAPSHOT +0.45.0 diff --git a/systemtest/pom.xml b/systemtest/pom.xml index 0e9acf33cab..7a692f04b27 100644 --- a/systemtest/pom.xml +++ b/systemtest/pom.xml @@ -5,7 +5,7 @@ strimzi io.strimzi - 0.45.0-SNAPSHOT + 0.45.0 4.0.0 systemtest diff --git a/test/pom.xml b/test/pom.xml index 1e417c947ac..5385acde441 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -5,7 +5,7 @@ strimzi io.strimzi - 0.45.0-SNAPSHOT + 0.45.0 4.0.0 diff --git a/topic-operator/pom.xml b/topic-operator/pom.xml index 0832864d84e..373717276ed 100644 --- a/topic-operator/pom.xml +++ b/topic-operator/pom.xml @@ -5,7 +5,7 @@ io.strimzi strimzi - 0.45.0-SNAPSHOT + 0.45.0 4.0.0 topic-operator diff --git a/tracing-agent/pom.xml b/tracing-agent/pom.xml index f7dd8e38c81..ddc41bd0547 100644 --- a/tracing-agent/pom.xml +++ b/tracing-agent/pom.xml @@ -5,7 +5,7 @@ strimzi io.strimzi - 0.45.0-SNAPSHOT + 0.45.0 4.0.0 diff --git a/user-operator/pom.xml b/user-operator/pom.xml index efecd0a6cb1..b0294cab70c 100644 --- a/user-operator/pom.xml +++ b/user-operator/pom.xml @@ -4,7 +4,7 @@ io.strimzi strimzi - 0.45.0-SNAPSHOT + 0.45.0 4.0.0 user-operator