From df1b1f3508abd885433e151d2019aba177dce495 Mon Sep 17 00:00:00 2001 From: Martin Domke Date: Thu, 3 Jan 2019 23:46:57 +0100 Subject: [PATCH] [stable/rabbitmq-ha] Allow defintions to be overwritten in existing secret (#9897) * [stable/rabbitmq-ha] Allow defintions to be overwritten in existing secret Addresses issue #8510 Signed-off-by: Martin Domke * Fix misspelled variable Signed-off-by: Martin Domke * Remove useless readOnly flag This is a forward-port of the change in #9222 Signed-off-by: Martin Domke * [stable/rabbitmq-ha] Add documentation for definitionsSource value Signed-off-by: Martin Domke --- stable/rabbitmq-ha/Chart.yaml | 2 +- stable/rabbitmq-ha/README.md | 9 ++++++++- stable/rabbitmq-ha/templates/secret.yaml | 2 +- stable/rabbitmq-ha/templates/statefulset.yaml | 8 ++------ stable/rabbitmq-ha/values.yaml | 4 ++++ 5 files changed, 16 insertions(+), 9 deletions(-) diff --git a/stable/rabbitmq-ha/Chart.yaml b/stable/rabbitmq-ha/Chart.yaml index 961bf3218f..03e3514c1b 100644 --- a/stable/rabbitmq-ha/Chart.yaml +++ b/stable/rabbitmq-ha/Chart.yaml @@ -1,7 +1,7 @@ name: rabbitmq-ha apiVersion: v1 appVersion: 3.7.8 -version: 1.14.4 +version: 1.15.0 description: Highly available RabbitMQ cluster, the open source message broker software that implements the Advanced Message Queuing Protocol (AMQP). keywords: diff --git a/stable/rabbitmq-ha/README.md b/stable/rabbitmq-ha/README.md index 8c9481772f..f2f48e244f 100644 --- a/stable/rabbitmq-ha/README.md +++ b/stable/rabbitmq-ha/README.md @@ -77,6 +77,7 @@ and their default values. | `definitions.exchanges` | Pre-created exchanges | `""` | | `definitions.bindings` | Pre-created bindings | `""` | | `definitions.policies` | HA policies to add to definitions.json | `""` | +| `definitionsSource` | Use this key within an existing secret to reference the definitions specification | `"definitions.json"` | | `image.pullPolicy` | Image pull policy | `Always` if `image` tag is `latest`, else `IfNotPresent` | | `image.repository` | RabbitMQ container image repository | `rabbitmq` | | `image.tag` | RabbitMQ container image tag | `3.7-alpine` | @@ -220,7 +221,13 @@ $ helm install --name my-release --set existingConfigMap=true stable/rabbitmq-ha ### Custom Secret Similar to custom ConfigMap, `existingSecret` can be used to override the default secret.yaml provided, and -`rabbitmqCert.existingSecret` can be used to override the default certificates. +`rabbitmqCert.existingSecret` can be used to override the default certificates. The custom secret must provide +the following keys: + +* `rabbitmq-user` +* `rabbitmq-password` +* `rabbitmq-erlang-cookie` +* `definitions.json` (the name can be altered by setting the `definitionsSource`) ### Prometheus Monitoring & Alerts diff --git a/stable/rabbitmq-ha/templates/secret.yaml b/stable/rabbitmq-ha/templates/secret.yaml index 763d47bef0..5831167720 100644 --- a/stable/rabbitmq-ha/templates/secret.yaml +++ b/stable/rabbitmq-ha/templates/secret.yaml @@ -18,7 +18,7 @@ data: rabbitmq-username: {{ .Values.rabbitmqUsername | b64enc | quote }} rabbitmq-password: {{ .Values.rabbitmqPassword | b64enc | quote }} rabbitmq-erlang-cookie: {{ .Values.rabbitmqErlangCookie | default (randAlphaNum 32) | b64enc | quote }} - definitions.json: {{ include "rabbitmq-ha.definitions" . | b64enc | quote }} + {{ .Values.definitionsSource }}: {{ include "rabbitmq-ha.definitions" . | b64enc | quote }} {{ end }} {{- if and .Values.rabbitmqCert.enabled (not .Values.rabbitmqCert.existingSecret) }} --- diff --git a/stable/rabbitmq-ha/templates/statefulset.yaml b/stable/rabbitmq-ha/templates/statefulset.yaml index 075997ddee..698e867460 100644 --- a/stable/rabbitmq-ha/templates/statefulset.yaml +++ b/stable/rabbitmq-ha/templates/statefulset.yaml @@ -155,11 +155,9 @@ spec: mountPath: /var/lib/rabbitmq - name: config mountPath: /etc/rabbitmq - {{- if not .Values.existingSecret }} - name: definitions mountPath: /etc/definitions readOnly: true - {{- end }} {{- if .Values.rabbitmqCert.enabled }} - name: cert mountPath: /etc/cert @@ -234,14 +232,12 @@ spec: - name: configmap configMap: name: {{ template "rabbitmq-ha.fullname" . }} - {{- if not .Values.existingSecret }} - name: definitions secret: - secretName: {{ template "rabbitmq-ha.fullname" . }} + secretName: {{ template "rabbitmq-ha.secretName" . }} items: - - key: definitions.json + - key: {{ .Values.definitionsSource }} path: definitions.json - {{- end }} {{- if .Values.rabbitmqCert.enabled }} - name: cert secret: diff --git a/stable/rabbitmq-ha/values.yaml b/stable/rabbitmq-ha/values.yaml index 9aa6bab0a3..519e78a031 100644 --- a/stable/rabbitmq-ha/values.yaml +++ b/stable/rabbitmq-ha/values.yaml @@ -13,6 +13,10 @@ managementPassword: E9R3fjZm4ejFkVFE extraConfig: | # queue_master_locator = min-masters +## Definitions specification within the secret, will always be mounted +## at /etc/definitions/defintions.json +definitionsSource: definitions.json + ## Place any additional plugins to enable in /etc/rabbitmq/enabled_plugins ## Ref: https://www.rabbitmq.com/plugins.html extraPlugins: |