Да, вы можете ограничить user3 в создании / удалении ресурсов только в пространстве имен ns3 с помощью Role
, связывающего эту роль с user3.
Тогда вы можете использовать ClusterRole
только с доступом к ресурсу namespaces
и разрешить ему create, delete, etc
Примерно так:
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: my-namespace
name: user-namespace-role
rules:
- apiGroups: [""]
resources: ["services", "endpoints", "pods"] # etc...
verbs: ["get", "list", "create"] # etc
Тогда:
kubectl create rolebinding user-namespace-binding --role=user-namespace-role --user=user3 --namespace=my-namespace
Затем:
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: cluster-role-all-namespaces
rules:
- apiGroups: [""]
resources: ["namespaces"]
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] # etc
Затем:
kubectl create clusterrolebinding all-namespaces-binding --clusterrole=cluster-role-all-namespaces --user=user3
Для user1 и user2 вы можете создать Role
и RoleBinding
для их уникальных пространств имен.