diff --git a/designate/templates/bin/_designate-central.sh.tpl b/designate/templates/bin/_designate-central.sh.tpl index b684b46983..4ab281402e 100644 --- a/designate/templates/bin/_designate-central.sh.tpl +++ b/designate/templates/bin/_designate-central.sh.tpl @@ -17,7 +17,8 @@ COMMAND="${@:-start}" function start () { exec designate-central \ - --config-file /etc/designate/designate.conf + --config-file /etc/designate/designate.conf \ + --config-dir /etc/designate/designate.conf.d } function stop () { diff --git a/designate/templates/bin/_designate-mdns.sh.tpl b/designate/templates/bin/_designate-mdns.sh.tpl index 6770894f8e..b12773f353 100644 --- a/designate/templates/bin/_designate-mdns.sh.tpl +++ b/designate/templates/bin/_designate-mdns.sh.tpl @@ -16,7 +16,8 @@ COMMAND="${@:-start}" function start () { designate-mdns \ - --config-file /etc/designate/designate.conf + --config-file /etc/designate/designate.conf \ + --config-dir /etc/designate/designate.conf.d } function stop () { diff --git a/designate/templates/bin/_designate-producer.sh.tpl b/designate/templates/bin/_designate-producer.sh.tpl index b2b9efc1c5..483d54b5a0 100644 --- a/designate/templates/bin/_designate-producer.sh.tpl +++ b/designate/templates/bin/_designate-producer.sh.tpl @@ -15,7 +15,9 @@ set -ex COMMAND="${@:-start}" function start () { - designate-producer --config-file /etc/designate/designate.conf + designate-producer \ + --config-file /etc/designate/designate.conf \ + --config-dir /etc/designate/designate.conf.d } function stop () { diff --git a/designate/templates/bin/_designate-service-cleaner.sh.tpl b/designate/templates/bin/_designate-service-cleaner.sh.tpl index 045b85c937..a70285f60d 100644 --- a/designate/templates/bin/_designate-service-cleaner.sh.tpl +++ b/designate/templates/bin/_designate-service-cleaner.sh.tpl @@ -6,4 +6,5 @@ set -ex designate-manage \ --config-file /etc/designate/designate.conf \ + --config-dir /etc/designate/designate.conf.d \ service clean diff --git a/designate/templates/bin/_designate-sink.sh.tpl b/designate/templates/bin/_designate-sink.sh.tpl index d552f8bac9..4b9951cf8c 100644 --- a/designate/templates/bin/_designate-sink.sh.tpl +++ b/designate/templates/bin/_designate-sink.sh.tpl @@ -15,7 +15,8 @@ set -ex COMMAND="${@:-start}" exec designate-sink \ - --config-file /etc/designate/designate.conf + --config-file /etc/designate/designate.conf \ + --config-dir /etc/designate/designate.conf.d } function stop () { diff --git a/designate/templates/bin/_designate-worker.sh.tpl b/designate/templates/bin/_designate-worker.sh.tpl index 38e8fad7c6..dbb45d29f1 100644 --- a/designate/templates/bin/_designate-worker.sh.tpl +++ b/designate/templates/bin/_designate-worker.sh.tpl @@ -16,7 +16,8 @@ COMMAND="${@:-start}" function start () { designate-worker \ - --config-file /etc/designate/designate.conf + --config-file /etc/designate/designate.conf \ + --config-dir /etc/designate/designate.conf.d } function stop () { diff --git a/designate/templates/cron-job-service.cleaner.yaml b/designate/templates/cron-job-service.cleaner.yaml index 78db536e1b..f7f6d6c14b 100644 --- a/designate/templates/cron-job-service.cleaner.yaml +++ b/designate/templates/cron-job-service.cleaner.yaml @@ -6,6 +6,7 @@ {{- $mounts_designate_service_cleaner := .Values.pod.mounts.designate_service_cleaner.designate_service_cleaner }} {{- $mounts_designate_service_cleaner_init := .Values.pod.mounts.designate_service_cleaner.init_container }} +{{- $etcSources := .Values.pod.etcSources.designate_service_cleaner }} {{- $serviceAccountName := "designate-service-cleaner" }} {{ tuple $envAll "service_cleaner" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }} @@ -66,6 +67,9 @@ spec: mountPath: /etc/designate/designate.conf subPath: designate.conf readOnly: true + - name: designate-etc-snippets + mountPath: /etc/designate/designate.conf.d/ + readOnly: true - name: designate-etc mountPath: /etc/designate/api-paste.ini subPath: api-paste.ini @@ -94,5 +98,13 @@ spec: secret: secretName: designate-etc defaultMode: 0444 + - name: service-etc-snippets +{{- if $etcSources }} + projected: + sources: +{{ toYaml $etcSources | indent 18 }} +{{- else }} + emptyDir: {} +{{ end }} {{ if $mounts_designate_service_cleaner.volumes }}{{ toYaml $mounts_designate_service_cleaner.volumes | indent 12 }}{{ end }} {{- end }} diff --git a/designate/templates/deployment-api.yaml b/designate/templates/deployment-api.yaml index 52386aafcd..870d17d3a2 100644 --- a/designate/templates/deployment-api.yaml +++ b/designate/templates/deployment-api.yaml @@ -14,6 +14,7 @@ {{- $envAll := . }} {{- $mounts_designate_api := .Values.pod.mounts.designate_api.designate_api }} {{- $mounts_designate_api_init := .Values.pod.mounts.designate_api.init_container }} +{{- $etcSources := .Values.pod.etcSources.designate_api }} {{- $serviceAccountName := "designate-api" }} {{ tuple $envAll "api" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }} @@ -89,6 +90,9 @@ spec: mountPath: /etc/designate/designate.conf subPath: designate.conf readOnly: true + - name: designate-etc-snippets + mountPath: /etc/designate/designate.conf.d/ + readOnly: true - name: designate-etc mountPath: /etc/designate/api-paste.ini subPath: api-paste.ini @@ -123,5 +127,13 @@ spec: secret: secretName: designate-etc defaultMode: 0444 + - name: designate-etc-snippets +{{- if $etcSources }} + projected: + sources: +{{ toYaml $etcSources | indent 14 }} +{{- else }} + emptyDir: {} +{{ end }} {{ if $mounts_designate_api.volumes }}{{ toYaml $mounts_designate_api.volumes | indent 8 }}{{ end }} {{- end }} diff --git a/designate/templates/deployment-central.yaml b/designate/templates/deployment-central.yaml index 9bcdecfb6d..8df0e9b660 100644 --- a/designate/templates/deployment-central.yaml +++ b/designate/templates/deployment-central.yaml @@ -14,6 +14,7 @@ {{- $envAll := . }} {{- $mounts_designate_central := .Values.pod.mounts.designate_central.designate_central }} {{- $mounts_designate_central_init := .Values.pod.mounts.designate_central.init_container }} +{{- $etcSources := .Values.pod.etcSources.designate_central }} {{- $serviceAccountName := "designate-central" }} {{ tuple $envAll "central" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }} @@ -74,6 +75,9 @@ spec: mountPath: /etc/designate/designate.conf subPath: designate.conf readOnly: true + - name: designate-etc-snippets + mountPath: /etc/designate/designate.conf.d/ + readOnly: true - name: designate-etc mountPath: /etc/designate/api-paste.ini subPath: api-paste.ini @@ -104,5 +108,13 @@ spec: secret: secretName: designate-etc defaultMode: 0444 + - name: designate-etc-snippets +{{- if $etcSources }} + projected: + sources: +{{ toYaml $etcSources | indent 14 }} +{{- else }} + emptyDir: {} +{{ end }} {{ if $mounts_designate_central.volumes }}{{ toYaml $mounts_designate_central.volumes | indent 8 }}{{ end }} {{- end }} diff --git a/designate/templates/deployment-mdns.yaml b/designate/templates/deployment-mdns.yaml index 56f16ce5ff..423770bea1 100644 --- a/designate/templates/deployment-mdns.yaml +++ b/designate/templates/deployment-mdns.yaml @@ -14,6 +14,7 @@ {{- $envAll := . }} {{- $mounts_designate_mdns := .Values.pod.mounts.designate_mdns.designate_mdns }} {{- $mounts_designate_mdns_init := .Values.pod.mounts.designate_mdns.init_container }} +{{- $etcSources := .Values.pod.etcSources.designate_mdns }} {{- $serviceAccountName := "designate-mdns" }} {{ tuple $envAll "mdns" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }} @@ -85,6 +86,9 @@ spec: mountPath: /etc/designate/designate.conf subPath: designate.conf readOnly: true + - name: designate-etc-snippets + mountPath: /etc/designate/designate.conf.d/ + readOnly: true - name: designate-etc mountPath: /etc/designate/api-paste.ini subPath: api-paste.ini @@ -115,5 +119,13 @@ spec: secret: secretName: designate-etc defaultMode: 0444 + - name: designate-etc-snippets +{{- if $etcSources }} + projected: + sources: +{{ toYaml $etcSources | indent 14 }} +{{- else }} + emptyDir: {} +{{ end }} {{ if $mounts_designate_mdns.volumes }}{{ toYaml $mounts_designate_mdns.volumes | indent 8 }}{{ end }} {{- end }} diff --git a/designate/templates/deployment-producer.yaml b/designate/templates/deployment-producer.yaml index 9acfacdb5a..159b05d83f 100644 --- a/designate/templates/deployment-producer.yaml +++ b/designate/templates/deployment-producer.yaml @@ -14,6 +14,7 @@ {{- $envAll := . }} {{- $mounts_designate_producer := .Values.pod.mounts.designate_producer.designate_producer }} {{- $mounts_designate_producer_init := .Values.pod.mounts.designate_producer.init_container }} +{{- $etcSources := .Values.pod.etcSources.designate_producer }} {{- $serviceAccountName := "designate-producer" }} {{ tuple $envAll "producer" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }} @@ -74,6 +75,9 @@ spec: mountPath: /etc/designate/designate.conf subPath: designate.conf readOnly: true + - name: designate-etc-snippets + mountPath: /etc/designate/designate.conf.d/ + readOnly: true - name: designate-etc mountPath: /etc/designate/api-paste.ini subPath: api-paste.ini @@ -104,5 +108,13 @@ spec: secret: secretName: designate-etc defaultMode: 0444 + - name: designate-etc-snippets +{{- if $etcSources }} + projected: + sources: +{{ toYaml $etcSources | indent 14 }} +{{- else }} + emptyDir: {} +{{ end }} {{ if $mounts_designate_producer.volumes }}{{ toYaml $mounts_designate_producer.volumes | indent 8 }}{{ end }} {{- end }} diff --git a/designate/templates/deployment-sink.yaml b/designate/templates/deployment-sink.yaml index 2575904e4e..4e484c96ff 100644 --- a/designate/templates/deployment-sink.yaml +++ b/designate/templates/deployment-sink.yaml @@ -14,6 +14,7 @@ {{- $envAll := . }} {{- $mounts_designate_sink := .Values.pod.mounts.designate_sink.designate_sink }} {{- $mounts_designate_sink_init := .Values.pod.mounts.designate_sink.init_container }} +{{- $etcSources := .Values.pod.etcSources.designate_sink }} {{- $serviceAccountName := "designate-sink" }} {{ tuple $envAll "sink" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }} @@ -74,6 +75,9 @@ spec: mountPath: /etc/designate/designate.conf subPath: designate.conf readOnly: true + - name: designate-etc-snippets + mountPath: /etc/designate/designate.conf.d/ + readOnly: true - name: designate-etc mountPath: /etc/designate/policy.yaml subPath: policy.yaml @@ -100,5 +104,13 @@ spec: secret: secretName: designate-etc defaultMode: 0444 + - name: designate-etc-snippets +{{- if $etcSources }} + projected: + sources: +{{ toYaml $etcSources | indent 14 }} +{{- else }} + emptyDir: {} +{{ end }} {{ if $mounts_designate_sink.volumes }}{{ toYaml $mounts_designate_sink.volumes | indent 8 }}{{ end }} {{- end }} diff --git a/designate/templates/deployment-worker.yaml b/designate/templates/deployment-worker.yaml index 08f376a048..e54ac1a700 100644 --- a/designate/templates/deployment-worker.yaml +++ b/designate/templates/deployment-worker.yaml @@ -14,6 +14,7 @@ {{- $envAll := . }} {{- $mounts_designate_worker := .Values.pod.mounts.designate_worker.designate_worker }} {{- $mounts_designate_worker_init := .Values.pod.mounts.designate_worker.init_container }} +{{- $etcSources := .Values.pod.etcSources.designate_worker }} {{- $serviceAccountName := "designate-worker" }} {{ tuple $envAll "worker" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }} @@ -99,6 +100,9 @@ spec: mountPath: /etc/designate/designate.conf subPath: designate.conf readOnly: true + - name: designate-etc-snippets + mountPath: /etc/designate/designate.conf.d/ + readOnly: true - name: designate-etc mountPath: /etc/designate/api-paste.ini subPath: api-paste.ini @@ -129,5 +133,13 @@ spec: secret: secretName: designate-etc defaultMode: 0444 + - name: designate-etc-snippets +{{- if $etcSources }} + projected: + sources: +{{ toYaml $etcSources | indent 14 }} +{{- else }} + emptyDir: {} +{{ end }} {{ if $mounts_designate_worker.volumes }}{{ toYaml $mounts_designate_worker.volumes | indent 8 }}{{ end }} {{- end }} diff --git a/designate/values.yaml b/designate/values.yaml index caa4824ad6..6f8b7f1f3c 100644 --- a/designate/values.yaml +++ b/designate/values.yaml @@ -116,6 +116,18 @@ pod: designate_db_sync: volumeMounts: volumes: + # -- This allows users to add Kubernetes Projected Volumes to be mounted at /etc/designate/designate.conf.d/ + ## This is a list of projected volume source objects for each deployment/statefulset/daemonset/cronjob + ## https://kubernetes.io/docs/concepts/storage/projected-volumes/ + etcSources: + designate_api: [] + designate_central: [] + designate_mdns: [] + designate_worker: [] + designate_producer: [] + designate_sink: [] + designate_service_cleaner: [] + designate_db_sync: [] replicas: api: 1 central: 1 diff --git a/releasenotes/notes/designate-bc18055009645160.yaml b/releasenotes/notes/designate-bc18055009645160.yaml new file mode 100644 index 0000000000..5f62b6928e --- /dev/null +++ b/releasenotes/notes/designate-bc18055009645160.yaml @@ -0,0 +1,7 @@ +--- +designate: + - | + Allow users to add additional sources to the Projected Volume that is mounted + at /etc/designate/designate.conf.d/ so they may more easily override configs or provide + additional configs for the various services in the chart. +...