apiVersion: apps/v1 kind: StatefulSet metadata: name: {{ include "wordpress-website.fullname" . }}-postgresql labels: {{- include "wordpress-website.labels" . | nindent 4 }} app.kubernetes.io/component: database spec: serviceName: {{ include "wordpress-website.fullname" . }}-postgresql replicas: 1 selector: matchLabels: {{- include "wordpress-website.selectorLabels" . | nindent 6 }} app.kubernetes.io/component: database template: metadata: labels: {{- include "wordpress-website.selectorLabels" . | nindent 8 }} app.kubernetes.io/component: database spec: securityContext: {{- toYaml .Values.postgresql.podSecurityContext | nindent 8 }} containers: - name: postgresql image: "{{ .Values.postgresql.image.repository }}:{{ .Values.postgresql.image.tag }}" imagePullPolicy: {{ .Values.postgresql.image.pullPolicy }} ports: - name: postgresql containerPort: 5432 protocol: TCP env: - name: POSTGRES_DB value: {{ .Values.postgresql.database }} - name: POSTGRES_USER value: {{ .Values.postgresql.username }} - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: name: {{ include "wordpress-website.fullname" . }}-postgresql key: postgresql-password - name: PGDATA value: /var/lib/postgresql/data/pgdata - name: PGUSER value: {{ .Values.postgresql.username }} - name: PGDATABASE value: {{ .Values.postgresql.database }} livenessProbe: exec: command: - /bin/sh - -c - exec pg_isready -U "$POSTGRES_USER" -d "$POSTGRES_DB" -h 127.0.0.1 -p 5432 initialDelaySeconds: 30 periodSeconds: 10 timeoutSeconds: 5 successThreshold: 1 failureThreshold: 6 readinessProbe: exec: command: - /bin/sh - -c - exec pg_isready -U "$POSTGRES_USER" -d "$POSTGRES_DB" -h 127.0.0.1 -p 5432 initialDelaySeconds: 5 periodSeconds: 10 timeoutSeconds: 5 successThreshold: 1 failureThreshold: 6 resources: {{- toYaml .Values.postgresql.resources | nindent 12 }} volumeMounts: - name: postgresql-data mountPath: /var/lib/postgresql/data volumes: - name: postgresql-data persistentVolumeClaim: claimName: {{ include "wordpress-website.fullname" . }}-postgresql-data --- apiVersion: v1 kind: Service metadata: name: {{ include "wordpress-website.fullname" . }}-postgresql labels: {{- include "wordpress-website.labels" . | nindent 4 }} app.kubernetes.io/component: database spec: type: ClusterIP ports: - port: 5432 targetPort: postgresql protocol: TCP name: postgresql selector: {{- include "wordpress-website.selectorLabels" . | nindent 4 }} app.kubernetes.io/component: database