postgres/.helm/templates/10-postgres.yaml

99 lines
3.5 KiB
YAML
Raw Permalink Normal View History

{{- $nodeSelector := dig .Values.env .Values.postgres.nodeSelector._default .Values.postgres.nodeSelector }}
{{- $tolerations := dig .Values.env .Values.postgres.tolerations._default .Values.postgres.tolerations }}
---
apiVersion: v1
kind: Secret
metadata:
name: {{ .Chart.Name }}-env
annotations:
"helm.sh/resource-policy": keep
type: Opaque
stringData:
POSTGRES_USER: {{ dig .Values.env .Values.postgres.user._default .Values.postgres.user | quote }}
POSTGRES_DB: {{ dig .Values.env .Values.postgres.database._default .Values.postgres.database | quote }}
POSTGRES_PASSWORD: {{ dig .Values.env .Values.postgres.password._default .Values.postgres.password | quote }}
2026-09-09 14:08:21 +00:00
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: {{ .Chart.Name }}
labels:
app: {{ .Chart.Name }}
spec:
replicas: 1
serviceName: {{ .Chart.Name }}
2026-09-09 14:08:21 +00:00
selector:
matchLabels:
app: {{ .Chart.Name }}
template:
metadata:
labels:
app: {{ .Chart.Name }}
{{- if .Values.secretsStore.enabled }}
2026-09-09 14:08:21 +00:00
annotations:
secrets-store.deckhouse.io/role: "{{ .Values.env }}-{{ .Chart.Name }}-role"
secrets-store.deckhouse.io/env-from-path: "{{ .Values.env }}/data/{{ .Chart.Name }}"
{{- end }}
2026-09-09 14:08:21 +00:00
spec:
serviceAccountName: {{ .Chart.Name }}-sa
{{- with .Values.imagePullSecrets }}
2026-09-09 14:08:21 +00:00
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
2026-09-09 14:08:21 +00:00
{{- if $nodeSelector }}
nodeSelector: {{ toYaml $nodeSelector | nindent 8 }}
{{- end }}
{{- if $tolerations }}
tolerations: {{ toYaml $tolerations | nindent 6 }}
{{- end }}
containers:
- name: postgres
image: {{ .Values.image.postgresql }}
2026-09-09 14:08:21 +00:00
imagePullPolicy: IfNotPresent
env:
- name: PGDATA
value: /var/lib/postgresql/data/pgdata
envFrom:
- secretRef:
name: {{ .Chart.Name }}-env
2026-09-09 14:08:21 +00:00
resources:
requests:
cpu: {{ dig .Values.env .Values.postgres.resources.requests.cpu._default .Values.postgres.resources.requests.cpu }}
memory: {{ dig .Values.env .Values.postgres.resources.requests.memory._default .Values.postgres.resources.requests.memory }}
2026-09-09 14:08:21 +00:00
limits:
memory: {{ dig .Values.env .Values.postgres.resources.limits.memory._default .Values.postgres.resources.limits.memory }}
2026-09-09 14:08:21 +00:00
volumeMounts:
- name: data
mountPath: /var/lib/postgresql/data
readinessProbe:
tcpSocket:
port: {{ dig .Values.env .Values.postgres.port._default .Values.postgres.port }}
2026-09-09 14:08:21 +00:00
initialDelaySeconds: 5
timeoutSeconds: 1
livenessProbe:
tcpSocket:
port: {{ dig .Values.env .Values.postgres.port._default .Values.postgres.port }}
2026-09-09 14:08:21 +00:00
initialDelaySeconds: 30
periodSeconds: 5
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ dig .Values.env .Values.postgres.storage._default .Values.postgres.storage }}
storageClassName: {{ dig .Values.env .Values.postgres.storageClassName._default .Values.postgres.storageClassName }}
2026-09-09 14:08:21 +00:00
---
apiVersion: v1
kind: Service
metadata:
name: {{ .Chart.Name }}
spec:
selector:
app: {{ .Chart.Name }}
ports:
- name: {{ .Chart.Name }}
port: {{ dig .Values.env .Values.postgres.port._default .Values.postgres.port }}