fix: mail プロバイダの msmtprc を既定で常に出力 + SMTP メタ項目を拡充
Helm Chart Release / release-chart (push) Successful in 7s
Helm Chart Release / release-chart (push) Successful in 7s
phpfpm の smtp.existingMsmtprcSecret が「references non-existent secret key: msmtprc」でマウント失敗する件の対処。renderMsmtprc が opt-in で忘れやすかった。 - renderMsmtprc を既定 true に(明示 false のときだけ抑止) - smtp.tlsVerify(既定 true)を追加。false で msmtprc に tls_certcheck off values.schema.json の smtp にも tlsVerify を追加 - 派生キー SMTP_TLS / SMTP_SSL / SMTP_TLS_VERIFY / SMTP_AUTH を Secret に追加 - from 未設定時に msmtprc へ空の from 行を出さないよう修正 - values.yaml / examples / README を更新。0.1.2。
This commit is contained in:
@@ -13,12 +13,22 @@ mail.providers.<name> ごとに 1 つの Secret を生成し、配布先ネー
|
||||
{{- $username := $smtp.username | default "" }}
|
||||
{{- $password := $smtp.password | default "" }}
|
||||
{{- $from := $smtp.from | default $username }}
|
||||
{{- /* tlsVerify は既定 true。明示 false で証明書検証を無効化(社内リレー等) */ -}}
|
||||
{{- $tlsVerify := true }}
|
||||
{{- if hasKey $smtp "tlsVerify" }}{{- $tlsVerify = $smtp.tlsVerify }}{{- end }}
|
||||
{{- /* renderMsmtprc は既定 true。明示 false で msmtprc キーを出力しない */ -}}
|
||||
{{- $renderMsmtprc := true }}
|
||||
{{- if hasKey $p "renderMsmtprc" }}{{- $renderMsmtprc = $p.renderMsmtprc }}{{- end }}
|
||||
{{- $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_TLS" (ternary "true" "false" (eq $security "starttls")) }}
|
||||
{{- $_ := set $sd "SMTP_SSL" (ternary "true" "false" (eq $security "tls")) }}
|
||||
{{- $_ := set $sd "SMTP_TLS_VERIFY" (ternary "true" "false" $tlsVerify) }}
|
||||
{{- $_ := set $sd "SMTP_USERNAME" (printf "%v" $username) }}
|
||||
{{- $_ := set $sd "SMTP_PASSWORD" (printf "%v" $password) }}
|
||||
{{- $_ := set $sd "SMTP_AUTH" (ternary "true" "false" (ne $username "")) }}
|
||||
{{- $_ := 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 "")) }}
|
||||
@@ -41,21 +51,25 @@ mail.providers.<name> ごとに 1 つの Secret を生成し、配布先ネー
|
||||
{{- $_ := set $sd "POP3_USERNAME" (printf "%v" ($pop3.username | default $username)) }}
|
||||
{{- $_ := set $sd "POP3_PASSWORD" (printf "%v" ($pop3.password | default $password)) }}
|
||||
{{- end }}
|
||||
{{- /* source 可能な env ファイル */ -}}
|
||||
{{- /* source 可能な env ファイル(msmtprc 追加より前に生成する) */ -}}
|
||||
{{- $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 }}
|
||||
{{- /* msmtprc スニペット(既定で含む。renderMsmtprc: false で抑止) */ -}}
|
||||
{{- if $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 }}
|
||||
{{- $certcheck := "" }}
|
||||
{{- if not $tlsVerify }}{{- $certcheck = "tls_certcheck off\n" }}{{- 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 }}
|
||||
{{- $fromLine := "" }}
|
||||
{{- if $from }}{{- $fromLine = printf "from %s\n" $from }}{{- end }}
|
||||
{{- $msmtprc := printf "# secret-manager が生成 (%s)\ndefaults\n%s\n%s\n%stls_trust_file /etc/ssl/certs/ca-certificates.crt\nlogfile -\naccount default\nhost %s\nport %v\n%s%s\n" $name $tls $starttls $certcheck $smtp.host ($smtp.port | default 587) $fromLine $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)) }}
|
||||
|
||||
Reference in New Issue
Block a user