From 3decde2577bb17b1982ab3e05c08562c4d91d1f9 Mon Sep 17 00:00:00 2001 From: keelanlang Date: Mon, 27 Nov 2023 16:55:25 -0500 Subject: [PATCH 01/32] Update model name for shard command --- doc/charts/gitlab/gitlab-zoekt/index.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/charts/gitlab/gitlab-zoekt/index.md b/doc/charts/gitlab/gitlab-zoekt/index.md index 604f053dc0..a609e89c6b 100644 --- a/doc/charts/gitlab/gitlab-zoekt/index.md +++ b/doc/charts/gitlab/gitlab-zoekt/index.md @@ -16,6 +16,8 @@ found in the ## GitLab integration +> [Model renamed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/134717) in GitLab 16.6. + To enable Zoekt for a top level group: 1. Connect to the Rails console of the toolbox pod: @@ -35,7 +37,7 @@ To enable Zoekt for a top level group: ```shell # create shard using the Zoekt ClusterIP Service - shard = ::Zoekt::Shard.find_or_create_by!(index_base_url: 'http://-gitlab-zoekt:8080', search_base_url: 'http://-gitlab-zoekt:8080') + shard = ::Search::Zoekt::Node.find_or_create_by!(index_base_url: 'http://-gitlab-zoekt:8080', search_base_url: 'http://-gitlab-zoekt:8080', uuid: '00000000-0000-0000-0000-000000000000') # use the name of your top level group group = '' namespace = Namespace.find_by_full_path(group) -- GitLab From 166a9eb4256ff65a9f966118208bb4dffc7e4daf Mon Sep 17 00:00:00 2001 From: Dmitry Gruzd Date: Tue, 28 Nov 2023 16:46:20 +0000 Subject: [PATCH 02/32] Apply Dmitry's suggestion --- doc/charts/gitlab/gitlab-zoekt/index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/charts/gitlab/gitlab-zoekt/index.md b/doc/charts/gitlab/gitlab-zoekt/index.md index a609e89c6b..f0ca0ef382 100644 --- a/doc/charts/gitlab/gitlab-zoekt/index.md +++ b/doc/charts/gitlab/gitlab-zoekt/index.md @@ -36,12 +36,12 @@ To enable Zoekt for a top level group: 1. Setup indexing: ```shell - # create shard using the Zoekt ClusterIP Service - shard = ::Search::Zoekt::Node.find_or_create_by!(index_base_url: 'http://-gitlab-zoekt:8080', search_base_url: 'http://-gitlab-zoekt:8080', uuid: '00000000-0000-0000-0000-000000000000') + # create zoekt node using the Zoekt ClusterIP Service + node = ::Search::Zoekt::Node.find_or_create_by!(index_base_url: 'http://-gitlab-zoekt:8080', search_base_url: 'http://-gitlab-zoekt:8080', uuid: '00000000-0000-0000-0000-000000000000') # use the name of your top level group group = '' namespace = Namespace.find_by_full_path(group) - ::Zoekt::IndexedNamespace.find_or_create_by!(shard: shard, namespace: namespace.root_ancestor) + node.indexed_namespaces.find_or_create_by!(namespace: namespace.root_ancestor) ``` 1. Zoekt will now index projects after they are updated or created. -- GitLab From ba2cdfa2969af80a9800578c1c51d4af40a6c992 Mon Sep 17 00:00:00 2001 From: Ashraf Khamis Date: Fri, 1 Dec 2023 20:04:37 +0000 Subject: [PATCH 03/32] Apply Ashraf's suggestions --- doc/charts/gitlab/gitlab-zoekt/index.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/charts/gitlab/gitlab-zoekt/index.md b/doc/charts/gitlab/gitlab-zoekt/index.md index f0ca0ef382..07218a67f7 100644 --- a/doc/charts/gitlab/gitlab-zoekt/index.md +++ b/doc/charts/gitlab/gitlab-zoekt/index.md @@ -18,9 +18,9 @@ found in the > [Model renamed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/134717) in GitLab 16.6. -To enable Zoekt for a top level group: +To enable Zoekt for a top-level group: -1. Connect to the Rails console of the toolbox pod: +1. Connect to the Rails console of the Toolbox Pod: ```shell kubectl exec -it -c toolbox -- gitlab-rails console -e production @@ -33,15 +33,15 @@ To enable Zoekt for a top level group: ::Feature.enable(:search_code_with_zoekt) ``` -1. Setup indexing: +1. Set up indexing: ```shell - # create zoekt node using the Zoekt ClusterIP Service + # Create a Zoekt node with the Zoekt ClusterIP Service node = ::Search::Zoekt::Node.find_or_create_by!(index_base_url: 'http://-gitlab-zoekt:8080', search_base_url: 'http://-gitlab-zoekt:8080', uuid: '00000000-0000-0000-0000-000000000000') - # use the name of your top level group + # Use the name of your top-level group group = '' namespace = Namespace.find_by_full_path(group) node.indexed_namespaces.find_or_create_by!(namespace: namespace.root_ancestor) ``` -1. Zoekt will now index projects after they are updated or created. +Zoekt can now index projects after they are updated or created. -- GitLab From 537bec7a3fb2c9b5527ffa8e25d30b58122017ef Mon Sep 17 00:00:00 2001 From: Ashraf Khamis Date: Tue, 5 Dec 2023 16:37:19 +0000 Subject: [PATCH 04/32] Apply suggestion from Ashraf --- doc/charts/gitlab/gitlab-zoekt/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/charts/gitlab/gitlab-zoekt/index.md b/doc/charts/gitlab/gitlab-zoekt/index.md index 07218a67f7..1a7df04bcf 100644 --- a/doc/charts/gitlab/gitlab-zoekt/index.md +++ b/doc/charts/gitlab/gitlab-zoekt/index.md @@ -16,7 +16,7 @@ found in the ## GitLab integration -> [Model renamed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/134717) in GitLab 16.6. +> Shards [renamed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/134717) to nodes in GitLab 16.6. To enable Zoekt for a top-level group: -- GitLab From 2f65f88e0dcdc0b98874944752dd14c8aef45cbd Mon Sep 17 00:00:00 2001 From: Naman Jagdish Gala Date: Tue, 28 Nov 2023 18:38:49 +0000 Subject: [PATCH 05/32] Add auth-timeout flag in Gitlab Pages Related to: https://gitlab.com/gitlab-org/gitlab-pages/-/issues/596 Changelog: added --- charts/gitlab/charts/gitlab-pages/templates/configmap.yml | 3 +++ charts/gitlab/charts/gitlab-pages/values.yaml | 1 + doc/charts/gitlab/gitlab-pages/index.md | 1 + spec/configuration/pages_spec.rb | 2 ++ 4 files changed, 7 insertions(+) diff --git a/charts/gitlab/charts/gitlab-pages/templates/configmap.yml b/charts/gitlab/charts/gitlab-pages/templates/configmap.yml index 496b61a8c7..2b97e241d8 100644 --- a/charts/gitlab/charts/gitlab-pages/templates/configmap.yml +++ b/charts/gitlab/charts/gitlab-pages/templates/configmap.yml @@ -111,6 +111,9 @@ data: auth-secret={% file.Read "/etc/gitlab-secrets/pages/auth_secret" %} auth-scope={{ template "oauth.gitlab-pages.authScope" . }} {{- end }} + {{- if .Values.authTimeout }} + auth-timeout={{ .Values.authTimeout }} + {{- end }} {{- if .Values.authCookieSessionTimeout }} auth-cookie-session-timeout={{ .Values.authCookieSessionTimeout }} {{- end }} diff --git a/charts/gitlab/charts/gitlab-pages/values.yaml b/charts/gitlab/charts/gitlab-pages/values.yaml index f5227cb21e..a717ab69d2 100644 --- a/charts/gitlab/charts/gitlab-pages/values.yaml +++ b/charts/gitlab/charts/gitlab-pages/values.yaml @@ -234,6 +234,7 @@ affinity: podAntiAffinity: topologyKey: +# authTimeout: # authCookieSessionTimeout: # rateLimitSourceIP: diff --git a/doc/charts/gitlab/gitlab-pages/index.md b/doc/charts/gitlab/gitlab-pages/index.md index c554863c62..97a0f85913 100644 --- a/doc/charts/gitlab/gitlab-pages/index.md +++ b/doc/charts/gitlab/gitlab-pages/index.md @@ -154,6 +154,7 @@ configurations that can be supplied to the `helm install` command using the | `serverReadHeaderTimeout` | `1s` | See: [GitLab Pages global settings](https://docs.gitlab.com/ee/administration/pages/#global-settings) | | `serverWriteTimeout` | `5m` | See: [GitLab Pages global settings](https://docs.gitlab.com/ee/administration/pages/#global-settings) | | `serverKeepAlive` | `15s` | See: [GitLab Pages global settings](https://docs.gitlab.com/ee/administration/pages/#global-settings) | +| `authTimeout` | `5s` | See: [GitLab Pages global settings](https://docs.gitlab.com/ee/administration/pages/#global-settings) | | `authCookieSessionTimeout` | `10m` | See: [GitLab Pages global settings](https://docs.gitlab.com/ee/administration/pages/#global-settings) | ### Configuring the `ingress` diff --git a/spec/configuration/pages_spec.rb b/spec/configuration/pages_spec.rb index e732695068..7458a1bd2f 100644 --- a/spec/configuration/pages_spec.rb +++ b/spec/configuration/pages_spec.rb @@ -504,6 +504,7 @@ describe 'GitLab Pages' do serverReadHeaderTimeout: 2h serverWriteTimeout: 3h serverKeepAlive: 4h + authTimeout: 10s authCookieSessionTimeout: 1h )) end @@ -541,6 +542,7 @@ describe 'GitLab Pages' do auth-client-secret={% file.Read "/etc/gitlab-secrets/pages/gitlab_appsecret" %} auth-secret={% file.Read "/etc/gitlab-secrets/pages/auth_secret" %} auth-scope=read_api + auth-timeout=10s auth-cookie-session-timeout=1h zip-cache-refresh=60s zip-http-client-timeout=30m -- GitLab From af84823552053894e1939ea7d7a7f42afdbf3ab7 Mon Sep 17 00:00:00 2001 From: "dependencies.io Bot" Date: Tue, 28 Nov 2023 21:31:30 +0000 Subject: [PATCH 06/32] Update gitlab-org/charts/gitlab-runner from 0.59.0 to 0.59.1 Changelog: changed --- requirements.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.yaml b/requirements.yaml index 67734feb30..db8a4f92d2 100644 --- a/requirements.yaml +++ b/requirements.yaml @@ -21,7 +21,7 @@ dependencies: repository: https://charts.bitnami.com/bitnami condition: postgresql.install - name: gitlab-runner - version: 0.59.0 + version: 0.59.2 repository: https://charts.gitlab.io/ condition: gitlab-runner.install - name: redis -- GitLab From 5009963d9cfbe61522ef7183ffa704e4f4198c11 Mon Sep 17 00:00:00 2001 From: Jessie Lee Date: Wed, 29 Nov 2023 03:32:58 +0000 Subject: [PATCH 07/32] Add Backup Utility Examples --- doc/backup-restore/backup.md | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/doc/backup-restore/backup.md b/doc/backup-restore/backup.md index f1a4a25624..903d6839fe 100644 --- a/doc/backup-restore/backup.md +++ b/doc/backup-restore/backup.md @@ -52,7 +52,41 @@ You need to set the following parameters: ## Backup utility extra arguments -The backup utility can take some extra arguments. See what those are with: +The backup utility can take some extra arguments. + +### Skipping components + +Skip components by using the `--skip` argument. Valid components names are: + +- `db`. +- `repositories`. +- The name of any of the object storages. For example, `uploads`. + +Each component must have its own `--skip` argument. For example: + +```shell +kubectl exec -it -- backup-utility --skip db --skip lfs +``` + +### Cleanup backups only + +Run the backup cleanup without creating a new backup. + +```shell +kubectl exec -it -- backup-utility --cleanup +``` + +### Specify S3 tool to use + + S3 CLI tool to use. Can be either `s3cmd` or `awscli`. + + ```shell + kubectl exec -it -- backup-utility --s3tool awscli + ``` + +### Other arguments + +To see a complete list of available arguments, run the following command: ```shell kubectl exec -it -- backup-utility --help -- GitLab From f2038f1e5dd7c3693d4e343c51ca01bd18e17577 Mon Sep 17 00:00:00 2001 From: Brie Carranza Date: Wed, 29 Nov 2023 13:03:37 +0000 Subject: [PATCH 08/32] =?UTF-8?q?=E2=9C=A8=20Match=20punctuation=20with=20?= =?UTF-8?q?style=20guide?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/backup-restore/backup.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/backup-restore/backup.md b/doc/backup-restore/backup.md index 903d6839fe..e2cb1f2475 100644 --- a/doc/backup-restore/backup.md +++ b/doc/backup-restore/backup.md @@ -10,9 +10,9 @@ GitLab backups are taken by running the `backup-utility` command in the Toolbox Before running the backup for the first time, you should ensure the [Toolbox is properly configured](../charts/gitlab/toolbox/index.md#configuration) -for access to [object storage](index.md#object-storage) +for access to [object storage](index.md#object-storage). -Follow these steps for backing up a GitLab Helm chart based installation +Follow these steps for backing up a GitLab Helm chart based installation. ## Create the backup -- GitLab From f0d7ac5a31e2439a9c661ab599a49c22334823dc Mon Sep 17 00:00:00 2001 From: Anton Smith Date: Wed, 29 Nov 2023 20:24:36 +0000 Subject: [PATCH 09/32] First iteration of shipping documentation with guardrails to ensure no jobs are making git changes during the migration. --- .../img/sidekiq_bg_jobs_v16_5.png | Bin 0 -> 58314 bytes doc/advanced/external-gitaly/index.md | 370 ++++++++++++++++++ doc/installation/migration/index.md | 1 + 3 files changed, 371 insertions(+) create mode 100644 doc/advanced/external-gitaly/img/sidekiq_bg_jobs_v16_5.png diff --git a/doc/advanced/external-gitaly/img/sidekiq_bg_jobs_v16_5.png b/doc/advanced/external-gitaly/img/sidekiq_bg_jobs_v16_5.png new file mode 100644 index 0000000000000000000000000000000000000000..67a47fefaa2f656f8d850df8778898f20d384b41 GIT binary patch literal 58314 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 z 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 II;Vst0OTY?3IG5A literal 0 HcmV?d00001 diff --git a/doc/advanced/external-gitaly/index.md b/doc/advanced/external-gitaly/index.md index 44ca697398..d925c25657 100644 --- a/doc/advanced/external-gitaly/index.md +++ b/doc/advanced/external-gitaly/index.md @@ -146,3 +146,373 @@ If you are using Gitaly with TLS, you can also check if GitLab Chart trusts the ```shell kubectl exec -it -- echo | /usr/bin/openssl s_client -connect : ``` + +## Migrate from Gitaly chart to external Gitaly + +If you are using the Gitaly Chart to provide the Gitaly service and you need to migrate all of your +repositories to an external Gitaly service, you can back up your repositories from the Gitaly +chart PersistentVolumeClaim (PVC) and then restore them to the external Gitaly service. + +This operation: + +- Does incur downtime to all users. +- Has not been tested with the [Praefect chart](../../charts/gitlab/praefect/index.md) and is not supported. + +### Step 1: Get the current release revision of the GitLab Chart + +In the unlikely event that something goes wrong during the migration, get the current release +revision of the GitLab Chart. Copy the output and put it aside just in case we need to perform a +[rollback](#rollback): + +```shell +helm history --max=1 +``` + +### Step 2: Setup external Gitaly Service or Gitaly Cluster + +Set up an [external Gitaly](https://docs.gitlab.com/ee/administration/gitaly/configure_gitaly.html) +or [external Gitaly Cluster](https://docs.gitlab.com/ee/administration/gitaly/praefect.html). You must +provide the Gitaly token and GitLab Shell secret from your Chart installation as part of those steps: + +```shell +# Get the GitLab Shell secret +kubectl get secret -gitlab-shell-secret -ojsonpath='{.data.secret}' | base64 -d + +# Get the Gitaly token +kubectl get secret -gitaly-secret -ojsonpath='{.data.token}' | base64 -d +``` + +For a single Gitaly node: + +- The Gitaly token extracted here should be used for the `AUTH_TOKEN` value. +- The GitLab Shell secret extracted here should be used for the `shellsecret` value. + +For Gitaly Cluster: + +- The Gitaly token extracted here should be used for the `PRAEFECT_EXTERNAL_TOKEN`. +- The GitLab Shell secret extracted here should be used for the `GITLAB_SHELL_SECRET_TOKEN`. + +### Step 3: Verify no Git changes can be made during migration + +To ensure the data integrity of the migration, prevent any changes from being made to your Git +repositories in the following steps: + +**1. Enable Maintenance Mode** + +If you are using GitLab Enterprise Edition, enable [maintenance mode](https://docs.gitlab.com/ee/administration/maintenance_mode/#enable-maintenance-mode) either through the UI, API or the Rails console: + +```shell +kubectl exec -it -- gitlab-rails runner 'Gitlab::CurrentSettings.update!(maintenance_mode: true)' +``` + +**2. Scale down Runner pods** + +If you are using GitLab Community Edition, you must scale down any GitLab Runner pods that are running in the cluster. This prevents +the Runners from connecting to GitLab to process CI/CD jobs. + +If you are using GitLab Enterprise Edition, this step is optional because [maintenance mode](https://docs.gitlab.com/ee/administration/maintenance_mode/#enable-maintenance-mode) +prevents Runners in the cluster from connecting to GitLab. + +```shell +# Make note of the current number of replicas for Runners so we can scale up to this number later +kubectl get deploy -lapp=gitlab-gitlab-runner,release= -o jsonpath='{.items[].spec.replicas}{"\n"}' + +# Scale down the Runners pods to zero +kubectl scale deploy -lapp=gitlab-gitlab-runner,release= --replicas=0 +``` + +**3. Confirm no CI jobs are running** + +In the Admin Area, go to **CI/CD > Jobs**. This page shows you all jobs, but confirm that there are no jobs with the **Running** status. You need to wait for the jobs to complete before proceeding to the next step. + +**4. Disable Sidekiq cron jobs** + +To prevent Sidekiq jobs from being scheduled and executed during the migration, disable all Sidekiq cron jobs: + +```shell +kubectl exec -it -- gitlab-rails runner 'Sidekiq::Cron::Job.all.map(&:disable!)' +``` + +**5. Confirm no background jobs are running** + +We need to wait for any enqueued or in progress jobs to complete before proceeding to the next step. + +1. In the Admin Area, go to [**Monitoring**](https://docs.gitlab.com/ee/administration/admin_area.html#background-jobs) and select **Background Jobs**. +1. Under the Sidekiq dashboard, select **Queues** and then **Live Poll**. +1. Wait for **Busy** and **Enqueued** to drop to 0. + + ![Sidekiq background jobs](img/sidekiq_bg_jobs_v16_5.png) + +**6. Scale down Sidekiq and Webservice pods** + +Scale down the Sidekiq and Webservice pods to ensure that a consistent backup is taken. Both services are scaled +up at a later stage: + +- The Sidekiq pods are scaled back up during the restore step +- The Webservice pods are scaled back up after switching to the external Gitaly service to test connectivity + +```shell +# Make note of the current number of replicas for Sidekiq and Webservice so we can scale up to this number later +kubectl get deploy -lapp=sidekiq,release= -o jsonpath='{.items[].spec.replicas}{"\n"}' +kubectl get deploy -lapp=webservice,release= -o jsonpath='{.items[].spec.replicas}{"\n"}' + +# Scale down the Sidekiq and Webservice pods to zero +kubectl scale deploy -lapp=sidekiq,release= --replicas=0 +kubectl scale deploy -lapp=webservice,release= --replicas=0 +``` + +**7. Restrict external connections to the cluster** + +To prevent users and external GitLab Runners from making any changes to GitLab, we need to restrict all +unnecessary connections to GitLab. + +Once these steps are completed, GitLab is completely unavailable in the browser until the restore is completed. + +In order to keep the cluster accessible to the new external Gitaly service during the migration, we must add the +IP address for the external Gitaly service to the `nginx-ingress` configuration as the only external exception. + +1. Create a `ingress-only-allow-ext-gitaly.yml` file with the following content: + + ```yaml + nginx-ingress: + controller: + service: + loadBalancerSourceRanges: + - "x.x.x.x/32" + ``` + + `x.x.x.x` should be the IP address of the external Gitaly service. + +1. Apply the new configuration using both `gitlab.yml` and `ingress-only-allow-ext-gitaly.yml` files: + + ```shell + helm upgrade gitlab/gitlab \ + -f gitlab.yml \ + -f ingress-only-allow-ext-gitaly.yml + ``` + +**7. Create list of repository checksums** + +Prior to running the backup, [check all GitLab repositories](https://docs.gitlab.com/ee/administration/raketasks/check.html#check-all-gitlab-repositories) +and create a list of repository checksums. Pipe the output to a file so we can `diff` the checksums after the migration: + +```shell +kubectl exec -it -- gitlab-rake gitlab:git:checksum_projects > ~/checksums-before.txt +``` + +### Step 4: Backup all repositories + +[Create a backup](../../backup-restore/backup.md#create-the-backup) of your repositories only: + +```shell +kubectl exec -it -- backup-utility --skip artifacts,ci_secure_files,db,external_diffs,lfs,packages,pages,registry,terraform_state,uploads +``` + +### Step 5: Configure Instance to use new Gitaly Service + +1. Disable the Gitaly subchart and configure GitLab to use the external Gitaly. + If there are any Gitaly references in your main `gitlab.yml` configuration file, remove those + and create a new `external-gitaly.yml` file with the following content. + + If you have previously defined additional Gitaly storages, you need to ensure a matching Gitaly + storage with the same name is specified in the new configuration, otherwise the restore operation + fails. + + Refer to the + [connecting to external Gitaly over TLS](#connecting-to-external-gitaly-over-tls) section if you + are configuring TLS: + + ::Tabs + + :::TabTitle Gitaly + + ```yaml + global: + gitaly: + enabled: false + external: + - name: default # required + hostname: node1.git.example.com # required + port: 8075 # optional, default shown + tlsEnabled: false # optional, overrides gitaly.tls.enabled + ``` + + :::TabTitle Gitaly Cluster + + ```yaml + global: + gitaly: + enabled: false + external: + - name: default # required + hostname: ha.git.example.com # required + port: 2305 # Praefect uses port 2305 + tlsEnabled: false # optional, overrides gitaly.tls.enabled + ``` + + ::EndTabs + +1. Apply the new configuration using both `gitlab.yml`, `ingress-only-allow-ext-gitaly.yml` and `external-gitaly.yml` files: + + ```shell + helm upgrade --install gitlab gitlab/gitlab \ + -f gitlab.yml \ + -f ingress-only-allow-ext-gitaly.yml \ + -f external-gitaly.yml + ``` + +1. Scale up your Webservice pods to the original replica count if they aren't running. This is required so we can test the + GitLab to external Gitaly connection in the following steps. + + ```shell + kubectl scale deploy -lapp=webservice,release= --replicas= + ``` + +1. On the Toolbox pod, confirm that GitLab can connect to the external Gitaly successfully: + + ```shell + kubectl exec -it -- gitlab-rake gitlab:gitaly:check + ``` + +1. Ensure that the external Gitaly can connect back to your Chart install: + + ::Tabs + + :::TabTitle Gitaly + + Ensure that the Gitaly service can perform callbacks to the GitLab API successfully: + + ```shell + sudo /opt/gitlab/embedded/bin/gitaly check /var/opt/gitlab/gitaly/config.toml + ``` + + :::TabTitle Gitaly Cluster + + On all Praefect nodes, ensure that the Praefect service can connect to the Gitaly nodes: + + ```shell + # Run on Praefect nodes + sudo /opt/gitlab/embedded/bin/praefect -config /var/opt/gitlab/praefect/config.toml dial-nodes + ``` + + On all Gitaly nodes, ensure that the Gitaly service can perform callbacks to the GitLab API + successfully: + + ```shell + # Run on Gitaly nodes + sudo /opt/gitlab/embedded/bin/gitaly check /var/opt/gitlab/gitaly/config.toml + ``` + + ::EndTabs + +### Step 6: Restore and validate repository backup + +1. [Restore the backup file](../../backup-restore/restore.md#restoring-the-backup-file) created previously. + The repositories in the backup file should be copied to the external Gitaly. + +1. [Check all GitLab repositories](https://docs.gitlab.com/ee/administration/raketasks/check.html#check-all-gitlab-repositories) + and create a list of repository checksums. Pipe the output to a file so we can `diff` the checksums in the next step: + + ```shell + kubectl exec -it -- gitlab-rake gitlab:git:checksum_projects > ~/checksums-after.txt + ``` + +1. Compare the repository checksums before and after the repository migration. If the checksums are identical, this command + returns no output: + + ```shell + diff ~/checksums-before.txt ~/checksums-after.txt + ``` + + If you observe a blank checksum changing to `0000000000000000000000000000000000000000` in the `diff` output for a specific line, + this is expected and can be safely ignored. + +### Step 7: Final configuration and validation + +1. To allow external users and GitLab Runners to connect to GitLab again, apply the `gitlab.yml` and `external-gitaly.yml` files. As + we aren't specifying `ingress-only-allow-ext-gitaly.yml`, it removes the IP restrictions: + + ```shell + helm upgrade gitlab/gitlab \ + -f gitlab.yml \ + -f external-gitaly.yml + ``` + + Consider generating a consolidated `gitlab.yml` for the future that includes the external Gitaly configuration: + + ```shell + helm get values gitlab/gitlab -o yaml > gitlab.yml + ``` + +1. If you are using GitLab Enterprise Edition, disable [maintenance mode](https://docs.gitlab.com/ee/administration/maintenance_mode/#enable-maintenance-mode) either through the UI, API or the Rails console: + + ```shell + kubectl exec -it -- gitlab-rails runner 'Gitlab::CurrentSettings.update!(maintenance_mode: false)' + ``` + +1. If you have multiple Gitaly storages, [configure where new repositories are stored](https://docs.gitlab.com/ee/administration/repository_storage_paths.html#configure-where-new-repositories-are-stored). + +1. Enable Sidekiq cron jobs: + + ```shell + kubectl exec -it -- gitlab-rails runner 'Sidekiq::Cron::Job.all.map(&:enable!)' + ``` + +1. Scale up your Runner pods to the original replica count if they aren't running: + + ```shell + kubectl scale deploy -lapp=gitlab-gitlab-runner,release= --replicas= + ``` + +1. After you have confirmed everything is working as expected, you can delete the Gitaly PVC: + + WARNING: Do not delete the Gitaly PVC until you have confirmed the checksums match as per [step 6](#step-6-restore-and-validate-repository-backup) and + double checked that everything is working as expected. + + ```shell + kubectl delete pvc repo-data--gitaly-0 + ``` + +### Rollback + +If you run into any problems, you can rollback the changes made so the Gitaly subchart is used again. + +The original Gitaly PVC must exist to rollback successfully. + +1. Rollback the GitLab Chart to the previous release using the revision number obtained +in [Step 1: Get the current release revision of the GitLab Chart](#step-1-get-the-current-release-revision-of-the-gitlab-chart): + + ```shell + helm rollback + ``` + +1. Scale up your Webservice pods to the original replica count if they aren't running: + + ```shell + kubectl scale deploy -lapp=webservice,release= --replicas= + ``` + +1. Scale up your Sidekiq pods to the original replica count if they aren't running: + + ```shell + kubectl scale deploy -lapp=sidekiq,release= --replicas= + ``` + +1. Enable Sidekiq cron jobs if you previously disabled them: + + ```shell + kubectl exec -it -- gitlab-rails runner 'Sidekiq::Cron::Job.all.map(&:enable!)' + ``` + +1. Scale up your Runner pods to the original replica count if they aren't running: + + ```shell + kubectl scale deploy -lapp=gitlab-gitlab-runner,release= --replicas= + ``` + +1. If you are using GitLab Enterprise Edition, disable [maintenance mode](https://docs.gitlab.com/ee/administration/maintenance_mode/#disable-maintenance-mode) + if it is enabled. + +### Related documentation + +- [Migrate to Gitaly Cluster](https://docs.gitlab.com/ee/administration/gitaly/index.html#migrate-to-gitaly-cluster) diff --git a/doc/installation/migration/index.md b/doc/installation/migration/index.md index 66916223fa..492197b216 100644 --- a/doc/installation/migration/index.md +++ b/doc/installation/migration/index.md @@ -15,3 +15,4 @@ Other migrations: - [Migrate between Helm versions.](helm.md) - [Migrate to the built-in MinIO service for object storage.](minio.md) +- [Migrate from Gitaly chart to external Gitaly](../../advanced/external-gitaly/index.md#migrate-from-gitaly-chart-to-external-gitaly) -- GitLab From 9f2f61ab6835054e0674eadb6d45070e7cf52d95 Mon Sep 17 00:00:00 2001 From: Rutger Wessels Date: Wed, 29 Nov 2023 20:26:22 +0000 Subject: [PATCH 10/32] Add example database config for main and ci --- doc/charts/globals.md | 16 ++++++++++++++-- values.yaml | 16 ++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/doc/charts/globals.md b/doc/charts/globals.md index ca7e902a90..6c4f85fb02 100644 --- a/doc/charts/globals.md +++ b/doc/charts/globals.md @@ -240,6 +240,12 @@ with the `-fips` extension to the image tag. ## Configure PostgreSQL settings The GitLab global PostgreSQL settings are located under the `global.psql` key. +GitLab is using two database connections: one for `main` database and one for +`ci`. By default, they point to the same PostgreSQL database. + +The values under `global.psql` are defaults and are applied to both database +configurations. If you want to use [two databases](https://docs.gitlab.com/ee/administration/postgresql/multiple_databases.html), +you can specifiy the connection details in `global.psql.main` and `global.psql.ci`. ```yaml global: @@ -263,6 +269,12 @@ global: secret: gitlab-postgres key: psql-password file: + main: {} + # host: postgresql-main.hostedsomewhere.else + # ... + ci: {} + # host: postgresql-ci.hostedsomewhere.else + # ... ``` | Name | Type | Default | Description | @@ -284,8 +296,8 @@ global: | `keepalivesInterval` | Integer | | The number of seconds after which a TCP keepalive message that is not acknowledged by the server should be retransmitted. A value of zero uses the system default. | | `keepalivesCount` | Integer | | The number of TCP keepalives that can be lost before the client's connection to the server is considered dead. A value of zero uses the system default. | | `tcpUserTimeout` | Integer | | The number of milliseconds that transmitted data may remain unacknowledged before a connection is forcibly closed. A value of zero uses the system default. | -| `applicationName` | String | | The name of the application connecting to the database. Set to a blank string (`""`) to disable. By default, this will be set to the name of the running process (e.g. `sidekiq`, `puma`). | -| `ci.enabled` | Boolean | Not defined | Enables [two database connections](#configure-multiple-database-connections). | +| `applicationName` | String | | The name of the application connecting to the database. Set to a blank string (`""`) to disable. By default, this will be set to the name of the running process (e.g. `sidekiq`, `puma`). | +| `ci.enabled` | Boolean | `true` | Enables [two database connections](#configure-multiple-database-connections). | ### PostgreSQL per chart diff --git a/values.yaml b/values.yaml index c4c5e1ef94..185bd1ac9e 100644 --- a/values.yaml +++ b/values.yaml @@ -143,6 +143,22 @@ global: # applicationName: # preparedStatements: false # databaseTasks: true + main: {} + # host: postgresql.hostedsomewhere.else + # port: 123 + # username: gitlab + # database: gitlabhq_production + # applicationName: + # preparedStatements: false + # databaseTasks: true + ci: {} + # host: postgresql.hostedsomewhere.else + # port: 123 + # username: gitlab + # database: gitlabhq_production_ci + # applicationName: + # preparedStatements: false + # databaseTasks: false ## https://docs.gitlab.com/charts/charts/globals#configure-redis-settings redis: -- GitLab From 8f8fcf3310311350da65ed62cfeb54e3a29b3036 Mon Sep 17 00:00:00 2001 From: Alexandr Tanayno Date: Thu, 30 Nov 2023 15:44:17 +0000 Subject: [PATCH 11/32] Adds note about configuring external Redis cluster --- doc/advanced/external-redis/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/advanced/external-redis/index.md b/doc/advanced/external-redis/index.md index 7a6ced4f51..1cc6e9aa51 100644 --- a/doc/advanced/external-redis/index.md +++ b/doc/advanced/external-redis/index.md @@ -42,7 +42,7 @@ helm install gitlab gitlab/gitlab \ If you are connecting to a Redis HA cluster that has Sentinel servers running, the `global.redis.host` attribute needs to be set to the name of the Redis instance group (such as `mymaster` or `resque`), as -specified in the `sentinel.conf`. Sentinel servers can be referenced +specified in the `sentinel.conf`, but not to the hostname of the Redis master. Sentinel servers can be referenced using the `global.redis.sentinels[0].host` and `global.redis.sentinels[0].port` values for the `--set` flag. The index is zero based. -- GitLab From c3768d1415e37303143f2c196172fa3a8433efa7 Mon Sep 17 00:00:00 2001 From: Alexandr Tanayno Date: Thu, 30 Nov 2023 15:44:53 +0000 Subject: [PATCH 12/32] Revert "Adds note about configuring external Redis cluster" This reverts commit 3966baedc532d3e236817cee4b189dddd9728460 --- doc/advanced/external-redis/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/advanced/external-redis/index.md b/doc/advanced/external-redis/index.md index 1cc6e9aa51..7a6ced4f51 100644 --- a/doc/advanced/external-redis/index.md +++ b/doc/advanced/external-redis/index.md @@ -42,7 +42,7 @@ helm install gitlab gitlab/gitlab \ If you are connecting to a Redis HA cluster that has Sentinel servers running, the `global.redis.host` attribute needs to be set to the name of the Redis instance group (such as `mymaster` or `resque`), as -specified in the `sentinel.conf`, but not to the hostname of the Redis master. Sentinel servers can be referenced +specified in the `sentinel.conf`. Sentinel servers can be referenced using the `global.redis.sentinels[0].host` and `global.redis.sentinels[0].port` values for the `--set` flag. The index is zero based. -- GitLab From 6441b8a019cada54b980fb782e025458dd227d32 Mon Sep 17 00:00:00 2001 From: Dmitry Gruzd Date: Tue, 28 Nov 2023 20:41:02 +0100 Subject: [PATCH 13/32] Bump gitlab-zoekt to 0.9.0 --- requirements.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.yaml b/requirements.yaml index db8a4f92d2..a711d91ba5 100644 --- a/requirements.yaml +++ b/requirements.yaml @@ -36,7 +36,7 @@ dependencies: version: '*.*.*' alias: nginx-ingress-geo - name: gitlab-zoekt - version: 0.8.2 + version: 0.9.0 repository: https://charts.gitlab.io/ condition: gitlab-zoekt.install - name: traefik -- GitLab From 3c96808d4bc8197b2b7435c7e824c17f00974755 Mon Sep 17 00:00:00 2001 From: GitLab Release Tools Bot Date: Thu, 30 Nov 2023 08:41:46 +0000 Subject: [PATCH 14/32] Update changelog for 7.6.1 [ci skip] --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 19e8f76142..661519b391 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ documentation](doc/development/changelog.md) for instructions on adding your own entry. +## 7.6.1 (2023-11-30) + +### Changed (2 changes) + +- [Update gitlab-org/charts/gitlab-runner from 0.59.0 to 0.59.2](gitlab-org/security/charts/gitlab@b69ce97c14be61d7734a65b0a64f117f563158ca) +- [Update gitlab-runner from 0.58.2 to 0.59.0](gitlab-org/security/charts/gitlab@520f8d9dace33be52b1b3cf50ba400b0c5e12e94) + ## 7.6.0 (2023-11-15) ### Fixed (2 changes) -- GitLab From 46f9104239997dbaa1fa7cf7a76c17cbd3a05b9b Mon Sep 17 00:00:00 2001 From: GitLab Release Tools Bot Date: Thu, 30 Nov 2023 08:42:07 +0000 Subject: [PATCH 15/32] Update versions for 7.6.1 [ci skip] --- Chart.yaml | 2 +- charts/gitlab/charts/geo-logcursor/Chart.yaml | 2 +- charts/gitlab/charts/gitaly/Chart.yaml | 2 +- charts/gitlab/charts/gitlab-exporter/Chart.yaml | 2 +- charts/gitlab/charts/gitlab-pages/Chart.yaml | 2 +- charts/gitlab/charts/gitlab-shell/Chart.yaml | 2 +- charts/gitlab/charts/kas/Chart.yaml | 2 +- charts/gitlab/charts/mailroom/Chart.yaml | 2 +- charts/gitlab/charts/migrations/Chart.yaml | 2 +- charts/gitlab/charts/praefect/Chart.yaml | 2 +- charts/gitlab/charts/sidekiq/Chart.yaml | 2 +- charts/gitlab/charts/spamcheck/Chart.yaml | 2 +- charts/gitlab/charts/toolbox/Chart.yaml | 2 +- charts/gitlab/charts/webservice/Chart.yaml | 2 +- 14 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Chart.yaml b/Chart.yaml index 5a93b8f95f..f556c8c195 100644 --- a/Chart.yaml +++ b/Chart.yaml @@ -1,7 +1,7 @@ --- apiVersion: v1 name: gitlab -version: 7.6.0 +version: 7.6.1 appVersion: master description: GitLab is the most comprehensive AI-powered DevSecOps Platform. keywords: diff --git a/charts/gitlab/charts/geo-logcursor/Chart.yaml b/charts/gitlab/charts/geo-logcursor/Chart.yaml index 07b02b6a05..a08e0c75e9 100644 --- a/charts/gitlab/charts/geo-logcursor/Chart.yaml +++ b/charts/gitlab/charts/geo-logcursor/Chart.yaml @@ -1,7 +1,7 @@ --- apiVersion: v1 name: geo-logcursor -version: 7.6.0 +version: 7.6.1 appVersion: master description: GitLab Geo logcursor keywords: diff --git a/charts/gitlab/charts/gitaly/Chart.yaml b/charts/gitlab/charts/gitaly/Chart.yaml index cc7503bdba..1c8081a312 100644 --- a/charts/gitlab/charts/gitaly/Chart.yaml +++ b/charts/gitlab/charts/gitaly/Chart.yaml @@ -1,7 +1,7 @@ --- apiVersion: v1 name: gitaly -version: 7.6.0 +version: 7.6.1 appVersion: master description: Git RPC service for handling all the git calls made by GitLab keywords: diff --git a/charts/gitlab/charts/gitlab-exporter/Chart.yaml b/charts/gitlab/charts/gitlab-exporter/Chart.yaml index c6d5a6751a..5a2efd32d2 100644 --- a/charts/gitlab/charts/gitlab-exporter/Chart.yaml +++ b/charts/gitlab/charts/gitlab-exporter/Chart.yaml @@ -1,7 +1,7 @@ --- apiVersion: v1 name: gitlab-exporter -version: 7.6.0 +version: 7.6.1 appVersion: 13.5.0 description: Exporter for GitLab Prometheus metrics (e.g. CI, pull mirrors) keywords: diff --git a/charts/gitlab/charts/gitlab-pages/Chart.yaml b/charts/gitlab/charts/gitlab-pages/Chart.yaml index 1f6efd64a0..08137cef9d 100644 --- a/charts/gitlab/charts/gitlab-pages/Chart.yaml +++ b/charts/gitlab/charts/gitlab-pages/Chart.yaml @@ -1,7 +1,7 @@ --- apiVersion: v1 name: gitlab-pages -version: 7.6.0 +version: 7.6.1 appVersion: master description: Daemon for serving static websites from GitLab projects keywords: diff --git a/charts/gitlab/charts/gitlab-shell/Chart.yaml b/charts/gitlab/charts/gitlab-shell/Chart.yaml index 54e5ab757f..3f91186107 100644 --- a/charts/gitlab/charts/gitlab-shell/Chart.yaml +++ b/charts/gitlab/charts/gitlab-shell/Chart.yaml @@ -1,7 +1,7 @@ --- apiVersion: v1 name: gitlab-shell -version: 7.6.0 +version: 7.6.1 appVersion: main description: sshd for Gitlab keywords: diff --git a/charts/gitlab/charts/kas/Chart.yaml b/charts/gitlab/charts/kas/Chart.yaml index 9699157c5d..471ffcf8c1 100644 --- a/charts/gitlab/charts/kas/Chart.yaml +++ b/charts/gitlab/charts/kas/Chart.yaml @@ -1,7 +1,7 @@ --- apiVersion: v1 name: kas -version: 7.6.0 +version: 7.6.1 appVersion: master description: GitLab Agent Server keywords: diff --git a/charts/gitlab/charts/mailroom/Chart.yaml b/charts/gitlab/charts/mailroom/Chart.yaml index ec8189db96..faf897054d 100644 --- a/charts/gitlab/charts/mailroom/Chart.yaml +++ b/charts/gitlab/charts/mailroom/Chart.yaml @@ -1,7 +1,7 @@ --- apiVersion: v1 name: mailroom -version: 7.6.0 +version: 7.6.1 appVersion: master description: Handling incoming emails keywords: diff --git a/charts/gitlab/charts/migrations/Chart.yaml b/charts/gitlab/charts/migrations/Chart.yaml index a5b290b6f1..a0fd425c6b 100644 --- a/charts/gitlab/charts/migrations/Chart.yaml +++ b/charts/gitlab/charts/migrations/Chart.yaml @@ -1,7 +1,7 @@ --- apiVersion: v1 name: migrations -version: 7.6.0 +version: 7.6.1 appVersion: master description: Database migrations and other versioning tasks for upgrading Gitlab keywords: diff --git a/charts/gitlab/charts/praefect/Chart.yaml b/charts/gitlab/charts/praefect/Chart.yaml index 87bd2119bb..8b3cf35f9e 100644 --- a/charts/gitlab/charts/praefect/Chart.yaml +++ b/charts/gitlab/charts/praefect/Chart.yaml @@ -1,7 +1,7 @@ --- apiVersion: v1 name: praefect -version: 7.6.0 +version: 7.6.1 appVersion: master description: Praefect is a router and transaction manager for Gitaly, and a required component for running a Gitaly Cluster. diff --git a/charts/gitlab/charts/sidekiq/Chart.yaml b/charts/gitlab/charts/sidekiq/Chart.yaml index 0073451b4b..45b17ad4d2 100644 --- a/charts/gitlab/charts/sidekiq/Chart.yaml +++ b/charts/gitlab/charts/sidekiq/Chart.yaml @@ -1,7 +1,7 @@ --- apiVersion: v1 name: sidekiq -version: 7.6.0 +version: 7.6.1 appVersion: master description: Gitlab Sidekiq for asynchronous task processing in rails keywords: diff --git a/charts/gitlab/charts/spamcheck/Chart.yaml b/charts/gitlab/charts/spamcheck/Chart.yaml index 3b91928242..0baf1afb3b 100644 --- a/charts/gitlab/charts/spamcheck/Chart.yaml +++ b/charts/gitlab/charts/spamcheck/Chart.yaml @@ -1,7 +1,7 @@ --- apiVersion: v1 name: spamcheck -version: 7.6.0 +version: 7.6.1 appVersion: 1.2.3 description: GitLab Anti-Spam Engine keywords: diff --git a/charts/gitlab/charts/toolbox/Chart.yaml b/charts/gitlab/charts/toolbox/Chart.yaml index 0158605053..71da8cdb63 100644 --- a/charts/gitlab/charts/toolbox/Chart.yaml +++ b/charts/gitlab/charts/toolbox/Chart.yaml @@ -1,7 +1,7 @@ --- apiVersion: v1 name: toolbox -version: 7.6.0 +version: 7.6.1 appVersion: master description: For manually running rake tasks through kubectl keywords: diff --git a/charts/gitlab/charts/webservice/Chart.yaml b/charts/gitlab/charts/webservice/Chart.yaml index 5e8429b41a..e8be5f8241 100644 --- a/charts/gitlab/charts/webservice/Chart.yaml +++ b/charts/gitlab/charts/webservice/Chart.yaml @@ -1,7 +1,7 @@ --- apiVersion: v1 name: webservice -version: 7.6.0 +version: 7.6.1 appVersion: master description: HTTP server for Gitlab keywords: -- GitLab From ccf0a7e14760baf815837fa6b53ff070188becce Mon Sep 17 00:00:00 2001 From: GitLab Release Tools Bot Date: Thu, 30 Nov 2023 08:42:10 +0000 Subject: [PATCH 16/32] Update version mapping for 7.6.1 --- doc/installation/version_mappings.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/installation/version_mappings.md b/doc/installation/version_mappings.md index b3591916a5..e809de36b4 100644 --- a/doc/installation/version_mappings.md +++ b/doc/installation/version_mappings.md @@ -37,6 +37,7 @@ The table below maps some of the key previous chart versions and GitLab versions | Chart version | GitLab version | |---------------|----------------| +| 7.6.1 | 16.6.1 | | 7.6.0 | 16.6.0 | | 7.5.2 | 16.5.2 | | 7.5.1 | 16.5.1 | -- GitLab From ecda6b6b4a606afa6e8d0236b41fd9184d45b8aa Mon Sep 17 00:00:00 2001 From: GitLab Release Tools Bot Date: Thu, 30 Nov 2023 08:51:22 +0000 Subject: [PATCH 17/32] Update changelog for 7.5.3 [ci skip] --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 661519b391..fb75407b20 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,6 +33,12 @@ entry. - [Deprecate namespace in mailroom.yml](gitlab-org/charts/gitlab@781a94d070a5ae221c33f1a31fdd9ecde15f2be6) ([merge request](gitlab-org/charts/gitlab!3419)) +## 7.5.3 (2023-11-30) + +### Changed (1 change) + +- [Update gitlab-runner chart from 0.58.1 to 0.58.2](gitlab-org/security/charts/gitlab@d5cb0431d91e4cb95645b7a7c692ed4658445e6f) + ## 7.5.2 (2023-11-14) No changes. -- GitLab From c7cdce6a7c571cd1d72921e6a354f0677b8d7a7b Mon Sep 17 00:00:00 2001 From: GitLab Release Tools Bot Date: Thu, 30 Nov 2023 08:51:42 +0000 Subject: [PATCH 18/32] Update version mapping for 7.5.3 --- doc/installation/version_mappings.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/installation/version_mappings.md b/doc/installation/version_mappings.md index e809de36b4..6df83d2739 100644 --- a/doc/installation/version_mappings.md +++ b/doc/installation/version_mappings.md @@ -39,6 +39,7 @@ The table below maps some of the key previous chart versions and GitLab versions |---------------|----------------| | 7.6.1 | 16.6.1 | | 7.6.0 | 16.6.0 | +| 7.5.3 | 16.5.3 | | 7.5.2 | 16.5.2 | | 7.5.1 | 16.5.1 | | 7.5.0 | 16.5.0 | -- GitLab From 358e2eab28376c0c54c151231c2993ac8e6b9f47 Mon Sep 17 00:00:00 2001 From: GitLab Release Tools Bot Date: Thu, 30 Nov 2023 09:10:28 +0000 Subject: [PATCH 19/32] Update changelog for 7.4.3 [ci skip] --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index fb75407b20..ebfef17ca2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -74,6 +74,10 @@ No changes. - [Enable dual-namespace polling for sidekiq probe in gitlab-exporter](gitlab-org/charts/gitlab@08e94769a6169bdc380e7d46b3ed300aa9c9cfab) ([merge request](gitlab-org/charts/gitlab!3388)) +## 7.4.3 (2023-11-30) + +No changes. + ## 7.4.2 (2023-10-30) ### Changed (1 change) -- GitLab From 14095e78b30f30bd976190873f95e9e4e925e2ab Mon Sep 17 00:00:00 2001 From: GitLab Release Tools Bot Date: Thu, 30 Nov 2023 09:10:47 +0000 Subject: [PATCH 20/32] Update version mapping for 7.4.3 --- doc/installation/version_mappings.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/installation/version_mappings.md b/doc/installation/version_mappings.md index 6df83d2739..7be94ff5a2 100644 --- a/doc/installation/version_mappings.md +++ b/doc/installation/version_mappings.md @@ -43,6 +43,7 @@ The table below maps some of the key previous chart versions and GitLab versions | 7.5.2 | 16.5.2 | | 7.5.1 | 16.5.1 | | 7.5.0 | 16.5.0 | +| 7.4.3 | 16.4.3 | | 7.4.2 | 16.4.2 | | 7.4.1 | 16.4.1 | | 7.4.0 | 16.4.0 | -- GitLab From c334639d97cad355839206ef7592a01f95e75596 Mon Sep 17 00:00:00 2001 From: Dmitry Gruzd Date: Thu, 30 Nov 2023 19:48:18 +0100 Subject: [PATCH 21/32] Bump gitlab-zoekt to 0.9.1 --- requirements.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.yaml b/requirements.yaml index a711d91ba5..9a2af8b8d5 100644 --- a/requirements.yaml +++ b/requirements.yaml @@ -36,7 +36,7 @@ dependencies: version: '*.*.*' alias: nginx-ingress-geo - name: gitlab-zoekt - version: 0.9.0 + version: 0.9.1 repository: https://charts.gitlab.io/ condition: gitlab-zoekt.install - name: traefik -- GitLab From b73f9b155285842f72f4935ebc1446c9d94c07df Mon Sep 17 00:00:00 2001 From: Priyan Sureshbabu Date: Fri, 1 Dec 2023 10:44:04 +0000 Subject: [PATCH 22/32] Doc | Link to the complete list of items that can be skipped --- doc/backup-restore/backup.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/doc/backup-restore/backup.md b/doc/backup-restore/backup.md index e2cb1f2475..5d5ef70328 100644 --- a/doc/backup-restore/backup.md +++ b/doc/backup-restore/backup.md @@ -56,11 +56,7 @@ The backup utility can take some extra arguments. ### Skipping components -Skip components by using the `--skip` argument. Valid components names are: - -- `db`. -- `repositories`. -- The name of any of the object storages. For example, `uploads`. +Skip components by using the `--skip` argument. Valid components names can be found at [Excluding specific directories from the backup](https://docs.gitlab.com/ee/administration/backup_restore/backup_gitlab.html#excluding-specific-directories-from-the-backup). Each component must have its own `--skip` argument. For example: -- GitLab From 28ec9bd238e5f34181de6e8c72d28e546b95d070 Mon Sep 17 00:00:00 2001 From: Anton Smith Date: Fri, 1 Dec 2023 15:39:40 +0000 Subject: [PATCH 23/32] Fix minor layout issues with steps --- doc/advanced/external-gitaly/index.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/advanced/external-gitaly/index.md b/doc/advanced/external-gitaly/index.md index d925c25657..073a9a1479 100644 --- a/doc/advanced/external-gitaly/index.md +++ b/doc/advanced/external-gitaly/index.md @@ -291,7 +291,7 @@ IP address for the external Gitaly service to the `nginx-ingress` configuration -f ingress-only-allow-ext-gitaly.yml ``` -**7. Create list of repository checksums** +**8. Create list of repository checksums** Prior to running the backup, [check all GitLab repositories](https://docs.gitlab.com/ee/administration/raketasks/check.html#check-all-gitlab-repositories) and create a list of repository checksums. Pipe the output to a file so we can `diff` the checksums after the migration: @@ -352,7 +352,7 @@ kubectl exec -it -- backup-utility --skip artifacts,ci_secure ::EndTabs -1. Apply the new configuration using both `gitlab.yml`, `ingress-only-allow-ext-gitaly.yml` and `external-gitaly.yml` files: +1. Apply the new configuration using the `gitlab.yml`, `ingress-only-allow-ext-gitaly.yml`, and `external-gitaly.yml` files: ```shell helm upgrade --install gitlab gitlab/gitlab \ @@ -446,9 +446,9 @@ kubectl exec -it -- backup-utility --skip artifacts,ci_secure 1. If you are using GitLab Enterprise Edition, disable [maintenance mode](https://docs.gitlab.com/ee/administration/maintenance_mode/#enable-maintenance-mode) either through the UI, API or the Rails console: - ```shell - kubectl exec -it -- gitlab-rails runner 'Gitlab::CurrentSettings.update!(maintenance_mode: false)' - ``` + ```shell + kubectl exec -it -- gitlab-rails runner 'Gitlab::CurrentSettings.update!(maintenance_mode: false)' + ``` 1. If you have multiple Gitaly storages, [configure where new repositories are stored](https://docs.gitlab.com/ee/administration/repository_storage_paths.html#configure-where-new-repositories-are-stored). @@ -466,7 +466,7 @@ kubectl exec -it -- backup-utility --skip artifacts,ci_secure 1. After you have confirmed everything is working as expected, you can delete the Gitaly PVC: - WARNING: Do not delete the Gitaly PVC until you have confirmed the checksums match as per [step 6](#step-6-restore-and-validate-repository-backup) and + WARNING: Do not delete the Gitaly PVC until you have confirmed the checksums match as per [step 6](#step-6-restore-and-validate-repository-backup) and double checked that everything is working as expected. ```shell -- GitLab From e87f91b1445a25de9e3b7d272b5bcba7a10f8465 Mon Sep 17 00:00:00 2001 From: John T Skarbek Date: Thu, 30 Nov 2023 15:00:09 -0500 Subject: [PATCH 24/32] Update network policy example for webservices * We excluded a mention that traffic follows port 8181 on the webservice * This adds a note for both the network flow and to the example to include both of these mentions --- doc/charts/gitlab/webservice/index.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/doc/charts/gitlab/webservice/index.md b/doc/charts/gitlab/webservice/index.md index 1f1b879391..feffcd7783 100644 --- a/doc/charts/gitlab/webservice/index.md +++ b/doc/charts/gitlab/webservice/index.md @@ -712,11 +712,12 @@ Pods to specific endpoints. ### Example Network Policy The webservice service requires Ingress connections for only the Prometheus -exporter if enabled and traffic coming from the NGINX Ingress, and normally +exporter if enabled and traffic coming from the NGINX Ingress, and typically requires Egress connections to various places. This examples adds the following network policy: - All Ingress requests from the network on TCP `10.0.0.0/8` port 8080 are allowed for metrics exporting and NGINX Ingress +- All Ingress requests to port 8181 are allowed for general service operation - All Egress requests to the network on UDP `10.0.0.0/8` port 53 are allowed for DNS - All Egress requests to the network on TCP `10.0.0.0/8` port 5432 are allowed for PostgreSQL - All Egress requests to the network on TCP `10.0.0.0/8` port 6379 are allowed for Redis @@ -726,7 +727,7 @@ network policy: _Note the example provided is only an example and may not be complete_ -_Note that the Webservice requires outbound connectivity to the public internet +_Note the Webservice requires outbound connectivity to the public internet for images on [external object storage](../../../advanced/external-object-storage)_ ```yaml @@ -740,6 +741,9 @@ networkpolicy: cidr: 10.0.0.0/8 ports: - port: 8080 + - from: + ports: + - port: 8181 egress: enabled: true rules: -- GitLab From bcdc6bbc53e3f2466959f5ef5de75e07240af8f7 Mon Sep 17 00:00:00 2001 From: Suzanne Selhorn Date: Fri, 1 Dec 2023 14:38:34 -0800 Subject: [PATCH 25/32] Updating Admin Area location Related to: https://gitlab.com/gitlab-org/gitlab/-/issues/433313 --- doc/advanced/geo/index.md | 6 ++---- doc/charts/gitlab/spamcheck/index.md | 5 ++--- doc/installation/migration/helm_to_package.md | 4 ++-- doc/installation/upgrade.md | 3 +-- 4 files changed, 7 insertions(+), 11 deletions(-) diff --git a/doc/advanced/geo/index.md b/doc/advanced/geo/index.md index 654463c1d6..e3919147ea 100644 --- a/doc/advanced/geo/index.md +++ b/doc/advanced/geo/index.md @@ -632,8 +632,7 @@ Now that both databases are configured and applications are deployed, we must te the Primary site that the Secondary site exists: 1. Visit the **primary** site. -1. On the left sidebar, select **Search or go to**. -1. Select **Admin Area**. +1. On the left sidebar, at the bottom, select **Admin Area**. 1. Select **Geo > Add site**. 1. Add the **secondary** site. Use the full GitLab URL for the URL. 1. Enter a Name with the `global.geo.nodeName` of the Secondary site. These values must always match exactly, character for character. @@ -735,8 +734,7 @@ In some cases, you may want to give users control over which site they visit. Fo 1. Update the secondary site's External URL in GitLab so that it can use the URL wherever it's needed: - Using the Admin UI: 1. Visit the **primary** site. - 1. On the left sidebar, select **Search or go to**. - 1. Select **Admin Area**. + 1. On the left sidebar, at the bottom, select **Admin Area**. 1. Select **Geo > Sites**. 1. Select the pencil icon to **Edit the secondary site**. 1. Edit the External URL, for example `https://shanghai.gitlab.example.com`. diff --git a/doc/charts/gitlab/spamcheck/index.md b/doc/charts/gitlab/spamcheck/index.md index 42b3f1764e..2e63950c0b 100644 --- a/doc/charts/gitlab/spamcheck/index.md +++ b/doc/charts/gitlab/spamcheck/index.md @@ -28,9 +28,8 @@ helm upgrade --force --install gitlab . \ ### Configure GitLab to use Spamcheck -1. On the left sidebar, select **Search or go to**. -1. Select **Admin Area**. -1. Select **Settings > Reporting** +1. On the left sidebar, at the bottom, select **Admin Area**. +1. Select **Settings > Reporting**. 1. Expand **Spam and Anti-bot Protection**. 1. Update the Spam Check settings: 1. Check the "Enable Spam Check via external API endpoint" checkbox diff --git a/doc/installation/migration/helm_to_package.md b/doc/installation/migration/helm_to_package.md index 349e55011c..38109fbf8f 100644 --- a/doc/installation/migration/helm_to_package.md +++ b/doc/installation/migration/helm_to_package.md @@ -8,8 +8,8 @@ info: To determine the technical writer assigned to the Stage/Group associated w To migrate from a Helm installation to a Linux package (Omnibus) installation: -1. Go to the admin area (**{admin}**) and select **Overview > Components** to - check your current version of GitLab. +1. On the left sidebar, at the bottom, select **Admin Area**. +1. Select **Overview > Components** to check your current version of GitLab. 1. Prepare a clean machine and [install the Linux package](https://docs.gitlab.com/ee/update/package/index.html) that matches your GitLab Helm chart version. diff --git a/doc/installation/upgrade.md b/doc/installation/upgrade.md index d6fc12823a..4205ddf48f 100644 --- a/doc/installation/upgrade.md +++ b/doc/installation/upgrade.md @@ -170,8 +170,7 @@ Upgrading to `5.9.x` may lead to a situation where the Sidekiq pod does not beco This can be resolved from the **Admin Area**: -1. On the left sidebar, select **Search or go to**. -1. Select **Admin Area**. +1. On the left sidebar, at the bottom, select **Admin Area**. 1. Select **Settings > Metrics and profiling**. 1. Expand **Metrics - Prometheus**. 1. Ensure that **Enable health and performance metrics endpoint** is enabled. -- GitLab From 706c85c659ab7b4217b81d271dc873c8825d9a66 Mon Sep 17 00:00:00 2001 From: Clemens Beck Date: Thu, 30 Nov 2023 15:45:14 +0100 Subject: [PATCH 26/32] Fix secret name of webservice extra ingress When using cert-manager, the TLS secret name of the webservice extra ingress must be postfixed with `-extra` to avoid collisions with the default ingress. If a wildcard or custom TLS secret is used, the name must not be postfixed. Changelog: fixed Closes https://gitlab.com/gitlab-org/charts/gitlab/-/issues/5137 --- .../charts/webservice/templates/_helpers.tpl | 3 +- .../charts/webservice/templates/ingress.yaml | 5 +- spec/configuration/webservice_spec.rb | 54 ++++++++++++++++--- 3 files changed, 50 insertions(+), 12 deletions(-) diff --git a/charts/gitlab/charts/webservice/templates/_helpers.tpl b/charts/gitlab/charts/webservice/templates/_helpers.tpl index db33c0f8f6..2e7127ec84 100644 --- a/charts/gitlab/charts/webservice/templates/_helpers.tpl +++ b/charts/gitlab/charts/webservice/templates/_helpers.tpl @@ -22,7 +22,8 @@ It expects a dictionary with two entries: {{- define "webservice.tlsSecret" -}} {{- $defaultName := (dict "secretName" "") -}} {{- if .root.Values.global.ingress.configureCertmanager -}} -{{- $_ := set $defaultName "secretName" (printf "%s-gitlab-tls" .root.Release.Name) -}} +{{- $postfix := .certmanagerPostfix | default "" }} +{{- $_ := set $defaultName "secretName" (printf "%s-gitlab-tls%s" .root.Release.Name $postfix) -}} {{- else -}} {{- $_ := set $defaultName "secretName" (include "gitlab.wildcard-self-signed-cert-name" .root) -}} {{- end -}} diff --git a/charts/gitlab/charts/webservice/templates/ingress.yaml b/charts/gitlab/charts/webservice/templates/ingress.yaml index 30cb522855..59d8a7bc97 100644 --- a/charts/gitlab/charts/webservice/templates/ingress.yaml +++ b/charts/gitlab/charts/webservice/templates/ingress.yaml @@ -17,10 +17,7 @@ From here on: {{- $hostname = $.Values.extraIngress.hostname | default $hostname -}} {{- $_ := set $ingressCfg "local" .extraIngress -}} {{- $ingressName = printf "%s-extra" $ingressName -}} -{{- $tlsSecret = include "webservice.tlsSecret" (dict "root" $ "local" $.Values.extraIngress) -}} -{{- if $tlsSecret }} -{{- $tlsSecret = printf "%s-extra" $tlsSecret }} -{{- end }} +{{- $tlsSecret = include "webservice.tlsSecret" (dict "root" $ "local" $.Values.extraIngress "certmanagerPostfix" "-extra") -}} {{- include "webservice.ingress.template" (dict "root" $ "deployment" . "ingressCfg" $ingressCfg "host" $hostname "name" $ingressName "tlsSecret" $tlsSecret) }} {{- end }} {{- end -}}{{/* RANGE DEPLOYMENTS */}} diff --git a/spec/configuration/webservice_spec.rb b/spec/configuration/webservice_spec.rb index 935efee04a..5f19662516 100644 --- a/spec/configuration/webservice_spec.rb +++ b/spec/configuration/webservice_spec.rb @@ -4,11 +4,8 @@ require 'yaml' require 'hash_deep_merge' describe 'webservice configuration' do - context 'extraIngress is enabled' do - let(:default_ingress) { template['Ingress/test-webservice-default'] } - let(:extra_ingress) { template['Ingress/test-webservice-default-extra'] } - let(:values) do - HelmTemplate.with_defaults(%( + let(:values) do + HelmTemplate.with_defaults(%( gitlab: webservice: ingress: @@ -18,9 +15,12 @@ describe 'webservice configuration' do proxyBodySize: 1024M hostname: extra.example.com )) - end - let(:template) { HelmTemplate.new(values) } + end + let(:default_ingress) { template['Ingress/test-webservice-default'] } + let(:extra_ingress) { template['Ingress/test-webservice-default-extra'] } + let(:template) { HelmTemplate.new(values) } + context 'extraIngress and certmanager are enabled' do it 'configures the default Ingress' do expect(default_ingress["spec"]["rules"][0]["host"]).to eql("gitlab.example.com") expect(default_ingress["metadata"]["annotations"]).to include( @@ -34,7 +34,47 @@ describe 'webservice configuration' do expect(extra_ingress["metadata"]["annotations"]).to include( "nginx.ingress.kubernetes.io/proxy-body-size" => "1024M" ) + end + + it 'postfixes the TLS secret' do expect(extra_ingress['spec']['tls'][0]['secretName']).to eql('test-gitlab-tls-extra') end end + + context 'extraIngress is enabled with a wildcard TLS secret' do + let(:values) do + YAML.safe_load(%( + global: + ingress: + configureCertmanager: false + )).deep_merge(super()) + end + + it 'does not postfix the TLS secret' do + expect(extra_ingress['spec']['tls'][0]['secretName']).to eql('test-wildcard-tls') + end + end + + context 'extraIngress is enabled with a custom TLS secret' do + let(:values) do + YAML.safe_load(%( + global: + ingress: + configureCertmanager: false + gitlab: + webservice: + ingress: + tls: + secretName: local-tls + extraIngress: + tls: + secretName: another-local-tls + )).deep_merge(super()) + end + + it 'does not postfix the TLS secret' do + expect(default_ingress['spec']['tls'][0]['secretName']).to eql('local-tls') + expect(extra_ingress['spec']['tls'][0]['secretName']).to eql('another-local-tls') + end + end end -- GitLab From db450d8b8e75faaa2f51d6d21e956adfd849adcb Mon Sep 17 00:00:00 2001 From: Alexandr Tanayno Date: Tue, 5 Dec 2023 13:04:39 +0000 Subject: [PATCH 27/32] Add note about configuring external Redis cluster --- doc/advanced/external-redis/index.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/advanced/external-redis/index.md b/doc/advanced/external-redis/index.md index 7a6ced4f51..6f6cbde37f 100644 --- a/doc/advanced/external-redis/index.md +++ b/doc/advanced/external-redis/index.md @@ -42,7 +42,8 @@ helm install gitlab gitlab/gitlab \ If you are connecting to a Redis HA cluster that has Sentinel servers running, the `global.redis.host` attribute needs to be set to the name of the Redis instance group (such as `mymaster` or `resque`), as -specified in the `sentinel.conf`. Sentinel servers can be referenced +specified in the `sentinel.conf`, but not to the hostname of the Redis master. +Sentinel servers can be referenced using the `global.redis.sentinels[0].host` and `global.redis.sentinels[0].port` values for the `--set` flag. The index is zero based. -- GitLab From d4056f5911f29512a7d3244fd9f02eb7c60f9be6 Mon Sep 17 00:00:00 2001 From: Marcel Amirault Date: Tue, 5 Dec 2023 12:43:01 +0900 Subject: [PATCH 28/32] Update links to TW team handbook page --- doc/advanced/custom-images/index.md | 2 +- doc/advanced/external-db/external-omnibus-psql.md | 2 +- doc/advanced/external-db/index.md | 2 +- doc/advanced/external-gitaly/external-omnibus-gitaly.md | 2 +- doc/advanced/external-gitaly/index.md | 2 +- doc/advanced/external-gitlab-pages/index.md | 2 +- doc/advanced/external-mattermost/index.md | 2 +- doc/advanced/external-nginx/index.md | 2 +- doc/advanced/external-object-storage/aws-iam-roles.md | 2 +- doc/advanced/external-object-storage/azure-minio-gateway.md | 2 +- doc/advanced/external-object-storage/index.md | 2 +- doc/advanced/external-object-storage/minio.md | 2 +- doc/advanced/external-redis/external-omnibus-redis.md | 2 +- doc/advanced/external-redis/index.md | 2 +- doc/advanced/fips/index.md | 2 +- doc/advanced/geo/index.md | 2 +- doc/advanced/index.md | 2 +- doc/advanced/internal-tls/index.md | 2 +- doc/advanced/multiple-databases/index.md | 2 +- doc/advanced/persistent-volumes/index.md | 2 +- doc/advanced/ubi/index.md | 2 +- doc/architecture/architecture.md | 2 +- doc/architecture/backup-restore.md | 2 +- doc/architecture/decisions.md | 2 +- doc/architecture/goals.md | 2 +- doc/architecture/index.md | 2 +- doc/architecture/resource-usage.md | 2 +- doc/backup-restore/backup.md | 2 +- doc/backup-restore/index.md | 2 +- doc/backup-restore/restore.md | 2 +- doc/charts/certmanager-issuer/index.md | 2 +- doc/charts/gitlab/gitaly/index.md | 2 +- doc/charts/gitlab/gitlab-exporter/index.md | 2 +- doc/charts/gitlab/gitlab-pages/index.md | 2 +- doc/charts/gitlab/gitlab-runner/index.md | 2 +- doc/charts/gitlab/gitlab-shell/index.md | 2 +- doc/charts/gitlab/gitlab-zoekt/index.md | 2 +- doc/charts/gitlab/index.md | 2 +- doc/charts/gitlab/kas/index.md | 2 +- doc/charts/gitlab/mailroom/index.md | 2 +- doc/charts/gitlab/migrations/index.md | 2 +- doc/charts/gitlab/praefect/index.md | 2 +- doc/charts/gitlab/sidekiq/index.md | 2 +- doc/charts/gitlab/spamcheck/index.md | 2 +- doc/charts/gitlab/toolbox/index.md | 2 +- doc/charts/gitlab/webservice/index.md | 2 +- doc/charts/globals.md | 2 +- doc/charts/index.md | 2 +- doc/charts/minio/index.md | 2 +- doc/charts/nginx/fork.md | 2 +- doc/charts/nginx/index.md | 2 +- doc/charts/registry/index.md | 2 +- doc/charts/shared-secrets.md | 2 +- doc/development/changelog.md | 2 +- doc/development/chaoskube/index.md | 2 +- doc/development/checkconfig.md | 2 +- doc/development/clickhouse.md | 2 +- doc/development/deploy.md | 2 +- doc/development/deprecations.md | 2 +- doc/development/environment_setup.md | 2 +- doc/development/gitlab-qa/index.md | 2 +- doc/development/index.md | 2 +- doc/development/kind/index.md | 2 +- doc/development/minikube/index.md | 2 +- doc/development/preparation/index.md | 2 +- doc/development/release.md | 2 +- doc/development/rspec.md | 2 +- doc/development/style_guide.md | 2 +- doc/development/troubleshooting.md | 2 +- doc/development/validation.md | 2 +- doc/index.md | 2 +- doc/installation/cloud/aks.md | 2 +- doc/installation/cloud/eks.md | 2 +- doc/installation/cloud/gke.md | 2 +- doc/installation/cloud/index.md | 2 +- doc/installation/cloud/oke.md | 2 +- doc/installation/cloud/openshift.md | 2 +- doc/installation/command-line-options.md | 2 +- doc/installation/database_upgrade.md | 2 +- doc/installation/deployment.md | 2 +- doc/installation/index.md | 2 +- doc/installation/migration/helm.md | 2 +- doc/installation/migration/helm_to_package.md | 2 +- doc/installation/migration/index.md | 2 +- doc/installation/migration/minio.md | 2 +- doc/installation/migration/package_to_helm.md | 2 +- doc/installation/rbac.md | 2 +- doc/installation/secrets.md | 2 +- doc/installation/storage.md | 2 +- doc/installation/tls.md | 2 +- doc/installation/tools.md | 2 +- doc/installation/uninstall.md | 2 +- doc/installation/upgrade.md | 2 +- doc/installation/upgrade_old.md | 2 +- doc/installation/version_mappings.md | 2 +- doc/quickstart/index.md | 2 +- doc/releases/1_0.md | 2 +- doc/releases/2_0.md | 2 +- doc/releases/3_0.md | 2 +- doc/releases/4_0.md | 2 +- doc/releases/5_0.md | 2 +- doc/releases/6_0.md | 2 +- doc/releases/alpha.md | 2 +- doc/releases/beta.md | 2 +- doc/troubleshooting/index.md | 2 +- doc/troubleshooting/kubernetes_cheat_sheet.md | 2 +- 106 files changed, 106 insertions(+), 106 deletions(-) diff --git a/doc/advanced/custom-images/index.md b/doc/advanced/custom-images/index.md index 141f262ac9..61a7e4aca9 100644 --- a/doc/advanced/custom-images/index.md +++ b/doc/advanced/custom-images/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Use custom Docker images for the GitLab chart diff --git a/doc/advanced/external-db/external-omnibus-psql.md b/doc/advanced/external-db/external-omnibus-psql.md index 9a6b10dbdd..f1e25de361 100644 --- a/doc/advanced/external-db/external-omnibus-psql.md +++ b/doc/advanced/external-db/external-omnibus-psql.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Set up standalone PostgreSQL database diff --git a/doc/advanced/external-db/index.md b/doc/advanced/external-db/index.md index b1a3be854a..304f091491 100644 --- a/doc/advanced/external-db/index.md +++ b/doc/advanced/external-db/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Configure the GitLab chart with an external database diff --git a/doc/advanced/external-gitaly/external-omnibus-gitaly.md b/doc/advanced/external-gitaly/external-omnibus-gitaly.md index e0ecb029a0..ca96395c9b 100644 --- a/doc/advanced/external-gitaly/external-omnibus-gitaly.md +++ b/doc/advanced/external-gitaly/external-omnibus-gitaly.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Setup standalone Gitaly diff --git a/doc/advanced/external-gitaly/index.md b/doc/advanced/external-gitaly/index.md index 073a9a1479..ea0ddf68f8 100644 --- a/doc/advanced/external-gitaly/index.md +++ b/doc/advanced/external-gitaly/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Configure the GitLab chart with an external Gitaly diff --git a/doc/advanced/external-gitlab-pages/index.md b/doc/advanced/external-gitlab-pages/index.md index 9a9fe49b2a..9750e34087 100644 --- a/doc/advanced/external-gitlab-pages/index.md +++ b/doc/advanced/external-gitlab-pages/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Configure the GitLab chart with external GitLab Pages diff --git a/doc/advanced/external-mattermost/index.md b/doc/advanced/external-mattermost/index.md index bbd037c7ad..ec0fc5fd9d 100644 --- a/doc/advanced/external-mattermost/index.md +++ b/doc/advanced/external-mattermost/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Configure the GitLab chart with Mattermost Team Edition diff --git a/doc/advanced/external-nginx/index.md b/doc/advanced/external-nginx/index.md index 044f58f8a0..323c0d47b6 100644 --- a/doc/advanced/external-nginx/index.md +++ b/doc/advanced/external-nginx/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Configure the GitLab chart with an external NGINX Ingress Controller diff --git a/doc/advanced/external-object-storage/aws-iam-roles.md b/doc/advanced/external-object-storage/aws-iam-roles.md index 1da734a59a..76692e637f 100644 --- a/doc/advanced/external-object-storage/aws-iam-roles.md +++ b/doc/advanced/external-object-storage/aws-iam-roles.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # IAM roles for AWS when using the GitLab chart diff --git a/doc/advanced/external-object-storage/azure-minio-gateway.md b/doc/advanced/external-object-storage/azure-minio-gateway.md index 4782d6c45c..f36544408a 100644 --- a/doc/advanced/external-object-storage/azure-minio-gateway.md +++ b/doc/advanced/external-object-storage/azure-minio-gateway.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Azure MinIO gateway when using the GitLab chart diff --git a/doc/advanced/external-object-storage/index.md b/doc/advanced/external-object-storage/index.md index 80e3663ae7..c33c1c4b09 100644 --- a/doc/advanced/external-object-storage/index.md +++ b/doc/advanced/external-object-storage/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Configure the GitLab chart with an external object storage diff --git a/doc/advanced/external-object-storage/minio.md b/doc/advanced/external-object-storage/minio.md index 86ec49aee3..6638a9f1a6 100644 --- a/doc/advanced/external-object-storage/minio.md +++ b/doc/advanced/external-object-storage/minio.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Configure MinIO with the GitLab chart diff --git a/doc/advanced/external-redis/external-omnibus-redis.md b/doc/advanced/external-redis/external-omnibus-redis.md index 46ada8a9c3..8cffae7b9a 100644 --- a/doc/advanced/external-redis/external-omnibus-redis.md +++ b/doc/advanced/external-redis/external-omnibus-redis.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Setup standalone Redis diff --git a/doc/advanced/external-redis/index.md b/doc/advanced/external-redis/index.md index 6f6cbde37f..3ccf8d61b8 100644 --- a/doc/advanced/external-redis/index.md +++ b/doc/advanced/external-redis/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Configure the GitLab chart with an external Redis diff --git a/doc/advanced/fips/index.md b/doc/advanced/fips/index.md index a81fab4520..cae36578b5 100644 --- a/doc/advanced/fips/index.md +++ b/doc/advanced/fips/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Configure the GitLab chart with FIPS-compliant images diff --git a/doc/advanced/geo/index.md b/doc/advanced/geo/index.md index e3919147ea..17775bc20a 100644 --- a/doc/advanced/geo/index.md +++ b/doc/advanced/geo/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Configure the GitLab chart with GitLab Geo diff --git a/doc/advanced/index.md b/doc/advanced/index.md index 457b2f7963..2f7b898862 100644 --- a/doc/advanced/index.md +++ b/doc/advanced/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Advanced configuration diff --git a/doc/advanced/internal-tls/index.md b/doc/advanced/internal-tls/index.md index e6f7c95a82..cfa46d80de 100644 --- a/doc/advanced/internal-tls/index.md +++ b/doc/advanced/internal-tls/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Use TLS between components of the GitLab chart diff --git a/doc/advanced/multiple-databases/index.md b/doc/advanced/multiple-databases/index.md index 3c847e1c84..8e680ac4c7 100644 --- a/doc/advanced/multiple-databases/index.md +++ b/doc/advanced/multiple-databases/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Configure the GitLab chart with multiple external databases (Alpha) diff --git a/doc/advanced/persistent-volumes/index.md b/doc/advanced/persistent-volumes/index.md index f847abecbf..25f24764a8 100644 --- a/doc/advanced/persistent-volumes/index.md +++ b/doc/advanced/persistent-volumes/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Configure the GitLab chart with persistent volumes diff --git a/doc/advanced/ubi/index.md b/doc/advanced/ubi/index.md index 3ee29a2a57..176bb7fd79 100644 --- a/doc/advanced/ubi/index.md +++ b/doc/advanced/ubi/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Configure the GitLab chart with UBI-based images diff --git a/doc/architecture/architecture.md b/doc/architecture/architecture.md index be133f2cd6..64f8964351 100644 --- a/doc/architecture/architecture.md +++ b/doc/architecture/architecture.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Architecture diff --git a/doc/architecture/backup-restore.md b/doc/architecture/backup-restore.md index 15b07b3ede..7aa3f2cb06 100644 --- a/doc/architecture/backup-restore.md +++ b/doc/architecture/backup-restore.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Backup and restore diff --git a/doc/architecture/decisions.md b/doc/architecture/decisions.md index 575c8f0193..f6cf90b413 100644 --- a/doc/architecture/decisions.md +++ b/doc/architecture/decisions.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Design Decisions diff --git a/doc/architecture/goals.md b/doc/architecture/goals.md index 2a154feaa7..168aefb654 100644 --- a/doc/architecture/goals.md +++ b/doc/architecture/goals.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Goals diff --git a/doc/architecture/index.md b/doc/architecture/index.md index ce645619b3..c36169e5cf 100644 --- a/doc/architecture/index.md +++ b/doc/architecture/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Architecture of Cloud native GitLab Helm charts diff --git a/doc/architecture/resource-usage.md b/doc/architecture/resource-usage.md index 6bebf2f15c..41ff37721f 100644 --- a/doc/architecture/resource-usage.md +++ b/doc/architecture/resource-usage.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Resource usage diff --git a/doc/backup-restore/backup.md b/doc/backup-restore/backup.md index 5d5ef70328..7972d3b36b 100644 --- a/doc/backup-restore/backup.md +++ b/doc/backup-restore/backup.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Backing up a GitLab installation **(FREE SELF)** diff --git a/doc/backup-restore/index.md b/doc/backup-restore/index.md index 9192514fc6..744939b9ce 100644 --- a/doc/backup-restore/index.md +++ b/doc/backup-restore/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Backup and restore a GitLab instance **(FREE SELF)** diff --git a/doc/backup-restore/restore.md b/doc/backup-restore/restore.md index b863bdb739..3d94cfa935 100644 --- a/doc/backup-restore/restore.md +++ b/doc/backup-restore/restore.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Restoring a GitLab installation **(FREE SELF)** diff --git a/doc/charts/certmanager-issuer/index.md b/doc/charts/certmanager-issuer/index.md index b0a475c921..54affc67d1 100644 --- a/doc/charts/certmanager-issuer/index.md +++ b/doc/charts/certmanager-issuer/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Using certmanager-issuer for CertManager Issuer creation **(FREE SELF)** diff --git a/doc/charts/gitlab/gitaly/index.md b/doc/charts/gitlab/gitaly/index.md index 6d412a9c99..e36baa04d1 100644 --- a/doc/charts/gitlab/gitaly/index.md +++ b/doc/charts/gitlab/gitaly/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Using the GitLab-Gitaly chart **(FREE SELF)** diff --git a/doc/charts/gitlab/gitlab-exporter/index.md b/doc/charts/gitlab/gitlab-exporter/index.md index 3e3cce90a0..db471d61e5 100644 --- a/doc/charts/gitlab/gitlab-exporter/index.md +++ b/doc/charts/gitlab/gitlab-exporter/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Using the GitLab-Exporter chart **(FREE SELF)** diff --git a/doc/charts/gitlab/gitlab-pages/index.md b/doc/charts/gitlab/gitlab-pages/index.md index 97a0f85913..63a71d4be5 100644 --- a/doc/charts/gitlab/gitlab-pages/index.md +++ b/doc/charts/gitlab/gitlab-pages/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Using the GitLab Pages chart **(FREE SELF)** diff --git a/doc/charts/gitlab/gitlab-runner/index.md b/doc/charts/gitlab/gitlab-runner/index.md index 701f50a9ec..39976811f9 100644 --- a/doc/charts/gitlab/gitlab-runner/index.md +++ b/doc/charts/gitlab/gitlab-runner/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Using the GitLab Runner chart **(FREE SELF)** diff --git a/doc/charts/gitlab/gitlab-shell/index.md b/doc/charts/gitlab/gitlab-shell/index.md index b9cb6cefca..cc78cbc12c 100644 --- a/doc/charts/gitlab/gitlab-shell/index.md +++ b/doc/charts/gitlab/gitlab-shell/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Using the GitLab Shell chart **(FREE SELF)** diff --git a/doc/charts/gitlab/gitlab-zoekt/index.md b/doc/charts/gitlab/gitlab-zoekt/index.md index 1a7df04bcf..ad6b411055 100644 --- a/doc/charts/gitlab/gitlab-zoekt/index.md +++ b/doc/charts/gitlab/gitlab-zoekt/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Using the GitLab-Zoekt chart **(PREMIUM SELF)** diff --git a/doc/charts/gitlab/index.md b/doc/charts/gitlab/index.md index 6e7a9e449d..ff6bba9607 100644 --- a/doc/charts/gitlab/index.md +++ b/doc/charts/gitlab/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # GitLab Helm subcharts diff --git a/doc/charts/gitlab/kas/index.md b/doc/charts/gitlab/kas/index.md index 49b7f82632..381990f749 100644 --- a/doc/charts/gitlab/kas/index.md +++ b/doc/charts/gitlab/kas/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Using the GitLab `kas` chart **(FREE SELF)** diff --git a/doc/charts/gitlab/mailroom/index.md b/doc/charts/gitlab/mailroom/index.md index 16743b7cd7..02670a4a3a 100644 --- a/doc/charts/gitlab/mailroom/index.md +++ b/doc/charts/gitlab/mailroom/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Using the Mailroom chart **(FREE SELF)** diff --git a/doc/charts/gitlab/migrations/index.md b/doc/charts/gitlab/migrations/index.md index 9e927cc1f1..3fc255762a 100644 --- a/doc/charts/gitlab/migrations/index.md +++ b/doc/charts/gitlab/migrations/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Using the GitLab-Migrations chart **(FREE SELF)** diff --git a/doc/charts/gitlab/praefect/index.md b/doc/charts/gitlab/praefect/index.md index c80c763228..ed16e6f107 100644 --- a/doc/charts/gitlab/praefect/index.md +++ b/doc/charts/gitlab/praefect/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Using the Praefect chart (alpha) **(FREE SELF)** diff --git a/doc/charts/gitlab/sidekiq/index.md b/doc/charts/gitlab/sidekiq/index.md index 27530911ef..053e90a41f 100644 --- a/doc/charts/gitlab/sidekiq/index.md +++ b/doc/charts/gitlab/sidekiq/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Using the GitLab-Sidekiq chart **(FREE SELF)** diff --git a/doc/charts/gitlab/spamcheck/index.md b/doc/charts/gitlab/spamcheck/index.md index 2e63950c0b..78fdbf6028 100644 --- a/doc/charts/gitlab/spamcheck/index.md +++ b/doc/charts/gitlab/spamcheck/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Using the GitLab-Spamcheck chart **(PREMIUM SELF)** diff --git a/doc/charts/gitlab/toolbox/index.md b/doc/charts/gitlab/toolbox/index.md index 3a8809d230..059b58f972 100644 --- a/doc/charts/gitlab/toolbox/index.md +++ b/doc/charts/gitlab/toolbox/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Toolbox **(FREE SELF)** diff --git a/doc/charts/gitlab/webservice/index.md b/doc/charts/gitlab/webservice/index.md index feffcd7783..cf52b9c161 100644 --- a/doc/charts/gitlab/webservice/index.md +++ b/doc/charts/gitlab/webservice/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Using the GitLab Webservice chart **(FREE SELF)** diff --git a/doc/charts/globals.md b/doc/charts/globals.md index 6c4f85fb02..211983409a 100644 --- a/doc/charts/globals.md +++ b/doc/charts/globals.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Configure charts using globals **(FREE SELF)** diff --git a/doc/charts/index.md b/doc/charts/index.md index 9f4a8ede85..6b63430036 100644 --- a/doc/charts/index.md +++ b/doc/charts/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Configure the GitLab Helm charts **(FREE SELF)** diff --git a/doc/charts/minio/index.md b/doc/charts/minio/index.md index f8bdadb81b..447c186cf8 100644 --- a/doc/charts/minio/index.md +++ b/doc/charts/minio/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Using MinIO for Object storage **(FREE SELF)** diff --git a/doc/charts/nginx/fork.md b/doc/charts/nginx/fork.md index 7f92ef9494..bdc73e1be9 100644 --- a/doc/charts/nginx/fork.md +++ b/doc/charts/nginx/fork.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Our NGINX fork **(FREE SELF)** diff --git a/doc/charts/nginx/index.md b/doc/charts/nginx/index.md index ede371e4ba..39710d0e76 100644 --- a/doc/charts/nginx/index.md +++ b/doc/charts/nginx/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Using NGINX **(FREE SELF)** diff --git a/doc/charts/registry/index.md b/doc/charts/registry/index.md index 1488cac01c..4afb76d8bd 100644 --- a/doc/charts/registry/index.md +++ b/doc/charts/registry/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Using the Container Registry **(FREE SELF)** diff --git a/doc/charts/shared-secrets.md b/doc/charts/shared-secrets.md index a23888eda4..78b9d4a93c 100644 --- a/doc/charts/shared-secrets.md +++ b/doc/charts/shared-secrets.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Using the Shared-Secrets Job **(FREE SELF)** diff --git a/doc/development/changelog.md b/doc/development/changelog.md index c5a7904d92..8cdc4da648 100644 --- a/doc/development/changelog.md +++ b/doc/development/changelog.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Changelog entries diff --git a/doc/development/chaoskube/index.md b/doc/development/chaoskube/index.md index 0e7fdf03b8..c8655fe535 100644 --- a/doc/development/chaoskube/index.md +++ b/doc/development/chaoskube/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # ChaosKube diff --git a/doc/development/checkconfig.md b/doc/development/checkconfig.md index 4040be9370..b5db599899 100644 --- a/doc/development/checkconfig.md +++ b/doc/development/checkconfig.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # checkConfig template diff --git a/doc/development/clickhouse.md b/doc/development/clickhouse.md index 9769335245..9575247dfe 100644 --- a/doc/development/clickhouse.md +++ b/doc/development/clickhouse.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # ClickHouse database diff --git a/doc/development/deploy.md b/doc/development/deploy.md index 0ec471aeee..362e93faaa 100644 --- a/doc/development/deploy.md +++ b/doc/development/deploy.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Deploy Development Branch diff --git a/doc/development/deprecations.md b/doc/development/deprecations.md index d045945226..7e968295ba 100644 --- a/doc/development/deprecations.md +++ b/doc/development/deprecations.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Deprecations template diff --git a/doc/development/environment_setup.md b/doc/development/environment_setup.md index 8cd703a654..4a720c45d1 100644 --- a/doc/development/environment_setup.md +++ b/doc/development/environment_setup.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Environment setup diff --git a/doc/development/gitlab-qa/index.md b/doc/development/gitlab-qa/index.md index 82cafd60c0..54a8871b91 100644 --- a/doc/development/gitlab-qa/index.md +++ b/doc/development/gitlab-qa/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Running GitLab QA diff --git a/doc/development/index.md b/doc/development/index.md index 98d36e121f..69e977ad13 100644 --- a/doc/development/index.md +++ b/doc/development/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Contribute to Helm chart development diff --git a/doc/development/kind/index.md b/doc/development/kind/index.md index 9d7123a046..60b5a67723 100644 --- a/doc/development/kind/index.md +++ b/doc/development/kind/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Developing for Kubernetes with KinD diff --git a/doc/development/minikube/index.md b/doc/development/minikube/index.md index 92e7e4dd44..882a9c8d9e 100644 --- a/doc/development/minikube/index.md +++ b/doc/development/minikube/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Developing for Kubernetes with minikube diff --git a/doc/development/preparation/index.md b/doc/development/preparation/index.md index a97698315b..c1c63daacd 100644 --- a/doc/development/preparation/index.md +++ b/doc/development/preparation/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Pre-install preparations diff --git a/doc/development/release.md b/doc/development/release.md index a97e92d9a7..e2eb8301d2 100644 --- a/doc/development/release.md +++ b/doc/development/release.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Helm chart releases diff --git a/doc/development/rspec.md b/doc/development/rspec.md index fda0a35e15..f681680844 100644 --- a/doc/development/rspec.md +++ b/doc/development/rspec.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Writing RSpec tests for charts diff --git a/doc/development/style_guide.md b/doc/development/style_guide.md index d9bfa226dc..97c8f32ee2 100644 --- a/doc/development/style_guide.md +++ b/doc/development/style_guide.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Style guide diff --git a/doc/development/troubleshooting.md b/doc/development/troubleshooting.md index f57a54dbdd..93c830cb72 100644 --- a/doc/development/troubleshooting.md +++ b/doc/development/troubleshooting.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Troubleshooting GitLab chart development environment diff --git a/doc/development/validation.md b/doc/development/validation.md index f0bf65bf60..035d7bc672 100644 --- a/doc/development/validation.md +++ b/doc/development/validation.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Validations of values using JSON Schema diff --git a/doc/index.md b/doc/index.md index cc20d4298a..16932ead7d 100644 --- a/doc/index.md +++ b/doc/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # GitLab Helm chart **(FREE SELF)** diff --git a/doc/installation/cloud/aks.md b/doc/installation/cloud/aks.md index ac6e1f2775..226a872a2e 100644 --- a/doc/installation/cloud/aks.md +++ b/doc/installation/cloud/aks.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Preparing AKS resources for the GitLab chart **(FREE SELF)** diff --git a/doc/installation/cloud/eks.md b/doc/installation/cloud/eks.md index 2c2217a3f3..63f5db2268 100644 --- a/doc/installation/cloud/eks.md +++ b/doc/installation/cloud/eks.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Preparing EKS resources for the GitLab chart **(FREE SELF)** diff --git a/doc/installation/cloud/gke.md b/doc/installation/cloud/gke.md index 61d05eeeb2..a9cd17d928 100644 --- a/doc/installation/cloud/gke.md +++ b/doc/installation/cloud/gke.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Preparing GKE resources for the GitLab chart **(FREE SELF)** diff --git a/doc/installation/cloud/index.md b/doc/installation/cloud/index.md index 12b2571909..e5f6d1f904 100644 --- a/doc/installation/cloud/index.md +++ b/doc/installation/cloud/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Cloud provider setup for the GitLab chart **(FREE SELF)** diff --git a/doc/installation/cloud/oke.md b/doc/installation/cloud/oke.md index cbadcdd8f8..51f0c630ce 100644 --- a/doc/installation/cloud/oke.md +++ b/doc/installation/cloud/oke.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Preparing OKE resources for the GitLab chart **(FREE SELF)** diff --git a/doc/installation/cloud/openshift.md b/doc/installation/cloud/openshift.md index 56e1d42c9a..429aca7ff6 100644 --- a/doc/installation/cloud/openshift.md +++ b/doc/installation/cloud/openshift.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Preparing OpenShift resources for the GitLab chart **(FREE SELF)** diff --git a/doc/installation/command-line-options.md b/doc/installation/command-line-options.md index dd0abb1f42..d6283e6831 100644 --- a/doc/installation/command-line-options.md +++ b/doc/installation/command-line-options.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # GitLab Helm chart deployment options **(FREE SELF)** diff --git a/doc/installation/database_upgrade.md b/doc/installation/database_upgrade.md index 1f66964e6e..4a1db0d896 100644 --- a/doc/installation/database_upgrade.md +++ b/doc/installation/database_upgrade.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Upgrade the bundled PostgreSQL version **(FREE SELF)** diff --git a/doc/installation/deployment.md b/doc/installation/deployment.md index f4f5c0d1c2..78172d8bf0 100644 --- a/doc/installation/deployment.md +++ b/doc/installation/deployment.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Deploy the GitLab Helm chart **(FREE SELF)** diff --git a/doc/installation/index.md b/doc/installation/index.md index 56225e1949..c4a6023a0d 100644 --- a/doc/installation/index.md +++ b/doc/installation/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Installing GitLab by using Helm **(FREE SELF)** diff --git a/doc/installation/migration/helm.md b/doc/installation/migration/helm.md index 8af71f395e..2d4104add5 100644 --- a/doc/installation/migration/helm.md +++ b/doc/installation/migration/helm.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Migrating from Helm v2 to Helm v3 **(FREE SELF)** diff --git a/doc/installation/migration/helm_to_package.md b/doc/installation/migration/helm_to_package.md index 38109fbf8f..de4226d703 100644 --- a/doc/installation/migration/helm_to_package.md +++ b/doc/installation/migration/helm_to_package.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Migrate from the Helm chart to the Linux package **(FREE SELF)** diff --git a/doc/installation/migration/index.md b/doc/installation/migration/index.md index 492197b216..fb2a617fd4 100644 --- a/doc/installation/migration/index.md +++ b/doc/installation/migration/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Migration guides for the GitLab Helm chart **(FREE SELF)** diff --git a/doc/installation/migration/minio.md b/doc/installation/migration/minio.md index 47f929ca1a..21c75df7e4 100644 --- a/doc/installation/migration/minio.md +++ b/doc/installation/migration/minio.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Use the built-in MinIO service for object storage **(FREE SELF)** diff --git a/doc/installation/migration/package_to_helm.md b/doc/installation/migration/package_to_helm.md index a82e9f5a61..03363d4310 100644 --- a/doc/installation/migration/package_to_helm.md +++ b/doc/installation/migration/package_to_helm.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Migrate from the Linux package to the Helm chart **(FREE SELF)** diff --git a/doc/installation/rbac.md b/doc/installation/rbac.md index 16fc6901d1..dfd488eebd 100644 --- a/doc/installation/rbac.md +++ b/doc/installation/rbac.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Configure RBAC for the GitLab chart **(FREE SELF)** diff --git a/doc/installation/secrets.md b/doc/installation/secrets.md index 1191187bc2..acf264ef73 100644 --- a/doc/installation/secrets.md +++ b/doc/installation/secrets.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Configure secrets for the GitLab chart **(FREE SELF)** diff --git a/doc/installation/storage.md b/doc/installation/storage.md index f3b61c893c..56a521c44b 100644 --- a/doc/installation/storage.md +++ b/doc/installation/storage.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Configure storage for the GitLab chart **(FREE SELF)** diff --git a/doc/installation/tls.md b/doc/installation/tls.md index b5bfa46f21..751bbfacd2 100644 --- a/doc/installation/tls.md +++ b/doc/installation/tls.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Configure TLS for the GitLab chart **(FREE SELF)** diff --git a/doc/installation/tools.md b/doc/installation/tools.md index 7b22948609..feb078d7ac 100644 --- a/doc/installation/tools.md +++ b/doc/installation/tools.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # GitLab chart prerequisites **(FREE SELF)** diff --git a/doc/installation/uninstall.md b/doc/installation/uninstall.md index 05f520f33d..798ff8d0cb 100644 --- a/doc/installation/uninstall.md +++ b/doc/installation/uninstall.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Uninstall the GitLab Helm chart diff --git a/doc/installation/upgrade.md b/doc/installation/upgrade.md index 4205ddf48f..77d00c66c5 100644 --- a/doc/installation/upgrade.md +++ b/doc/installation/upgrade.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Upgrade the GitLab chart **(FREE SELF)** diff --git a/doc/installation/upgrade_old.md b/doc/installation/upgrade_old.md index 5c920fc538..682c74d51e 100644 --- a/doc/installation/upgrade_old.md +++ b/doc/installation/upgrade_old.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Upgrade old versions **(FREE SELF)** diff --git a/doc/installation/version_mappings.md b/doc/installation/version_mappings.md index 7be94ff5a2..66f5a60da4 100644 --- a/doc/installation/version_mappings.md +++ b/doc/installation/version_mappings.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # GitLab chart versions **(FREE SELF)** diff --git a/doc/quickstart/index.md b/doc/quickstart/index.md index ffe20bc1ea..af117667d6 100644 --- a/doc/quickstart/index.md +++ b/doc/quickstart/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Test the GitLab chart on GKE or EKS diff --git a/doc/releases/1_0.md b/doc/releases/1_0.md index 4e5c38d415..a46a4eb349 100644 --- a/doc/releases/1_0.md +++ b/doc/releases/1_0.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # GitLab Helm chart 1.0 diff --git a/doc/releases/2_0.md b/doc/releases/2_0.md index 5f37bfbe7e..7dd79a23c3 100644 --- a/doc/releases/2_0.md +++ b/doc/releases/2_0.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # GitLab Helm chart 2.0 diff --git a/doc/releases/3_0.md b/doc/releases/3_0.md index 558caeef6c..bfc7614bac 100644 --- a/doc/releases/3_0.md +++ b/doc/releases/3_0.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # GitLab Helm chart 3.0 diff --git a/doc/releases/4_0.md b/doc/releases/4_0.md index 1eb09182fd..6b329d9e24 100644 --- a/doc/releases/4_0.md +++ b/doc/releases/4_0.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # GitLab Helm chart 4.0 diff --git a/doc/releases/5_0.md b/doc/releases/5_0.md index fbdb8f16c4..ea49ff93d5 100644 --- a/doc/releases/5_0.md +++ b/doc/releases/5_0.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # GitLab Helm chart 5.0 diff --git a/doc/releases/6_0.md b/doc/releases/6_0.md index b1a7c839ed..d5a79fe69d 100644 --- a/doc/releases/6_0.md +++ b/doc/releases/6_0.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # GitLab Helm chart 6.0 diff --git a/doc/releases/alpha.md b/doc/releases/alpha.md index 18c5d3deea..d5a4752473 100644 --- a/doc/releases/alpha.md +++ b/doc/releases/alpha.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # GitLab Helm chart Alpha diff --git a/doc/releases/beta.md b/doc/releases/beta.md index 0ebe1e61da..112dab62a7 100644 --- a/doc/releases/beta.md +++ b/doc/releases/beta.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # GitLab Helm chart Beta diff --git a/doc/troubleshooting/index.md b/doc/troubleshooting/index.md index d1a800c60d..ea58fdc46f 100644 --- a/doc/troubleshooting/index.md +++ b/doc/troubleshooting/index.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Troubleshooting the GitLab chart diff --git a/doc/troubleshooting/kubernetes_cheat_sheet.md b/doc/troubleshooting/kubernetes_cheat_sheet.md index f0b7c2d223..834680d14f 100644 --- a/doc/troubleshooting/kubernetes_cheat_sheet.md +++ b/doc/troubleshooting/kubernetes_cheat_sheet.md @@ -1,7 +1,7 @@ --- stage: Systems group: Distribution -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments type: reference --- -- GitLab From dc1fc54e787bfc233dfc9b70a963bf0d2302f353 Mon Sep 17 00:00:00 2001 From: keelanlang Date: Tue, 5 Dec 2023 11:47:44 -0500 Subject: [PATCH 29/32] Add warning about support --- doc/charts/gitlab/gitlab-zoekt/index.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/charts/gitlab/gitlab-zoekt/index.md b/doc/charts/gitlab/gitlab-zoekt/index.md index ad6b411055..3054b3d76d 100644 --- a/doc/charts/gitlab/gitlab-zoekt/index.md +++ b/doc/charts/gitlab/gitlab-zoekt/index.md @@ -6,6 +6,11 @@ info: To determine the technical writer assigned to the Stage/Group associated w # Using the GitLab-Zoekt chart **(PREMIUM SELF)** +WARNING: +GitLab Support cannot assist with configuring or troubleshooting the +GitLab-Zoekt chart. For more information, see +[Exact Code Search](/ee/user/search/exact_code_search.md). + The Zoekt integration provides support for [Exact code search](https://docs.gitlab.com/ee/user/search/exact_code_search.html). This can be installed by setting `gitlab-zoekt.install` to `true`. For now -- GitLab From 691b408eef9ccd03473b8ee5294dc7f7899dec7f Mon Sep 17 00:00:00 2001 From: keelanlang Date: Tue, 5 Dec 2023 13:12:37 -0500 Subject: [PATCH 30/32] Attempt to fix broken link --- doc/charts/gitlab/gitlab-zoekt/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/charts/gitlab/gitlab-zoekt/index.md b/doc/charts/gitlab/gitlab-zoekt/index.md index 3054b3d76d..94b2ce70d1 100644 --- a/doc/charts/gitlab/gitlab-zoekt/index.md +++ b/doc/charts/gitlab/gitlab-zoekt/index.md @@ -12,7 +12,7 @@ GitLab-Zoekt chart. For more information, see [Exact Code Search](/ee/user/search/exact_code_search.md). The Zoekt integration provides support for -[Exact code search](https://docs.gitlab.com/ee/user/search/exact_code_search.html). +[Exact code search](/ee/user/search/exact_code_search.md). This can be installed by setting `gitlab-zoekt.install` to `true`. For now this does not configure GitLab to automatically discover Zoekt and this feature is experimental and disabled by default. More details on configuration can be -- GitLab From 6b81cd4aff7b75cfe7a0c4efdcb8069608e31cf9 Mon Sep 17 00:00:00 2001 From: Ashraf Khamis Date: Tue, 5 Dec 2023 21:39:30 +0000 Subject: [PATCH 31/32] Apply suggestions and hope we fix pipelines --- doc/charts/gitlab/gitlab-zoekt/index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/charts/gitlab/gitlab-zoekt/index.md b/doc/charts/gitlab/gitlab-zoekt/index.md index 94b2ce70d1..8cfbb77939 100644 --- a/doc/charts/gitlab/gitlab-zoekt/index.md +++ b/doc/charts/gitlab/gitlab-zoekt/index.md @@ -8,11 +8,11 @@ info: To determine the technical writer assigned to the Stage/Group associated w WARNING: GitLab Support cannot assist with configuring or troubleshooting the -GitLab-Zoekt chart. For more information, see -[Exact Code Search](/ee/user/search/exact_code_search.md). +`gitlab-zoekt` chart. For more information, see +[exact code search](https://docs.gitlab.com/ee/user/search/exact_code_search.html). The Zoekt integration provides support for -[Exact code search](/ee/user/search/exact_code_search.md). +[exact code search](https://docs.gitlab.com/ee/user/search/exact_code_search.html). This can be installed by setting `gitlab-zoekt.install` to `true`. For now this does not configure GitLab to automatically discover Zoekt and this feature is experimental and disabled by default. More details on configuration can be -- GitLab From fa3038a286b0768e5e696c60433d1d45d3bbd137 Mon Sep 17 00:00:00 2001 From: Ashraf Khamis Date: Fri, 8 Dec 2023 19:08:06 +0000 Subject: [PATCH 32/32] Applying Ashraf's suggestions --- doc/charts/gitlab/gitlab-zoekt/index.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/doc/charts/gitlab/gitlab-zoekt/index.md b/doc/charts/gitlab/gitlab-zoekt/index.md index 8cfbb77939..c1e9f41d82 100644 --- a/doc/charts/gitlab/gitlab-zoekt/index.md +++ b/doc/charts/gitlab/gitlab-zoekt/index.md @@ -4,20 +4,24 @@ group: Distribution info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments --- -# Using the GitLab-Zoekt chart **(PREMIUM SELF)** +# Using the GitLab-Zoekt chart **(PREMIUM SELF EXPERIMENT)** + +FLAG: +On self-managed GitLab, by default this feature is not available. +To make it available, an administrator can enable the feature flags named `index_code_with_zoekt` and `search_code_with_zoekt`. +On GitLab.com, this feature is not available. This feature is not ready for production use. WARNING: +This feature is an [Experiment](https://docs.gitlab.com/ee/policy/experiment-beta-support.html#experiment). GitLab Support cannot assist with configuring or troubleshooting the `gitlab-zoekt` chart. For more information, see [exact code search](https://docs.gitlab.com/ee/user/search/exact_code_search.html). The Zoekt integration provides support for [exact code search](https://docs.gitlab.com/ee/user/search/exact_code_search.html). -This can be installed by setting `gitlab-zoekt.install` to `true`. For now -this does not configure GitLab to automatically discover Zoekt and this feature -is experimental and disabled by default. More details on configuration can be -found in the -[`gitlab-zoekt` chart](https://gitlab.com/gitlab-org/cloud-native/charts/gitlab-zoekt). +You can install the integration by setting `gitlab-zoekt.install` to `true`. +This setting does not configure GitLab to automatically discover Zoekt. +For more information, see the [`gitlab-zoekt` chart](https://gitlab.com/gitlab-org/cloud-native/charts/gitlab-zoekt). ## GitLab integration -- GitLab