首页 > 解决方案 > openshift 上的 Jenkins 流水线

问题描述

错误详情 e

你好,

我正在使用 groovy Jenkins 在 openshift 上部署我的项目。对于 openshift 集群 3.9,我能够成功部署,但后来我的客户决定迁移到 openshift 集群 3.11,CI 团队为我提供了带有集群名称和令牌的新配置,当然我没有完全权限簇。因此,当我更改为新的 URL、集群名称和令牌时,我总是收到错误消息“Rolebindings.rbac.authorization.k8s.io is disabled: User system:serviceaccount:abc:jenkins can not list in rolebinding.rbac。命名空间'projectname'中的authorization.k8s.io:没有RABC匹配”。我已经使用 oc 命令行检查了谁可以部署,并且 system:serviceaccount:abc:jenkins 没有在我的项目命名空间下列出。我已向 CI 人员提出请求,他们说这不是与集群配置相关的权限问题。

标签: kubernetesjenkins-pipelineopenshift

解决方案


您正在尝试使用服务帐户给自己一个角色绑定,但服务帐户没有这样做的权限。

检查服务帐户的权限:

kubectl auth can-i list rolebindings -n projectname --as=system:serviceaccount:abc:jenkins
no

集群管理员需要运行以下命令来授予服务帐户权限:

$ oc policy add-role-to-user edit system:serviceaccount:abc:jenkins \
    -n projectname
$ oc policy add-role-to-user system:image-puller system:serviceaccounts:abc:jenkins \
    -n projectname

推荐阅读