使用极狐GitLab Runner chart
- Tier: 基础版, 专业版, 旗舰版
- Offering: 私有化部署
极狐GitLab Runner 子 chart 提供了一个极狐GitLab Runner,用于运行 CI 作业。它默认启用,并且应该可以开箱即用,支持使用 s3 兼容对象存储进行缓存。
要求
在极狐GitLab 16.0 中,我们引入了一个新的 runner 创建工作流程,该流程使用 runner 身份验证令牌来注册 runners。在极狐GitLab 17.0 中,使用注册令牌的传统工作流程已被弃用并默认禁用。在极狐GitLab 18.0 中将被移除。
要使用推荐的工作流程:
-
手动更新 runner 密钥 (<release>-gitlab-runner-secret),因为配置不由 shared-secrets 任务处理。
-
将 gitlab-runner.runners.locked 设置为 null:
yamlgitlab-runner: runners: locked: null
如果您想使用传统工作流程(不推荐):
- 您必须重新启用传统工作流程。
- 注册令牌由 shared-secrets 任务填充。
- 您必须在极狐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 值,您还需要配置您自己的缓存配置。
yaml1gitlab-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 文件中找到。