apiVersion: apps/v1 kind: Deployment metadata: name: {{ .Values.name }} namespace: {{ .Values.namespace }} spec: replicas: 1 selector: matchLabels: app: {{ .Values.name }} template: metadata: labels: app: {{ .Values.name }} spec: initContainers: - name: init-cleanup image: busybox command: ["rm", "-rf", "/var/lib/postgresql/data/lost+found"] volumeMounts: - name: backup mountPath: /var/lib/postgresql/data - name: "{{ .Values.name }}-db" image: postgres:alpine restartPolicy: Always env: - name: POSTGRES_DB value: "{{ .Values.env.dbName }}" - name: POSTGRES_USER value: "{{ .Values.env.dbUser }}" - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: name: {{ .Values.secrets.db.secretName }} key: {{ .Values.secrets.db.secretKey }} volumeMounts: - name: config mountPath: /var/lib/postgresql/data subPath: pgdata containers: - name: {{ .Values.name }} image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" env: - name: POSTGRES_USER value: "{{ .Values.env.dbUser }}" - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: name: {{ .Values.secrets.db.secretName }} key: {{ .Values.secrets.db.secretKey }} - name: POSTGRES_IP value: "localhost" - name: POSTGRES_PORT value: "5432" - name: JWT_SECRET valueFrom: secretKeyRef: name: {{ .Values.secrets.jwt.secretName }} key: - name: POSTGRES_DB value: "{{ .Values.env.dbName }}" volumeMounts: - name: config mountPath: /app/backend/backup-data subPath: backup volumes: {{- if and .Values.persistence.enabled .Values.persistence.existingClaim }} - name: config persistentVolumeClaim: claimName: "{{ .Values.persistence.claimName }}" {{- else if .Values.persistence.enabled }} - name: config persistentVolumeClaim: claimName: "longhorn-{{ .Values.name }}" {{- else }} - name: config emptyDir: {} {{- end }}