Files
home-ops/kubernetes/apps/ai/mcp-k8s/app/rbac.yaml
T
hermes c2c9b273f2
Flate / Flate - Success (pull_request) Blocked by required conditions
Flate / Flate - Filter (pull_request) Successful in 5s
Flate / Flate (pull_request) Successful in 17s
fix(ai): mcp-k8s — containers/kubernetes-mcp-server вместо mkp
У mkp нет ни одного безопасного режима, только RBAC. У containers/kubernetes-mcp-server есть
штатный --read-only, --toolsets и denied_resources, официальный гайд по read-only SA и чарт.
Образ quay.io/containers/kubernetes_mcp_server:v0.0.66 с дайджестом (тег проверен в API quay).
RBAC: вместо самодельного списка — встроенная view (secrets в неё не входят) + отдельный
ClusterRole на кластерные объекты и метрики. Аргументы: --port 8080 --read-only --toolsets core.
2026-09-17 23:17:35 +00:00

48 lines
1.6 KiB
YAML

---
# Базовое чтение даём встроенной ролью view — её же рекомендует официальный гайд
# containers/kubernetes-mcp-server (docs/getting-started-kubernetes.md). view
# описывает namespaced-ресурсы и secrets в неё не входят, поэтому именно она, а не
# самодельный список с resources: ["*"].
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: mcp-k8s-view
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: view
subjects:
- kind: ServiceAccount
name: mcp-k8s
namespace: ai
---
# view включает только namespaced-ресурсы, поэтому кластерные объекты и метрики
# добавляем отдельно. Ни secrets, ни записи здесь нет.
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: mcp-k8s-cluster-read
rules:
- apiGroups: [""]
resources: ["nodes", "namespaces", "persistentvolumes"]
verbs: ["get", "list", "watch"]
- apiGroups: ["storage.k8s.io"]
resources: ["storageclasses", "volumeattachments", "csidrivers", "csistoragecapacities"]
verbs: ["get", "list", "watch"]
- apiGroups: ["metrics.k8s.io"]
resources: ["*"]
verbs: ["get", "list"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: mcp-k8s-cluster-read
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: mcp-k8s-cluster-read
subjects:
- kind: ServiceAccount
name: mcp-k8s
namespace: ai