1

我们有一个工具可以为我们公司的所有团队提供 ci/cd 工作流程。作为工具链配置的一部分,我们还会自动创建 openshift 项目。我正在尝试为单个团队的部署过程找出最佳的自动化授权策略

这是我们目前正在做的事情

Create a project (eg: testproject)
Create a service account(oc create sa testuser)
Add user to admin role for the project (oc policy add-role-to-user admin system:serviceaccount:testproject:testuser)

现在我们检索 sa 帐户 testuser 的 api 令牌 oc describe sa testuser(获取 testuser 的预定义令牌) oc describe secret testuser-token-gd9sl(获取会话令牌)

通过 describe secret 命令,我们可以检索 api 令牌。我们将这些 api 令牌提供给各个团队。

oc login https://192.219.152.34.nip.io –token=adfasdfsdaf23423  

Teams Once logged in as using their token , they are able to peform any api oerations in the scope of testproject. 
eg: oc create -f testproject-deploymentconfig.yml
    oc create -f testproject-service.yml    

这种方法正确吗?它有什么缺点吗?有更好的方法吗?任何人都可以建议

4

2 回答 2

0

我们的做法大多相同。在 Jenkins 管道中,我们通过模板 yaml 文件创建项目。这包括项目元数据和注释、与管理员关联的命名用户(请求者的 LDAP 登录名)和一些预定义的拉取机密。登录 Openshift 由 Keycloak 和 MFA 保护。之后管理员帐户自己可以根据需要编辑成员资格并添加服务帐户。

我们也没有修改默认项目模板。

于 2018-11-16T23:26:13.497 回答
0

这是我的建议,它可以让您的自动对象处理变得更好(我希望如此)。

上面的过程(创建projectsa)应该在project创建新的时候执行,然后你可以通过project template-修改新项目的模板来使用任务。

例如,您可以serviceaccount yaml在模板中包含您的定义。

于 2018-10-29T11:36:41.197 回答