使用服务帐户自动部署失败

时间:2017-01-24 16:35:42

标签: openshift openshift-enterprise

我们正在尝试将容器的构建和部署自动化到在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"

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

默认情况下,服务帐户仅在其拥有项目中拥有权限。您需要授予部署者访问权限以在其他项目中部署。

答案 1 :(得分:0)

好的,似乎使用服务帐户来完成这项工作并不是解决问题的最佳方式。文档没有帮助。上面的用例很常见,正确的方法是简单地使用图像名称和相应的标记来唤起新应用程序:

oc new-app ${APP}:${TAG}

无需乱搞服务帐户。