Secrets 一元管理チャート secret-manager v0.1.0 を実装
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:
2026-08-31 09:41:41 +09:00
parent 507fd48d11
commit f374cd2e49
16 changed files with 1329 additions and 1 deletions
+17
View File
@@ -0,0 +1,17 @@
{{- /*
汎用 Secret
generic.secrets.<name> ごとに 1 つの Secret を生成する。任意の Secret type を指定可能。
(例: kubernetes.io/dockerconfigjson, kubernetes.io/tls, kubernetes.io/basic-auth)
*/ -}}
{{- range $name, $g := .Values.generic.secrets }}
{{- if $g.enabled }}
{{- if not $g.data }}
{{- fail (printf "generic.secrets.%s: data セクション(1つ以上のキー/値)は必須です" $name) }}
{{- end }}
{{- $sd := dict }}
{{- range $k, $v := $g.data }}
{{- $_ := set $sd $k (printf "%v" $v) }}
{{- end }}
{{- include "secret-manager.secret" (dict "ctx" $ "name" $name "stringData" $sd "type" ($g.type | default "Opaque") "annotations" ($g.annotations | default dict) "namespacesOverride" ($g.namespacesOverride | default list)) }}
{{- end }}
{{- end }}