管理集群应用程序

  • 对 Helm v2 的支持结束于 14.0 版本。使用 Helm v3 代替。
  • 迁移到极狐GitLab 代理于 14.5 版本。

极狐GitLab 提供了一个集群管理项目模板,您可以使用它来创建项目。该项目包括与极狐GitLab 集成并扩展极狐GitLab 功能的集群应用程序。您可以使用项目中显示的 pattern 来扩展您的自定义集群应用程序。

用于代理和您的 manifests 的一个项目

如果您尚未使用代理将您的集群与极狐GitLab 连接:

  1. 从集群管理项目模板创建项目
  2. 为代理配置项目
  3. 在项目的设置中,创建一个名为 $KUBE_CONTEXT环境变量,并将值设置为 path/to/agent-configuration-project:your-agent-name
  4. 按需配置文件

为代理和 manifests 使用单独的项目

如果您已经配置了代理并已将极狐GitLab 与集群连接:

  1. 从集群管理项目模板创建项目
  2. 在您配置代理的项目中,授予代理对新项目的访问权限
  3. 在项目的设置中,创建一个名为 $KUBE_CONTEXT环境变量,并将值设置为 path/to/agent-configuration-project:your-agent-name
  4. 按需配置文件

基于集群管理项目模板创建项目

从集群管理项目模板创建项目:

  1. 在顶部栏上,选择 菜单 > 项目 > 创建新项目
  2. 选择 从模板创建
  3. 从模板列表中的 GitLab Cluster Management 旁边,选择 使用模板
  4. 输入项目详情。
  5. 选择 创建项目

如果您使用私有化部署版,您的实例可能不包含最新版本的模板。 在这种情况下,选择 导入项目使用 URL 定位仓库,并在 Git 仓库 URL 输入 https://gitlab.com/gitlab-org/project-templates/cluster-management.git

配置项目

使用集群管理模板创建项目后,可以配置:

.gitlab-ci.yml 文件

.gitlab-ci.yml 文件:

  • 确保您使用的是 Helm 3。
  • 从项目部署启用的应用程序。

您可以编辑和扩展流水线定义。

流水线中使用的基础镜像包含一组 Bash utility 脚本,支持 Helm v3 版本

主要 helmfile.yml 文件

该模板包含一个 Helmfile,您可以使用 Helm v3 来管理集群应用程序。

此文件包含每个应用程序的其它 Helm 文件的路径列表。默认情况下它们都被注释掉,因此您必须取消注释您想在集群中使用的应用程序的路径。

默认情况下,这些子路径中的每个 helmfile.yaml 都具有 installed: true 属性。这意味着每次流水线运行时,Helmfile 都会尝试根据集群的当前状态和 Helm 版本来安装或更新您的应用程序。如果您将此属性更改为 installed: false,Helmfile 会尝试从集群中卸载此应用程序。阅读更多,了解 Helmfile 的工作原理。

内置应用程序

该模板包含一个 applications 目录,其中为模板中的每个应用程序配置了一个 helmfile.yaml

内置支持的应用程序包括:

  • Cert-manager
  • 极狐GitLab Runner
  • Ingress
  • Prometheus
  • Sentry
  • Vault

每个应用程序都有一个 applications/{app}/values.yaml 文件。对于极狐GitLab Runner,该文件是 applications/{app}/values.yaml.gotmpl

在此文件中,您可以为应用的 Helm chart 定义默认值。一些应用程序已经定义了默认值。