TrueChartsClone/charts/stable/collabora/templates/_configmap.tpl

47 lines
2.1 KiB
Smarty

{{/* Define the configmap */}}
{{- define "collabora.configmap" -}}
{{- if lt (len .Values.collabora.password) 8 -}}
{{- fail "Collabora - [Password] must be at least 8 characters" -}}
{{- end -}}
{{- if contains "$" .Values.collabora.password -}}
{{- fail "Collabora - [Password] cannot contain [$]" -}}
{{- end -}}
{{- $collaboraUIModes := (list "default" "compact" "tabbed") -}}
{{- if not (mustHas .Values.collabora.interface $collaboraUIModes) -}}
{{- fail (printf "Colabora - Expected [Interface Mode] to be one of [%v], but got [%v]" (join "," $collaboraUIModes) .Values.collabora.interface) -}}
{{- end -}}
{{- if not .Values.collabora.dictionaries -}}
{{- fail "Collabora - Expected non-empty [Dictionaries]" -}}
{{- end -}}
{{- $fixedParams := (list "--o:mount_jail_tree=false"
"--o:security.seccomp=true"
"--o:home_mode.enable=true"
"--o:logging.level=warning"
"--o:logging.level_startup=warning"
(printf "--o:user_interface.mode=%v" .Values.collabora.interface)
(printf "--o:ssl.enable=%v" .Values.collabora.ssl_enable)
(printf "--o:ssl.termination=%v" .Values.collabora.ssl_termination) ) -}}
{{- $params := concat $fixedParams .Values.collabora.extra_params -}}
{{- $checkParams := list -}}
{{- range $item := $params -}}
{{- $checkParams = mustAppend $checkParams (regexReplaceAll "--o:(.*)=.*" $item "${1}") -}}
{{- end -}}
{{- if not (deepEqual $checkParams (uniq $checkParams)) -}}
{{- fail (printf "Collabora - [Dictionaries] must be unique, but got [%v]" ((join ", " $params) | replace "--o:" "")) -}}
{{- end }}
collabora-config:
enabled: true
data:
aliasgroup1: {{ join "," .Values.collabora.aliasgroup1 }}
server_name: {{ .Values.collabora.server_name }}
dictionaries: {{ join " " .Values.collabora.dictionaries }}
username: {{ .Values.collabora.username | quote }}
password: {{ .Values.collabora.password | quote }}
DONT_GEN_SSL_CERT: {{ .Values.collabora.no_gen_ssl | quote }}
extra_params: {{ join " " $params }}
{{- end -}}