使用极狐GitLab Runner chart

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

caution 所包含的极狐GitLab Runner chart 的默认配置不适用于生产。 它作为概念验证 (PoC) 实现进行提供,其中所有极狐GitLab 服务都部署在集群中。对于生产部署,出于安全和性能原因,请在单独的计算机上安装极狐GitLab Runner。 有关更多信息,请参阅参考架构文档

要求

此 chart 依赖于 shared-secrets 作业,来填充其 registrationToken 以进行自动注册。如果您计划将此 chart 在现有的 GitLab 实例之外独立运行,您需要手动将 gitlab-runner secret 中的 registrationToken,设置为与运行 GitLab 实例中的设置相同。

配置

有关更多信息,请参阅使用和配置

部署独立的 runner

默认情况下,gitlabUrl 自动通过 migrations 生成注册令牌。但如果计划与运行的 GitLab 实例部署,将不会这样工作。

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

使用 Docker-in-Docker

为了运行 Docker-in-Docker,runner 容器需要具有访问所需功能的权限。要启用它,请将 privileged 值设置为 true

安全考量

特权容器具有扩展功能,例如它们可以从它们运行的主机上挂载任意文件。 确保在隔离的环境中运行容器,这样就不会在它旁边运行任何重要的东西。

默认 runner 配置

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

gitlab-runner:
  runners:
    config: |
      [[runners]]
        [runners.kubernetes]
        image = "ubuntu:22.04"
        {{- if .Values.global.minio.enabled }}
        [runners.cache]
          Type = "s3"
          Path = "gitlab-runner"
          Shared = true
          [runners.cache.s3]
            ServerAddress = {{ include "gitlab-runner.cache-tpl.s3ServerAddress" . }}
            BucketName = "runner-cache"
            BucketLocation = "us-east-1"
            Insecure = false
        {{ end }}

所有自定义的极狐GitLab Runner chart 配置均在 gitlab-runner key 下的顶级的 values.yaml 文件中可用。