{{- define "helper.deployment.containers" -}} {{- /* (define) */ -}} {{- if not .Values.workload.containers -}} {{- /* (1) */ -}} {{ fail ".Values.workload.containers can not be empty (heler.deployment.containers)" }} {{- end -}} {{- /* /(1) */ -}} containers: {{- range $k,$v := .Values.workload.containers }} {{- /* (1) */}} - name: {{ $k }} {{- include "helper.workload.containerSecurityContext" . | nindent 4 -}} {{- include "helper.workload.image" (dict "Chart" $.Chart "Image" .image) | indent 4 -}} {{- include "helper.container.command" $v | nindent 4 -}} {{- include "helper.container.args" $v | nindent 4 -}} {{- include "helper.container.ports" (dict "Context" $ "Container" $v) | nindent 4 -}} {{- include "helper.container.volumeMounts" $v | nindent 4 -}} {{- include "helper.container.envFrom" (dict "Context" $ "Container" $v) | nindent 4 -}} {{- end }} {{- /* /(1) */}} {{- end -}} {{- /* /(define) */ -}} {{- define "helper.deployment.initContainers" -}} {{- /* (define) */ -}} {{- if .Values.workload.initContainers -}} {{- /* (1) */ -}} initContainers: {{- range $k,$v := .Values.workload.initContainers }} {{- /* (2) */}} - name: {{ $k }} {{- include "helper.workload.containerSecurityContext" . | nindent 4 -}} {{- include "helper.workload.image" (dict "Chart" $.Chart "Image" .image) | indent 4 -}} {{- include "helper.container.command" $v | nindent 4 -}} {{- include "helper.container.args" $v | nindent 4 -}} {{- include "helper.container.ports" (dict "Context" $ "Container" $v) | nindent 4 -}} {{- include "helper.container.volumeMounts" $v | nindent 4 -}} {{- include "helper.container.envFrom" (dict "Context" $ "Container" $v) | nindent 4 -}} {{- end }} {{- /* /(1) */}} {{- end -}} {{- /* /(2) */ -}} {{- end -}} {{- /* /(define) */ -}} {{- define "helper.deployment.container" -}} {{- /* (define) */ -}} {{- end -}} {{- /* /(define) */ -}} {{- define "helper.container.command" -}} {{- /* (define) */ -}} {{- with .command }} {{- /* (1) */ -}} command: {{ . | toYaml | indent 2 }} {{- end -}} {{- /* /(1) */ -}} {{- end -}} {{- /* /(define) */ -}} {{- define "helper.container.args" -}} {{- /* (define) */ -}} {{- with .args }} {{- /* (1) */ -}} args: {{ . | toYaml | indent 2 }} {{- end -}} {{- /* /(1) */ -}} {{- end -}} {{- /* /(define) */ -}} {{- define "helper.container.ports" -}} {{- /* (define) */ -}} {{- if .Container.ports -}} {{- /* (1) */ -}} ports: {{- range $p := .Container.ports -}} {{- /* (2) */ -}} {{- if kindIs "string" $p }} {{- /* (3) */}} - containerPort: {{ index (index $.Context.Values.service.ports $p) "targetPort" }} protocol: {{ index (index $.Context.Values.service.ports $p) "protocol" }} {{- else }} {{ print "-" | indent 2 | -}} {{ $p | toYaml | nindent 4 -}} {{- end -}} {{- /* /(3) */ -}} {{- end -}} {{- /* /(2) */ -}} {{- end -}} {{- /* /(1) */ -}} {{- end -}} {{- /* /(define) */ -}} {{- define "helper.container.volumeMounts" -}} {{- /* (define) */ -}} {{- if .mounts -}} {{- /* (1) */ -}} volumeMounts: {{- range $mountKind, $mountData := .mounts }} {{- /* (2) */}} {{- if eq $mountKind "storage" }} {{- /* (3) */}} {{- range $mountName, $mountEntry := $mountData }} {{- /* (4) */}} - name: {{ printf "%s-storage" $mountName }} mountPath: {{ $mountEntry.path }} {{- end }} {{- /* /(4) */}} {{- end }} {{- /* /(3) */}} {{- if eq $mountKind "files" }} {{- /* (3) */}} {{- range $mountName, $mountEntry := $mountData }} {{- /* (4) */}} - name: {{ printf "%s-file" $mountName }} mountPath: {{ $mountEntry.path }} {{- if $mountEntry.subPath }} {{- /* (5) */}} subPath: {{ $mountEntry.subPath }} {{- end }} {{- /* /(5) */}} {{- end }} {{- /* /(4) */}} {{- end }} {{- /* /(3) */}} {{- if eq $mountKind "extraVolumes" }} {{- /* (3) */}} {{- range $mountName, $mountEntry := $mountData }} {{- /* (4) */}} - name: {{ printf "%s-extra" $mountName }} mountPath: {{ $mountEntry.path }} {{- end }} {{- /* /(4) */}} {{- end }} {{- /* /(3) */}} {{- end }} {{- /* /(2) */}} {{- end }} {{- /* /(1) */}} {{- end -}} {{- /* /(define) */ -}} {{- define "helper.container.envFrom" -}} {{- /* (define) */ -}} {{/* If env should be set from a Configmap/Secret */}} {{- if .Container.envFrom }} {{- /* (1) */}} envFrom: {{- range $k := .Container.envFrom -}} {{- /* (2) */ -}} {{/* If envFrom entry is a string, then refer to the env created by the library */}} {{- if kindIs "string" $k -}} {{- /* (3) */ -}} {{- if (index $.Context.Values.env $k) -}} {{- /* (4) */ -}} {{- if (index $.Context.Values.env $k).sensitive }} {{- /* (5) */}} - secretRef: {{- else }} - configMapRef: {{- end }} {{- /* /(5) */}} name: {{- printf " %s-%s" (include "chart.fullname" $.Context) $k -}} {{- end -}} {{- /* /(4) */}} {{- /* Otherwise try to add references directly (if Secrets/ConfigMaps are not managed by the chart) */ -}} {{- else -}} {{- range $k, $v := $k }} {{- /* (5) */}} - {{ $k }}: {{ toYaml $v | indent 14 }} {{- end -}} {{- /* /(4) */ -}} {{- end -}} {{- /* /(3) */ -}} {{- end -}} {{- /* /(2) */ -}} {{- end -}} {{- /* /(1) */ -}} {{- end -}} {{- /* /(define) */ -}}