kubernetes - openshift 上的 Jenkins 流水线
问题描述
你好,
我正在使用 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 人员提出请求,他们说这不是与集群配置相关的权限问题。
解决方案
您正在尝试使用服务帐户给自己一个角色绑定,但服务帐户没有这样做的权限。
检查服务帐户的权限:
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
推荐阅读
- ios - 如何检测从长按开始的水龙头?
- php - 如何匹配包含破折号 (-) 的弹性搜索中的条目
- javascript - 如何将检查语句从 HTML 发布到 JS 文件
- node.js - 如何导入 3-rd 方库?在角
- spring - 有没有办法验证请求对象中用作包装器的字段,其中一个是可选的
- python - 如何检测 .format 中的“{”或“}”
- android - 拍照时创建/存储缩略图或加载列表时实时渲染?
- ios - iOS - HTTP 方法不发出 POST 请求,而是发出 GET
- python - 无法正确修补对象的属性
- vb.net - 使用 ActiveControl 摆脱长行的 Else if 代码