From 3fe9f2e6482afd4a1120d9e9b5978af2b381f9b2 Mon Sep 17 00:00:00 2001 From: pieter Date: Sat, 7 Feb 2026 00:20:59 +0000 Subject: [PATCH] =?UTF-8?q?templates/statefulset-replica.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-replica.yaml | 95 ++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 templates/statefulset-replica.yaml diff --git a/templates/statefulset-replica.yaml b/templates/statefulset-replica.yaml new file mode 100644 index 0000000..d3515fd --- /dev/null +++ b/templates/statefulset-replica.yaml @@ -0,0 +1,95 @@ +{{- if .Values.replication.enabled }} +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: {{ include "postgresql.fullname" . }}-replica + labels: + {{- include "postgresql.labels" . | nindent 4 }} + app.kubernetes.io/component: replica +spec: + serviceName: {{ include "postgresql.fullname" . }}-headless + replicas: {{ .Values.replication.replicaCount }} + selector: + matchLabels: + {{- include "postgresql.selectorLabels" . | nindent 6 }} + app.kubernetes.io/component: replica + template: + metadata: + labels: + {{- include "postgresql.selectorLabels" . | nindent 8 }} + app.kubernetes.io/component: replica + spec: + initContainers: + - name: init-replica + image: "{{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + command: + - /bin/bash + - /config/replica-init.sh + env: + - name: PGDATA + value: /var/lib/postgresql/data/pgdata + - name: REPLICATION_PASSWORD + valueFrom: + secretKeyRef: + name: {{ .Values.postgres.existingSecret | default (include "postgresql.fullname" .) }} + key: {{ .Values.postgres.replicationPasswordKey }} + volumeMounts: + - name: data + mountPath: /var/lib/postgresql/data + - name: config + mountPath: /config + 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: PGDATA + value: /var/lib/postgresql/data/pgdata + volumeMounts: + - name: data + mountPath: /var/lib/postgresql/data + livenessProbe: + exec: + command: + - /bin/sh + - -c + - pg_isready + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 5 + failureThreshold: 6 + readinessProbe: + exec: + command: + - /bin/sh + - -c + - pg_isready + initialDelaySeconds: 5 + periodSeconds: 10 + timeoutSeconds: 5 + failureThreshold: 6 + resources: + {{- toYaml .Values.replica.resources | nindent 10 }} + volumes: + - name: config + configMap: + name: {{ include "postgresql.fullname" . }}-config + defaultMode: 0755 + volumeClaimTemplates: + - metadata: + name: data + spec: + accessModes: + - {{ .Values.replica.persistence.accessMode }} + resources: + requests: + storage: {{ .Values.replica.persistence.size }} + {{- if .Values.replica.persistence.storageClass }} + storageClassName: {{ .Values.replica.persistence.storageClass }} + {{- end }} +{{- end }}