Skip to content

feat: Add gitlab-zoekt chart

Dylan Griffith requested to merge initial-helm-chart into main

As part of our effort to improve code search in GitLab we will be graually rolling out Zoekt as a search engine to replace Elasticsearch.

Our initial efforts will focus on a small internal rollout and as part of that we expect to develop more maturity in our infrastructure as we expand internally and before reaching customers. Primarily the early rollout will not include replication or sophisticated sharding but we'll need these soon enough so we want to ensure what we build can scale like that eventually. For now we just need 1 Kubernetes pod with enough storage, memory and CPU to clone and index all of gitlab-org.

In our infrastructure we will run it as 2 separate Go binaries:

  1. zoekt-webserver: which is a HTTP API responsible for serving search results from user queries
  2. zoekt-dynamic-indexserver: which is a binary we built for our own indexing needs. There are many different ways in Zoekt to generate index files but all existing options involved polling from GitLab or somewhere else for the list of repos to index. We wanted to control the rollout from GitLab so we built an HTTP API that accepts requests to index specific repos. We pass the repo URL and Zoekt clones the repo and indexes it.

Read more at:

  1. https://docs.gitlab.com/ee/architecture/blueprints/search/code_search_with_zoekt.html
  2. gitlab-org&9404
  3. gitlab-com/gl-infra/readiness!146 (merged)

Merge request reports