# CHANGELOG 2.1.259 — 初版 claude-code Helm チャートの新規作成。 ## 追加 - **制御プレーン(Deployment)** - `gateway`(nginx-unprivileged / Alpine): 単一入口。`auth.mode` に応じて token / basic / forward / none の認証、`/s//` のセッションへの 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 最新版に一致)。