我正在构建一个使用OpenShift's REST API在集群上执行各种操作的OpenShift客户端。我想让这个客户端创建一个持久量。默认开发人员用户无法创建持久卷,但管理员可以。我试图找到在默认的OpenShift原始部署中创建持久卷的最佳方法,而无需用户输入并仅使用REST API,而不使用任何oc
。
我看到两种可能的解决方案:
oc
日志,但无法对其如何作为管理员进行身份验证进行反向工程。如何仅使用OpenShift API创建持久卷?
答案 0 :(得分:2)
您可以为持久性卷操作创建用户或服务帐户。
需要的角色是群集角色,并且已经有一个名为“ system:persistent-volume-provisioner ”的现有角色
$ oc get clusterrole/system:persistent-volume-provisioner -o yaml --as system:admin
apiVersion: authorization.openshift.io/v1
kind: ClusterRole
metadata:
annotations:
authorization.openshift.io/system-only: "true"
openshift.io/reconcile-protect: "false"
creationTimestamp: 2018-03-16T13:18:45Z
name: system:persistent-volume-provisioner
resourceVersion: "134"
selfLink: /apis/authorization.openshift.io/v1/clusterroles/system%3Apersistent-volume-provisioner
uid: 8e253e28-291c-11e8-b0f7-36c91e93ae8e
rules:
- apiGroups:
- ""
attributeRestrictions: null
resources:
- persistentvolumes
verbs:
- create
- delete
- get
- list
- watch
- apiGroups:
- ""
attributeRestrictions: null
resources:
- persistentvolumeclaims
verbs:
- get
- list
- update
- watch
- apiGroups:
- storage.k8s.io
attributeRestrictions: null
resources:
- storageclasses
verbs:
- get
- list
- watch
- apiGroups:
- ""
attributeRestrictions: null
resources:
- events
verbs:
- create
- list
- patch
- update
- watch
如果此群集角色的数量超过您的需要,只需创建一个权限较少的角色。