45 lines
1.9 KiB
Smarty
45 lines
1.9 KiB
Smarty
{{/* Persistence Validation */}}
|
|
{{/* Call this template:
|
|
{{ include "tc.v1.common.lib.persistence.validation" (dict "objectData" $objectData) -}}
|
|
objectData:
|
|
rootCtx: The root context of the chart.
|
|
objectData: The persistence object.
|
|
*/}}
|
|
|
|
{{- define "tc.v1.common.lib.persistence.validation" -}}
|
|
{{- $rootCtx := .rootCtx -}}
|
|
{{- $objectData := .objectData -}}
|
|
|
|
{{- $types := (list "pvc" "vct" "emptyDir" "nfs" "iscsi" "hostPath" "secret" "configmap" "device" "projected") -}}
|
|
{{- if not (mustHas $objectData.type $types) -}}
|
|
{{- fail (printf "Persistence - Expected [type] to be one of [%s], but got [%s]" (join ", " $types) $objectData.type) -}}
|
|
{{- end -}}
|
|
|
|
{{- if and $objectData.static $objectData.static.mode -}}
|
|
{{- $validModes := (list "disabled" "smb" "nfs" "custom") -}}
|
|
{{- if not (mustHas $objectData.static.mode $validModes) -}}
|
|
{{- fail (printf "Persistence - Expected [static.mode] to be one of [%s], but got [%s]" (join ", " $validModes) $objectData.static.mode) -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{- if $objectData.dataSource -}}
|
|
{{- if not $objectData.dataSource.name -}}
|
|
{{- fail "Persistence - Expected [dataSource.name] to be non-empty" -}}
|
|
{{- end -}}
|
|
|
|
{{- if not $objectData.dataSource.kind -}}
|
|
{{- fail "Persistence - Expected [dataSource.kind] to be non-empty" -}}
|
|
{{- end -}}
|
|
|
|
{{- $validKinds := (list "VolumeSnapshot" "PersistentVolumeClaim") -}}
|
|
{{- if not (mustHas $objectData.dataSource.kind $validKinds) -}}
|
|
{{- fail (printf "Persistence - Expected [dataSource.kind] to be one of [%s], but got [%s]" (join ", " $validKinds) $objectData.dataSource.kind) -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{- if and $objectData.targetSelector (not (kindIs "map" $objectData.targetSelector)) -}}
|
|
{{- fail (printf "Persistence - Expected [targetSelector] to be [dict], but got [%s]" (kindOf $objectData.targetSelector)) -}}
|
|
{{- end -}}
|
|
|
|
{{- end -}}
|