[bitnami/kafka] Add kraftVersion value to set static/dynamic quorum (#34689)

* [bitnami/kafka] Add kraftVersion value to set static/dynamic quorum

Signed-off-by: Miguel Ruiz <miguel.ruiz@broadcom.com>

* Fix version typo

Signed-off-by: Miguel Ruiz <miguel.ruiz@broadcom.com>

* Fix values.yaml

Signed-off-by: Miguel Ruiz <miguel.ruiz@broadcom.com>

* Fix helper

Signed-off-by: Miguel Ruiz <miguel.ruiz@broadcom.com>

* Remove extra files

Signed-off-by: Miguel Ruiz <miguel.ruiz@broadcom.com>

* Update CHANGELOG.md

Signed-off-by: Bitnami Bot <bitnami.bot@broadcom.com>

* Update README.md with readme-generator-for-helm

Signed-off-by: Bitnami Bot <bitnami.bot@broadcom.com>

* Update value description

Signed-off-by: Miguel Ruiz <miguel.ruiz@broadcom.com>

Signed-off-by: Miguel Ruiz <miguel.ruiz@broadcom.com>

---------

Signed-off-by: Miguel Ruiz <miguel.ruiz@broadcom.com>
Signed-off-by: Bitnami Bot <bitnami.bot@broadcom.com>
Co-authored-by: Bitnami Bot <bitnami.bot@broadcom.com>
This commit is contained in:
Miguel Ruiz
2025-06-27 16:25:20 +02:00
committed by GitHub
parent 7d051567bf
commit 559b34b2a1
5 changed files with 37 additions and 9 deletions

View File

@@ -1,8 +1,12 @@
# Changelog
## 32.2.18 (2025-06-25)
## 32.3.0 (2025-06-27)
* [bitnami/kafka] :zap: :arrow_up: Update dependency references ([#34615](https://github.com/bitnami/charts/pull/34615))
* [bitnami/kafka] Add kraftVersion value to set static/dynamic quorum ([#34689](https://github.com/bitnami/charts/pull/34689))
## <small>32.2.18 (2025-06-25)</small>
* [bitnami/kafka] :zap: :arrow_up: Update dependency references (#34615) ([3e69eb6](https://github.com/bitnami/charts/commit/3e69eb6531e7b8eaca4275c43aec8e780c99ee45)), closes [#34615](https://github.com/bitnami/charts/issues/34615)
## <small>32.2.17 (2025-06-18)</small>

View File

@@ -38,4 +38,4 @@ maintainers:
name: kafka
sources:
- https://github.com/bitnami/charts/tree/main/bitnami/kafka
version: 32.2.18
version: 32.3.0

View File

@@ -432,6 +432,7 @@ To back up and restore Helm chart deployments on Kubernetes, you need to back up
| `image.debug` | Specify if debug values should be set | `false` |
| `clusterId` | Kafka Kraft cluster ID (ignored if existingKraftSecret is set). A random cluster ID will be generated the 1st time Kraft is initialized if not set. | `""` |
| `existingKraftSecret` | Name of the secret containing the Kafka KRaft Cluster ID and one directory ID per controller replica | `""` |
| `kraftVersion` | Kraft version to be used. It determines whether static quorum (kraftVersion=0) or dynamic quorum (kraftVersion=1) will be used. | `1` |
| `config` | Specify content for Kafka configuration (auto-generated based on other parameters otherwise) | `{}` |
| `overrideConfiguration` | Kafka common configuration override. Values defined here takes precedence over the ones defined at `config` | `{}` |
| `existingConfigmap` | Name of an existing ConfigMap with the Kafka configuration | `""` |
@@ -1064,6 +1065,15 @@ Find more information about how to deal with common errors related to Bitnami's
## Upgrading
### To 32.3.0
We have introduced the value `kraftVersion` to help control the change from static quorum to dynamic quorum.
By default, new clusters will be deployed with the new dynamic quorum (kraftVersion=1), but users upgrading from Kafka 3.x may need to modify the default values to continue using static quorum (kraftVersion=0).
That is because Kafka 4.0 does not yet support switching from static quorum (controller.quorum.voters) to dynamic quorum (controller.quorum.bootstrap.servers), causing upgrades to fail (#34015).
For more information please check [Kafka documentation](https://kafka.apache.org/documentation/#static_versus_dynamic_kraft_quorums).
### To 32.0.0
This major release bumps Kafka major version to `4.y.z` series. This version implies a significant milestone given now Kafka operates operate entirely without Apache ZooKeeper, running in KRaft mode by default. As a consequence, **ZooKeeper is no longer a chart dependency and every related parameter has been removed.**. Upgrading from `31.y.z` chart version is not supported unless KRaft mode was already enabled.
@@ -1536,4 +1546,4 @@ Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
limitations under the License.

View File

@@ -293,7 +293,7 @@ Return the Kafka controller-eligible secret configuration
{{- end -}}
{{/*
Return the Kafka controller-eligible secret configuration values
Return the Kafka controller-eligible secret configuration values
*/}}
{{- define "kafka.controller.secretConfig" -}}
{{- if .Values.secretConfig }}
@@ -357,7 +357,7 @@ Return the Kafka broker secret configuration
{{- end -}}
{{/*
Return the Kafka broker secret configuration values
Return the Kafka broker secret configuration values
*/}}
{{- define "kafka.broker.secretConfig" -}}
{{- if .Values.secretConfig }}
@@ -535,7 +535,12 @@ Returns the controller quorum bootstrap servers based on the number of controlle
{{- else -}}
{{- range $i := until (int .Values.controller.replicaCount) -}}
{{- $nodeAddress := printf "%s-%d.%s.%s.svc.%s:%d" $fullname (int $i) $serviceName $releaseNamespace $clusterDomain $port -}}
{{- $bootstrapServers = append $bootstrapServers $nodeAddress -}}
{{- if eq (int $.Values.kraftVersion) 0 }}
{{- $nodeId := add (int $i) (int $.Values.controller.minId) -}}
{{- $bootstrapServers = append $bootstrapServers (printf "%d@%s" $nodeId $nodeAddress ) -}}
{{- else }}
{{- $bootstrapServers = append $bootstrapServers $nodeAddress -}}
{{- end }}
{{- end -}}
{{- end -}}
{{- join "," $bootstrapServers -}}
@@ -547,7 +552,11 @@ Section of the server.properties shared by both controller-eligible and broker n
*/}}
{{- define "kafka.commonConfig" -}}
controller.listener.names: {{ .Values.listeners.controller.name }}
{{- if eq (int .Values.kraftVersion) 0 }}
controller.quorum.voters: {{ include "kafka.controller.quorumBootstrapServers" . }}
{{- else }}
controller.quorum.bootstrap.servers: {{ include "kafka.controller.quorumBootstrapServers" . }}
{{- end }}
{{- if include "kafka.sslEnabled" . }}
# TLS configuration
ssl.keystore.type: JKS

View File

@@ -124,6 +124,11 @@ clusterId: ""
## @param existingKraftSecret Name of the secret containing the Kafka KRaft Cluster ID and one directory ID per controller replica
##
existingKraftSecret: ""
## @param kraftVersion Kraft version to be used. It determines whether static quorum (kraftVersion=0) or dynamic quorum (kraftVersion=1) will be used.
## NOTE: Kafka 4.0 does not yet support switching kraft version. This setting was added for backward-compatibility with 3.x clusters.
## Ref: https://kafka.apache.org/documentation/#static_versus_dynamic_kraft_quorums
##
kraftVersion: 1
## @param config Specify content for Kafka configuration (auto-generated based on other parameters otherwise)
## NOTE: This will override the configuration based on values, please act carefully
## Use simple key-value YAML format, then it's transformed to properties format by the chart. e.g:
@@ -1678,7 +1683,7 @@ service:
##
labels: {}
## @param service.headless.ipFamilies IP families for the headless service
##
##
ipFamilies: []
## @param service.headless.ipFamilyPolicy IP family policy for the headless service
##
@@ -2113,7 +2118,7 @@ metrics:
prometheus.io/path: "/metrics"
## @param metrics.jmx.service.ipFamilies IP families for the jmx metrics service
##
ipFamilies: []
ipFamilies: []
## @param metrics.jmx.service.ipFamilyPolicy IP family policy for the jmx metrics service
##
ipFamilyPolicy: ""