トークンが定期的に失効・ローテーションしても再デプロイ不要にする。 - 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)検証済み
26 lines
1.1 KiB
YAML
26 lines
1.1 KiB
YAML
{{- if not .Values.anthropic.existingSecret }}
|
|
# Claude Code 認証情報。セッション NS に作成し、セッション Pod へ注入する。
|
|
# credentials モードでは refresher CronJob がこの Secret を書き換えるため、
|
|
# helm の管理から外れて中身が更新されうる(helm upgrade で上書きしないよう注意)。
|
|
apiVersion: v1
|
|
kind: Secret
|
|
metadata:
|
|
name: {{ include "claude-code.fullname" . }}-anthropic
|
|
namespace: {{ include "claude-code.sessionsNamespace" . }}
|
|
labels:
|
|
{{- include "claude-code.labels" . | nindent 4 }}
|
|
annotations:
|
|
{{- if eq .Values.anthropic.authMode "credentials" }}
|
|
"helm.sh/resource-policy": keep
|
|
{{- end }}
|
|
type: Opaque
|
|
stringData:
|
|
{{- if eq .Values.anthropic.authMode "credentials" }}
|
|
".credentials.json": {{ .Values.anthropic.credentialsJson | default "{}" | quote }}
|
|
{{- else if eq .Values.anthropic.authMode "oauth" }}
|
|
CLAUDE_CODE_OAUTH_TOKEN: {{ .Values.anthropic.oauthToken | quote }}
|
|
{{- else }}
|
|
ANTHROPIC_API_KEY: {{ .Values.anthropic.apiKey | quote }}
|
|
{{- end }}
|
|
{{- end }}
|