apiVersion: apps/v1 kind: StatefulSet metadata: name: {{ include "postgresql.fullname" . }} labels: {{- include "postgresql.labels" . | nindent 4 }} spec: serviceName: {{ include "postgresql.fullname" . }}-headless replicas: 1 selector: matchLabels: {{- include "postgresql.selectorLabels" . | nindent 6 }} template: metadata: labels: {{- include "postgresql.selectorLabels" . | nindent 8 }} spec: securityContext: {{- toYaml .Values.podSecurityContext | nindent 8 }} containers: - name: postgresql image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" imagePullPolicy: {{ .Values.image.pullPolicy }} securityContext: {{- toYaml .Values.securityContext | nindent 12 }} ports: - name: postgresql containerPort: 5432 protocol: TCP envFrom: - secretRef: name: {{ include "postgresql.fullname" . }} env: - name: PGDATA value: /var/lib/postgresql/data/pgdata volumeMounts: - name: data mountPath: /var/lib/postgresql/data - name: config mountPath: /etc/postgresql/postgresql.conf subPath: postgresql.conf args: - "-c" - "config_file=/etc/postgresql/postgresql.conf" livenessProbe: exec: command: - sh - -c - pg_isready -U $POSTGRES_USER -d $POSTGRES_DB initialDelaySeconds: 30 periodSeconds: 10 failureThreshold: 6 readinessProbe: exec: command: - sh - -c - pg_isready -U $POSTGRES_USER -d $POSTGRES_DB initialDelaySeconds: 5 periodSeconds: 5 resources: {{- toYaml .Values.resources | nindent 12 }} volumes: - name: data persistentVolumeClaim: claimName: {{ include "postgresql.fullname" . }}-data - name: config configMap: name: {{ include "postgresql.fullname" . }}-config