From f5278a02a428898e92e6f2fd064ff39ebc080807 Mon Sep 17 00:00:00 2001 From: Sami Hiltunen <shiltunen@gitlab.com> Date: Wed, 6 Mar 2024 12:54:31 +0200 Subject: [PATCH] Add migration instructions for deprecated 'omnibus_gitconfig' This commit adds a deprecation notice and migration instructions for `omnibus_gitconfig`. --- .../16-10-omnibus-gitconfig-deprecation.yml | 51 +++++++++++++++++++ doc/update/deprecations.md | 48 +++++++++++++++++ 2 files changed, 99 insertions(+) create mode 100644 data/deprecations/16-10-omnibus-gitconfig-deprecation.yml diff --git a/data/deprecations/16-10-omnibus-gitconfig-deprecation.yml b/data/deprecations/16-10-omnibus-gitconfig-deprecation.yml new file mode 100644 index 0000000000000..e46a8f7a900e4 --- /dev/null +++ b/data/deprecations/16-10-omnibus-gitconfig-deprecation.yml @@ -0,0 +1,51 @@ +- title: "`Gitlab['omnibus_gitconfig']` configuration item is deprecated" + # The milestones for the deprecation announcement, and the removal. + removal_milestone: "17.0" + announcement_milestone: "16.10" + # Change breaking_change to false if needed. + breaking_change: true + # The stage and GitLab username of the person reporting the change, + # and a link to the deprecation issue + reporter: samihiltunen + stage: systems + issue_url: https://gitlab.com/gitlab-org/gitaly/-/issues/5132 + impact: low # Can be one of: [critical, high, medium, low] + scope: instance # Can be one or a combination of: [instance, group, project] + resolution_role: Admin # Can be one of: [Admin, Owner, Maintainer, Developer] + manual_task: true # Can be true or false. Use this to denote whether a resolution action must be performed manually (true), or if it can be automated by using the API or other automation (false). + body: | + The `omnibus_gitconfig['system']` configuration item has been deprecated. If you use + `omnibus_gitconfig['system']` to set custom Git configuration for Gitaly, you must configure Git + directly through Gitaly configuration under `gitaly[:configuration][:git][:config]` before upgrading to GitLab 17.0. + + For example: + + ```ruby + gitaly[:configuration][:git][:config] = [ + { + key: 'fetch.fsckObjects', + value: 'true', + }, + # ... + ] + ``` + + The format of the configuration keys must match what is passed to `git` through the CLI flag `git -c <configuration>`. + + If you have trouble converting the existing keys to the expected format, see the existing keys in the correct format in + the Linux package-generated configuration file of Gitaly. By default, the configuration file is located at + `/var/opt/gitlab/gitaly/config.toml`. + + The following configuration options that are managed by Gitaly should be removed. These keys do not need to be migrated + to Gitaly: + + - `pack.threads=1` + - `receive.advertisePushOptions=true` + - `receive.fsckObjects=true` + - `repack.writeBitmaps=true` + - `transfer.hideRefs=^refs/tmp/` + - `transfer.hideRefs=^refs/keep-around/` + - `transfer.hideRefs=^refs/remotes/` + - `core.alternateRefsCommand="exit 0 #"` + - `core.fsyncObjectFiles=true` + - `fetch.writeCommitGraph=true` diff --git a/doc/update/deprecations.md b/doc/update/deprecations.md index 3d66106b68711..b32495d37f190 100644 --- a/doc/update/deprecations.md +++ b/doc/update/deprecations.md @@ -2052,6 +2052,54 @@ removed in 17.0. <div class="deprecation breaking-change" data-milestone="17.0"> +### `Gitlab['omnibus_gitconfig']` configuration item is deprecated + +<div class="deprecation-notes"> +- Announced in GitLab <span class="milestone">16.10</span> +- Removal in GitLab <span class="milestone">17.0</span> ([breaking change](https://docs.gitlab.com/ee/update/terminology.html#breaking-change)) +- To discuss this change or learn more, see the [deprecation issue](https://gitlab.com/gitlab-org/gitaly/-/issues/5132). +</div> + +The `omnibus_gitconfig['system']` configuration item has been deprecated. If you use +`omnibus_gitconfig['system']` to set custom Git configuration for Gitaly, you must configure Git +directly through Gitaly configuration under `gitaly[:configuration][:git][:config]` before upgrading to GitLab 17.0. + +For example: + +```ruby + gitaly[:configuration][:git][:config] = [ + { + key: 'fetch.fsckObjects', + value: 'true', + }, + # ... + ] +``` + +The format of the configuration keys must match what is passed to `git` through the CLI flag `git -c <configuration>`. + +If you have trouble converting the existing keys to the expected format, see the existing keys in the correct format in +the Linux package-generated configuration file of Gitaly. By default, the configuration file is located at +`/var/opt/gitlab/gitaly/config.toml`. + +The following configuration options that are managed by Gitaly should be removed. These keys do not need to be migrated +to Gitaly: + +- `pack.threads=1` +- `receive.advertisePushOptions=true` +- `receive.fsckObjects=true` +- `repack.writeBitmaps=true` +- `transfer.hideRefs=^refs/tmp/` +- `transfer.hideRefs=^refs/keep-around/` +- `transfer.hideRefs=^refs/remotes/` +- `core.alternateRefsCommand="exit 0 #"` +- `core.fsyncObjectFiles=true` +- `fetch.writeCommitGraph=true` + +</div> + +<div class="deprecation breaking-change" data-milestone="17.0"> + ### `after_script` keyword will run for cancelled jobs <div class="deprecation-notes"> -- GitLab