diff --git a/charts/my-recipes-chart/templates/backend-deployment.yaml b/charts/my-recipes-chart/templates/backend-deployment.yaml index 78e204d..d84672b 100644 --- a/charts/my-recipes-chart/templates/backend-deployment.yaml +++ b/charts/my-recipes-chart/templates/backend-deployment.yaml @@ -17,6 +17,50 @@ spec: app: {{ .Release.Name }}-{{ .Values.backend.name }} component: backend spec: + initContainers: + - name: db-migration + image: postgres:16-alpine + command: + - /bin/sh + - -c + - | + echo "Waiting for database to be ready..." + until pg_isready -h $DB_HOST -U $DB_USER; do + echo "Database not ready, waiting..." + sleep 2 + done + echo "Database is ready, running migration..." + PGPASSWORD=$DB_PASSWORD psql -h $DB_HOST -U $DB_USER -d $DB_NAME -f /migration/migrate.sql + echo "Migration completed successfully" + env: + - name: DB_HOST + valueFrom: + secretKeyRef: + name: {{ .Release.Name }}-db-credentials + key: DB_HOST + - name: DB_PORT + valueFrom: + secretKeyRef: + name: {{ .Release.Name }}-db-credentials + key: DB_PORT + - name: DB_NAME + valueFrom: + secretKeyRef: + name: {{ .Release.Name }}-db-credentials + key: DB_NAME + - name: DB_USER + valueFrom: + secretKeyRef: + name: {{ .Release.Name }}-db-credentials + key: DB_USER + - name: DB_PASSWORD + valueFrom: + secretKeyRef: + name: {{ .Release.Name }}-db-credentials + key: DB_PASSWORD + volumeMounts: + - name: migration-script + mountPath: /migration containers: - name: {{ .Values.backend.name }} image: "{{ .Values.backend.image.repository }}:{{ .Values.backend.image.tag }}" @@ -66,4 +110,8 @@ spec: limits: cpu: {{ .Values.backend.resources.limits.cpu }} memory: {{ .Values.backend.resources.limits.memory }} + volumes: + - name: migration-script + configMap: + name: {{ .Release.Name }}-db-migration