我们正在尝试将容器的构建和部署自动化到在openshift v3.3中创建的项目中。从文档中我可以看到,我们需要利用服务帐户来执行此操作,但文档很难遵循,我在博客中找到的示例并未完成任务。我的工作流程如下,使用了我使用的示例oc命令:
BUILDER_TOKEN='xxx'
DEPLOYER_TOKEN='xxx'
# build and push the image works as expected
docker build -t registry.xyz.com/want/want:latest .
docker login --username=<someuser> --password=${BUILDER_TOKEN} registry.xyz.com
docker push registry.xyz.com/<repo>/<image>:<tag>
# This fails with error
oc login https://api.xyz.com --token=${DEPLOYER_TOKEN}
oc project <someproject>
oc new-app registry.xyz.com/<repo>/<image>:<tag>
Notice I login into the rest api interface, select the project and create the app but this fails with the following errors:
error: User "system:serviceaccount:want:deployer" cannot create deploymentconfigs in project "default"
error: User "system:serviceaccount:want:deployer" cannot create services in project "default"
有什么想法吗?
答案 0 :(得分:0)
默认情况下,服务帐户仅在其拥有项目中拥有权限。您需要授予部署者访问权限以在其他项目中部署。
答案 1 :(得分:0)
好的,似乎使用服务帐户来完成这项工作并不是解决问题的最佳方式。文档没有帮助。上面的用例很常见,正确的方法是简单地使用图像名称和相应的标记来唤起新应用程序:
oc new-app ${APP}:${TAG}
无需乱搞服务帐户。