トークンが定期的に失効・ローテーションしても再デプロイ不要にする。 - anthropic.authMode: credentials(新既定) ~/.claude/.credentials.json 全体(refreshToken 込み)を Secret に格納。 セッション Pod にはファイルとしてマウントし $HOME/.claude へコピー(書き込み可)、 セッション内 claude が refreshToken で自己更新 - anthropic.refresher CronJob(credentials 時・既定有効, files/token-refresher.py) Secret 内 refreshToken で OAuth トークンを更新し Secret を書き戻す。 専用 SA + resourceNames 限定 Role で該当 Secret の get/patch のみ。 tokenUrl/clientId は Claude Code CLI の非公式値(values 上書き可) - manager.py build_pod: credentials は envFrom を使わずファイルマウント + SEED_CREDENTIALS_FILE。apiKey/oauth は従来どおり envFrom - Secret に helm.sh/resource-policy: keep(credentials 時)で refresher の書込を保持 - fix: values.schema.json の $schema 行を削除(一部の Helm で "no schema with key or ref https://json-schema.org/draft-07/schema#" エラー) - helm lint / template(credentials/apiKey/oauth)検証済み
2.8 KiB
2.8 KiB
CHANGELOG 2.1.263-b — 手動リリース
v2.1.263-a の上に適用する手動リリース。
背景
claude setup-token / サブスクリプションのアクセストークンは定期的に失効・ローテーション
される。単発トークン(authMode: oauth)注入では、失効のたびに helm upgrade が必要だった。
追加
anthropic.authMode: credentials(新既定)~/.claude/.credentials.json全体(accessToken+refreshToken+expiresAt)を Secret に 格納し、セッション Pod にファイルとしてマウント → 起動時に$HOME/.claude/.credentials.jsonへコピー(書き込み可能)。セッション内claudeがrefreshTokenで自己更新する。--set-file anthropic.credentialsJson=$HOME/.claude/.credentials.jsonで注入。anthropic.existingSecretKeyCredentials(既定.credentials.json)で既存 Secret のキー名を指定可。
- refresher CronJob(
anthropic.refresher、credentialsモード時・既定有効)files/token-refresher.py(Python 標準ライブラリのみ)。Secret 内のrefreshTokenで OAuth トークンエンドポイントを叩き、新しいaccessToken/refreshToken/expiresAtを Secret に書き戻す。既定 30 分ごと、残り寿命 1h 未満で更新。- 専用 ServiceAccount + Role(セッション NS の認証情報 Secret 1 個への
get/patchのみ、resourceNamesで限定)+ RoleBinding。 tokenUrl/clientIdは Claude Code CLI の公開値(非公式)。仕様変更時は values で上書き。 壊れてもセッション内claudeの自己更新は独立して機能する。enabled: falseで無効化。
- Secret に
helm.sh/resource-policy: keep(credentialsモード時)。helm upgradeで--set-fileを付けない限り refresher が書いた値を Helm が上書きしない。
変更
anthropic.authModeの既定をapiKey→credentials。既存のapiKey/oauth運用は values で明示指定すれば従来どおり。templates/secret-anthropic.yaml/deployment.yaml/files/manager.py(build_podの 認証情報注入分岐)/files/session-entrypoint.sh(seed 処理)/values.schema.json/templates/NOTES.txt/examples/loadbalancer-oauth.values.yamlを更新。
修正
values.schema.jsonの$schemaにhttps://json-schema.org/draft-07/schema#を指定して いたため、一部の Helm バージョンでno schema with key or ref "https://json-schema.org/draft-07/schema#"エラーが出ていた。$schema行を削除(他チャートと同じ・Helm は draft-07 で検証)。
バージョン
version = 2.1.263-b / appVersion = "2.1.263"。