41 lines
1.2 KiB
Smarty
41 lines
1.2 KiB
Smarty
{{/* Containers Basic Validation */}}
|
|
{{/* Call this template:
|
|
{{ include "tc.v1.common.lib.container.primaryValidation" (dict "rootCtx" $rootCtx "objectData" $objectData) -}}
|
|
*/}}
|
|
{{- define "tc.v1.common.lib.container.primaryValidation" -}}
|
|
{{- $objectData := .objectData -}}
|
|
{{- $rootCtx := .rootCtx -}}
|
|
|
|
{{/* Initialize values */}}
|
|
{{- $hasPrimary := false -}}
|
|
{{- $hasEnabled := false -}}
|
|
|
|
{{/* Go over the contaienrs */}}
|
|
{{- range $name, $container := $objectData.podSpec.containers -}}
|
|
|
|
{{/* If container is enabled */}}
|
|
{{- if $container.enabled -}}
|
|
{{- $hasEnabled = true -}}
|
|
|
|
{{/* And container is primary */}}
|
|
{{- if and (hasKey $container "primary") ($container.primary) -}}
|
|
|
|
{{/* Fail if there is already a primary container */}}
|
|
{{- if $hasPrimary -}}
|
|
{{- fail "Container - Only one container can be primary per workload" -}}
|
|
{{- end -}}
|
|
|
|
{{- $hasPrimary = true -}}
|
|
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{- end -}}
|
|
|
|
{{/* Require at least one primary container, if any enabled */}}
|
|
{{- if and $hasEnabled (not $hasPrimary) -}}
|
|
{{- fail "Container - At least one enabled container must be primary per workload" -}}
|
|
{{- end -}}
|
|
|
|
{{- end -}}
|