From 30daf368a955addaa59136ed6b18f8702124f72a Mon Sep 17 00:00:00 2001 From: Yhasmina <65738880+Yhasmina@users.noreply.github.com> Date: Thu, 6 Mar 2025 13:53:11 +0100 Subject: [PATCH] [bitnami/kafka] IpFamilies and IpFamilyPolicy configurables (#31456) * [bitnami/mongodb-sharded] Release 9.1.1 (#31389) * [bitnami/mongodb-sharded] Release 9.1.1 updating components versions Signed-off-by: Bitnami Containers * Update CHANGELOG.md Signed-off-by: Bitnami Containers --------- Signed-off-by: Bitnami Containers Signed-off-by: Yasmina Menendez * [bitnami/multus-cni] Release 2.2.1 (#31391) * [bitnami/multus-cni] Release 2.2.1 updating components versions Signed-off-by: Bitnami Containers * Update CHANGELOG.md Signed-off-by: Bitnami Containers --------- Signed-off-by: Bitnami Containers Signed-off-by: Yasmina Menendez * [bitnami/thanos] feature: allow configuring the Thanos ruler rule-file via ruler.ruleFile parameter (#31377) Signed-off-by: Yasmina Menendez * [bitnami/grafana-operator] Release 4.9.2 (#31393) * [bitnami/grafana-operator] Release 4.9.2 updating components versions Signed-off-by: Bitnami Containers * Update CHANGELOG.md Signed-off-by: Bitnami Containers * Update CRDs automatically Signed-off-by: Bitnami Containers --------- Signed-off-by: Bitnami Containers Signed-off-by: Yasmina Menendez * Modify services to allow to configure ipFamilies and ipFamilyPolicy Signed-off-by: Yasmina Menendez * Add default values Signed-off-by: Yasmina Menendez * Add new parameters to Readme Signed-off-by: Yasmina Menendez * Chart version bumped Signed-off-by: Yasmina Menendez * Generate Readme with readme-generator-for-helm Signed-off-by: Yasmina Menendez * Update Chart.yaml version Signed-off-by: Yasmina Menendez * Update CHANGELOG.md Signed-off-by: Bitnami Containers * Modify services to allow to configure ipFamilies and ipFamilyPolicy Signed-off-by: Yasmina Menendez * Add default values Signed-off-by: Yasmina Menendez * Add new parameters to Readme Signed-off-by: Yasmina Menendez * Chart version bumped Signed-off-by: Yasmina Menendez * Generate Readme with readme-generator-for-helm Signed-off-by: Yasmina Menendez * Update Chart.yaml version Signed-off-by: Yasmina Menendez * Update CHANGELOG.md Signed-off-by: Bitnami Containers * Update CHANGELOG.md Signed-off-by: Bitnami Containers * Update CHANGELOG.md Signed-off-by: Bitnami Containers * Modify Changelog Signed-off-by: Yasmina Menendez * Set Chart.yaml version to 31.3.2 Signed-off-by: Yasmina Menendez * Update CHANGELOG.md Signed-off-by: Bitnami Containers * Update CHANGELOG.md Signed-off-by: Bitnami Containers * Confgure ipFamilies and ipFamilyPolicy in each service side Signed-off-by: Yasmina Menendez * Fix Chart version conflict Signed-off-by: Yasmina Menendez * Update CHANGELOG.md Signed-off-by: Bitnami Containers * Update CHANGELOG.md Signed-off-by: Bitnami Containers * Remove default values for ipFamilies and ipFamilyPolicy Signed-off-by: Yasmina Menendez * Update CHANGELOG.md Signed-off-by: Bitnami Containers * Update CHANGELOG.md Signed-off-by: Bitnami Containers * Bump minor version Signed-off-by: Yasmina Menendez * Update CHANGELOG.md Signed-off-by: Bitnami Containers --------- Signed-off-by: Bitnami Containers Signed-off-by: Yasmina Menendez Signed-off-by: Yhasmina <65738880+Yhasmina@users.noreply.github.com> Co-authored-by: Bitnami Bot Co-authored-by: Jesse Hitch Co-authored-by: Yasmina Menendez --- bitnami/kafka/CHANGELOG.md | 8 +++++-- bitnami/kafka/Chart.yaml | 2 +- bitnami/kafka/README.md | 8 +++++++ .../templates/broker/svc-external-access.yaml | 7 ++++++ .../kafka/templates/broker/svc-headless.yaml | 7 ++++++ .../svc-external-access.yaml | 7 ++++++ .../controller-eligible/svc-headless.yaml | 7 ++++++ bitnami/kafka/templates/metrics/jmx-svc.yaml | 7 ++++++ bitnami/kafka/templates/svc.yaml | 7 ++++++ bitnami/kafka/values.yaml | 24 +++++++++++++++++++ 10 files changed, 81 insertions(+), 3 deletions(-) diff --git a/bitnami/kafka/CHANGELOG.md b/bitnami/kafka/CHANGELOG.md index 013140b98c..0b3a18cb88 100644 --- a/bitnami/kafka/CHANGELOG.md +++ b/bitnami/kafka/CHANGELOG.md @@ -1,8 +1,12 @@ # Changelog -## 31.4.1 (2025-03-04) +## 31.5.0 (2025-03-06) -* [bitnami/kafka] Release 31.4.1 ([#32257](https://github.com/bitnami/charts/pull/32257)) +* [bitnami/kafka] IpFamilies and IpFamilyPolicy configurables ([#31456](https://github.com/bitnami/charts/pull/31456)) + +## 31.4.1 (2025-03-04) + +* [bitnami/kafka] Release 31.4.1 (#32257) ([5136e86](https://github.com/bitnami/charts/commit/5136e8603c2c5402ba07026948965da7011cae8e)), closes [#32257](https://github.com/bitnami/charts/issues/32257) ## 31.4.0 (2025-02-20) diff --git a/bitnami/kafka/Chart.yaml b/bitnami/kafka/Chart.yaml index b251cfa892..37e91be6db 100644 --- a/bitnami/kafka/Chart.yaml +++ b/bitnami/kafka/Chart.yaml @@ -40,4 +40,4 @@ maintainers: name: kafka sources: - https://github.com/bitnami/charts/tree/main/bitnami/kafka -version: 31.4.1 +version: 31.5.0 diff --git a/bitnami/kafka/README.md b/bitnami/kafka/README.md index e73dc878f5..59d8f4f0d2 100644 --- a/bitnami/kafka/README.md +++ b/bitnami/kafka/README.md @@ -850,6 +850,8 @@ You can enable this initContainer by setting `volumePermissions.enabled` to `tru | `service.headless.controller.labels` | Labels for the controller-eligible headless service. | `{}` | | `service.headless.broker.annotations` | Annotations for the broker-only headless service. | `{}` | | `service.headless.broker.labels` | Labels for the broker-only headless service. | `{}` | +| `service.headless.ipFamilies` | IP families for the headless service | `[]` | +| `service.headless.ipFamilyPolicy` | IP family policy for the headless service | `""` | | `externalAccess.enabled` | Enable Kubernetes external cluster access to Kafka brokers | `false` | | `externalAccess.autoDiscovery.enabled` | Enable using an init container to auto-detect external IPs/ports by querying the K8s API | `false` | | `externalAccess.autoDiscovery.image.registry` | Init container auto-discovery image registry | `REGISTRY_NAME` | @@ -886,6 +888,8 @@ You can enable this initContainer by setting `volumePermissions.enabled` to `tru | `externalAccess.controller.service.labels` | Service labels for external access | `{}` | | `externalAccess.controller.service.annotations` | Service annotations for external access | `{}` | | `externalAccess.controller.service.extraPorts` | Extra ports to expose in the Kafka external service | `[]` | +| `externalAccess.controller.service.ipFamilies` | IP families for the external controller service | `[]` | +| `externalAccess.controller.service.ipFamilyPolicy` | IP family policy for the external controller service | `""` | | `externalAccess.broker.service.type` | Kubernetes Service type for external access. It can be NodePort, LoadBalancer or ClusterIP | `LoadBalancer` | | `externalAccess.broker.service.ports.external` | Kafka port used for external access when service type is LoadBalancer | `9094` | | `externalAccess.broker.service.loadBalancerClass` | Kubernetes Service Load Balancer class for external access when service type is LoadBalancer | `""` | @@ -903,6 +907,8 @@ You can enable this initContainer by setting `volumePermissions.enabled` to `tru | `externalAccess.broker.service.labels` | Service labels for external access | `{}` | | `externalAccess.broker.service.annotations` | Service annotations for external access | `{}` | | `externalAccess.broker.service.extraPorts` | Extra ports to expose in the Kafka external service | `[]` | +| `externalAccess.broker.service.ipFamilies` | IP families for the external broker service | `[]` | +| `externalAccess.broker.service.ipFamilyPolicy` | IP family policy for the external broker service | `""` | | `networkPolicy.enabled` | Specifies whether a NetworkPolicy should be created | `true` | | `networkPolicy.allowExternal` | Don't require client label for connections | `true` | | `networkPolicy.allowExternalEgress` | Allow the pod to access any range of port and all destinations. | `true` | @@ -976,6 +982,8 @@ You can enable this initContainer by setting `volumePermissions.enabled` to `tru | `metrics.jmx.service.clusterIP` | Static clusterIP or None for headless services | `""` | | `metrics.jmx.service.sessionAffinity` | Control where client requests go, to the same pod or round-robin | `None` | | `metrics.jmx.service.annotations` | Annotations for the Prometheus JMX exporter service | `{}` | +| `metrics.jmx.service.ipFamilies` | IP families for the jmx metrics service | `[]` | +| `metrics.jmx.service.ipFamilyPolicy` | IP family policy for the jmx metrics service | `""` | | `metrics.jmx.whitelistObjectNames` | Allows setting which JMX objects you want to expose to via JMX stats to JMX exporter | `["kafka.controller:*","kafka.server:*","java.lang:*","kafka.network:*","kafka.log:*"]` | | `metrics.jmx.config` | Configuration file for JMX exporter | `""` | | `metrics.jmx.existingConfigmap` | Name of existing ConfigMap with JMX exporter configuration | `""` | diff --git a/bitnami/kafka/templates/broker/svc-external-access.yaml b/bitnami/kafka/templates/broker/svc-external-access.yaml index 3630430f5b..dfb7233d76 100644 --- a/bitnami/kafka/templates/broker/svc-external-access.yaml +++ b/bitnami/kafka/templates/broker/svc-external-access.yaml @@ -63,6 +63,13 @@ spec: app.kubernetes.io/part-of: kafka app.kubernetes.io/component: broker statefulset.kubernetes.io/pod-name: {{ $targetPod }} + {{- with $.Values.externalAccess.broker.service.ipFamilyPolicy }} + ipFamilyPolicy: {{ . | quote }} + {{- end }} + {{- with $.Values.externalAccess.broker.service.ipFamilies }} + ipFamilies: + {{- . | toYaml | nindent 2 }} + {{- end }} --- {{- end }} {{- end }} diff --git a/bitnami/kafka/templates/broker/svc-headless.yaml b/bitnami/kafka/templates/broker/svc-headless.yaml index 3484eba385..671860cb68 100644 --- a/bitnami/kafka/templates/broker/svc-headless.yaml +++ b/bitnami/kafka/templates/broker/svc-headless.yaml @@ -35,4 +35,11 @@ spec: selector: {{- include "common.labels.matchLabels" ( dict "customLabels" $podLabels "context" $ ) | nindent 4 }} app.kubernetes.io/component: broker app.kubernetes.io/part-of: kafka + {{- with .Values.service.headless.ipFamilyPolicy }} + ipFamilyPolicy: {{ . | quote }} + {{- end }} + {{- with .Values.service.headless.ipFamilies }} + ipFamilies: + {{- . | toYaml | nindent 2 }} + {{- end }} {{- end }} diff --git a/bitnami/kafka/templates/controller-eligible/svc-external-access.yaml b/bitnami/kafka/templates/controller-eligible/svc-external-access.yaml index 0a4901d5b0..083914e98d 100644 --- a/bitnami/kafka/templates/controller-eligible/svc-external-access.yaml +++ b/bitnami/kafka/templates/controller-eligible/svc-external-access.yaml @@ -64,6 +64,13 @@ spec: app.kubernetes.io/part-of: kafka app.kubernetes.io/component: controller-eligible statefulset.kubernetes.io/pod-name: {{ $targetPod }} + {{- with $.Values.externalAccess.controller.service.ipFamilyPolicy }} + ipFamilyPolicy: {{ . | quote }} + {{- end }} + {{- with $.Values.externalAccess.controller.service.ipFamilies }} + ipFamilies: + {{- . | toYaml | nindent 2 }} + {{- end }} --- {{- end }} {{- end }} diff --git a/bitnami/kafka/templates/controller-eligible/svc-headless.yaml b/bitnami/kafka/templates/controller-eligible/svc-headless.yaml index b74733bd2c..d0259563e9 100644 --- a/bitnami/kafka/templates/controller-eligible/svc-headless.yaml +++ b/bitnami/kafka/templates/controller-eligible/svc-headless.yaml @@ -43,4 +43,11 @@ spec: selector: {{- include "common.labels.matchLabels" ( dict "customLabels" $podLabels "context" $ ) | nindent 4 }} app.kubernetes.io/component: controller-eligible app.kubernetes.io/part-of: kafka + {{- with .Values.service.headless.ipFamilyPolicy }} + ipFamilyPolicy: {{ . | quote }} + {{- end }} + {{- with .Values.service.headless.ipFamilies }} + ipFamilies: + {{- . | toYaml | nindent 2 }} + {{- end }} {{- end }} diff --git a/bitnami/kafka/templates/metrics/jmx-svc.yaml b/bitnami/kafka/templates/metrics/jmx-svc.yaml index b305cd5148..2e58fcd26b 100644 --- a/bitnami/kafka/templates/metrics/jmx-svc.yaml +++ b/bitnami/kafka/templates/metrics/jmx-svc.yaml @@ -28,4 +28,11 @@ spec: targetPort: metrics selector: {{- include "common.labels.matchLabels" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }} app.kubernetes.io/part-of: kafka + {{- with .Values.metrics.jmx.service.ipFamilyPolicy }} + ipFamilyPolicy: {{ . | quote }} + {{- end }} + {{- with .Values.metrics.jmx.service.ipFamilies }} + ipFamilies: + {{- . | toYaml | nindent 2 }} + {{- end }} {{- end }} diff --git a/bitnami/kafka/templates/svc.yaml b/bitnami/kafka/templates/svc.yaml index c2e28ac67f..76293757bc 100644 --- a/bitnami/kafka/templates/svc.yaml +++ b/bitnami/kafka/templates/svc.yaml @@ -67,3 +67,10 @@ spec: {{- if and .Values.kraft.enabled .Values.controller.controllerOnly }} app.kubernetes.io/component: broker {{- end }} + {{- with .Values.service.ipFamilyPolicy }} + ipFamilyPolicy: {{ . | quote }} + {{- end }} + {{- with .Values.service.ipFamilies }} + ipFamilies: + {{- . | toYaml | nindent 2 }} + {{- end }} diff --git a/bitnami/kafka/values.yaml b/bitnami/kafka/values.yaml index 2d0c3d5482..1bcc546be2 100644 --- a/bitnami/kafka/values.yaml +++ b/bitnami/kafka/values.yaml @@ -1496,6 +1496,12 @@ service: ## @param service.headless.broker.labels Labels for the broker-only headless service. ## labels: {} + ## @param service.headless.ipFamilies IP families for the headless service + ## + ipFamilies: [] + ## @param service.headless.ipFamilyPolicy IP family policy for the headless service + ## + ipFamilyPolicy: "" ## External Access to Kafka brokers configuration ## externalAccess: @@ -1672,6 +1678,12 @@ externalAccess: ## @param externalAccess.controller.service.extraPorts Extra ports to expose in the Kafka external service ## extraPorts: [] + ## @param externalAccess.controller.service.ipFamilies IP families for the external controller service + ## + ipFamilies: [] + ## @param externalAccess.controller.service.ipFamilyPolicy IP family policy for the external controller service + ## + ipFamilyPolicy: "" broker: ## Parameters to configure K8s service(s) used to externally access Kafka brokers ## Note: A new service per broker will be created @@ -1758,6 +1770,12 @@ externalAccess: ## @param externalAccess.broker.service.extraPorts Extra ports to expose in the Kafka external service ## extraPorts: [] + ## @param externalAccess.broker.service.ipFamilies IP families for the external broker service + ## + ipFamilies: [] + ## @param externalAccess.broker.service.ipFamilyPolicy IP family policy for the external broker service + ## + ipFamilyPolicy: "" ## Network policies ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/ ## @@ -2049,6 +2067,12 @@ metrics: prometheus.io/scrape: "true" prometheus.io/port: "{{ .Values.metrics.jmx.service.ports.metrics }}" prometheus.io/path: "/metrics" + ## @param metrics.jmx.service.ipFamilies IP families for the jmx metrics service + ## + ipFamilies: [] + ## @param metrics.jmx.service.ipFamilyPolicy IP family policy for the jmx metrics service + ## + ipFamilyPolicy: "" ## @param metrics.jmx.whitelistObjectNames Allows setting which JMX objects you want to expose to via JMX stats to JMX exporter ## Only whitelisted values will be exposed via JMX exporter. They must also be exposed via Rules. To expose all metrics ## (warning its crazy excessive and they aren't formatted in a prometheus style) (1) `whitelistObjectNames: []`