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

30 lines
978 B
Smarty

{{/* volumeSnapshot Validation */}}
{{/* Call this template:
{{ include "tc.v1.common.lib.volumesnapshot.validation" (dict "objectData" $objectData) -}}
objectData:
rootCtx: The root context of the chart.
objectData: The volumesnapshot object.
*/}}
{{- define "tc.v1.common.lib.volumesnapshot.validation" -}}
{{- $rootCtx := .rootCtx -}}
{{- $objectData := .objectData -}}
{{- if not $objectData.source -}}
{{- fail "Volume Snapshot - Expected non empty [source]" -}}
{{- end -}}
{{- $sourceTypes := (list "volumeSnapshotContentName" "persistentVolumeClaimName") -}}
{{- $sourceCount := 0 -}}
{{- range $t := $sourceTypes -}}
{{- if (get $objectData.source $t) -}}
{{- $sourceCount = add1 $sourceCount -}}
{{- end -}}
{{- end -}}
{{- if ne $sourceCount 1 -}}
{{- fail (printf "Volume Snapshot - Expected exactly one of the valid source types [%s]. Found [%d]" (join ", " $sourceTypes) $sourceCount) -}}
{{- end -}}
{{- end -}}