MrPsycho:
私は、次のユーザーのマニフェストを持っていると私は、myappのユーザは、クラスタ内のすべての名前空間の一覧を取得できるようにしたいと思います。私が見てきた何から私はClusterRoleを作成することになってんだけど、私は本当にそれで十分な詳細を見つけることができません。すべてapiGroupsと対応するリソースと動詞のリストはどこにありますか?
apiVersion: v1
kind: ServiceAccount
metadata:
name: myapp-user
namespace: myapp
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: myapp-user-role
namespace: myapp
rules:
- apiGroups: ["", "extensions", "apps"]
resources: ["*"]
verbs: ["*"]
- apiGroups: ["batch"]
resources:
- jobs
- cronjobs
verbs: ["*"]
- apiGroups: ["networking.k8s.io"]
resources:
- ingress
verbs: ["*"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: myapp-user
namespace: myapp
subjects:
- kind: ServiceAccount
name: myapp-suer
namespace: myapp
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: myapp-user-role
I role.rulesにこれを追加することが役立つかもしれないが、残念ながらないが
- apiGroups: [""]
resources: ["namespaces"]
verbs: ["GET"]
Arghyaサドゥー:
あなたは経由でAPIのリソースを取得することができます
kubectl api-resources
NAME SHORTNAMES APIGROUP NAMESPACED KIND
bindings true Binding
componentstatuses cs false ComponentStatus
configmaps cm true ConfigMap
endpoints ep true Endpoints
events ev true Event
limitranges limits true LimitRange
namespaces ns false Namespace
nodes no false Node
persistentvolumeclaims pvc true PersistentVolumeClaim
persistentvolumes pv false PersistentVolume
そしてclusterroleを作成し、コマンドの下clusterolebindingのために働く必要があります。
kubectl create clusterrole cr --verb=get,list --resource=namespaces
kubectl create clusterrolebinding crb --clusterrole=cr --serviceaccount=default:default
そして、それをテストします
kubectl auth can-i get ns --as=system:serviceaccount:default:default
kubectl auth can-i list ns --as=system:serviceaccount:default:default