使用极狐GitLab Runner chart

  • Tier: 基础版, 专业版, 旗舰版
  • Offering: 私有化部署

极狐GitLab Runner 子 chart 提供了一个极狐GitLab Runner,用于运行 CI 作业。它默认启用,并且应该可以开箱即用,支持使用 s3 兼容对象存储进行缓存。

包含的极狐GitLab Runner chart 的默认配置**不适用于生产**。它作为概念验证 (PoC) 实现提供,其中所有极狐GitLab 服务都部署在集群中。对于生产部署,请在单独的机器上安装极狐GitLab Runner,以获得[安全性和性能原因](https://gitlab.cn/docs/jh/install/requirements/#gitlab-runner)。有关更多信息,请参阅[参考架构文档](../../../installation/_index.md#use-the-reference-architectures)。

要求#

在极狐GitLab 16.0 中,我们引入了一个新的 runner 创建工作流程,该流程使用 runner 身份验证令牌来注册 runners。在极狐GitLab 17.0 中,使用注册令牌的传统工作流程已被弃用并默认禁用。在极狐GitLab 18.0 中将被移除。

要使用推荐的工作流程:

  1. 生成一个身份验证令牌。

  2. 手动更新 runner 密钥 (<release>-gitlab-runner-secret),因为配置不由 shared-secrets 任务处理。

  3. gitlab-runner.runners.locked 设置为 null

    yaml
    gitlab-runner: runners: locked: null

如果您想使用传统工作流程(不推荐):

  1. 您必须重新启用传统工作流程
  2. 注册令牌由 shared-secrets 任务填充。
  3. 您必须在极狐GitLab 18.0 之前迁移到新的工作流程,该版本将删除对传统工作流程的支持。

配置#

有关更多信息,请参阅使用和配置的文档。

部署独立的 runner#

默认情况下,我们推断 gitlabUrl,自动生成一个注册令牌,并通过 migrations chart 生成它。如果您打算与正在运行的极狐GitLab 实例一起部署,则此行为将不起作用。

在这种情况下,您需要将 gitlabUrl 值设置为正在运行的极狐GitLab 实例的 URL。您还需要手动创建 gitlab-runner 密钥,并使用正在运行的极狐GitLab 提供的 registrationToken 填充它。

使用 Docker-in-Docker#

为了运行 Docker-in-Docker,runner 容器需要被授予特权以访问所需的功能。要启用它,请将 privileged 值设置为 true。请参阅上游文档,了解为何默认情况下不设置为 true

安全问题#

特权容器具有扩展功能,例如它们可以挂载从主机上运行的任意文件。确保在一个隔离的环境中运行容器,以便在其旁边没有重要的内容运行。

默认 runner 配置#

在极狐GitLab chart 中使用的默认 runner 配置已被自定义,以默认使用包含的 MinIO 进行缓存。如果您正在设置 runner config 值,您还需要配置您自己的缓存配置。

yaml
1gitlab-runner: 2 runners: 3 config: | 4 [[runners]] 5 [runners.kubernetes] 6 image = "ubuntu:22.04" 7 {{- if .Values.global.minio.enabled }} 8 [runners.cache] 9 Type = "s3" 10 Path = "gitlab-runner" 11 Shared = true 12 [runners.cache.s3] 13 ServerAddress = {{ include "gitlab-runner.cache-tpl.s3ServerAddress" . }} 14 BucketName = "runner-cache" 15 BucketLocation = "us-east-1" 16 Insecure = false 17 {{ end }}

所有自定义的极狐GitLab Runner chart 配置都可以在 gitlab-runner 键下的顶层 values.yaml 文件中找到。