diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-08-04 18:10:27 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-08-04 18:10:27 +0300 |
commit | d984d4a092018d86eec724a06ce2e6c066c3fb44 (patch) | |
tree | b72454a613480658d9b2b14b74eb7b8c75858544 /doc | |
parent | 30a8e054751fe9020a9ed526434db83af35b4718 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'doc')
-rw-r--r-- | doc/administration/troubleshooting/postgresql.md | 6 | ||||
-rw-r--r-- | doc/development/pipelines/internals.md | 9 | ||||
-rw-r--r-- | doc/install/requirements.md | 1 | ||||
-rw-r--r-- | doc/update/index.md | 309 | ||||
-rw-r--r-- | doc/update/upgrading_from_source.md | 4 |
5 files changed, 41 insertions, 288 deletions
diff --git a/doc/administration/troubleshooting/postgresql.md b/doc/administration/troubleshooting/postgresql.md index 42d4d9c6d8c..53bde005232 100644 --- a/doc/administration/troubleshooting/postgresql.md +++ b/doc/administration/troubleshooting/postgresql.md @@ -212,10 +212,8 @@ To resolve the error, run `VACUUM` manually: ### GitLab database requirements -The [database requirements](../../install/requirements.md#database) for GitLab include: - -- Support for MySQL was removed in [GitLab 12.1](../../update/index.md#1210). -- Review and install the [required extension list](../../install/postgresql_extensions.md). +See [database requirements](../../install/requirements.md#database) and review and install the +[required extension list](../../install/postgresql_extensions.md). ### Serialization errors in the `production/sidekiq` log diff --git a/doc/development/pipelines/internals.md b/doc/development/pipelines/internals.md index 97424e02437..904ac11511d 100644 --- a/doc/development/pipelines/internals.md +++ b/doc/development/pipelines/internals.md @@ -368,6 +368,8 @@ my-job: - This pattern does not work if a script relies on `git` to access the repository, because we don't have the repository without cloning or fetching. - The job using this pattern needs to have `curl` available. +- If you need to run `bundle install` in the job (even using `BUNDLE_ONLY`), you need to download the gems that are stored in the `gitlab-org/gitlab` project. + - You can use the `download_local_gems` shell command for that purpose. #### Where is this pattern used? @@ -387,5 +389,12 @@ my-job: - `scripts/review_apps/review-apps.sh` - `scripts/review_apps/seed-dast-test-data.sh` - `VERSION` + - `rspec:coverage` for: + - `config/bundler_setup.rb` + - `Gemfile.lock` + - `Gemfile` + - `scripts/merge-simplecov` + - `spec/simplecov_env_core.rb` + - `spec/simplecov_env.rb` Additionally, `scripts/utils.sh` is always downloaded from the API when this pattern is used (this file contains the code for `.fast-no-clone-job`). diff --git a/doc/install/requirements.md b/doc/install/requirements.md index 5e13628e815..b60d3fd8359 100644 --- a/doc/install/requirements.md +++ b/doc/install/requirements.md @@ -68,7 +68,6 @@ process, such as PostgreSQL, which can have disastrous consequences. PostgreSQL is the only supported database, which is bundled with the Omnibus GitLab package. You can also use an [external PostgreSQL database](https://docs.gitlab.com/omnibus/settings/database.html#using-a-non-packaged-postgresql-database-management-server). -Support for MySQL was removed in [GitLab 12.1](../update/index.md#1210). ### PostgreSQL Requirements diff --git a/doc/update/index.md b/doc/update/index.md index 723b5199e98..e29c6d1b989 100644 --- a/doc/update/index.md +++ b/doc/update/index.md @@ -176,30 +176,21 @@ A *major* upgrade requires the following steps: Upgrading across multiple GitLab versions in one go is *only possible by accepting downtime*. If you don't want any downtime, read how to [upgrade with zero downtime](zero_downtime.md). -For a dynamic view of examples of supported upgrade paths, try the [Upgrade Path tool](https://gitlab-com.gitlab.io/support/toolbox/upgrade-path/) maintained by the [GitLab Support team](https://about.gitlab.com/handbook/support/#about-the-support-team). To share feedback and help improve the tool, create an issue or MR in the [upgrade-path project](https://gitlab.com/gitlab-com/support/toolbox/upgrade-path). +For a dynamic view of examples of supported upgrade paths, try the [Upgrade Path tool](https://gitlab-com.gitlab.io/support/toolbox/upgrade-path/) +maintained by the [GitLab Support team](https://about.gitlab.com/handbook/support/#about-the-support-team). To share +feedback and help improve the tool, create an issue or MR in the [upgrade-path project](https://gitlab.com/gitlab-com/support/toolbox/upgrade-path). -Required upgrade stops are versions of GitLab that you must upgrade to before upgrading to later versions. Required upgrade stops allow required background -migrations to finish. +When upgrading: -During GitLab 16.x, we are scheduling two or three required upgrade stops. We will give at least two milestones of notice when we -schedule a required upgrade stop. +1. Find where your version sits in the upgrade path: -The first planned required upgrade stop is scheduled for GitLab 16.3. If nothing is introduced requiring an upgrade stop, GitLab 16.3 will be treated as a -regular upgrade. + - GitLab 14: [`14.0.12`](#1400) > [`14.3.6`](#1430) > [`14.9.5`](#1490) > [`14.10.5`](#14100). + - GitLab 15: [`15.0.5`](#1500) > [`15.1.6`](#1510) (for GitLab instances with multiple web nodes) > [`15.4.6`](#1540) > [`15.11.x`](#15110). + - GitLab 16: [latest `16.Y.Z`](https://gitlab.com/gitlab-org/gitlab/-/releases). -Find where your version sits in the upgrade path below, and upgrade GitLab -accordingly, while also consulting the -[version-specific upgrade instructions](#version-specific-upgrading-instructions): - -- GitLab 8: `8.11.Z` > `8.12.0` > `8.17.7` -- GitLab 9: `9.0.13` > `9.5.10` -- GitLab 10: `10.0.7` > `10.8.7` -- GitLab 11: `11.0.6` > [`11.11.8`](#1200) -- GitLab 12: `12.0.12` > [`12.1.17`](#1210) > [`12.10.14`](#12100) -- GitLab 13: `13.0.14` > [`13.1.11`](#1310) > [`13.8.8`](#1388) > [`13.12.15`](#13120) -- GitLab 14: [`14.0.12`](#1400) > [`14.3.6`](#1430) > [`14.9.5`](#1490) > [`14.10.5`](#14100) -- GitLab 15: [`15.0.5`](#1500) > [`15.1.6`](#1510) (for GitLab instances with multiple web nodes) > [`15.4.6`](#1540) > [`15.11.x`](#15110) -- GitLab 16: [latest `16.Y.Z`](https://gitlab.com/gitlab-org/gitlab/-/releases) +1. Check for [required upgrade stops](#required-upgrade-stops). +1. Consult the [version-specific upgrade instructions](#version-specific-upgrading-instructions). +1. Upgrade GitLab accordingly. NOTE: When not explicitly specified, upgrade GitLab to the latest available patch @@ -209,6 +200,25 @@ be fixes for issues relating to the upgrade process. Specifically around a [major version](#upgrading-to-a-new-major-version), crucial database schema and migration patches may be included in the latest patch releases. +### Required upgrade stops + +Required upgrade stops are versions of GitLab that you must upgrade to before upgrading to later versions. Required +upgrade stops allow required background migrations to finish. + +During GitLab 16.x, we are scheduling two or three required upgrade stops. We will give at least two milestones of +notice when we schedule a required upgrade stop. + +The first planned required upgrade stop is scheduled for GitLab 16.3. If nothing is introduced requiring an upgrade stop, +GitLab 16.3 will be treated as a regular upgrade. + +### Earlier GitLab versions + +For information on upgrading to earlier GitLab versions, see the [documentation archives](https://archives.docs.gitlab.com). +The versions of the documentation in the archives contain version-specific information for even earlier versions of GitLab. + +For example, the [documentation for GitLab 15.11](https://archives.docs.gitlab.com/15.11/ee/update/#upgrade-paths) +contains information on versions back to GitLab 12. + ## Upgrading between editions GitLab comes in two flavors: [Community Edition](https://about.gitlab.com/features/#community) which is MIT licensed, @@ -1393,8 +1403,6 @@ Other issues: **GitLab 13.2 or older** directly to 14.0, this is [unsupported](#upgrading-to-a-new-major-version). You should instead follow a [supported upgrade path](#upgrade-paths). - See [Maintenance mode issue in GitLab 13.9 to 14.4](#maintenance-mode-issue-in-gitlab-139-to-144). -- See [Custom Rack Attack initializers](#custom-rack-attack-initializers) if you persist your own custom Rack Attack - initializers during upgrades. #### Upgrading to later 14.Y releases @@ -1406,263 +1414,6 @@ Other issues: 1. [Batched background migrations must finish](background_migrations.md#batched-background-migrations) before you upgrade to a later version [and may take longer than usual](#1400). -### 13.12.0 - -- See [Maintenance mode issue in GitLab 13.9 to 14.4](#maintenance-mode-issue-in-gitlab-139-to-144). - -- Check the GitLab database [has no references to legacy storage](../administration/raketasks/storage.md#on-legacy-storage). - The GitLab 14.0 pre-install check causes the package update to fail if unmigrated data exists: - - ```plaintext - Checking for unmigrated data on legacy storage - - Legacy storage is no longer supported. Please migrate your data to hashed storage. - ``` - -### 13.11.0 - -- Git 2.31.x and later is required. We recommend you use the - [Git version provided by Gitaly](../install/installation.md#git). - -- See [Maintenance mode issue in GitLab 13.9 to 14.4](#maintenance-mode-issue-in-gitlab-139-to-144). - -- GitLab 13.11 includes a faulty background migration ([`RescheduleArtifactExpiryBackfillAgain`](https://gitlab.com/gitlab-org/gitlab/-/blob/ccc70031b843ff8cff1185988c2e472a521c2701/db/post_migrate/20210413132500_reschedule_artifact_expiry_backfill_again.rb)) - that incorrectly sets the `expire_at` column in the `ci_job_artifacts` database table. - Incorrect `expire_at` values can potentially cause data loss. - - To prevent this risk of data loss, you must remove the content of the `RescheduleArtifactExpiryBackfillAgain` - migration, which makes it a no-op migration. You can repeat the changes from the - [commit that makes the migration no-op in 14.9 and later](https://gitlab.com/gitlab-org/gitlab/-/blob/42c3dfc5a1c8181767bbb5c76e7c5fa6fefbbc2b/db/post_migrate/20210413132500_reschedule_artifact_expiry_backfill_again.rb). - For more information, see [how to disable a data migration](../development/database/deleting_migrations.md#how-to-disable-a-data-migration). - -### 13.10.0 - -See [Maintenance mode issue in GitLab 13.9 to 14.4](#maintenance-mode-issue-in-gitlab-139-to-144). - -### 13.9.0 - -- We've detected an issue [with a column rename](https://gitlab.com/gitlab-org/gitlab/-/issues/324160) - that prevents upgrades to GitLab 13.9.0, 13.9.1, 13.9.2, and 13.9.3 when following the zero-downtime steps. It is necessary - to perform the following additional steps for the zero-downtime upgrade: - - 1. Before running the final `sudo gitlab-rake db:migrate` command on the deploy node, - execute the following queries using the PostgreSQL console (or `sudo gitlab-psql`) - to drop the problematic triggers: - - ```sql - drop trigger trigger_e40a6f1858e6 on application_settings; - drop trigger trigger_0d588df444c8 on application_settings; - drop trigger trigger_1572cbc9a15f on application_settings; - drop trigger trigger_22a39c5c25f3 on application_settings; - ``` - - 1. Run the final migrations: - - ```shell - sudo gitlab-rake db:migrate - ``` - - If you have already run the final `sudo gitlab-rake db:migrate` command on the deploy node and have - encountered the [column rename issue](https://gitlab.com/gitlab-org/gitlab/-/issues/324160), you - see the following error: - - ```shell - -- remove_column(:application_settings, :asset_proxy_whitelist) - rake aborted! - StandardError: An error has occurred, all later migrations canceled: - PG::DependentObjectsStillExist: ERROR: cannot drop column asset_proxy_whitelist of table application_settings because other objects depend on it - DETAIL: trigger trigger_0d588df444c8 on table application_settings depends on column asset_proxy_whitelist of table application_settings - ``` - - To work around this bug, follow the previous steps to complete the upgrade. - More details are available [in this issue](https://gitlab.com/gitlab-org/gitlab/-/issues/324160). - -- See [Maintenance mode issue in GitLab 13.9 to 14.4](#maintenance-mode-issue-in-gitlab-139-to-144). - -- For GitLab Enterprise Edition customers, we noticed an issue when [subscription expiration is upcoming, and you create new subgroups and projects](https://gitlab.com/gitlab-org/gitlab/-/issues/322546). If you fall under that category and get 500 errors, you can work around this issue: - - 1. SSH into you GitLab server, and open a Rails console: - - ```shell - sudo gitlab-rails console - ``` - - 1. Disable the following features: - - ```ruby - Feature.disable(:subscribable_subscription_banner) - Feature.disable(:subscribable_license_banner) - ``` - - 1. Restart Puma or Unicorn: - - ```shell - #For installations using Puma - sudo gitlab-ctl restart puma - - #For installations using Unicorn - sudo gitlab-ctl restart unicorn - ``` - -### 13.8.8 - -GitLab 13.8 includes a background migration to address [an issue with duplicate service records](https://gitlab.com/gitlab-org/gitlab/-/issues/290008). If duplicate services are present, this background migration must complete before a unique index is applied to the services table, which was [introduced in GitLab 13.9](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52563). Upgrades from GitLab 13.8 and earlier to later versions must include an intermediate upgrade to GitLab 13.8.8 and [must wait until the background migrations complete](background_migrations.md) before proceeding. - -If duplicate services are still present, an upgrade to 13.9.x or later results in a failed upgrade with the following error: - -```console -PG::UniqueViolation: ERROR: could not create unique index "index_services_on_project_id_and_type_unique" -DETAIL: Key (project_id, type)=(NNN, ServiceName) is duplicated. -``` - -### 13.6.0 - -Ruby 2.7.2 is required. GitLab does not start with Ruby 2.6.6 or older versions. - -The required Git version is Git v2.29 or later. - -GitLab 13.6 includes a -[background migration `BackfillJiraTrackerDeploymentType2`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/46368) -that may remain stuck permanently in a **pending** state despite completion of work -due to a bug. - -To clean up this stuck job, run the following in the [GitLab Rails Console](../administration/operations/rails_console.md): - -```ruby -Gitlab::Database::BackgroundMigrationJob.pending.where(class_name: "BackfillJiraTrackerDeploymentType2").find_each do |job| - puts Gitlab::Database::BackgroundMigrationJob.mark_all_as_succeeded("BackfillJiraTrackerDeploymentType2", job.arguments) -end -``` - -### 13.4.0 - -GitLab 13.4.0 includes a background migration to [move all remaining repositories in legacy storage to hashed storage](../administration/raketasks/storage.md#migrate-to-hashed-storage). There are [known issues with this migration](https://gitlab.com/gitlab-org/gitlab/-/issues/259605) which are fixed in GitLab 13.5.4 and later. If possible, skip 13.4.0 and upgrade to 13.5.4 or later instead. The migration can take quite a while to run, depending on how many repositories must be moved. Be sure to check that all background migrations have completed before upgrading further. - -### 13.3.0 - -The recommended Git version is Git v2.28. The minimum required version of Git -v2.24 remains the same. - -### 13.2.0 - -GitLab installations that have multiple web nodes must be -[upgraded to 13.1](#1310) before upgrading to 13.2 (and later) due to a -breaking change in Rails that can result in authorization issues. - -GitLab 13.2.0 [remediates](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/35492) an [email verification bypass](https://about.gitlab.com/releases/2020/05/27/security-release-13-0-1-released/). -After upgrading, if some of your users are unexpectedly encountering 404 or 422 errors when signing in, -or "blocked" messages when using the command line, -their accounts may have been un-confirmed. -In that case, ask them to check their email for a re-confirmation link. -For more information, see our discussion of [Email confirmation issues](../user/upgrade_email_bypass.md). - -GitLab 13.2.0 relies on the `btree_gist` extension for PostgreSQL. For installations with an externally managed PostgreSQL setup, make sure to -[install the extension manually](https://www.postgresql.org/docs/11/sql-createextension.html) before upgrading GitLab if the database user for GitLab -is not a superuser. This is not necessary for installations using a GitLab managed PostgreSQL database. - -### 13.1.0 - -In 13.1.0, you must upgrade to either: - -- At least Git v2.24 (previously, the minimum required version was Git v2.22). -- The recommended Git v2.26. - -Failure to do so results in internal errors in the Gitaly service in some RPCs due -to the use of the new `--end-of-options` Git flag. - -Additionally, in GitLab 13.1.0, the version of -[Rails was upgraded from 6.0.3 to 6.0.3.1](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/33454). -The Rails upgrade included a change to CSRF token generation which is -not backwards-compatible - GitLab servers with the new Rails version -generate CSRF tokens that are not recognizable by GitLab servers -with the older Rails version - which could cause non-GET requests to -fail for [multi-node GitLab installations](zero_downtime.md#multi-node--ha-deployment). - -So, if you are using multiple Rails servers and specifically upgrading from 13.0, -all servers must first be upgraded to 13.1.Z before upgrading to 13.2.0 or later: - -1. Ensure all GitLab web nodes are running GitLab 13.1.Z. -1. Enable the `global_csrf_token` feature flag to enable new - method of CSRF token generation: - - ```ruby - Feature.enable(:global_csrf_token) - ``` - -1. Only then, continue to upgrade to later versions of GitLab. - -#### Custom Rack Attack initializers - -From GitLab 13.1, custom Rack Attack initializers (`config/initializers/rack_attack.rb`) are replaced with initializers -supplied with GitLab during upgrades. You should use these GitLab-supplied initializers. - -If you persist your own Rack Attack initializers between upgrades, you might -[get `500` errors](https://gitlab.com/gitlab-org/gitlab/-/issues/334681) when [upgrading to GitLab 14.0 and later](#1400). - -For **self-compiled (source) installations**, the Rack Attack initializer on GitLab -was renamed from [`config/initializers/rack_attack_new.rb` to `config/initializers/rack_attack.rb`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/33072). -The rename was part of [deprecating Rack Attack throttles on Omnibus GitLab](https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/4750). - -If `rack_attack.rb` has been created on your installation, consider creating a backup before updating: - -```shell -cd /home/git/gitlab -cp config/initializers/rack_attack.rb config/initializers/rack_attack_backup.rb -``` - -### 12.10.0 - -- The final patch release (12.10.14) - [has a regression affecting maven package uploads](https://about.gitlab.com/releases/2020/07/06/critical-security-release-gitlab-13-1-3-released/#maven-package-upload-broken-in-121014). - If you use this feature and must stay on 12.10 while preparing to upgrade to 13.0: - - - Upgrade to 12.10.13 instead. - - Upgrade to 13.0.14 as soon as possible. - -- [GitLab 13.0 requires PostgreSQL 11](https://about.gitlab.com/releases/2020/05/22/gitlab-13-0-released/#postgresql-11-is-now-the-minimum-required-version-to-install-gitlab). - - - 12.10 is the final release that shipped with PostgreSQL 9.6, 10, and 11. - - You should make sure that your database is PostgreSQL 11 on GitLab 12.10 before upgrading to 13.0. This upgrade requires downtime. - -### 12.2.0 - -In 12.2.0, we enabled Rails' authenticated cookie encryption. Old sessions are -automatically upgraded. - -However, session cookie downgrades are not supported. So after upgrading to 12.2.0, -any downgrades would result to all sessions being invalidated and users are logged out. - -### 12.1.0 - -- If you are planning to upgrade from `12.0.Z` to `12.10.Z`, it is necessary to - perform an intermediary upgrade to `12.1.Z` before upgrading to `12.10.Z` to - avoid issues like [#215141](https://gitlab.com/gitlab-org/gitlab/-/issues/215141). - -- Support for MySQL was removed in GitLab 12.1. Existing users using GitLab with - MySQL/MariaDB should - [migrate to PostgreSQL](https://gitlab.com/gitlab-org/gitlab/-/blob/v15.6.0-ee/doc/update/mysql_to_postgresql.md) - before upgrading. - -### 12.0.0 - -In 12.0.0 we made various database related changes. These changes require that -users first upgrade to the latest 11.11 patch release. After upgraded to 11.11.Z, -users can upgrade to 12.0.Z. Failure to do so may result in database migrations -not being applied, which could lead to application errors. - -It is also required that you upgrade to 12.0.Z before moving to a later version -of 12.Y. - -Example 1: you are currently using GitLab 11.11.8, which is the latest patch -release for 11.11.Z. You can upgrade as usual to 12.0.Z. - -Example 2: you are currently using a version of GitLab 10.Y. To upgrade, first -upgrade to the last 10.Y release (10.8.7) then the last 11.Y release (11.11.8). -After upgraded to 11.11.8 you can safely upgrade to 12.0.Z. - -See our [documentation on upgrade paths](../policy/maintenance.md#upgrade-recommendations) -for more information. - ### User profile data loss bug in 15.9.x There is a database migration bug in 15.9.0, 15.9.1, and 15.9.2 that can cause data loss from the user profile fields `linkedin`, `twitter`, `skype`, `website_url`, `location`, and `organization`. diff --git a/doc/update/upgrading_from_source.md b/doc/update/upgrading_from_source.md index d9641e18e8e..21f509ebd33 100644 --- a/doc/update/upgrading_from_source.md +++ b/doc/update/upgrading_from_source.md @@ -327,10 +327,6 @@ cd /home/git/gitlab sudo -u git -H bundle exec rake "gitlab:workhorse:install[/home/git/gitlab-workhorse]" RAILS_ENV=production ``` -NOTE: -If you get any errors concerning Rack attack, see the [13.1](index.md#custom-rack-attack-initializers) -specific changes. - ### 13. Update Gitaly If Gitaly is located on its own server, or you use Gitaly Cluster, see [Gitaly or Gitaly Cluster](zero_downtime.md#gitaly-or-gitaly-cluster) |