feat: git identity を Web UI から登録・削除できるようにする (v2.1.263-f)
Helm Chart Release / release-chart (push) Successful in 7s
Build Session Image / build-push (push) Successful in 2m5s

helm --set-file ではなく UI から SSH 秘密鍵 + known_hosts / HTTPS トークンを登録可能に。

- git.guiIdentities.enabled(既定 true)。UI に「認証情報」カード(一覧/追加/削除)
- GET/POST/DELETE /api/identities。登録分はセッション NS の Secret
  (ラベル identity-source=gui / identity-type)として保存。Helm 管理分と同一覧に統合
- manager.py: resolve_identity / list_identities / create_gui_identity / delete_gui_identity。
  build_pod と create_session は Helm 管理 + GUI 登録の両方を解決。
  /api/config の identities を {name,type,source} 配列に変更
- rbac.yaml: guiIdentities.enabled 時のみ manager Role に同 NS secrets の CRUD を付与
- 秘密鍵はリクエストボディで manager へ届くため README に経路 TLS 必須を明記
- helm lint / template 検証済み
This commit is contained in:
2026-09-09 12:47:50 +09:00
parent 6514747b4e
commit c31dd5875c
10 changed files with 345 additions and 15 deletions
+20
View File
@@ -57,6 +57,26 @@ Git リポジトリ(GitHub / Gitea など互換 Git 全般)をチェック
## 改修履歴
### GUI からの git identity 登録(2026-09-09, v2.1.263-f)
**要望**: SSH 鍵を `helm --set-file` ではなく Web UI から登録したい。
**修正内容**:
- `git.guiIdentities.enabled`(既定 `true`)。UI に「認証情報」カード(一覧 + 追加フォーム +
削除)。`GET/POST/DELETE /api/identities`。
- 保存先はセッション NS の Secret(ラベル `identity-source: gui|helm` /
`identity-type: ssh|https-token`)。`secret-git.yaml` の Helm 管理分にも同ラベルを付与。
- `manager.py`: `resolve_identity` / `list_identities` / `create_gui_identity` /
`delete_gui_identity` を追加。`build_pod` と `create_session` は Helm 管理 + GUI 登録の
両方を解決。`/api/config` の `identities` を `{name,type,source}` 配列に変更(UI も追従)。
- `rbac.yaml`: `guiIdentities.enabled` 時のみ manager Role に同 NS `secrets` の
get/list/create/update/patch/delete を追加。
- 秘密鍵はリクエストボディで manager へ届く → README に「経路の TLS 必須」を明記。
**対象ファイル**: `files/manager.py`, `values.yaml`, `values.schema.json`,
`templates/rbac.yaml`, `templates/secret-git.yaml`, `templates/deployment.yaml`,
`README.md`, `Chart.yaml`, `CHANGELOG-2.1.263-f.md`
### リポジトリ URL バリデーション緩和 + エラーメッセージ具体化(2026-09-09, v2.1.263-e)
**症状**: `claude@192.168.9.65:...`(SSH ユーザーをアカウント名にした URL)が