Cluster management project (alpha)

原文:https://docs.gitlab.com/ee/user/clusters/management_project.html

Cluster management project (alpha)

警告:这是Alpha 版功能,如有更改,恕不另行通知.

在 GitLab 12.5 中引入

可以将一个项目指定为集群的管理项目. 管理项目可用于以 Kubernetes cluster-admin权限运行部署作业.

这对以下情况很有用:

  • 创建管道以将群集范围的应用程序安装到群集中,有关详细信息,请参见使用 GitLab CI / CD(alpha)安装.
  • 需要cluster-admin权限的所有作业.

Permissions

仅管理项目将获得cluster-admin权限. 所有其他项目将继续获得命名空间范围的edit级别特权 .

管理项目仅限于以下内容:

  • 对于项目级集群,管理项目必须与集群项目位于相同的名称空间(或子代)中.
  • 对于组级集群,管理项目必须与集群的组位于同一组(或子孙)中.
  • 对于实例级群集,没有此类限制.

Usage

要将群集管理项目用于群集:

  1. 选择项目.
  2. 配置管道.
  3. 设置环境范围.

Selecting a cluster management project

选择要使用的集群管理项目:

  1. 导航到适当的配置页面. 为一个:
  2. 在” 高级设置”部分中的”使用集群管理项目”字段中选择项目.

Selecting a cluster management project under Advanced settings

Configuring your pipeline

将项目指定为集群的管理项目后,在该项目中编写.gitlab-ci.yml . 例如:

  1. configure cluster:
  2. stage: deploy
  3. script: kubectl get namespaces
  4. environment:
  5. name: production

Setting the environment scope

将多个群集与同一管理项目关联时,可以使用环境范围 .

每个作用域只能由单个群集用于管理项目.

例如,假设以下 Kubernetes 集群与管理项目相关联:

Cluster 环境范围
Development *
Staging staging
Production production

.gitlab-ci.yml设置的以下环境将分别部署到 Development,Staging 和 Production 集群.

  1. stages:
  2. - deploy
  3. configure development cluster:
  4. stage: deploy
  5. script: kubectl get namespaces
  6. environment:
  7. name: development
  8. configure staging cluster:
  9. stage: deploy
  10. script: kubectl get namespaces
  11. environment:
  12. name: staging
  13. configure production cluster:
  14. stage: deploy
  15. script: kubectl get namespaces
  16. environment:
  17. name: production