「Registry 発行済み」と「タグ/リリース作成」が同一フラグに束ねられていたため、 タグ push だけ失敗しても回復できなかった。各成果物を個別に冪等チェックし、 不足分だけを作る構造に変更。途中失敗しても次の push で自己修復する。 タグ有無は git ls-remote でリモート基準に確認。
他チャート(phpfpm/n8n)を参照し、リリース自動化を実装。 - helm-release.yaml(push トリガ): 「毎 push 無条件公開」から 「Chart.yaml の version が Package Registry に未公開のときだけリリース」に変更。 helm search repo --version で存在確認し、未公開時のみ Package Registry 発行 + Git タグ v<version> + Gitea リリース(tgz 添付)を実施。 paths フィルタで Chart.yaml/values.yaml/values.schema.json/templates/** 変更時のみ発火。 helm lint --strict でスキーマ検証。 - image-update-and-release.yaml(週次 月曜03:00 UTC): 新設。 このチャートは Secret を生成するだけで追従すべき上流イメージが無いため バージョン自動採番はしない。push 側がレジストリ障害等で取りこぼした 未公開バージョンを週次でリリースするセーフティネットとして動作。 将来サブチャート等の追従対象が増えたときの追加ポイントをコメントで用意。 - タグ/リリース作成は既存なら skip(冪等)。jq 未導入環境向けのガードを追加。 - README.md / CLAUDE.md に自動化ワークフローの節を追加
クラスター横断で使う認証情報を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 を整備