{{ include "common.storage.hostPathValidate" .Values }} {{ $postgres_values := (. | mustDeepCopy) }} {{ $_ := set $postgres_values "common" (dict "nameSuffix" "postgres") }} apiVersion: {{ template "common.capabilities.deployment.apiVersion" . }} kind: Deployment metadata: name: {{ template "common.names.fullname" . }} labels: app: {{ template "common.names.name" . }} chart: {{ template "common.names.chart" . }} release: {{ .Release.Name }} heritage: {{ .Release.Service }} annotations: rollme: {{ randAlphaNum 5 | quote }} spec: replicas: {{ (default 1 .Values.replicas) }} strategy: type: "Recreate" selector: matchLabels: app: {{ template "common.names.name" . }} release: {{ .Release.Name }} template: metadata: name: {{ template "common.names.fullname" . }} labels: app: {{ template "common.names.name" . }} release: {{ .Release.Name }} {{- include "common.labels.selectorLabels" . | nindent 8 }} annotations: {{ include "common.annotations" . | nindent 8 }} spec: {{ if .Values.hostNetwork }} hostNetwork: true dnsPolicy: ClusterFirstWithHostNet {{ else }} hostNetwork: false dnsPolicy: ClusterFirst {{ end }} initContainers: - name: init-postgresdb image: {{ template "postgres.imageName" . }} command: ['sh', '-c', "until pg_isready -h {{ template "common.names.fullname" $postgres_values }}; do echo waiting for postgres; sleep 2; done"] imagePullPolicy: {{ .Values.image.pullPolicy }} - name: init-configs image: "alpine:latest" imagePullPolicy: {{ .Values.image.pullPolicy }} command: - "sh" - "/config/init/init.sh" env: {{ $envList := (default list .Values.environmentVariables) }} {{ $envList = mustAppend $envList (dict "name" "POSTGRES_HOST" "value" (printf "%s:5432" (include "common.names.fullname" $postgres_values))) }} {{ $envList = mustAppend $envList (dict "name" "POSTGRES_DB" "value" (include "postgres.DatabaseName" .)) }} {{ $envList = mustAppend $envList (dict "name" "POSTGRES_USER" "valueFromSecret" true "secretName" "db-details" "secretKey" "db-user")}} {{ $envList = mustAppend $envList (dict "name" "POSTGRES_PASSWORD" "valueFromSecret" true "secretName" "db-details" "secretKey" "db-password")}} {{ include "common.containers.environmentVariables" (dict "environmentVariables" $envList) | nindent 12 }} volumeMounts: {{ include "common.storage.configureAppVolumeMountsInContainer" .Values | nindent 12 }} - name: initial-config-script mountPath: /config/init containers: - name: {{ .Chart.Name }} {{ include "common.resources.limitation" . | nindent 10 }} {{ include "common.containers.imageConfig" .Values.image | nindent 10 }} volumeMounts: {{ include "common.storage.configureAppVolumeMountsInContainer" .Values | nindent 12 }} {{ range $index, $hostPathConfiguration := .Values.extraAppVolumeMounts }} - name: extrappvolume-{{ $index }} mountPath: {{ $hostPathConfiguration.mountPath }} {{ end }} ports: - name: web containerPort: 8123 {{- if not .Values.hostNetwork }} hostPort: null {{- end }} readinessProbe: tcpSocket: port: 8123 initialDelaySeconds: 10 periodSeconds: 10 timeoutSeconds: 5 failureThreshold: 5 successThreshold: 2 livenessProbe: tcpSocket: port: 8123 initialDelaySeconds: 10 periodSeconds: 10 timeoutSeconds: 5 failureThreshold: 5 successThreshold: 1 startupProbe: tcpSocket: port: 8123 initialDelaySeconds: 10 periodSeconds: 5 timeoutSeconds: 2 failureThreshold: 60 successThreshold: 1 env: {{ $databaseName := (include "postgres.DatabaseName" .)}} {{ $envList := (default list .Values.environmentVariables) }} {{ $envList = mustAppend $envList (dict "name" "PUID" "value" .Values.ownerUID) }} {{ $envList = mustAppend $envList (dict "name" "PGID" "value" .Values.ownerGID) }} {{ $envList = mustAppend $envList (dict "name" "TZ" "value" .Values.timezone) }} {{ include "common.containers.environmentVariables" (dict "environmentVariables" $envList) | nindent 12 }} {{ include "common.networking.dnsConfiguration" .Values | nindent 6 }} volumes: {{ include "common.storage.configureAppVolumes" .Values | nindent 8 }} - name: initial-config-script configMap: defaultMode: 0700 name: "home-assistance-initial-script-configmap" {{ range $index, $hostPathConfiguration := .Values.extraAppVolumeMounts }} - name: extrappvolume-{{ $index }} hostPath: path: {{ $hostPathConfiguration.hostPath }} {{ end }}