Add support for etcSources to db-sync job

This change adds support for charts already supporting etcSources:
- aodh
- ceilometer
- cinder
- glance
- heat
- keystone
- neutron
- octavia
- placement

Change-Id: Ie6e2397627ecfe88cc0a1a5af3214ad747153519
Signed-off-by: Mathieu Gagné <mgagne@calavera.ca>
This commit is contained in:
Mathieu Gagné
2026-02-23 09:11:36 -05:00
parent 055e90ea4c
commit fd074471ac
22 changed files with 94 additions and 5 deletions

View File

@@ -157,6 +157,7 @@ pod:
aodh_listener: []
aodh_notifier: []
aodh_alarms_cleaner: []
aodh_db_sync: []
replicas:
api: 1
evaluator: 1

View File

@@ -1541,6 +1541,7 @@ pod:
ceilometer_central: []
ceilometer_ipmi: []
ceilometer_notification: []
ceilometer_db_sync: []
replicas:
central: 1
notification: 1

View File

@@ -266,6 +266,7 @@ pod:
cinder_volume_usage_audit: []
cinder_db_purge: []
cinder_backup: []
cinder_db_sync: []
replicas:
api: 1
volume: 1

View File

@@ -18,7 +18,7 @@ helm.sh/hook-weight: "-4"
{{- end }}
{{- if .Values.manifests.job_db_sync }}
{{- $dbToSync := index . "dbToSync" | default ( dict "configFile" (printf "/etc/%s/%s.conf" "glance" "glance-api" ) "logConfigFile" (printf "/etc/%s/logging.conf" "glance" ) "image" ( index .Values.images.tags ( printf "%s_db_sync" "glance" )) ) -}}
{{- $dbToSync := index . "dbToSync" | default ( dict "configFile" (printf "/etc/%s/%s.conf" "glance" "glance-api" ) "configDir" (printf "/etc/%s/%s.conf.d" "glance" "glance") "logConfigFile" (printf "/etc/%s/logging.conf" "glance" ) "image" ( index .Values.images.tags ( printf "%s_db_sync" "glance" )) ) -}}
{{- $dbSyncJob := dict "envAll" . "serviceName" "glance" "podVolMounts" .Values.pod.mounts.glance_db_sync.glance_db_sync.volumeMounts "podVols" .Values.pod.mounts.glance_db_sync.glance_db_sync.volumes "dbToSync" $dbToSync -}}
{{- if .Values.manifests.certificates -}}
{{- $_ := set $dbSyncJob "dbAdminTlsSecret" .Values.endpoints.oslo_db.auth.admin.secret.tls.internal -}}

View File

@@ -912,7 +912,8 @@ pod:
## This is a list of projected volume source objects for each deployment/statefulset/daemonset/cronjob
## https://kubernetes.io/docs/concepts/storage/projected-volumes/
etcSources:
glance_api:
glance_api: []
glance_db_sync: []
replicas:
api: 1
lifecycle:

View File

@@ -1047,6 +1047,7 @@ pod:
heat_engine: []
heat_engine_cleaner: []
heat_purge_deleted: []
heat_db_sync: []
replicas:
api: 1
cfn: 1

View File

@@ -31,7 +31,8 @@ limitations under the License.
{{- $podVolMounts := (concat ((index $podMount "volumeMounts" | default list)) ((index . "podVolMounts") | default (list))) | uniq -}}
{{- $podVols := (concat ((index $podMount "volumes" | default list)) ((index . "podVols") | default (list))) | uniq -}}
{{- $podEnvVars := index . "podEnvVars" | default false -}}
{{- $dbToSync := index . "dbToSync" | default ( dict "configFile" (printf "/etc/%s/%s.conf" $serviceName $serviceName ) "logConfigFile" (printf "/etc/%s/logging.conf" $serviceName ) "image" ( index $envAll.Values.images.tags ( printf "%s_db_sync" $serviceName )) ) -}}
{{- $dbToSync := index . "dbToSync" | default ( dict "configFile" (printf "/etc/%s/%s.conf" $serviceName $serviceName ) "configDir" (printf "/etc/%s/%s.conf.d" $serviceName $serviceName ) "logConfigFile" (printf "/etc/%s/logging.conf" $serviceName ) "image" ( index $envAll.Values.images.tags ( printf "%s_db_sync" $serviceName )) ) -}}
{{- $etcSources := index (index $envAll.Values.pod "etcSources" | default dict) $jobNameRef | default list -}}
{{- $secretBin := index . "secretBin" -}}
{{- $backoffLimit := index . "backoffLimit" | default "1000" -}}
{{- $activeDeadlineSeconds := index . "activeDeadlineSeconds" -}}
@@ -108,6 +109,9 @@ spec:
mountPath: {{ $dbToSync.configFile | quote }}
subPath: {{ base $dbToSync.configFile | quote }}
readOnly: true
- name: db-sync-conf-dir
mountPath: {{ $dbToSync.configDir | quote }}
readOnly: true
- name: db-sync-conf
mountPath: {{ $dbToSync.logConfigFile | quote }}
subPath: {{ base $dbToSync.logConfigFile | quote }}
@@ -135,6 +139,14 @@ spec:
secret:
secretName: {{ $configMapEtc | quote }}
defaultMode: 0444
- name: db-sync-conf-dir
{{- if $etcSources }}
projected:
sources:
{{ toYaml $etcSources | indent 14 }}
{{- else }}
emptyDir: {}
{{ end }}
{{- dict "enabled" $envAll.Values.manifests.certificates "name" $dbAdminTlsSecret | include "helm-toolkit.snippets.tls_volume" | indent 8 }}
{{- if $podVols }}
{{ $podVols | toYaml | indent 8 }}

