mirror of
https://github.com/truenas/charts.git
synced 2026-04-04 03:08:33 +08:00
* add initial files * add some validation and fix image tag * add modules to the config * extend test and add capabilities * add extra test * rsync -> Rsync and add metadata file * add UI * hide questions when module is disablwed * rename test file and add validation to questions * remove dot * update wording * remove logToStdout toggle * update image
80 lines
2.8 KiB
Smarty
80 lines
2.8 KiB
Smarty
{{- define "rsync.validation" -}}
|
|
{{- $reservedParams := (list
|
|
"port" "use chroot" "pid file"
|
|
"max connections" "log file"
|
|
) -}}
|
|
|
|
{{- range .Values.rsyncConfig.auxParams -}}
|
|
{{- include "rsync.aux.validation" (dict "aux" .) -}}
|
|
|
|
{{- if mustHas .param $reservedParams -}}
|
|
{{- fail (printf "Rsync - Overriding parameter [%v] is not allowed." .param) -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{- if not .Values.rsyncModules -}}
|
|
{{- fail "Rsync - At least one module must be configured." -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{- define "rsync.module.validation" -}}
|
|
{{- $mod := .mod -}}
|
|
{{- if not $mod.name -}}
|
|
{{- fail "Rsync - [Module Name] is required." -}}
|
|
{{- end -}}
|
|
|
|
{{- if not (mustRegexMatch "^[a-zA-Z0-9]+([_-]*[a-zA-Z0-9]+)+$" $mod.name) -}}
|
|
{{- $allow := "Can include [Letters (a-z, A-Z), Numbers (0,9), Underscore (_), Dash (-)]" -}}
|
|
{{- $disallow := "But cannot start or end with [Underscore (_), Dash (-), Dot (.)]" -}}
|
|
{{- fail (printf "Rsync - Module Name [%v] has invalid naming format. %v %v" $mod.name $allow $disallow) -}}
|
|
{{- end -}}
|
|
|
|
{{- if not $mod.hostPath -}}
|
|
{{- fail (printf "Rsync - [Host Path] on module [%v] is required." $mod.name) -}}
|
|
{{- end -}}
|
|
|
|
{{- $modes := (list "RO" "RW" "WO") -}}
|
|
{{- if not (mustHas $mod.accessMode $modes) -}}
|
|
{{- fail (printf "Rsync - [Access Mode] must be one of [%v] on module [%v], but got [%v]." (join ", " $modes) $mod.name $mod.accessMode) -}}
|
|
{{- end -}}
|
|
|
|
{{- if kindIs "invalid" $mod.maxConnections -}}
|
|
{{- fail (printf "Rsync - [Max Connections] on module [%v] is required." $mod.name) -}}
|
|
{{- end -}}
|
|
|
|
{{- if kindIs "invalid" $mod.uid -}}
|
|
{{- fail (printf "Rsync - [User] on module [%v] is required." $mod.name) -}}
|
|
{{- end -}}
|
|
|
|
{{- if kindIs "invalid" $mod.gid -}}
|
|
{{- fail (printf "Rsync - [Group] on module [%v] is required." $mod.name) -}}
|
|
{{- end -}}
|
|
|
|
{{- range $entry := $mod.hostsAllow -}}
|
|
{{- if not $entry -}}
|
|
{{- fail (printf "Rsync - Entry [%v] in [Hosts Allow] on module [%v] cannot be empty." $entry $mod.name) -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{- range $entry := $mod.hostsDeny -}}
|
|
{{- if not $entry -}}
|
|
{{- fail (printf "Rsync - Entry [%v] in [Hosts Deny] on module [%v] cannot be empty." $entry $mod.name) -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{- range $mod.auxParams -}}
|
|
{{- include "rsync.aux.validation" (dict "aux" .) -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{- define "rsync.aux.validation" -}}
|
|
{{- $aux := .aux -}}
|
|
{{- if not $aux.param -}}
|
|
{{- fail "Rsync - Parameter name is required." -}}
|
|
{{- end -}}
|
|
|
|
{{- if not $aux.value -}}
|
|
{{- fail (printf "Rsync - Value on parameter [%v] is required." $aux.param) -}}
|
|
{{- end -}}
|
|
{{- end -}}
|