From c50a384e40f24d0d0ad534c33994d86af3c334d9 Mon Sep 17 00:00:00 2001 From: Juan Ariza Toledano Date: Tue, 19 Dec 2023 10:20:56 +0100 Subject: [PATCH] [bitnami/rabbitmq] Add support for defining cluster name (#21621) --- bitnami/rabbitmq/Chart.yaml | 2 +- bitnami/rabbitmq/README.md | 1 + bitnami/rabbitmq/templates/statefulset.yaml | 9 ++------- bitnami/rabbitmq/values.yaml | 9 +++++++++ 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/bitnami/rabbitmq/Chart.yaml b/bitnami/rabbitmq/Chart.yaml index 8564dd051f..429147dcaa 100644 --- a/bitnami/rabbitmq/Chart.yaml +++ b/bitnami/rabbitmq/Chart.yaml @@ -30,4 +30,4 @@ maintainers: name: rabbitmq sources: - https://github.com/bitnami/charts/tree/main/bitnami/rabbitmq -version: 12.5.7 +version: 12.6.0 diff --git a/bitnami/rabbitmq/README.md b/bitnami/rabbitmq/README.md index 6f0ebe5a9d..1e783f3b39 100644 --- a/bitnami/rabbitmq/README.md +++ b/bitnami/rabbitmq/README.md @@ -126,6 +126,7 @@ The command removes all the Kubernetes components associated with the chart and | `communityPlugins` | List of Community plugins (URLs) to be downloaded during container initialization | `""` | | `extraPlugins` | Extra plugins to enable (single string containing a space-separated list) | `rabbitmq_auth_backend_ldap` | | `clustering.enabled` | Enable RabbitMQ clustering | `true` | +| `clustering.name` | RabbitMQ cluster name | `""` | | `clustering.addressType` | Switch clustering mode. Either `ip` or `hostname` | `hostname` | | `clustering.rebalance` | Rebalance master for queues in cluster when new replica is created | `false` | | `clustering.forceBoot` | Force boot of an unexpectedly shut down cluster (in an unexpected order). | `false` | diff --git a/bitnami/rabbitmq/templates/statefulset.yaml b/bitnami/rabbitmq/templates/statefulset.yaml index 23bea136f0..73307a5000 100644 --- a/bitnami/rabbitmq/templates/statefulset.yaml +++ b/bitnami/rabbitmq/templates/statefulset.yaml @@ -172,10 +172,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - - name: K8S_SERVICE_NAME - value: {{ printf "%s-%s" (include "common.names.fullname" .) (default "headless" .Values.servicenameOverride) }} - - name: K8S_ADDRESS_TYPE - value: {{ .Values.clustering.addressType }} + {{- $svcName := printf "%s-%s" (include "common.names.fullname" .) (default "headless" .Values.servicenameOverride) }} {{- if .Values.featureFlags }} - name: RABBITMQ_FEATURE_FLAGS value: {{ .Values.featureFlags }} @@ -184,9 +181,7 @@ spec: value: {{ ternary "yes" "no" .Values.clustering.forceBoot | quote }} {{- if (eq "hostname" .Values.clustering.addressType) }} - name: RABBITMQ_NODE_NAME - value: "rabbit@$(MY_POD_NAME).$(K8S_SERVICE_NAME).$(MY_POD_NAMESPACE).svc.{{ .Values.clusterDomain }}" - - name: K8S_HOSTNAME_SUFFIX - value: ".$(K8S_SERVICE_NAME).$(MY_POD_NAMESPACE).svc.{{ .Values.clusterDomain }}" + value: "rabbit@$(MY_POD_NAME).{{ $svcName }}.$(MY_POD_NAMESPACE).svc.{{ .Values.clusterDomain }}" {{- else }} - name: RABBITMQ_NODE_NAME value: "rabbit@$(MY_POD_NAME)" diff --git a/bitnami/rabbitmq/values.yaml b/bitnami/rabbitmq/values.yaml index 608a025951..6b3ecd5e0b 100644 --- a/bitnami/rabbitmq/values.yaml +++ b/bitnami/rabbitmq/values.yaml @@ -253,6 +253,10 @@ clustering: ## @param clustering.enabled Enable RabbitMQ clustering ## enabled: true + ## @param clustering.name RabbitMQ cluster name + ## If not set, a name is generated using the common.names.fullname template + ## + name: "" ## @param clustering.addressType Switch clustering mode. Either `ip` or `hostname` ## addressType: hostname @@ -390,8 +394,13 @@ configuration: |- {{- if .Values.clustering.enabled }} ## Clustering ## + cluster_name = {{ default (include "common.names.fullname" .) .Values.clustering.name }} cluster_formation.peer_discovery_backend = rabbit_peer_discovery_k8s cluster_formation.k8s.host = kubernetes.default + cluster_formation.k8s.address_type = {{ .Values.clustering.addressType }} + {{- $svcName := printf "%s-%s" (include "common.names.fullname" .) (default "headless" .Values.servicenameOverride) }} + cluster_formation.k8s.service_name = {{ $svcName }} + cluster_formation.k8s.hostname_suffix = .{{ $svcName }}.{{ include "common.names.namespace" . }}.svc.{{ .Values.clusterDomain }} cluster_formation.node_cleanup.interval = 10 cluster_formation.node_cleanup.only_log_warning = true cluster_partition_handling = {{ .Values.clustering.partitionHandling }}