Openshift:用户 "system:serviceaccount:<project>:jenkins" 无法创建 PV:RBAC:未找到 clusterrole.rbac.authorization.k8s.io "create"

Openshift: User "system:serviceaccount:<project>:jenkins" can't create PV : RBAC: clusterrole.rbac.authorization.k8s.io "create" not found

Openshift/okd版本:3.11

我正在使用 openshift 目录中的 jenkins-ephemeral 应用程序并使用 buildconfig 创建管道。参考:https://docs.okd.io/3.11/dev_guide/dev_tutorials/openshift_pipeline.html

当我启动管道时,在 jenkins 的一个阶段它需要创建一个持久卷,此时我收到以下错误:

Error from server (Forbidden): persistentvolumes is forbidden: User "system:serviceaccount:pipelineproject:jenkins" cannot create persistentvolumes at the cluster scope: RBAC: clusterrole.rbac.authorization.k8s.io "create" not found

我已经尝试使用以下命令将 cluster-create 角色赋予服务帐户 jenkins,我仍然遇到同样的错误。

oc adm policy add-cluster-role-to-user create system:serviceaccount:pipelineproject:jenkins

创建 PersistentVolume 通常是您应该 而不是 手动执行的操作。理想情况下,您应该依赖 PersistentVolumeClaimsPersistentVolumeClaims 是命名空间资源,您的服务帐户应该能够使用 edit 角色创建。

$ oc project pipelineproject
$ oc policy add-role-to-user edit -z jenkins

但是,如果需要您直接与 PersistentVolume 对象交互,则有一个 storage-admin ClusterRole 应该能够为您的 ServiceAccount 提供必要的权限。

$ oc project pipelineproject
$ oc adm policy add-cluster-role-to-user storage-admin -z jenkins