mirror of
https://github.com/helm/charts.git
synced 2026-08-23 22:37:45 +00:00
110 lines
3.6 KiB
YAML
110 lines
3.6 KiB
YAML
apiVersion: extensions/v1beta1
|
|
kind: Deployment
|
|
metadata:
|
|
name: {{ template "postgresql.fullname" . }}
|
|
labels:
|
|
app: {{ template "postgresql.fullname" . }}
|
|
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
|
|
release: "{{ .Release.Name }}"
|
|
heritage: "{{ .Release.Service }}"
|
|
spec:
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: {{ template "postgresql.fullname" . }}
|
|
spec:
|
|
{{- if .Values.nodeSelector }}
|
|
nodeSelector:
|
|
{{ toYaml .Values.nodeSelector | indent 8 }}
|
|
{{- end }}
|
|
{{- if .Values.tolerations }}
|
|
tolerations:
|
|
{{ toYaml .Values.tolerations | indent 8 }}
|
|
{{- end }}
|
|
containers:
|
|
- name: {{ template "postgresql.fullname" . }}
|
|
image: "{{ .Values.image }}:{{ .Values.imageTag }}"
|
|
imagePullPolicy: {{ default "" .Values.imagePullPolicy | quote }}
|
|
env:
|
|
- name: POSTGRES_USER
|
|
value: {{ default "postgres" .Values.postgresUser | quote }}
|
|
# Required for pg_isready in the health probes.
|
|
- name: PGUSER
|
|
value: {{ default "postgres" .Values.postgresUser | quote }}
|
|
- name: POSTGRES_DB
|
|
value: {{ default "" .Values.postgresDatabase | quote }}
|
|
- name: POSTGRES_INITDB_ARGS
|
|
value: {{ default "" .Values.postgresInitdbArgs | quote }}
|
|
- name: PGDATA
|
|
value: /var/lib/postgresql/data/pgdata
|
|
- name: POSTGRES_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ template "postgresql.fullname" . }}
|
|
key: postgres-password
|
|
- name: POD_IP
|
|
valueFrom: { fieldRef: { fieldPath: status.podIP } }
|
|
ports:
|
|
- name: postgresql
|
|
containerPort: 5432
|
|
livenessProbe:
|
|
exec:
|
|
command:
|
|
- sh
|
|
- -c
|
|
- exec pg_isready --host $POD_IP
|
|
initialDelaySeconds: 60
|
|
timeoutSeconds: 5
|
|
failureThreshold: 6
|
|
readinessProbe:
|
|
exec:
|
|
command:
|
|
- sh
|
|
- -c
|
|
- exec pg_isready --host $POD_IP
|
|
initialDelaySeconds: 5
|
|
timeoutSeconds: 3
|
|
periodSeconds: 5
|
|
resources:
|
|
{{ toYaml .Values.resources | indent 10 }}
|
|
volumeMounts:
|
|
- name: data
|
|
mountPath: /var/lib/postgresql/data/pgdata
|
|
subPath: {{ .Values.persistence.subPath }}
|
|
{{- if .Values.metrics.enabled }}
|
|
- name: metrics
|
|
image: "{{ .Values.metrics.image }}:{{ .Values.metrics.imageTag }}"
|
|
imagePullPolicy: {{ default "" .Values.metrics.imagePullPolicy | quote }}
|
|
env:
|
|
- name: DATA_SOURCE_NAME
|
|
value: postgresql://postgres@127.0.0.1:5432?sslmode=disable
|
|
ports:
|
|
- name: metrics
|
|
containerPort: 9187
|
|
{{- if .Values.metrics.customMetrics }}
|
|
args: ["-extend.query-path", "/conf/custom-metrics.yaml"]
|
|
volumeMounts:
|
|
- name: custom-metrics
|
|
mountPath: /conf
|
|
readOnly: true
|
|
{{- end }}
|
|
resources:
|
|
{{ toYaml .Values.metrics.resources | indent 10 }}
|
|
{{- end }}
|
|
volumes:
|
|
- name: data
|
|
{{- if .Values.persistence.enabled }}
|
|
persistentVolumeClaim:
|
|
claimName: {{ .Values.persistence.existingClaim | default (include "postgresql.fullname" .) }}
|
|
{{- else }}
|
|
emptyDir: {}
|
|
{{- end }}
|
|
{{- if and .Values.metrics.enabled .Values.metrics.customMetrics }}
|
|
- name: custom-metrics
|
|
secret:
|
|
secretName: {{ template "postgresql.fullname" . }}
|
|
items:
|
|
- key: custom-metrics.yaml
|
|
path: custom-metrics.yaml
|
|
{{- end }}
|