my-apps/charts/common/templates/lib/util/_primary_workload.tpl
2025-08-24 00:09:37 +03:00

36 lines
1.0 KiB
Smarty

{{/* Returns the primary Workload object */}}
{{- define "tc.v1.common.lib.util.workload.primary" -}}
{{- $Workloads := .workload -}}
{{- $enabledWorkloads := dict -}}
{{- range $name, $Workload := $Workloads -}}
{{- if $Workload.enabled -}}
{{- $_ := set $enabledWorkloads $name $Workload -}}
{{- end -}}
{{- end -}}
{{- $result := "" -}}
{{- range $name, $Workload := $enabledWorkloads -}}
{{- if (hasKey $Workload "primary") -}}
{{- if $Workload.primary -}}
{{- if $result -}}
{{- fail "More than one Workloads are set as primary. This is not supported." -}}
{{- end -}}
{{- $result = $name -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- if not $result -}}
{{- if eq (len $enabledWorkloads) 1 -}}
{{- $result = keys $enabledWorkloads | mustFirst -}}
{{- else -}}
{{- if $enabledWorkloads -}}
{{- fail "At least one Workload must be set as primary" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- $result -}}
{{- end -}}