Files
claude-code/CHANGELOG-2.1.263-b.md
T
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

47 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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"`。