36 lines
1.3 KiB
Smarty
36 lines
1.3 KiB
Smarty
{{- define "tc.v1.common.class.traefik.middleware.basicAuth" -}}
|
|
{{- $objectData := .objectData -}}
|
|
{{- $rootCtx := .rootCtx -}}
|
|
|
|
{{- $fullname := include "tc.v1.common.lib.chart.names.fullname" $rootCtx -}}
|
|
{{- $mw := $objectData.data -}}
|
|
|
|
{{- $secret := $mw.secret | default "" -}}
|
|
{{- $users := list -}}
|
|
{{- $secretData := dict -}}
|
|
|
|
{{- if and $mw.users $mw.secret -}}
|
|
{{- fail "Middleware (basic-auth) - Expected either [users] or [secret] to be set, but not both" -}}
|
|
{{- end -}}
|
|
{{- if and (not $mw.users) (not $mw.secret) -}}
|
|
{{- fail "Middleware (basic-auth) - Expected at least one of [users] or [secret] to be set" -}}
|
|
{{- end -}}
|
|
|
|
{{- if $mw.users -}}
|
|
{{- $secret = $objectData.name -}}
|
|
{{- range $userData := $mw.users -}}
|
|
{{- $users = append $users (htpasswd $userData.username $userData.password) -}}
|
|
{{- end -}}
|
|
{{- $secretData = (dict
|
|
"name" $objectData.name
|
|
"labels" ($objectData.labels | default dict)
|
|
"annotations" ($objectData.annotations | default dict)
|
|
"data" (dict "users" ($users | join "\n"))) -}}
|
|
{{- end }}
|
|
basicAuth:
|
|
secret: {{ $secret }}
|
|
{{- if $secretData -}}
|
|
{{- include "tc.v1.common.class.secret" (dict "rootCtx" $rootCtx "objectData" $secretData) -}}
|
|
{{- end -}}
|
|
{{- end -}}
|