Создание панели управления 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

Проблема, с которой я столкнулся, заключается в том, что пользователю по-прежнему не разрешено обновлять эти два развертывания. Мне интересно, поддерживается ли эта настройка, и если да, то что мне не хватает.

Заранее цените любые мысли, чтобы разобраться.

0 ответов

Другие вопросы по тегам