GitLab Helmサブチャート
GitLab Helm Chartは複数のサブチャートで構成されており、これらがコアのGitLabコンポーネントを提供します:
- Gitaly
- GitLab Exporter
- GitLab Pages
- GitLab Runner
- GitLab Shell
- GitLabエージェントサーバー(KAS)
- Mailroom
- 移行
- Praefect
- Sidekiq
- Spamcheck
- Toolbox
- Webservice
各サブチャートのパラメータは、gitlabキーの下にある必要があります。たとえば、GitLab Shellのパラメータは次のようになります:
gitlab:
gitlab-shell:
...これらのチャートは、オプションの依存関係に使用します:
これらのチャートは、オプションの追加として使用します:
- Prometheus
- 権限のない Kubernetes executorを使用するGitLab Runner
- Let’s Encryptから自動的にプロビジョニングされたSSL。Jetstackのcert-managerとcertmanager-issuerを使用します
GitLab Helmサブチャートのオプションのパラメータ
アフィニティ
affinityは、すべてのGitLab Helmサブチャートのオプションのパラメータです。設定すると、グローバルaffinityの値よりも優先されます。affinityの詳細については、関連するKubernetesドキュメントを参照してください。
webserviceおよびsidekiq Helmチャートは、グローバルaffinityの値のみを使用できます。ローカルaffinityがwebserviceおよびsidekiqに実装される時期については、イシュー25403に従ってください。
affinityを使用すると、次のいずれかまたは両方を設定できます:
- 次の
podAntiAffinityルール:topology keyに対応する式に一致するポッドと同じドメインにポッドをスケジュール設定しません。- 2つのモードの
podAntiAffinityルールを設定します。必須(requiredDuringSchedulingIgnoredDuringExecution)と推奨(preferredDuringSchedulingIgnoredDuringExecution)。antiAffinity変数をvalues.yamlで使用して、設定をsoftに設定して推奨モードを適用するか、hardに設定して必須モードを適用します。
- 次の
nodeAffinityルール:- 特定のゾーンに属するノードにポッドをスケジュール設定します。
- 2つのモードの
nodeAffinityルールを設定します。必須(requiredDuringSchedulingIgnoredDuringExecution)と推奨(preferredDuringSchedulingIgnoredDuringExecution)。softに設定すると、推奨モードが適用されます。hardに設定すると、必須モードが適用されます。このルールは、registryチャートと、webserviceおよびsidekiqを除くすべてのサブチャートとともにgitlabチャートにのみ実装されます。
nodeAffinityは、In演算子のみを実装します。
次の例では、affinityを設定し、nodeAffinityとantiAffinityの両方をhardに設定します:
nodeAffinity: "hard"
antiAffinity: "hard"
affinity:
nodeAffinity:
key: "test.com/zone"
values:
- us-east1-a
- us-east1-b
podAntiAffinity:
topologyKey: "test.com/hostname"