apiVersion: apps/v1 kind: StatefulSet metadata: name: {{ .Values.name }} namespace: {{ .Values.namespace }} spec: serviceName: {{ .Values.name }} replicas: 1 selector: matchLabels: app: {{ .Values.name }} template: metadata: labels: app: {{ .Values.name }} spec: nodeSelector: {{ toYaml .Values.nodeSelector | indent 8 }} containers: - name: postgres image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" ports: - containerPort: 5432 name: postgres env: - name: POSTGRES_DB value: {{ .Values.auth.database | quote }} - name: POSTGRES_USER value: {{ .Values.auth.username | quote }} - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: name: {{ .Values.auth.secret }} key: password - name: PGDATA value: /var/lib/postgresql/data/pgdata volumeMounts: - name: postgres-data mountPath: /var/lib/postgresql/data volumeClaimTemplates: - metadata: name: postgres-data spec: accessModes: - ReadWriteOnce storageClassName: {{ .Values.storage.className }} resources: requests: storage: {{ .Values.storage.size }}