Files
claude-code/CHANGELOG-2.1.259.md
T
claude 1bd0fec23a
Helm Chart Release / release-chart (push) Successful in 12s
Build Session Image / build-push (push) Successful in 2m15s
feat: Alpine ベースの Claude Code リモート実行 Helm チャート初版 (v2.1.259)
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 検証済み
2026-09-03 08:10:12 +09:00

2.7 KiB
Raw Permalink Blame History

CHANGELOG 2.1.259 — 初版

claude-code Helm チャートの新規作成。

追加

  • 制御プレーン(Deployment)
    • gateway(nginx-unprivileged / Alpine): 単一入口。auth.mode に応じて token / basic / forward / none の認証、/s/<id>/ のセッションへの WebSocket リバースプロキシ、auth_request によるアクセス時刻の更新。
    • manager(python / Alpine, 標準ライブラリのみ): セッション CRUD API、 モバイル対応の Web UI(ビルド不要)、アイドル / 最大寿命の回収ループ。 in-cluster ServiceAccount で Kubernetes API を直接操作。
  • セッション(使い捨て Pod)
    • files/session-entrypoint.sh: git 認証(SSH 鍵 / HTTPS トークン)、許可済み リポジトリの clone、claude 用意、ttyd 起動、アイドルウォッチドッグ。
    • claude-verify / claude-push(保護ブランチ・--force 禁止の安全 push)。
    • files/Dockerfile.session: git + ttyd + claude-code 同梱の事前ビルドイメージ (CI で multi-arch publish、コールドスタート短縮)。
  • ライフサイクル
    • session.idleTimeoutSeconds 無通信で Pod 自動破棄(Pod 内ウォッチドッグ + manager 回収)。
    • session.maxLifetimeSeconds を activeDeadlineSeconds として強制。
    • session.maxSessions で同時セッション数を制限。
    • 予備の孤児掃除 CronJob(manager --reap-once)。
  • セキュリティ
    • セッション NS を制御プレーンから分離(sessionsNamespace, PodSecurity restricted)。
    • manager RBAC はセッション NS の pods / services に限定した Role のみ。
    • セッション Pod は SA トークン非マウント(API サーバー到達不可)、非 root / readOnlyRootFilesystem / drop ALL caps / seccomp RuntimeDefault。
    • NetworkPolicy: セッションの ingress は gateway からのみ、egress は DNS + HTTPS(443)
      • SSH(22)、blockedEgressCIDRs(既定でクラウドメタデータ IP)を except。
    • Git ホスト allow-list(git.allowedHosts)。既定は allow-list 外を拒否。
    • ResourceQuota / LimitRange でセッション NS のブラスト半径を制限。
  • CI
    • helm-release.yaml(main push で Package Registry へ publish、全リポジトリ共通)。
    • image-update-and-release.yaml(毎週月曜 3:00 JST: npm の Claude Code 最新版に追従、 主アプリ更新時のみ セッションイメージ build/push + タグ + リリース + publish)。

バージョン

version / appVersion = 2.1.259(@anthropic-ai/claude-code の npm 最新版に一致)。