1

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

有任何想法吗?

4

2 回答 2

0

好的,所以看起来使用服务帐户来完成这并不是最好的方法。文档没有帮助。上面的用例很常见,正确的方法是简单地使用图像名称和相应的标签来调用 new-app:

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

没有必要搞乱服务帐户。

于 2017-02-08T14:16:36.580 回答
0

默认情况下,服务帐户仅在其所属项目中具有权限。您需要授予部署者访问权限才能在其他项目中进行部署。

于 2017-01-25T01:10:26.820 回答