From 2fe9143531b164a3a07013444f006727a1f7067f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mathieu=20Gagn=C3=A9?= Date: Thu, 19 Feb 2026 14:27:07 -0500 Subject: [PATCH] feat(placement): allow users to provide configs in placement.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 placement chart has in the /etc/placement/placement.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: I5c9e766c179e362a18832d09130d11cc1bab4944 Signed-off-by: Mathieu Gagné --- placement/templates/deployment.yaml | 13 +++++++++++++ placement/values.yaml | 5 +++++ releasenotes/notes/placement-a180f4e88ed81d30.yaml | 7 +++++++ 3 files changed, 25 insertions(+) create mode 100644 releasenotes/notes/placement-a180f4e88ed81d30.yaml diff --git a/placement/templates/deployment.yaml b/placement/templates/deployment.yaml index 9cf1b07ef3..c3cd05f4a6 100644 --- a/placement/templates/deployment.yaml +++ b/placement/templates/deployment.yaml @@ -22,6 +22,8 @@ limitations under the License. {{- $serviceAccountName := "placement-api" }} {{ tuple $envAll "api" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }} + +{{- $etcSources := .Values.pod.etcSources.placement }} --- apiVersion: apps/v1 kind: Deployment @@ -128,6 +130,9 @@ spec: mountPath: /etc/placement/placement.conf subPath: placement.conf readOnly: true + - name: placement-etc-snippets + mountPath: /etc/placement/placement.conf.d/ + readOnly: true - name: placement-etc mountPath: /etc/placement/placement-api-uwsgi.ini subPath: placement-api-uwsgi.ini @@ -166,6 +171,14 @@ spec: secret: secretName: placement-etc defaultMode: 0444 + - name: placement-etc-snippets +{{- if $etcSources }} + projected: + sources: +{{ toYaml $etcSources | indent 14 }} +{{- else }} + emptyDir: {} +{{ end }} {{- if .Values.conf.placement.DEFAULT.log_dir }} - name: log hostPath: diff --git a/placement/values.yaml b/placement/values.yaml index 2ca9cd8b8c..5c2b541149 100644 --- a/placement/values.yaml +++ b/placement/values.yaml @@ -309,6 +309,11 @@ pod: placement: volumeMounts: volumes: + # -- This allows users to add Kubernetes Projected Volumes to be mounted at /etc/placement/placement.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: + placement: [] replicas: api: 1 lifecycle: diff --git a/releasenotes/notes/placement-a180f4e88ed81d30.yaml b/releasenotes/notes/placement-a180f4e88ed81d30.yaml new file mode 100644 index 0000000000..e35d062ef5 --- /dev/null +++ b/releasenotes/notes/placement-a180f4e88ed81d30.yaml @@ -0,0 +1,7 @@ +--- +placement: + - | + Allow users to add additional sources to the Projected Volume that is mounted + at /etc/placement/placement.conf.d/ so they may more easily override configs or provide + additional configs for the various services in the chart. +...