feat: 外部Secret連携(extraEnvFrom / extraEnv / SMTP existingSecret)を追加
Helm Chart Release / release-chart (push) Successful in 6s
Helm Chart Release / release-chart (push) Successful in 6s
helmchart/secret-manager が各ネームスペースへ配布する cred-* Secret を phpfpm 側から参照できるようにする。 - extraEnvFrom / extraEnv: 既存 Secret/ConfigMap を php-fpm コンテナへ env 注入 - smtp.auth.existingSecret / existingSecretKey: パスワードファイルだけ既存 Secret から取得 - smtp.existingMsmtprcSecret / existingMsmtprcSecretKey: 完成済み msmtprc を そのままマウント(指定時は configmap-smtp を生成せず host/port/auth.* は無視) 既定値は全て空のため既存挙動は不変。手動リリース 8.5.10-a。
This commit is contained in:
@@ -26,6 +26,28 @@ Websites 組織の各サイト(e-learn.jp / fcdomain.com / hotels / tskholding
|
||||
|
||||
## チャート改修履歴
|
||||
|
||||
### 外部Secret連携(extraEnvFrom / extraEnv / SMTP existingSecret)を追加(2026-09-08, v8.5.10-a)
|
||||
|
||||
**背景**: 別リポジトリの `helmchart/secret-manager` チャートが各ネームスペースへ配布する
|
||||
`cred-<名前>` Secret(メールの msmtprc / API キー)を、phpfpm 側から参照する口が無かった
|
||||
(`phpEnv` は直書きのみ、SMTP パスワードは `smtp.auth.password` 直書き+自作 Secret のみ)。
|
||||
|
||||
**修正内容**:
|
||||
- `values.yaml` に `extraEnvFrom`(`envFrom` 配列)と `extraEnv`(生の env エントリ配列)を追加。
|
||||
php-fpm コンテナに既存 Secret/ConfigMap をまるごと env 注入できる。
|
||||
- `smtp.auth.existingSecret` / `existingSecretKey` を追加。チャートで msmtprc を生成しつつ
|
||||
パスワードファイルだけ既存 Secret から取る。
|
||||
- `smtp.existingMsmtprcSecret` / `existingMsmtprcSecretKey` を追加。完成済み msmtprc を持つ
|
||||
既存 Secret をそのまま `/etc/smtp-config/msmtprc` としてマウント(secret-manager が生成する
|
||||
`msmtprc` キーを想定)。指定時は `configmap-smtp` を生成せず host/port/auth.* は無視、
|
||||
`smtp-secrets` ボリュームも張らない(msmtprc にパスワードが内包されるため)。
|
||||
- `templates/secret-smtp.yaml` / `templates/configmap-smtp.yaml` を上記フラグで出し分け。
|
||||
- 既定値は全て空 → 既存挙動は不変(`helm template` の全シナリオで確認済み)。
|
||||
- 主アプリ(PHP 8.5.10)は変わらないため手動リリース `8.5.10-a`。
|
||||
|
||||
**対象ファイル**: `values.yaml`, `templates/deployment.yaml`, `templates/configmap-smtp.yaml`,
|
||||
`templates/secret-smtp.yaml`, `Chart.yaml`, `README.md`, `CLAUDE.md`
|
||||
|
||||
### php-fpm を `exec php-fpm -F` で起動しCrashLoopBackOffを修正(2026-09-06, v8.5.9-d)
|
||||
|
||||
setup シェル末尾の `php-fpm`(シェルの子プロセス)を **`exec php-fpm -F`** に変更。selenium 有効構成(hotels)で php-fpm が `unable to bind ... '9000': Address in use` を出して永続 CrashLoopBackOff になり、nginx が非FastCGI応答を受けて全リクエスト502(`unsupported FastCGI protocol version: 60`)になる障害の修正。原因は php-fpm が setup シェルの子で、コンテナ PID1 のシェルが `SIGTERM` を子へ転送しないため、コンテナ再起動時に旧 php-fpm が残存し 9000 を握ったまま次回起動が二重 bind で失敗する自己増殖ループ。`exec` で php-fpm を PID1 にしてシグナルを直接受けさせ(停止時に 9000 を確実解放)、`-F` で `daemonize` 設定に依存せず必ずフォアグラウンド起動にした。全サイト共通で安全(コンテナで php-fpm を動かす定石)。復旧には `helm upgrade` に加え、残存プロセスを持つ既存 pod の削除が必要な場合がある。
|
||||
|
||||
Reference in New Issue
Block a user