helm-charts/charts/library/common/templates/lib/container/_valuesToObject.tpl
2024-08-27 14:47:25 +02:00

55 lines
2.2 KiB
Smarty

{{/*
Convert container values to an object
*/}}
{{- define "bjw-s.common.lib.container.valuesToObject" -}}
{{- $rootContext := .rootContext -}}
{{- $controllerObject := mustDeepCopy .controllerObject -}}
{{- $containerType := .containerType -}}
{{- $identifier := .id -}}
{{- $objectValues := mustDeepCopy .values -}}
{{- $defaultContainerOptionsStrategy := dig "defaultContainerOptionsStrategy" "overwrite" $controllerObject -}}
{{- $mergeDefaultContainerOptions := true -}}
{{- $_ := set $objectValues "identifier" $identifier -}}
{{- /* Allow disabling default options for initContainers */ -}}
{{- if (eq "init" $containerType) -}}
{{- $applyDefaultContainerOptionsToInitContainers := dig "applyDefaultContainerOptionsToInitContainers" true $controllerObject -}}
{{- if (not (eq $applyDefaultContainerOptionsToInitContainers true)) -}}
{{- $mergeDefaultContainerOptions = false -}}
{{- end -}}
{{- end -}}
{{- /* Merge default container options if required */ -}}
{{- if (eq true $mergeDefaultContainerOptions) -}}
{{- if eq "overwrite" $defaultContainerOptionsStrategy -}}
{{- range $key, $defaultValue := (dig "defaultContainerOptions" dict $controllerObject) }}
{{- $specificValue := dig $key nil $objectValues -}}
{{- if not (empty $specificValue) -}}
{{- $_ := set $objectValues $key $specificValue -}}
{{- else -}}
{{- $_ := set $objectValues $key $defaultValue -}}
{{- end -}}
{{- end -}}
{{- else if eq "merge" $defaultContainerOptionsStrategy -}}
{{- $objectValues = merge $objectValues (dig "defaultContainerOptions" dict $controllerObject) -}}
{{- end -}}
{{- end -}}
{{- /* Process image tags */ -}}
{{- if kindIs "map" $objectValues.image -}}
{{- $imageTag := dig "image" "tag" "" $objectValues -}}
{{- /* Convert float64 image tags to string */ -}}
{{- if kindIs "float64" $imageTag -}}
{{- $imageTag = $imageTag | toString -}}
{{- end -}}
{{- /* Process any templates in the tag */ -}}
{{- $imageTag = tpl $imageTag $rootContext -}}
{{- $_ := set $objectValues.image "tag" $imageTag -}}
{{- end -}}
{{- /* Return the container object */ -}}
{{- $objectValues | toYaml -}}
{{- end -}}