@@ -31,123 +31,7 @@ spec:
3131 image : " {{ .Values.image.repository }}:{{ .Values.image.tag }}"
3232 imagePullPolicy : {{ .Values.image.pullPolicy }}
3333 env :
34- {{- if .Values.kubernetes.dcs.enable }}
35- - name : PATRONI_KUBERNETES_POD_IP
36- valueFrom :
37- fieldRef :
38- fieldPath : status.podIP
39- - name : PATRONI_KUBERNETES_NAMESPACE
40- valueFrom :
41- fieldRef :
42- fieldPath : metadata.namespace
43- - name : PATRONI_KUBERNETES_BYPASS_API_SERVICE
44- value : ' true'
45- - name : PATRONI_KUBERNETES_USE_ENDPOINTS
46- value : ' true'
47- - name : PATRONI_KUBERNETES_LABELS
48- value : ' {app: {{ template "patroni.fullname" . }},release: {{ .Release.Name }},cluster-name: {{ template "patroni.fullname" . }}}'
49- - name : PATRONI_SUPERUSER_USERNAME
50- value : postgres
51- - name : PATRONI_SUPERUSER_PASSWORD
52- valueFrom :
53- secretKeyRef :
54- name : {{ template "patroni.fullname" . }}
55- key : password-superuser
56- - name : PATRONI_REPLICATION_USERNAME
57- value : standby
58- - name : PATRONI_REPLICATION_PASSWORD
59- valueFrom :
60- secretKeyRef :
61- name : {{ template "patroni.fullname" . }}
62- key : password-replication
63- - name : PATRONI_SCOPE
64- value : {{ template "patroni.fullname" . }}
65- - name : PATRONI_NAME
66- valueFrom :
67- fieldRef :
68- fieldPath : metadata.name
69- - name : PATRONI_POSTGRESQL_DATA_DIR
70- value : " {{ .Values.persistentVolume.mountPath }}/data"
71- - name : PATRONI_POSTGRESQL_PGPASS
72- value : /tmp/pgpass
73- - name : PATRONI_POSTGRESQL_LISTEN
74- value : ' 0.0.0.0:5432'
75- - name : PATRONI_RESTAPI_LISTEN
76- value : ' 0.0.0.0:8008'
77-
78- {{- if .Values.kubernetes.configmaps.enable }}
79- - name : KUBERNETES_USE_CONFIGMAPS
80- value : " true"
81- {{- end }}
82- {{- end }}
83- {{- if .Values.etcd.enable }}
84- {{- if .Values.etcd.deployChart }}
85- - name : ETCD_DISCOVERY_DOMAIN
86- value : {{default (printf "%s-etcd" .Release.Name | trunc 63) .Values.etcd.discovery }}
87- {{- else }}
88- - name : ETCD_HOST
89- value : {{ .Values.etcd.host | quote }}
90- {{- end }}
91- {{- else if .Values.zookeeper.enable }}
92- {{- if .Values.zookeeper.deployChart }}
93- - name : ZOOKEEPER_HOSTS
94- value : {{(printf "'%s-zookeeper-headless:2181'" .Release.Name | trunc 63)}}
95- {{- else }}
96- - name : ZOOKEEPER_HOSTS
97- value : {{ .Values.zookeeper.hosts | quote }}
98- {{- end }}
99- {{- else if .Values.consul.enable }}
100- {{- if .Values.consul.deployChart }}
101- - name : PATRONI_CONSUL_HOST
102- value : {{(printf "'%s-consul'" .Release.Name | trunc 63)}}
103- {{- else }}
104- - name : PATRONI_CONSUL_HOST
105- value : {{ .Values.consul.host | quote }}
106- {{- end }}
107- {{- end }}
108- - name : SCOPE
109- value : {{ template "patroni.fullname" . }}
110- {{- if .Values.walE.enable }}
111- - name : USE_WALE
112- value : {{ .Values.walE.enable | quote }}
113- {{- if .Values.walE.scheduleCronJob }}
114- - name : BACKUP_SCHEDULE
115- value : {{ .Values.walE.scheduleCronJob | quote}}
116- {{- end }}
117- {{- if .Values.walE.retainBackups }}
118- - name : BACKUP_NUM_TO_RETAIN
119- value : {{ .Values.walE.retainBackups | quote}}
120- {{- end }}
121- {{- if .Values.walE.s3Bucket }}
122- - name : WAL_S3_BUCKET
123- value : {{ .Values.walE.s3Bucket | quote }}
124- {{else if .Values.walE.gcsBucket }}
125- - name : WAL_GCS_BUCKET
126- value : {{ .Values.walE.gcsBucket | quote }}
127- {{- if .Values.walE.kubernetesSecret }}
128- - name : GOOGLE_APPLICATION_CREDENTIALS
129- value : " /etc/credentials/{{.Values.walE.kubernetesSecret}}.json"
130- {{- end }}
131- {{- end }}
132- {{- if .Values.walE.backupThresholdMegabytes }}
133- - name : WALE_BACKUP_THRESHOLD_MEGABYTES
134- value : {{ .Values.walE.backupThresholdMegabytes | quote }}
135- {{- end }}
136- {{- if .Values.walE.backupThresholdPercentage }}
137- - name : WALE_BACKUP_THRESHOLD_PERCENTAGE
138- value : {{ .Values.walE.backupThresholdPercentage | quote }}
139- {{- end }}
140- {{- else }}
141- - name : USE_WALE
142- value : " "
143- {{- end }}
144- - name : PGROOT
145- value : " {{ .Values.persistentVolume.mountPath }}/pgroot"
146- - name : POD_NAMESPACE
147- valueFrom :
148- fieldRef :
149- apiVersion : v1
150- fieldPath : metadata.namespace
34+ {{- include "patroni.envs" . | indent 8 }}
15135 {{- if .Values.env }}
15236 {{- range $key, $val := .Values.env }}
15337 - name : {{ $key | quote | upper }}
@@ -174,6 +58,18 @@ spec:
17458 periodSeconds : 10
17559 successThreshold : 1
17660 timeoutSeconds : 5
61+ lifecycle :
62+ preStop :
63+ exec :
64+ command :
65+ - /usr/bin/env
66+ - bash
67+ - -c
68+ - |
69+ # switch leader pod if the current pod is the leader
70+ if curl --fail http://localhost:8008/read-write; then
71+ init-stack patronictl switchover --force
72+ fi
17773 ports :
17874 - containerPort : 8008
17975 protocol : TCP
18278 volumeMounts :
18379 - name : storage-volume
18480 mountPath : " {{ .Values.persistentVolume.mountPath }}"
185- volumeMounts : " {{ .Values.persistentVolume.subPath }}"
18681 # - mountPath: /etc/patroni
18782 # name: patroni-config
18883 # readOnly: true
0 commit comments