{{- /* 外部メール接続情報 Secret mail.providers. ごとに 1 つの Secret を生成し、配布先ネームスペースへ複製する。 */ -}} {{- range $name, $p := .Values.mail.providers }} {{- if $p.enabled }} {{- if not $p.smtp }} {{- fail (printf "mail.providers.%s: smtp セクションは必須です" $name) }} {{- end }} {{- $smtp := $p.smtp }} {{- if not $smtp.host }}{{- fail (printf "mail.providers.%s.smtp.host は必須です" $name) }}{{- end }} {{- $security := $smtp.security | default "starttls" }} {{- $username := $smtp.username | default "" }} {{- $password := $smtp.password | default "" }} {{- $from := $smtp.from | default $username }} {{- $sd := dict }} {{- $_ := set $sd "SMTP_HOST" (printf "%v" $smtp.host) }} {{- $_ := set $sd "SMTP_PORT" (printf "%v" ($smtp.port | default 587)) }} {{- $_ := set $sd "SMTP_SECURITY" (printf "%v" $security) }} {{- $_ := set $sd "SMTP_USERNAME" (printf "%v" $username) }} {{- $_ := set $sd "SMTP_PASSWORD" (printf "%v" $password) }} {{- $_ := set $sd "SMTP_FROM" (printf "%v" $from) }} {{- $_ := set $sd "SMTP_FROM_NAME" (printf "%v" ($smtp.fromName | default "")) }} {{- $_ := set $sd "SMTP_REPLY_TO" (printf "%v" ($smtp.replyTo | default "")) }} {{- $_ := set $sd "SMTP_AUTH_METHOD" (printf "%v" ($smtp.authMethod | default "plain")) }} {{- /* IMAP(任意) */ -}} {{- if and $p.imap $p.imap.host }} {{- $imap := $p.imap }} {{- $_ := set $sd "IMAP_HOST" (printf "%v" $imap.host) }} {{- $_ := set $sd "IMAP_PORT" (printf "%v" ($imap.port | default 993)) }} {{- $_ := set $sd "IMAP_SECURITY" (printf "%v" ($imap.security | default "tls")) }} {{- $_ := set $sd "IMAP_USERNAME" (printf "%v" ($imap.username | default $username)) }} {{- $_ := set $sd "IMAP_PASSWORD" (printf "%v" ($imap.password | default $password)) }} {{- end }} {{- /* POP3(任意) */ -}} {{- if and $p.pop3 $p.pop3.host }} {{- $pop3 := $p.pop3 }} {{- $_ := set $sd "POP3_HOST" (printf "%v" $pop3.host) }} {{- $_ := set $sd "POP3_PORT" (printf "%v" ($pop3.port | default 995)) }} {{- $_ := set $sd "POP3_SECURITY" (printf "%v" ($pop3.security | default "tls")) }} {{- $_ := set $sd "POP3_USERNAME" (printf "%v" ($pop3.username | default $username)) }} {{- $_ := set $sd "POP3_PASSWORD" (printf "%v" ($pop3.password | default $password)) }} {{- end }} {{- /* source 可能な env ファイル */ -}} {{- $lines := list }} {{- range $k, $v := $sd }} {{- $lines = append $lines (printf "export %s=%s" $k (quote $v)) }} {{- end }} {{- $_ := set $sd "smtp.env" (printf "%s\n" (join "\n" (sortAlpha $lines))) }} {{- /* msmtprc スニペット(任意) */ -}} {{- if $p.renderMsmtprc }} {{- $tls := "tls on" }} {{- $starttls := "tls_starttls on" }} {{- if eq $security "tls" }}{{- $starttls = "tls_starttls off" }}{{- end }} {{- if eq $security "none" }}{{- $tls = "tls off" }}{{- $starttls = "tls_starttls off" }}{{- end }} {{- $auth := "auth off" }} {{- if $username }}{{- $auth = printf "auth on\nuser %s\npassword %s" $username $password }}{{- end }} {{- $msmtprc := printf "# secret-manager が生成 (%s)\ndefaults\n%s\n%s\ntls_trust_file /etc/ssl/certs/ca-certificates.crt\nlogfile -\naccount default\nhost %s\nport %v\nfrom %s\n%s\n" $name $tls $starttls $smtp.host ($smtp.port | default 587) $from $auth }} {{- $_ := set $sd "msmtprc" $msmtprc }} {{- end }} {{- include "secret-manager.secret" (dict "ctx" $ "name" $name "stringData" $sd "type" "Opaque" "annotations" ($p.annotations | default dict) "namespacesOverride" ($p.namespacesOverride | default list)) }} {{- end }} {{- end }}