From 2c9753c8bd4d25eb7a80fd02038b8c22b5438e76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mathieu=20Gagn=C3=A9?= Date: Thu, 19 Feb 2026 15:54:06 -0500 Subject: [PATCH] feat(ceilometer): allow users to provide configs in ceilometer.conf.d MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Allow users to provide additional projected volumes to be mounted into the various deployments, statefulsets, and jobs that the ceilometer chart has in the /etc/ceilometer/ceilometer.conf.d/ path. This allows for users to provide service account or database secrets via different operators as well as provide ways to use the chart to define common deployments while being able to have site specific overrides. Change-Id: If6759cebe20430f4547f933171496effbb320b98 Signed-off-by: Mathieu Gagné --- ceilometer/templates/bin/_ceilometer-central.sh.tpl | 3 ++- ceilometer/templates/bin/_ceilometer-compute.sh.tpl | 3 ++- ceilometer/templates/bin/_ceilometer-ipmi.sh.tpl | 3 ++- .../templates/bin/_ceilometer-notification.sh.tpl | 3 ++- ceilometer/templates/daemonset-compute.yaml | 13 +++++++++++++ ceilometer/templates/daemonset-ipmi.yaml | 13 +++++++++++++ ceilometer/templates/deployment-central.yaml | 13 +++++++++++++ ceilometer/templates/deployment-notification.yaml | 13 +++++++++++++ ceilometer/values.yaml | 8 ++++++++ releasenotes/notes/ceilometer-b86532145d088208.yaml | 7 +++++++ 10 files changed, 75 insertions(+), 4 deletions(-) create mode 100644 releasenotes/notes/ceilometer-b86532145d088208.yaml diff --git a/ceilometer/templates/bin/_ceilometer-central.sh.tpl b/ceilometer/templates/bin/_ceilometer-central.sh.tpl index 3b7076876f..04863175de 100644 --- a/ceilometer/templates/bin/_ceilometer-central.sh.tpl +++ b/ceilometer/templates/bin/_ceilometer-central.sh.tpl @@ -18,4 +18,5 @@ set -ex exec ceilometer-polling \ --polling-namespaces central \ - --config-file /etc/ceilometer/ceilometer.conf + --config-file /etc/ceilometer/ceilometer.conf \ + --config-dir /etc/ceilometer/ceilometer.conf.d diff --git a/ceilometer/templates/bin/_ceilometer-compute.sh.tpl b/ceilometer/templates/bin/_ceilometer-compute.sh.tpl index b189fca225..2f15d0a56f 100644 --- a/ceilometer/templates/bin/_ceilometer-compute.sh.tpl +++ b/ceilometer/templates/bin/_ceilometer-compute.sh.tpl @@ -18,4 +18,5 @@ set -ex exec ceilometer-polling \ --polling-namespaces compute \ - --config-file /etc/ceilometer/ceilometer.conf + --config-file /etc/ceilometer/ceilometer.conf \ + --config-dir /etc/ceilometer/ceilometer.conf.d diff --git a/ceilometer/templates/bin/_ceilometer-ipmi.sh.tpl b/ceilometer/templates/bin/_ceilometer-ipmi.sh.tpl index 9b6a82a420..0d70157a05 100644 --- a/ceilometer/templates/bin/_ceilometer-ipmi.sh.tpl +++ b/ceilometer/templates/bin/_ceilometer-ipmi.sh.tpl @@ -18,4 +18,5 @@ set -ex exec ceilometer-polling \ --polling-namespaces ipmi \ - --config-file /etc/ceilometer/ceilometer.conf + --config-file /etc/ceilometer/ceilometer.conf \ + --config-dir /etc/ceilometer/ceilometer.conf.d diff --git a/ceilometer/templates/bin/_ceilometer-notification.sh.tpl b/ceilometer/templates/bin/_ceilometer-notification.sh.tpl index 781e288108..9acc75d4fc 100644 --- a/ceilometer/templates/bin/_ceilometer-notification.sh.tpl +++ b/ceilometer/templates/bin/_ceilometer-notification.sh.tpl @@ -17,4 +17,5 @@ limitations under the License. set -ex exec ceilometer-agent-notification \ - --config-file /etc/ceilometer/ceilometer.conf + --config-file /etc/ceilometer/ceilometer.conf \ + --config-dir /etc/ceilometer/ceilometer.conf.d diff --git a/ceilometer/templates/daemonset-compute.yaml b/ceilometer/templates/daemonset-compute.yaml index 07536d443d..1d20e85958 100644 --- a/ceilometer/templates/daemonset-compute.yaml +++ b/ceilometer/templates/daemonset-compute.yaml @@ -20,6 +20,8 @@ limitations under the License. {{- $serviceAccountName := "ceilometer-compute" }} {{ tuple $envAll "compute" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }} + +{{- $etcSources := .Values.pod.etcSources.ceilometer_compute }} --- apiVersion: apps/v1 kind: DaemonSet @@ -72,6 +74,9 @@ spec: mountPath: /etc/ceilometer/ceilometer.conf subPath: ceilometer.conf readOnly: true + - name: ceilometer-etc-snippets + mountPath: /etc/ceilometer/ceilometer.conf.d/ + readOnly: true - name: ceilometer-etc mountPath: /etc/ceilometer/api_paste.ini subPath: api_paste.ini @@ -125,6 +130,14 @@ spec: secret: secretName: ceilometer-etc defaultMode: 0444 + - name: ceilometer-etc-snippets +{{- if $etcSources }} + projected: + sources: +{{ toYaml $etcSources | indent 14 }} +{{- else }} + emptyDir: {} +{{ end }} - name: ceilometer-bin configMap: name: ceilometer-bin diff --git a/ceilometer/templates/daemonset-ipmi.yaml b/ceilometer/templates/daemonset-ipmi.yaml index 619a2168f4..790ab09573 100644 --- a/ceilometer/templates/daemonset-ipmi.yaml +++ b/ceilometer/templates/daemonset-ipmi.yaml @@ -20,6 +20,8 @@ limitations under the License. {{- $serviceAccountName := "ceilometer-ipmi" }} {{ tuple $envAll "ipmi" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }} + +{{- $etcSources := .Values.pod.etcSources.ceilometer_ipmi }} --- apiVersion: apps/v1 kind: DaemonSet @@ -74,6 +76,9 @@ spec: mountPath: /etc/ceilometer/ceilometer.conf subPath: ceilometer.conf readOnly: true + - name: ceilometer-etc-snippets + mountPath: /etc/ceilometer/ceilometer.conf.d/ + readOnly: true - name: ceilometer-etc mountPath: /etc/ceilometer/api_paste.ini subPath: api_paste.ini @@ -119,6 +124,14 @@ spec: secret: secretName: ceilometer-etc defaultMode: 0444 + - name: ceilometer-etc-snippets +{{- if $etcSources }} + projected: + sources: +{{ toYaml $etcSources | indent 14 }} +{{- else }} + emptyDir: {} +{{ end }} - name: ceilometer-bin configMap: name: ceilometer-bin diff --git a/ceilometer/templates/deployment-central.yaml b/ceilometer/templates/deployment-central.yaml index 15fae9591b..a3130105b7 100644 --- a/ceilometer/templates/deployment-central.yaml +++ b/ceilometer/templates/deployment-central.yaml @@ -20,6 +20,8 @@ limitations under the License. {{- $serviceAccountName := "ceilometer-central" }} {{ tuple $envAll "central" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }} + +{{- $etcSources := .Values.pod.etcSources.ceilometer_central }} --- apiVersion: apps/v1 kind: Deployment @@ -70,6 +72,9 @@ spec: mountPath: /etc/ceilometer/ceilometer.conf subPath: ceilometer.conf readOnly: true + - name: ceilometer-etc-snippets + mountPath: /etc/ceilometer/ceilometer.conf.d/ + readOnly: true - name: ceilometer-etc mountPath: /etc/ceilometer/api_paste.ini subPath: api_paste.ini @@ -112,6 +117,14 @@ spec: secret: secretName: ceilometer-etc defaultMode: 0444 + - name: ceilometer-etc-snippets +{{- if $etcSources }} + projected: + sources: +{{ toYaml $etcSources | indent 14 }} +{{- else }} + emptyDir: {} +{{ end }} - name: ceilometer-bin configMap: name: ceilometer-bin diff --git a/ceilometer/templates/deployment-notification.yaml b/ceilometer/templates/deployment-notification.yaml index 33b2c382c7..534657aa27 100644 --- a/ceilometer/templates/deployment-notification.yaml +++ b/ceilometer/templates/deployment-notification.yaml @@ -20,6 +20,8 @@ limitations under the License. {{- $serviceAccountName := "ceilometer-notification" }} {{ tuple $envAll "notification" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }} + +{{- $etcSources := .Values.pod.etcSources.ceilometer_notification }} --- apiVersion: apps/v1 kind: Deployment @@ -70,6 +72,9 @@ spec: mountPath: /etc/ceilometer/ceilometer.conf subPath: ceilometer.conf readOnly: true + - name: ceilometer-etc-snippets + mountPath: /etc/ceilometer/ceilometer.conf.d/ + readOnly: true - name: ceilometer-etc mountPath: /etc/ceilometer/api_paste.ini subPath: api_paste.ini @@ -116,6 +121,14 @@ spec: secret: secretName: ceilometer-etc defaultMode: 0444 + - name: ceilometer-etc-snippets +{{- if $etcSources }} + projected: + sources: +{{ toYaml $etcSources | indent 14 }} +{{- else }} + emptyDir: {} +{{ end }} - name: ceilometer-bin configMap: name: ceilometer-bin diff --git a/ceilometer/values.yaml b/ceilometer/values.yaml index 78ff02ed9d..f7eb3d8c64 100644 --- a/ceilometer/values.yaml +++ b/ceilometer/values.yaml @@ -1533,6 +1533,14 @@ pod: ceilometer_db_sync: volumeMounts: volumes: + # -- This allows users to add Kubernetes Projected Volumes to be mounted at /etc/ceilometer/ceilometer.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: + ceilometer_compute: [] + ceilometer_central: [] + ceilometer_ipmi: [] + ceilometer_notification: [] replicas: central: 1 notification: 1 diff --git a/releasenotes/notes/ceilometer-b86532145d088208.yaml b/releasenotes/notes/ceilometer-b86532145d088208.yaml new file mode 100644 index 0000000000..15d912246e --- /dev/null +++ b/releasenotes/notes/ceilometer-b86532145d088208.yaml @@ -0,0 +1,7 @@ +--- +ceilometer: + - | + Allow users to add additional sources to the Projected Volume that is mounted + at /etc/ceilometer/ceilometer.conf.d/ so they may more easily override configs or provide + additional configs for the various services in the chart. +...