apiVersion: apps/v1 kind: Deployment metadata: name: postgres spec: replicas: 1 selector: matchLabels: app: postgres template: metadata: labels: app: postgres spec: containers: - name: {{.Values.postgres.host }} image: {{.Values.postgres.image }} ports: - containerPort: {{.Values.postgres.port }} env: # PostgreSQL container environment variables - name: POSTGRES_DB valueFrom: secretKeyRef: name: {{ .Values.postgres.secretRef }} key: POSTGRES_DB - name: POSTGRES_USER valueFrom: secretKeyRef: name: {{ .Values.postgres.secretRef }} key: POSTGRES_USER - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: name: {{ .Values.postgres.secretRef }} key: POSTGRES_PASSWORD # Client environment variables (for psql command) - name: PGDATABASE valueFrom: secretKeyRef: name: {{ .Values.postgres.secretRef }} key: POSTGRES_DB - name: PGUSER valueFrom: secretKeyRef: name: {{ .Values.postgres.secretRef }} key: POSTGRES_USER - name: PGPASSWORD valueFrom: secretKeyRef: name: {{ .Values.postgres.secretRef }} key: POSTGRES_PASSWORD volumeMounts: - mountPath: /var/lib/postgresql/data name: postgredb volumes: - name: postgredb persistentVolumeClaim: claimName: postgresql-data-claim {{- if .Values.postgres.client.enabled }} --- apiVersion: v1 kind: Pod metadata: name: postgres-client spec: containers: - name: postgres-client image: {{.Values.postgres.image }} command: - tail - -f - /dev/null envFrom: - secretRef: name: {{ .Values.postgres.secretRef }} volumeMounts: - name: secret-volume readOnly: true mountPath: "/etc/secret-volume" volumes: - name: secret-volume secret: defaultMode: 0600 secretName: {{ .Values.postgres.secretRef }} restartPolicy: OnFailure {{- end }}