Secrets 一元管理チャート secret-manager v0.1.0 を実装
Helm Chart Release / release-chart (push) Successful in 6s
Helm Chart Release / release-chart (push) Successful in 6s
クラスター横断で使う認証情報を1チャートで管理し、複数ネームスペースへ 同一 Secret として配布する仕組みを実装。 - distribution: namespaces への複製 / kubernetes-reflector 自動同期 / stakater-Reloader 連携を選択可能 - common: namePrefix・共通ラベル/アノテーション・immutable - mail.providers: SMTP/IMAP/POP3 のサーバ情報 + パスワードを一元管理。 source 可能な smtp.env と任意の msmtprc スニペットを Secret に同梱 - api.credentials: 任意のキー/値集合を Opaque Secret 化(envFrom 向け) - generic.secrets: 任意 type(dockerconfigjson / tls / basic-auth 等) - values.schema.json による厳格バリデーション - examples/(Gmail・M365・SendGrid・SES・Mailgun・reflector) - .gitea/workflows/helm-release.yaml で Package Registry へ自動発行 - README.md にセキュリティモデル・values リファレンス・参照方法を記載 - 平文資格情報の混入防止に .gitignore を整備
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
{{- /*
|
||||
API 認証情報 Secret
|
||||
api.credentials.<name> ごとに 1 つの Opaque Secret を生成する。
|
||||
data 配下のキーがそのまま Secret のキーになる。
|
||||
*/ -}}
|
||||
{{- range $name, $c := .Values.api.credentials }}
|
||||
{{- if $c.enabled }}
|
||||
{{- if not $c.data }}
|
||||
{{- fail (printf "api.credentials.%s: data セクション(1つ以上のキー/値)は必須です" $name) }}
|
||||
{{- end }}
|
||||
{{- $sd := dict }}
|
||||
{{- range $k, $v := $c.data }}
|
||||
{{- $_ := set $sd $k (printf "%v" $v) }}
|
||||
{{- end }}
|
||||
{{- include "secret-manager.secret" (dict "ctx" $ "name" $name "stringData" $sd "type" "Opaque" "annotations" ($c.annotations | default dict) "namespacesOverride" ($c.namespacesOverride | default list)) }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
Reference in New Issue
Block a user