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:
@@ -3,20 +3,23 @@
|
||||
#
|
||||
# 前提:
|
||||
# - クラスタに LB 実装(kube-vip / MetalLB / Cilium LB-IPAM 等)がある
|
||||
# - ローカルで `claude setup-token` を実行して長期 OAuth トークンを発行済み
|
||||
# - 手元の PC が claude にログイン済み(~/.claude/.credentials.json が存在)
|
||||
#
|
||||
# 実行例:
|
||||
# helm upgrade --install claude-code cafepieters/claude-code \
|
||||
# -n claude-code --create-namespace \
|
||||
# -f examples/loadbalancer-oauth.values.yaml \
|
||||
# --set anthropic.oauthToken="$(cat ~/.claude/oauth-token.txt)" \
|
||||
# --set-file anthropic.credentialsJson="$HOME/.claude/.credentials.json" \
|
||||
# --set-file git.identities.gitea-ssh.sshPrivateKey=P:/Claude/.ssh/id_claude \
|
||||
# --set-file git.identities.gitea-ssh.knownHosts=./known_hosts.gitea
|
||||
|
||||
# ---- Claude 認証: API を使わずサブスクリプション(Pro / Max)で動かす ----
|
||||
anthropic:
|
||||
authMode: oauth # ANTHROPIC_API_KEY ではなく CLAUDE_CODE_OAUTH_TOKEN を使う
|
||||
# oauthToken は --set / --set-file / existingSecret で注入する(平文で書かない)
|
||||
authMode: credentials # ~/.claude/.credentials.json 全体を注入(refreshToken 込み)
|
||||
# credentialsJson は --set-file で注入する(平文で書かない)
|
||||
refresher:
|
||||
enabled: true # クラスタ内で accessToken を定期更新し Secret を書き戻す
|
||||
schedule: "*/30 * * * *"
|
||||
|
||||
# ---- 管理画面はローカル LB の IP でアクセス(Ingress なし)----
|
||||
ingress:
|
||||
|
||||
Reference in New Issue
Block a user