GitLabチャートを外部のGitalyで設定します。
このドキュメントでは、外部のGitalyサービスを使ってGitLabチャートを設定する方法を説明します。
オンプレミスやVMへのデプロイでGitalyを設定していない場合は、Linuxパッケージの利用をご検討ください。
Chartの設定
gitaly チャートとそれが提供する Gitaly サービスを無効にし、他のサービスを外部サービスに向けます。
以下のプロパティを設定する必要があります:
- 
global.gitaly.enabled:Gitalyチャートを無効にするには、false。
- 
global.gitaly.external:外部Gitalyサービスの配列です。
- 
global.gitaly.authToken.secret:認証用のトークンを含むシークレットの名前。
- 
global.gitaly.authToken.key:トークンの内容を含むシークレット内のキー。
外部のGitalyサービスはGitLab Shellのインスタンスを利用します。あなたの実装に応じて、このChartのシークレットでそれらを設定することもできますし、定義済みのソースからのコンテンツでこのChartのシークレットを設定することもできます。
以下のプロパティを設定する必要があるかもしれません:
- 
global.shell.authToken.secret:GitLab Shell のシークレットを含むシークレットの名前。
- 
global.shell.authToken.key:シークレットの内容を含むシークレット内のキー。
2つの外部サービス(external-gitaly.yml)を含む完全な設定例:
global:
  gitaly:
    enabled: false
    external:
      - name: default                   # required
        hostname: node1.git.example.com # required
        port: 8075                      # optional, default shown
      - name: praefect                  # required
        hostname: ha.git.example.com    # required
        port: 2305                      # Praefect uses port 2305
        tlsEnabled: false               # optional, overrides gitaly.tls.enabled
    authToken:
      secret: external-gitaly-token     # required
      key: token                        # optional, default shown
    tls:
      enabled: false                    # optional, default shown
上記の設定ファイルを使用し、gitlab.yml を介して他の設定と組み合わせてインストールした例:
helm upgrade --install gitlab gitlab/gitlab  \
  -f gitlab.yml \
  -f external-gitaly.yml
複数の外部Gitaly
これらのChartの外部で複数のGitalyノードを使用する実装の場合、同様に複数のホストを定義することができます。構文は、必要とされる複雑さを許容するために、若干異なります。
適切な設定を示す値ファイルの例が提供されています。この値ファイルの内容は--set 引数では正しく解釈されないため、-f / --values フラグを付けて Helm に渡す必要があります。
外部GitalyへのTLS接続
外部のGitalyサーバーがTLSポートでリッスンしている場合、GitLabインスタンスをTLSで通信させることができます。これを行うには、次のようにします。
- 
Gitalyサーバーの証明書を含むKubernetesシークレットを作成します。 kubectl create secret generic gitlab-gitaly-tls-certificate --from-file=gitaly-tls.crt=<path to certificate>
- 
外部Gitalyサーバーの証明書をカスタム認証局のリストに追加 valuesファイルで、以下を指定します。 global: certificates: customCAs: - secret: gitlab-gitaly-tls-certificateを指定するか、 helm upgradeコマンドに渡します。--set--set global.certificates.customCAs[0].secret=gitlab-gitaly-tls-certificate
- 
すべてのGitalyインスタンスでTLSを有効にするには、 global.gitaly.tls.enabled: true.global: gitaly: tls: enabled: trueインスタンスごとに有効にするには、そのエントリーに tlsEnabled: true。global: gitaly: external: - name: default hostname: node1.git.example.com tlsEnabled: true
customCAs で指定したすべてのシークレットでキーが一意であることを確認してください。これは_クライアント_側なので、証明書のキーを指定する必要はありません。