{{ $values := (. | mustDeepCopy) }}
{{ $_ := set $values "common" (dict "nameSuffix" "postgres") }}
{{ include "common.deployment.common_config" $values | nindent 0 }}
spec: {{ include "common.deployment.common_spec" $values | nindent 2 }}
  template: {{ include "common.deployment.pod.metadata" $values | nindent 4 }}
    spec:
      containers:
      - name: {{ .Chart.Name }}-postgres
        image: {{ template "postgres.imageName" . }}
        imagePullPolicy: {{ .Values.image.pullPolicy }}
        env: {{ include "postgres.envVariableConfiguration" $values | nindent 10 }}
        volumeMounts: {{ include "postgres.volumeMountsConfiguration" $values | nindent 10 }}
        ports:
        - name: postgres-tcp
          containerPort: 5432
          protocol: TCP
        readinessProbe:
          exec:
            command:
              - sh
              - -c
              - "until pg_isready -U ${POSTGRES_USER} -h localhost; do sleep 2; done"
          initialDelaySeconds: 10
          periodSeconds: 10
          timeoutSeconds: 5
          failureThreshold: 5
          successThreshold: 2
        livenessProbe:
          exec:
            command:
              - sh
              - -c
              - "until pg_isready -U ${POSTGRES_USER} -h localhost; do sleep 2; done"
          initialDelaySeconds: 10
          periodSeconds: 10
          timeoutSeconds: 5
          failureThreshold: 5
          successThreshold: 1
        startupProbe:
          exec:
            command:
              - sh
              - -c
              - "until pg_isready -U ${POSTGRES_USER} -h localhost; do sleep 2; done"
          initialDelaySeconds: 10
          periodSeconds: 5
          timeoutSeconds: 2
          failureThreshold: 60
          successThreshold: 1
      volumes: {{ include "postgres.volumeConfiguration" $values | nindent 8 }}
