From ac82dc66e8e105109eb20e7eb689bd10f9b4990d Mon Sep 17 00:00:00 2001 From: Ruben Hensen Date: Mon, 26 Jan 2026 17:47:54 +0100 Subject: [PATCH] Add init container sogo --- sogo/templates/_helpers.tpl | 4 ++-- sogo/templates/deployment.yaml | 35 +++++++++++++++++++++++++++------- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/sogo/templates/_helpers.tpl b/sogo/templates/_helpers.tpl index db25d09..d13892f 100644 --- a/sogo/templates/_helpers.tpl +++ b/sogo/templates/_helpers.tpl @@ -49,12 +49,12 @@ app.kubernetes.io/instance: {{ .Release.Name }} {{- end }} {{/* -PostgreSQL connection URL +PostgreSQL connection URL base (without table name) */}} {{- define "sogo.postgresqlURL" -}} {{- $user := .Values.postgresql.username -}} {{- $host := printf "%s-postgres-rw.%s.svc.cluster.local" (include "sogo.fullname" .) .Release.Namespace -}} {{- $port := "5432" -}} {{- $db := .Values.postgresql.database -}} -{{- printf "postgresql://%s:${POSTGRES_PASSWORD}@%s:%s/%s?sslmode=require" $user $host $port $db -}} +{{- printf "postgresql://%s:${POSTGRES_PASSWORD}@%s:%s/%s" $user $host $port $db -}} {{- end }} diff --git a/sogo/templates/deployment.yaml b/sogo/templates/deployment.yaml index 362e0c2..ec55e68 100644 --- a/sogo/templates/deployment.yaml +++ b/sogo/templates/deployment.yaml @@ -18,6 +18,31 @@ spec: labels: {{- include "sogo.selectorLabels" . | nindent 8 }} spec: + initContainers: + - name: config-init + image: busybox:latest + env: + - name: POSTGRES_PASSWORD + valueFrom: + secretKeyRef: + name: {{ include "sogo.fullname" . }}-postgres-credentials + key: password + command: + - sh + - -c + - | + # Copy config files from ConfigMap and substitute environment variables + for file in /config-template/*; do + filename=$(basename "$file") + # Use sed to replace ${POSTGRES_PASSWORD} with actual value + sed "s|\${POSTGRES_PASSWORD}|${POSTGRES_PASSWORD}|g" "$file" > "/config/$filename" + done + echo "Configuration files generated successfully" + volumeMounts: + - name: config-template + mountPath: /config-template + - name: config + mountPath: /config containers: - name: sogo image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" @@ -26,12 +51,6 @@ spec: - name: http containerPort: 80 protocol: TCP - env: - - name: POSTGRES_PASSWORD - valueFrom: - secretKeyRef: - name: {{ include "sogo.fullname" . }}-postgres-credentials - key: password volumeMounts: - name: config mountPath: /etc/sogo/sogo.conf.d @@ -56,9 +75,11 @@ spec: resources: {{- toYaml .Values.resources | nindent 10 }} volumes: - - name: config + - name: config-template configMap: name: {{ include "sogo.fullname" . }}-config + - name: config + emptyDir: {} - name: data persistentVolumeClaim: claimName: {{ include "sogo.fullname" . }}-data