--- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: postgresql-pvc namespace: {{ .Release.Namespace }} labels: app: postgresql {{- include "rcoder.labels" . | nindent 4 }} spec: accessModes: ["ReadWriteOnce"] {{- if .Values.postgresql.storage.storageClass }} storageClassName: {{ .Values.postgresql.storage.storageClass | quote }} {{- end }} resources: requests: storage: {{ .Values.postgresql.storage.size | quote }} --- apiVersion: apps/v1 kind: StatefulSet metadata: name: postgresql namespace: {{ .Release.Namespace }} labels: app: postgresql {{- include "rcoder.labels" . | nindent 4 }} spec: serviceName: postgresql replicas: 1 selector: matchLabels: app: postgresql template: metadata: labels: app: postgresql {{- include "rcoder.labels" . | nindent 8 }} spec: {{- include "rcoder.imagePullSecrets" . | nindent 6 }} initContainers: - name: cleanup image: {{ include "rcoder.thirdPartyImage" (dict "repository" .Values.postgresql.image.repository "tag" .Values.postgresql.image.tag "ctx" .) }} imagePullPolicy: {{ .Values.global.imagePullPolicy }} command: ["rm", "-rf", "/var/lib/postgresql/data/lost+found"] volumeMounts: - name: postgres-data mountPath: /var/lib/postgresql/data containers: - name: postgresql image: {{ include "rcoder.thirdPartyImage" (dict "repository" .Values.postgresql.image.repository "tag" .Values.postgresql.image.tag "ctx" .) }} imagePullPolicy: {{ .Values.global.imagePullPolicy }} ports: - containerPort: {{ .Values.postgresql.service.port }} name: postgres env: - name: POSTGRES_DB value: "juicefs" - name: POSTGRES_USER valueFrom: secretKeyRef: name: rcoder-credentials key: POSTGRES_USER - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: name: rcoder-credentials key: POSTGRES_PASSWORD livenessProbe: exec: command: ["pg_isready", "-U", {{ .Values.credentials.postgresql.user | quote }}] initialDelaySeconds: 30 periodSeconds: 10 readinessProbe: exec: command: ["pg_isready", "-U", {{ .Values.credentials.postgresql.user | quote }}] initialDelaySeconds: 5 periodSeconds: 5 volumeMounts: - name: postgres-data mountPath: /var/lib/postgresql/data volumes: - name: postgres-data persistentVolumeClaim: claimName: postgresql-pvc