如何使用OpenShift API创建持久卷

如何使用OpenShift API创建持久卷,openshift,Openshift,我正在构建一个OpenShift客户机,用于在集群上执行各种操作。我想让这个客户端创建一个持久卷。默认开发人员用户无法创建持久卷,但管理员可以。我试图找到在默认OpenShift源部署中创建持久卷的最佳方法,而不需要用户输入,只使用REST API,不使用任何oc 我认为有两种可能的解决办法: 以用户管理员身份创建持久卷。但是,我不知道如何将API用作管理员,因为此用户帐户没有令牌。我试图检查oc日志,但无法反向工程它如何作为管理员进行身份验证 向user developer添加创建持久卷的权

我正在构建一个OpenShift客户机,用于在集群上执行各种操作。我想让这个客户端创建一个持久卷。默认开发人员用户无法创建持久卷,但管理员可以。我试图找到在默认OpenShift源部署中创建持久卷的最佳方法,而不需要用户输入,只使用REST API,不使用任何
oc

我认为有两种可能的解决办法:

  • 以用户管理员身份创建持久卷。但是,我不知道如何将API用作管理员,因为此用户帐户没有令牌。我试图检查
    oc
    日志,但无法反向工程它如何作为管理员进行身份验证
  • 向user developer添加创建持久卷的权限。我希望避免这种情况,但如果真是这样,我愿意考虑这个解决方案。有人知道开发人员用户需要什么样的权限才能创建持久卷吗

如何仅使用OpenShift API创建持久卷?

您可以为持久卷操作创建用户或服务帐户

需要的角色是集群角色,并且已有一个名为“系统:持久卷供应器”的现有角色


如果此群集角色的权限超出了您的需要,只需创建一个权限较低的群集角色。

您可以创建一个用户或服务帐户以进行持久卷操作

需要的角色是集群角色,并且已有一个名为“系统:持久卷供应器”的现有角色

如果此群集角色的权限超过您的需要,只需创建一个权限较少的群集角色

$ 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