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)検証済み
This commit is contained in:
+37
-3
@@ -153,18 +153,52 @@ auth:
|
||||
# anthropic: Claude Code の認証情報
|
||||
# --------------------------------------------------------------------------
|
||||
anthropic:
|
||||
# apiKey : ANTHROPIC_API_KEY を使う
|
||||
# oauth : CLAUDE_CODE_OAUTH_TOKEN を使う(`claude setup-token` で発行)
|
||||
authMode: apiKey
|
||||
# authMode:
|
||||
# credentials : ~/.claude/.credentials.json 全体(refreshToken 込み)を注入(推奨)。
|
||||
# 各セッションはこのファイルを $HOME/.claude/.credentials.json に配置し、
|
||||
# claude が自身でアクセストークンをリフレッシュする。加えて下記
|
||||
# refresher CronJob がクラスタ内で Secret を最新に保つ。
|
||||
# → API 課金なし。トークンが定期的に変わっても再デプロイ不要。
|
||||
# oauth : CLAUDE_CODE_OAUTH_TOKEN を注入(`claude setup-token` の単発トークン。
|
||||
# refreshToken を含まないため自動更新されない)。
|
||||
# apiKey : ANTHROPIC_API_KEY を注入(API 従量課金)。
|
||||
authMode: credentials
|
||||
apiKey: ""
|
||||
oauthToken: ""
|
||||
# credentials モード: claude ログイン済みマシンの ~/.claude/.credentials.json の中身。
|
||||
# 例: {"claudeAiOauth":{"accessToken":"...","refreshToken":"...","expiresAt":...,
|
||||
# "scopes":["user:inference","user:profile"],"subscriptionType":"max"}}
|
||||
# 注入は平文で書かず: --set-file anthropic.credentialsJson=$HOME/.claude/.credentials.json
|
||||
credentialsJson: ""
|
||||
# 上記の代わりに既存 Secret を参照
|
||||
existingSecret: ""
|
||||
existingSecretKeyApiKey: "ANTHROPIC_API_KEY"
|
||||
existingSecretKeyOauthToken: "CLAUDE_CODE_OAUTH_TOKEN"
|
||||
existingSecretKeyCredentials: ".credentials.json"
|
||||
# 全セッションへ渡す追加環境変数(例: ANTHROPIC_BASE_URL / ANTHROPIC_MODEL)
|
||||
extraEnv: {}
|
||||
|
||||
# ---- refresher: credentials モードのトークン自動更新 CronJob ----
|
||||
# Secret 内の refreshToken を使って新しい accessToken を取得し、Secret を書き戻す。
|
||||
# これで自マシンがオフラインでも新規セッションは常に有効なトークンで起動できる。
|
||||
# ⚠ Claude Code CLI の OAuth クライアント値(tokenUrl / clientId)に依存する。
|
||||
# これらは非公式であり、仕様変更で動かなくなる可能性がある。その場合でも
|
||||
# セッション内 claude の自己リフレッシュは独立して機能する。
|
||||
refresher:
|
||||
enabled: true
|
||||
schedule: "*/30 * * * *" # 30 分ごと
|
||||
# 期限まで残りこの秒数を切っていたら更新する(十分な余裕を持たせる)
|
||||
refreshIfExpiresInSeconds: 3600
|
||||
tokenUrl: "https://console.anthropic.com/v1/oauth/token"
|
||||
clientId: "9d1c250a-e61b-44d9-88ed-5944d1962f5e"
|
||||
resources:
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 32Mi
|
||||
limits:
|
||||
cpu: 200m
|
||||
memory: 96Mi
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# git: 接続先ホストと認証アイデンティティ
|
||||
# --------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user