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:
@@ -114,6 +114,25 @@ if ! command -v claude >/dev/null 2>&1; then
|
||||
fi
|
||||
log "claude: $(claude --version 2>/dev/null || echo 'unknown')"
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# 3b. Claude 認証情報(credentials モード)
|
||||
# --------------------------------------------------------------------------
|
||||
# Secret からマウントした .credentials.json を書き込み可能な $HOME/.claude へコピーする。
|
||||
# claude はアクセストークン失効時に refreshToken でこのファイルを自己更新する
|
||||
# (セッション中のみ有効。クラスタ全体の更新は refresher CronJob が担当)。
|
||||
if [ -n "${SEED_CREDENTIALS_FILE:-}" ] && [ -r "$SEED_CREDENTIALS_FILE" ]; then
|
||||
mkdir -p "$HOME/.claude"
|
||||
chmod 700 "$HOME/.claude"
|
||||
install -m 600 "$SEED_CREDENTIALS_FILE" "$HOME/.claude/.credentials.json"
|
||||
if command -v jq >/dev/null 2>&1; then
|
||||
_exp="$(jq -r '.claudeAiOauth.expiresAt // empty' "$HOME/.claude/.credentials.json" 2>/dev/null)"
|
||||
[ -n "$_exp" ] && log "Claude 認証情報を配置(accessToken 期限: $(date -u -d "@$(( _exp / 1000 ))" 2>/dev/null || echo "$_exp"))"
|
||||
else
|
||||
log "Claude 認証情報を $HOME/.claude/.credentials.json に配置しました"
|
||||
fi
|
||||
unset ANTHROPIC_API_KEY CLAUDE_CODE_OAUTH_TOKEN
|
||||
fi
|
||||
|
||||
# 追加 apk(root 権限がある事前ビルドイメージのみ有効。非 root では警告のみ)
|
||||
if [ -n "${EXTRA_APK_PACKAGES:-}" ]; then
|
||||
if [ "$(id -u)" = "0" ]; then
|
||||
|
||||
Reference in New Issue
Block a user