Files
claude f374cd2e49
Helm Chart Release / release-chart (push) Successful in 6s
Secrets 一元管理チャート secret-manager v0.1.0 を実装
クラスター横断で使う認証情報を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 を整備
2026-08-31 09:41:41 +09:00

48 lines
1.9 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
secret-manager ({{ .Chart.Version }}) をデプロイしました。
{{- if .Values.distribution.reflector.enabled }}
配布方式 : kubernetes-reflector による自動同期
ソース : ネームスペース "{{ .Release.Namespace }}"
同期先 : /{{ .Values.distribution.reflector.namespaceRegex }}/ に一致する全ネームスペース
{{- else }}
{{- $nsList := splitList "," (include "secret-manager.distributionNamespaces" .) }}
配布方式 : Helm による複製({{ len $nsList }} ネームスペース)
{{- range $nsList }}
- {{ . }}
{{- end }}
{{- end }}
{{- if .Values.distribution.reloader.enabled }}
Reloader : 有効(参照側 Deployment に reloader.stakater.com/auto: "true" を付けると自動再起動)
{{- end }}
生成された Secret(プレフィックス "{{ .Values.common.namePrefix }}"):
{{- $prefix := .Values.common.namePrefix }}
{{- range $name, $p := .Values.mail.providers }}{{- if $p.enabled }}
[mail] {{ $prefix }}{{ $name }} キー: SMTP_HOST/PORT/USERNAME/PASSWORD/FROM ほか, smtp.env{{ if $p.renderMsmtprc }}, msmtprc{{ end }}
{{- end }}{{- end }}
{{- range $name, $c := .Values.api.credentials }}{{- if $c.enabled }}
[api] {{ $prefix }}{{ $name }} キー: {{ keys $c.data | sortAlpha | join ", " }}
{{- end }}{{- end }}
{{- range $name, $g := .Values.generic.secrets }}{{- if $g.enabled }}
[gen] {{ $prefix }}{{ $name }} type: {{ $g.type | default "Opaque" }}
{{- end }}{{- end }}
参照側の Deployment からの使い方:
# まとめて環境変数に注入
envFrom:
- secretRef:
name: {{ .Values.common.namePrefix }}<エントリ名>
# 個別キーを参照
env:
- name: SMTP_PASSWORD
valueFrom:
secretKeyRef:
name: {{ .Values.common.namePrefix }}gmail
key: SMTP_PASSWORD
値を変更したいときは values を更新して `helm upgrade` するだけで全ネームスペースに反映されます。