Zoektチャート
- プラン: Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed
- ステータス: ベータ
ZoektチャートとLinuxパッケージインスタンス
Zoektチャートを使用して、LinuxパッケージインスタンスにZoektを接続します。
前提要件:
- 現在のサイズに関する推奨事項に基づいた、専用のZoektクラスタリング。
LinuxパッケージインスタンスでZoektチャートを使用するには:
zoektというネームスペースを作成します:kubectl create namespace zoektgitlab-zoektチャートをローカルにクローンし、そのディレクトリに変更します:git clone https://gitlab.com/gitlab-org/cloud-native/charts/gitlab-zoekt.git cd gitlab-zoektロードバランサーを有効にする。Zoektチャートはヘッドレスサービスであるため、ロードバランサーが必要です。
values.yamlで:/etc/gitlab/gitlab-secrets.jsonファイルからgitlab_shellシークレットを使用して、kubectlシークレットを作成します:kubectl create secret generic gitlab-zoekt-secret --from-literal=secret-key="<gitlab-shell-secret>" -n zoektシークレットを追加します:
internalApi: secretName: 'gitlab-zoekt-secret' secretKey: 'secret-key'ロードバランサーのIPポート
:8080でGitLabインスタンスのURLとサービスURLを追加します:internalApi: gitlabUrl: 'https://<gitlab_url>' # Internal URL to connect to GitLab serviceUrl: 'http://<loadbalancer_internal_ip>:8080' # URL to reach Zoekt service - LB internal URL
GitLabで、Gitalyのリスニングインターフェースを変更します:
gitaly['configuration'] = { listen_addr: '0.0.0.0:8075', storage: [ { name: 'default', path: '/var/opt/gitlab/git-data/repositories', }, ] } gitlab_rails['repositories_storages'] = { 'default' => { 'gitaly_address' => 'tcp://<gitlab_url>:8075' }, }helmを使用して、Zoektをインストールします:helm install gitlab-zoekt . -f values.yaml --version <latest_version> --namespace zoektポッドが作成されたことを確認します。ゲートウェイと
gitlab-zoekt-0ポッドの両方があるはずです:kubectl get pods NAME READY STATUS RESTARTS AGE gitlab-zoekt-0 3/3 Running 0 13d gitlab-zoekt-gateway-b78dbc78-hzw28 1/1 Running 0 13dvalues.yamlにさらに変更を加える場合は、GitLab Helmチャートをインストールまたはアップグレードしてください。完全一致コードの検索を有効にする。
トップレベルグループをインデックス作成するには、次のいずれかを実行します:
特定のトップレベルグループを手動でインデックス作成します:
node = ::Search::Zoekt::Node.online.last namespace = Namespace.find_by_full_path('<top-level-group-to-index>') Search::Zoekt::EnabledNamespace.find_or_create_by(namespace: namespace)
GitLab Helmチャートを使用したZoektチャート
Zoektチャートは、完全一致コードの検索をサポートしています。gitlab-zoekt.installをtrueに設定して、チャートをインストールできます。詳細については、gitlab-zoektを参照してください。
Zoektチャートを有効にする
Zoektチャートを有効にするには、次の値を設定します:
--set gitlab-zoekt.install=true \
--set gitlab-zoekt.replicas=2 \ # Number of Zoekt pods. If you want to use only one pod, you can skip this setting.
--set gitlab-zoekt.indexStorage=128Gi # Disk size for the Zoekt node. Zoekt requires up to three times the repository's default branch's storage size, depending on the number of large and binary files.CPUとメモリ使用量を設定する
GitLab.comのデフォルト設定を変更することにより、Zoektチャートのリクエストと制限を定義できます。
GitLabでZoektを設定する
GitLabのトップレベルグループのZoektを設定するには:
toolboxポッドのRailsコンソールに接続します:
kubectl exec <toolbox pod name> -it -c toolbox -- gitlab-rails console -e production完全一致コードの検索を有効にする。
トップレベルグループをインデックス作成するには、次のいずれかを実行します:
特定のトップレベルグループを手動でインデックス作成します:
node = ::Search::Zoekt::Node.online.last namespace = Namespace.find_by_full_path('<top-level-group-to-index>') Search::Zoekt::EnabledNamespace.find_or_create_by(namespace: namespace)node = ::Search::Zoekt::Node.online.last namespace = Namespace.find_by_full_path('<top-level-group-to-index>') enabled_namespace = Search::Zoekt::EnabledNamespace.find_or_create_by(namespace: namespace) replica = enabled_namespace.replicas.find_or_create_by(namespace_id: enabled_namespace.root_namespace_id) replica.ready! node.indices.create!(zoekt_enabled_namespace_id: enabled_namespace.id, namespace_id: namespace.id, zoekt_replica_id: replica.id, state: :ready)
Zoektは、プロジェクトが更新または作成された後、そのグループ内のプロジェクトをインデックス作成できるようになりました。最初のインデックス作成では、Zoektがネームスペースのインデックス作成を開始するまで、少なくとも数分間待ちます。