使用 GitLab Runner chart
GitLab Runner 子 chart 提供了一个用于运行 CI 作业的 GitLab Runner。默认启用并开箱即用支持使用 s3 兼容对象存储进行缓存。
要求
此 chart 依赖于 shared-secrets 作业,来填充其 registrationToken
以进行自动注册。如果您计划将此 chart 在现有的 GitLab 实例之外独立运行,您需要手动将 gitlab-runner
secret 中的 registrationToken
,设置为与运行 GitLab 实例中的设置相同。
配置
没有必需的设置,如果您将所有 chart 部署在一起,应该是开箱即用的。
部署独立的 runner
默认情况下,gitlabUrl
自动通过 migrations
生成注册令牌。但如果计划与运行的 GitLab 实例部署,将不会这样工作。
在这种情况下,您需要将 gitlabUrl
值设置为正在运行的 GitLab 实例的 URL。您还需要手动创建 gitlab-runner
并填入运行的 GitLab 实例提供的 registrationToken
。
使用 Docker-in-Docker
为了运行 Docker-in-Docker,runner 容器需要具有访问所需功能的权限。要启用它,请将 privileged
值设置为 true
。。
安全考量
特权容器具有扩展功能,例如它们可以从它们运行的主机上挂载任意文件。 确保在隔离的环境中运行容器,这样就不会在它旁边运行任何重要的东西。
安装命令行选项
参数 | 说明 | 默认值 |
---|---|---|
gitlab-runner.image
| Runner 镜像 | gitlab/gitlab-runner:alpine-v10.5.0
|
gitlab-runner.gitlabUrl
| Runner 用于注册到 GitLab 服务器的 URL | GitLab 实例的外部 URL |
gitlab-runner.install
| 安装 gitlab-runner chart
| true
|
gitlab-runner.imagePullPolicy
| 镜像拉取策略 | IfNotPresent
|
gitlab-runner.init.image.repository
|
initContainer 镜像
| |
gitlab-runner.init.image.tag
|
initContainer 机械标签
| |
gitlab-runner.pullSecrets
| 访问镜像仓库的 Secrets | |
gitlab-runner.unregisterRunners
| 在终止前取消注册所有 Runner | true
|
gitlab-runner.concurrent
| 并行作业数量 | 10
|
gitlab-runner.checkInterval
| 轮询间隔 | 30s
|
gitlab-runner.rbac.create
| 是否创建 RBAC service account | true
|
gitlab-runner.rbac.clusterWideAccess
| 在集群范围内部署作业容器 | false
|
gitlab-runner.rbac.serviceAccountName
| 要创建的 RBAC service account 名称 | default
|
gitlab-runner.runners.privileged
| 在 privileged 模式下运行,需要 dind
| false
|
gitlab-runner.runners.cache.secretName
| 访问密钥所在的 secret 名称以及来源的 key | gitlab-minio
|
gitlab-runner.runners.config
| Runner 配置(字符串) | 查看 下方文档 |
gitlab-runner.resources.limits.cpu
| Runner CPU 限制值 | |
gitlab-runner.resources.limits.memory
| Runner 内存限制值 | |
gitlab-runner.resources.requests.cpu
| Runner CPU 请求值 | |
gitlab-runner.resources.requests.memory
| Runner 内存请求值 |
默认 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 }}
Chart 配置示例
Runners 配置为仅使用自定义 nameservers(任何集群或主机名称服务器除外):
gitlab-runner:
runners:
config: |
[[runners]]
[runners.kubernetes]
image = "ubuntu:22.04"
dns_policy = "none"
[runners.kubernetes.dns_config]
nameservers = ["8.8.8.8"]