k8s/helm-charts/dashy/charts/common/templates/lib/podDistruptionBudget/_validation.tpl
root 1eaf295724
Some checks failed
continuous-integration/drone/push Build is failing
new way of doin
2023-11-16 19:42:02 +10:00

49 lines
2.2 KiB
Smarty

{{/* Metadata Validation */}}
{{/* Call this template:
{{ include "tc.v1.common.lib.podDisruptionBudget.validation" (dict "objectData" $objectData "caller" $caller) -}}
objectData:
labels: The labels of the configmap.
annotations: The annotations of the configmap.
data: The data of the configmap.
*/}}
{{- define "tc.v1.common.lib.podDisruptionBudget.validation" -}}
{{- $rootCtx := .rootCtx -}}
{{- $objectData := .objectData -}}
{{- if and $objectData.targetSelector (not (kindIs "string" $objectData.targetSelector)) -}}
{{- fail (printf "Pod Disruption Budget - Expected <targetSelector> to be [string], but got [%s]" (kindOf $objectData.targetSelector)) -}}
{{- end -}}
{{- if and (not $objectData.targetSelector) (not $objectData.customLabels) -}}
{{- fail (printf "Pod Disruption Budget - Expected one of [targetSelector, customLabels] to be defined in <podDisruptionBudget.%s>" $objectData.shortName) -}}
{{- end -}}
{{- if and $objectData.targetSelector $objectData.customLabels -}}
{{- fail (printf "Pod Disruption Budget - Expected only one of [targetSelector, customLabels] to be defined in <podDisruptionBudget.%s>" $objectData.shortName) -}}
{{- end -}}
{{- with $objectData.unhealthyPodEvictionPolicy -}}
{{- $policies := (list "IfHealthyBudget" "AlwaysAllow") -}}
{{- if not (mustHas (tpl . $rootCtx) $policies) -}}
{{- fail (printf "Pod Disruption Budget - Expected <unhealthyPodEvictionPolicy> to be one of [%s], but got [%s]" (join ", " $policies) .) -}}
{{- end -}}
{{- end -}}
{{- $hasKey := false -}}
{{- $keys := (list "minAvailable" "maxUnavailable") -}}
{{- range $key := $keys -}}
{{- if hasKey $objectData $key -}}
{{- $hasKey = true -}}
{{- if kindIs "invalid" (get $objectData $key) -}}
{{- fail (printf "Pod Disruption Budget - Expected the defined key [%v] in <podDisruptionBudget.%s> to not be empty" $key $objectData.shortName) -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- if not $hasKey -}}
{{- fail (printf "Pod Disruption Budget - Expected at least one of [%s] to be defined in <podDisruptionBudget.%s>" (join ", " $keys) $objectData.shortName) -}}
{{- end -}}
{{- end -}}