gateway(nginx) + manager(python 標準ライブラリ) + セッションごとの使い捨て Pod + reaper CronJob の構成。ブラウザ(PC/スマホ)からアクセスし、セッション単位で 独立した Alpine コンテナに Git リポジトリ(GitHub/Gitea など)をチェックアウトして 編集・検証・プッシュする。無操作が続いたセッションは Pod ごと自動破棄。 - セキュリティ: セッション NS 分離 / restricted PodSecurity / RBAC はセッション NS の pods,services のみの Role / セッション Pod は SA トークン非マウント・非 root・ readOnlyRootFilesystem・drop ALL caps・seccomp / NetworkPolicy で egress を DNS+HTTPS+SSH に限定 / Git ホスト allow-list / ResourceQuota+LimitRange - ライフサイクル: idleTimeout(Pod 内ウォッチドッグ + manager 回収) / maxLifetime (activeDeadlineSeconds) / maxSessions / 予備の孤児掃除 CronJob - 認証: token(既定) / basic / forward(外部SSO) / none。WebSocket は Cookie トークン - Claude 認証: ANTHROPIC_API_KEY または CLAUDE_CODE_OAUTH_TOKEN - CI: helm-release.yaml(未リリース版のみ tag+release+publish) / image-update-and-release.yaml(週次 npm 追従) / session-image.yaml(multi-arch build) - files/ 実体を .Files.Get で ConfigMap 化。helm lint / template 検証済み
27 lines
760 B
YAML
27 lines
760 B
YAML
# 最小構成: 公開リポジトリのみ・token 認証・Ingress なし
|
|
# 実行例:
|
|
# helm upgrade --install claude-code ./claude-code \
|
|
# -n claude-code --create-namespace \
|
|
# -f examples/minimal.values.yaml \
|
|
# --set anthropic.apiKey="$ANTHROPIC_API_KEY"
|
|
#
|
|
# アクセス:
|
|
# kubectl -n claude-code port-forward svc/claude-code-claude-code 8080:80
|
|
# トークン: kubectl -n claude-code get secret claude-code-claude-code-auth -o jsonpath='{.data.token}' | base64 -d
|
|
|
|
auth:
|
|
mode: token # 空 value → install 時に自動生成
|
|
|
|
anthropic:
|
|
authMode: apiKey
|
|
# apiKey は --set か existingSecret で注入する
|
|
|
|
git:
|
|
allowedHosts:
|
|
- github.com
|
|
- gitlab.com
|
|
|
|
session:
|
|
idleTimeoutSeconds: 900
|
|
maxSessions: 3
|