Files
claude c31dd5875c
Helm Chart Release / release-chart (push) Successful in 7s
Build Session Image / build-push (push) Successful in 2m5s
feat: git identity を Web UI から登録・削除できるようにする (v2.1.263-f)
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 検証済み
2026-09-09 12:47:50 +09:00

49 lines
1.7 KiB
YAML

{{- $sessNs := include "claude-code.sessionsNamespace" . -}}
---
# 制御プレーンがセッション NS 内で必要とする最小権限。
# ClusterRole は使わず、セッション NS に閉じた Role のみ。
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: {{ include "claude-code.fullname" . }}-manager
namespace: {{ $sessNs }}
labels:
{{- include "claude-code.labels" . | nindent 4 }}
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch", "create", "delete", "deletecollection"]
- apiGroups: [""]
resources: ["pods/log", "pods/status"]
verbs: ["get", "list"]
- apiGroups: [""]
resources: ["services"]
verbs: ["get", "list", "watch", "create", "delete"]
- apiGroups: [""]
resources: ["events"]
verbs: ["get", "list", "watch"]
{{- if .Values.git.guiIdentities.enabled }}
# GUI からの git identity 登録(Secret の作成/更新/削除)。
# list は同 NS の他 Secret も対象になりうるが、manager コードは
# ラベル claude-code.cafepieters.com/identity-source=gui のものだけを操作する。
- apiGroups: [""]
resources: ["secrets"]
verbs: ["get", "list", "create", "update", "patch", "delete"]
{{- end }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: {{ include "claude-code.fullname" . }}-manager
namespace: {{ $sessNs }}
labels:
{{- include "claude-code.labels" . | nindent 4 }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: {{ include "claude-code.fullname" . }}-manager
subjects:
- kind: ServiceAccount
name: {{ include "claude-code.managerServiceAccountName" . }}
namespace: {{ .Release.Namespace }}