From 0c9e47885090d5f73805eccbf034a035eb7f3625 Mon Sep 17 00:00:00 2001 From: pieter Date: Sat, 7 Feb 2026 00:20:11 +0000 Subject: [PATCH] =?UTF-8?q?templates/statefulset-primary.yaml=20=E3=82=92?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- templates/statefulset-primary.yaml | 96 ++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 templates/statefulset-primary.yaml diff --git a/templates/statefulset-primary.yaml b/templates/statefulset-primary.yaml new file mode 100644 index 0000000..a27be6d --- /dev/null +++ b/templates/statefulset-primary.yaml @@ -0,0 +1,96 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: {{ include "postgresql.fullname" . }}-primary + labels: + {{- include "postgresql.labels" . | nindent 4 }} + app.kubernetes.io/component: primary +spec: + serviceName: {{ include "postgresql.fullname" . }}-headless + replicas: 1 + selector: + matchLabels: + {{- include "postgresql.selectorLabels" . | nindent 6 }} + app.kubernetes.io/component: primary + template: + metadata: + labels: + {{- include "postgresql.selectorLabels" . | nindent 8 }} + app.kubernetes.io/component: primary + spec: + containers: + - name: postgresql + image: "{{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + ports: + - name: postgres + containerPort: 5432 + protocol: TCP + env: + - name: POSTGRES_DB + value: {{ .Values.postgres.database | quote }} + - name: POSTGRES_USER + value: {{ .Values.postgres.user | quote }} + - name: POSTGRES_PASSWORD + valueFrom: + secretKeyRef: + name: {{ .Values.postgres.existingSecret | default (include "postgresql.fullname" .) }} + key: {{ .Values.postgres.passwordKey }} + {{- if .Values.replication.enabled }} + - name: REPLICATION_PASSWORD + valueFrom: + secretKeyRef: + name: {{ .Values.postgres.existingSecret | default (include "postgresql.fullname" .) }} + key: {{ .Values.postgres.replicationPasswordKey }} + {{- end }} + - name: PGDATA + value: /var/lib/postgresql/data/pgdata + volumeMounts: + - name: data + mountPath: /var/lib/postgresql/data + {{- if .Values.replication.enabled }} + - name: config + mountPath: /docker-entrypoint-initdb.d/primary-init.sh + subPath: primary-init.sh + {{- end }} + livenessProbe: + exec: + command: + - /bin/sh + - -c + - pg_isready -U {{ .Values.postgres.user }} + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 5 + failureThreshold: 6 + readinessProbe: + exec: + command: + - /bin/sh + - -c + - pg_isready -U {{ .Values.postgres.user }} + initialDelaySeconds: 5 + periodSeconds: 10 + timeoutSeconds: 5 + failureThreshold: 6 + resources: + {{- toYaml .Values.primary.resources | nindent 10 }} + volumes: + {{- if .Values.replication.enabled }} + - name: config + configMap: + name: {{ include "postgresql.fullname" . }}-config + defaultMode: 0755 + {{- end }} + volumeClaimTemplates: + - metadata: + name: data + spec: + accessModes: + - {{ .Values.primary.persistence.accessMode }} + resources: + requests: + storage: {{ .Values.primary.persistence.size }} + {{- if .Values.primary.persistence.storageClass }} + storageClassName: {{ .Values.primary.persistence.storageClass }} + {{- end }}