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
+113
View File
@@ -0,0 +1,113 @@
# =========================================================================
# 代表的な外部メールプロバイダの設定例
# -------------------------------------------------------------------------
# 使い方:
# helm upgrade --install secrets ./secret-manager \
# -n secret-manager --create-namespace \
# -f examples/mail-providers.values.yaml \
# --set mail.providers.gmail.smtp.password="$GMAIL_APP_PASSWORD"
#
# パスワード等の実値はこのファイルに書かず、--set / SOPS 経由で注入すること。
# =========================================================================
distribution:
namespaces:
- default
- web
- batch
includeReleaseNamespace: true
common:
namePrefix: "cred-"
immutable: false
mail:
providers:
# ---- Gmail / Google Workspace -----------------------------------------
# 事前に「アプリ パスワード」を発行しておくこと(2段階認証必須)。
gmail:
enabled: true
smtp:
host: "smtp.gmail.com"
port: 587
security: "starttls"
username: "no-reply@your-domain.com"
password: "REPLACE_VIA_--set"
from: "no-reply@your-domain.com"
fromName: "Your Service"
authMethod: "login"
imap:
host: "imap.gmail.com"
port: 993
security: "tls"
renderMsmtprc: true
# ---- Microsoft 365 / Exchange Online ---------------------------------
m365:
enabled: true
smtp:
host: "smtp.office365.com"
port: 587
security: "starttls"
username: "no-reply@your-domain.com"
password: "REPLACE_VIA_--set"
from: "no-reply@your-domain.com"
authMethod: "login"
imap:
host: "outlook.office365.com"
port: 993
security: "tls"
renderMsmtprc: true
# ---- SendGrid -------------------------------------------------------
# username は固定文字列 "apikey"、password が API キー本体。
sendgrid:
enabled: true
smtp:
host: "smtp.sendgrid.net"
port: 587
security: "starttls"
username: "apikey"
password: "REPLACE_VIA_--set"
from: "no-reply@your-domain.com"
fromName: "Your Service"
authMethod: "plain"
renderMsmtprc: true
# ---- Amazon SES ---------------------------------------------------
# SES SMTP 認証情報(IAM のアクセスキーとは別物)を使う。リージョンをホスト名に反映。
ses:
enabled: true
smtp:
host: "email-smtp.ap-northeast-1.amazonaws.com"
port: 587
security: "starttls"
username: "REPLACE_VIA_--set"
password: "REPLACE_VIA_--set"
from: "no-reply@your-domain.com"
authMethod: "login"
renderMsmtprc: true
# ---- Mailgun -----------------------------------------------------
mailgun:
enabled: true
smtp:
host: "smtp.mailgun.org"
port: 587
security: "starttls"
username: "postmaster@mg.your-domain.com"
password: "REPLACE_VIA_--set"
from: "no-reply@your-domain.com"
authMethod: "plain"
renderMsmtprc: true
# ---- 汎用 / 社内 SMTP リレー(認証なし・TLSなし)--------------------
internal-relay:
enabled: false
smtp:
host: "mail-relay.svc.cluster.local"
port: 25
security: "none"
from: "no-reply@your-domain.com"
renderMsmtprc: true