极狐GitLab Helm 子 chart

极狐GitLab Helm chart 由多个子 chart 组成,提供极狐GitLab 的核心组件:

  1. Gitaly
  2. 极狐GitLab Exporter
  3. 极狐GitLab Pages
  4. 极狐GitLab Runner
  5. 极狐GitLab Shell
  6. 极狐GitLab agent server (KAS)
  7. Mailroom
  8. Migrations
  9. Praefect
  10. Sidekiq
  11. Spamcheck
  12. Toolbox
  13. Webservice

每个子 chart 的参数必须在 gitlab 键下。例如,极狐GitLab Shell 参数类似于:

yaml
gitlab: gitlab-shell: ...

使用这些 chart 作为可选依赖项:

  1. MinIO
  2. NGINX
  3. HAProxy
  4. PostgreSQL
  5. Redis
  6. Registry
  7. Traefik

使用这些 chart 作为可选附加项:

  1. Prometheus
  2. Unprivileged 极狐GitLab Runner 使用 Kubernetes 执行器
  3. 自动配置的 SSL 来自 Let's Encrypt,它使用 Jetstack 的 cert-managercertmanager-issuer

极狐GitLab Helm 子 chart 可选参数#

亲和性#

History
    1. 在极狐GitLab 17.3 (Charts 8.3) 中为除 webservicesidekiq 之外的所有极狐GitLab Helm 子 chart 引入。

affinity 是所有极狐GitLab Helm 子 chart 中的一个可选参数。当您设置它时,它优先于 全局 affinity 值。有关 affinity 的更多信息,请参阅 相关的 Kubernetes 文档

webservicesidekiq Helm chart 只能使用 全局 affinity 值。

通过 affinity,您可以设置以下任意或全部内容:

  1. podAntiAffinity 规则:
    • 不在与匹配表达式对应的 topology key 相同域中调度 pod。
    • 设置两种模式的 podAntiAffinity 规则:必需的 (requiredDuringSchedulingIgnoredDuringExecution) 和首选的 (preferredDuringSchedulingIgnoredDuringExecution)。使用 values.yaml 中的变量 antiAffinity,设置为 soft 以应用首选模式,或设置为 hard 以应用必需模式。
  2. nodeAffinity 规则:
    • 将 pod 调度到属于特定区域或区域的节点。
    • 设置两种模式的 nodeAffinity 规则:必需的 (requiredDuringSchedulingIgnoredDuringExecution) 和首选的 (preferredDuringSchedulingIgnoredDuringExecution)。当设置为 soft 时,应用首选模式。设置为 hard 时,应用必需模式。此规则仅对 registry chart 和 gitlab chart 以及其所有子 chart(除 webservicesidekiq 外)实施。

nodeAffinity 仅实现 In 运算符

以下示例设置了 affinity,同时将 nodeAffinityantiAffinity 设置为 hard

yaml
1nodeAffinity: "hard" 2antiAffinity: "hard" 3affinity: 4 nodeAffinity: 5 key: "test.com/zone" 6 values: 7 - us-east1-a 8 - us-east1-b 9 podAntiAffinity: 10 topologyKey: "test.com/hostname"