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

42 lines
2.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 最新版に一致)。