View File

@@ -16,8 +16,15 @@ limitations under the License.
set -ex
keystone-manage --config-file=/etc/keystone/keystone.conf db_sync
keystone-manage --config-file=/etc/keystone/keystone.conf bootstrap \
keystone-manage \
--config-file=/etc/keystone/keystone.conf \
--config-dir=/etc/keystone/keystone.conf.d \
db_sync
keystone-manage \
--config-file=/etc/keystone/keystone.conf \
--config-dir=/etc/keystone/keystone.conf.d \
bootstrap \
--bootstrap-username ${OS_USERNAME} \
--bootstrap-password ${OS_PASSWORD} \
--bootstrap-project-name ${OS_PROJECT_NAME} \

View File

@@ -287,6 +287,7 @@ pod:
## This is a list of projected volume source objects for each deployment/statefulset/daemonset/cronjob
## https://kubernetes.io/docs/concepts/storage/projected-volumes/
etcSources:
keystone_db_sync: []
keystone_api: []
keystone_fernet_setup: []
keystone_fernet_rotate: []

View File

@@ -23,12 +23,14 @@ neutron-db-manage \
{{- else }}
--config-file /etc/neutron/plugins/ml2/ml2_conf.ini \
{{- end }}
--config-dir /etc/neutron/neutron.conf.d \
upgrade head
{{- if .Values.conf.plugins.taas.taas.enabled }}
neutron-db-manage \
--config-file /etc/neutron/neutron.conf \
--config-file /etc/neutron/plugins/ml2/ml2_conf.ini \
--config-dir /etc/neutron/neutron.conf.d \
--subproject tap-as-a-service \
upgrade head
{{- end }}

View File

@@ -702,6 +702,11 @@ pod:
octavia_bootstrap:
volumeMounts:
volumes:
octavia_db_sync:
init_container: null
octavia_db_sync:
volumeMounts:
volumes:
# -- This allows users to add Kubernetes Projected Volumes to be mounted at /etc/octavia/octavia.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/
@@ -711,6 +716,7 @@ pod:
octavia_worker: []
octavia_housekeeping: []
octavia_health_manager: []
octavia_db_sync: []
replicas:
api: 1
driver_agent: 1

View File

@@ -309,11 +309,17 @@ pod:
placement:
volumeMounts:
volumes:
placement_db_sync:
init_container: null
placement_db_sync:
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: []
placement_db_sync: []
replicas:
api: 1
lifecycle:

View File

@@ -0,0 +1,5 @@
---
aodh:
- |
Add support for etcSources to db-sync job.
...

View File

@@ -0,0 +1,5 @@
---
ceilometer:
- |
Add support for etcSources to db-sync job.
...

View File

@@ -0,0 +1,5 @@
---
cinder:
- |
Add support for etcSources to db-sync job.
...

View File

@@ -0,0 +1,5 @@
---
glance:
- |
Add support for etcSources to db-sync job.
...

View File

@@ -0,0 +1,5 @@
---
heat:
- |
Add support for etcSources to db-sync job.
...

View File

@@ -0,0 +1,5 @@
---
helm-toolkit:
- |
Add support for etcSources to db-sync job.
...

View File

@@ -0,0 +1,5 @@
---
keystone:
- |
Add support for etcSources to db-sync job.
...

View File

@@ -0,0 +1,5 @@
---
neutron:
- |
Add support for etcSources to db-sync job.
...

View File

@@ -0,0 +1,5 @@
---
octavia:
- |
Add support for etcSources to db-sync job.
...

View File

@@ -0,0 +1,5 @@
---
placement:
- |
Add support for etcSources to db-sync job.
...