jenkins - 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
解决方案
创建 aPersistentVolume
通常是您不应该手动执行的操作。理想情况下,您应该依赖PersistentVolumeClaims
. PersistentVolumeClaims
是命名空间资源,您的服务帐户应该能够使用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