我在 OpenShift 中配置 CI/CD:Dev > Stage > Prod,我在 Stage 中遇到了一些问题,以达到 Dev ImageStream。整个设置如下所示:
Dev - 运行 Tekton 管道并在最后一个任务上触发 BuildConfig > Build 将新图像输出到 ImageStream > ImageStream 新标签触发 DeploymentConfig > 部署发生
Stage - 我想在 Dev 的 ImageStream 中找到标签,这样我就可以在 Stage 中构建和部署应用程序。
我正在使用 OpenShift 内部注册表image-registry.openshift-image-registry.svc:port
在 Stage 中,我所做的是在 Pipeline 中执行image-pull
命令的一项任务:
oc import-image image-registry.openshift-image-registry.svc:port/namespace/name:version --confirm
但我收到以下错误:
Error from server (Forbidden): imagestreams.image.openshift.io "name" is forbidden:
User "system:serviceaccount:namespace:sa" cannot get resource "imagestreams" in API group "image.openshift.io" in the namespace "namespace"
我sa
在 Dev 和 Stage 中有一个 serviceAccount,它只有 github-secret。
根据OpenShift 文档 Cluster-role bindings等一些示例:
$ oc adm policy add-cluster-role-to-user <role> <username>
Binds a given role to specified users for all projects in the cluster.
这意味着在相同的集群边界。
oc policy add-role-to-user \
system:image-puller system:serviceaccount:testing2:default \
--namespace=testing1
Your project testing2 will be able to access images from project testing1 in your openshift.
这意味着项目之间(好)但在同一个集群中(我需要不同的集群)
有没有办法设置角色绑定以便能够从不同的集群访问 ImageStream ?还是集群角色?或者是其他方式来实现这一目标?
任何帮助表示赞赏