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 を整備
48 lines
1.9 KiB
Plaintext
48 lines
1.9 KiB
Plaintext
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` するだけで全ネームスペースに反映されます。
|