5.5.6.4.4. 권한 및 RBAC 매니페스트
컨트롤러에서 관리하는 리소스와 상호 작용하려면 특정 역할 기반 액세스 제어(RBAC) 권한이 필요합니다. Go API의 경우 표준 Go 기반 Operator를 위한 Operator SDK 튜토리얼에 표시된 대로 RBAC 마커를 사용하여 지정됩니다.
Helm API의 경우 기본적으로 roles.yaml 에서 권한이 스캐폴드됩니다. 그러나 현재 Go API가 스캐폴드될 때 알려진 문제로 인해 Helm API에 대한 권한을 덮어씁니다. 이 문제로 인해 roles.yaml 에 정의된 권한이 요구 사항과 일치하는지 확인합니다.
이 알려진 문제는 https://github.com/operator-framework/helm-operator-plugins/issues/142 에서 추적되고 있습니다.
다음은 Memcached Operator의 예제 role.yaml 입니다.
예 5.6. Helm 및 Go 조정기의 예
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: manager-role
rules:
- apiGroups:
- ""
resources:
- namespaces
verbs:
- get
- apiGroups:
- apps
resources:
- deployments
- daemonsets
- replicasets
- statefulsets
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- cache.my.domain
resources:
- memcachedbackups
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- cache.my.domain
resources:
- memcachedbackups/finalizers
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- ""
resources:
- pods
- services
- services/finalizers
- endpoints
- persistentvolumeclaims
- events
- configmaps
- secrets
- serviceaccounts
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- cache.my.domain
resources:
- memcachedbackups/status
verbs:
- get
- patch
- update
- apiGroups:
- policy
resources:
- events
- poddisruptionbudgets
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- cache.my.domain
resources:
- memcacheds
- memcacheds/status
- memcacheds/finalizers
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
추가 리소스