,jenkins,openshift,openshift-origin,jenkins-job-dsl,okd"/>

首页 > 解决方案 > Openshift:用户“系统:服务帐户::jenkins" 无法创建 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

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

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

我尝试使用以下命令将集群创建角色赋予服务帐户 jenkins,但我仍然遇到相同的错误。

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

标签: jenkinsopenshiftopenshift-originjenkins-job-dslokd

解决方案


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

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

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

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

推荐阅读