Files
claude-code/CHANGELOG-2.1.263-b.md
claude 528a48b667
Helm Chart Release / release-chart (push) Successful in 9s
Build Session Image / build-push (push) Successful in 2m8s
feat: credentials 認証モードとトークン自動リフレッシュ CronJob を追加 (v2.1.263-b)
トークンが定期的に失効・ローテーションしても再デプロイ不要にする。

- 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)検証済み
2026-09-08 15:18:21 +09:00

2.8 KiB
Raw Permalink Blame History

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"。