Создание панели управления Kubernetes с ролью доступа только для чтения для всех ресурсов за исключением конкретного развертывания
Я пытаюсь создать пользователя только для чтения на панели инструментов Kubernetes, которому разрешено обновлять и устанавливать масштаб только для определенного развертывания в определенном пространстве имен, я успешно создал пользователя только для чтения для всех ресурсов. Однако с трудом разрешает доступ к определенным ресурсам.
Вот моя ClusterRole с определенной ролью, роль позволяет обновлять только два развертывания dummy-deployemnt1 , dummy-deployemnt1
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: dummy-deployemnt-user-admin
rules:
- apiGroups:
- ""
resources:
- configmaps
- endpoints
- persistentvolumeclaims
- pods
- replicationcontrollers
- replicationcontrollers/scale
- serviceaccounts
- services
- nodes
- persistentvolumeclaims
- persistentvolumes
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- bindings
- events
- limitranges
- namespaces/status
- pods/log
- pods/status
- replicationcontrollers/status
- resourcequotas
- resourcequotas/status
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- namespaces
verbs:
- get
- list
- watch
- apiGroups:
- apps
resources:
- daemonsets
- deployments
- deployments/scale
- replicasets
- replicasets/scale
- statefulsets
verbs:
- get
- list
- watch
- apiGroups:
- autoscaling
resources:
- horizontalpodautoscalers
verbs:
- get
- list
- watch
- apiGroups:
- batch
resources:
- cronjobs
- jobs
verbs:
- get
- list
- watch
- apiGroups:
- extensions
resources:
- daemonsets
- deployments
- deployments/scale
- ingresses
- networkpolicies
- replicasets
- replicasets/scale
- replicationcontrollers/scale
verbs:
- get
- list
- watch
- apiGroups:
- policy
resources:
- poddisruptionbudgets
verbs:
- get
- list
- watch
- apiGroups:
- networking.k8s.io
resources:
- networkpolicies
verbs:
- get
- list
- watch
- apiGroups:
- storage.k8s.io
resources:
- storageclasses
- volumeattachments
verbs:
- get
- list
- watch
- apiGroups:
- rbac.authorization.k8s.io
resources:
- clusterrolebindings
- clusterroles
- roles
- rolebindings
verbs:
- get
- list
- watch
- apiGroups:
- app
resources:
- deployments
- deployments/scale
resourceNames:
- dummy-deployemnt1
- dummy-deployemnt1
verbs:
- get
- list
- watch
- update
Обратите внимание, развертывания расположены в определенном пространстве имен, скажем (dummy-namespace)
ServiceAccount и ClusterRoleBinding выглядят так:
apiVersion: v1
kind: ServiceAccount
metadata:
name: eks-dummy-deployemnt-user-admin
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: eks-dummy-deployemnt-user-admin
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: dummy-deployemnt-user-admin
subjects:
- kind: ServiceAccount
name: eks-dummy-deployemnt-user-admin
namespace: kube-system
Проблема, с которой я столкнулся, заключается в том, что пользователю по-прежнему не разрешено обновлять эти два развертывания. Мне интересно, поддерживается ли эта настройка, и если да, то что мне не хватает.
Заранее цените любые мысли, чтобы разобраться.