Skip to content

Add upgrade_path.yml to control required stops

João Alexandre Cunha requested to merge jcunha-add-upgrade-path into master

What does this MR do and why?

Add upgrade_path.yml to control required stops

The former upgrade-path.yml was hosted under the Support toolbox upgrade-path project: https://gitlab.com/gitlab-com/support/toolbox/upgrade-path/-/blob/f1088b130ffdd876961753de3f634c6fa38f78f0/upgrade-path.yml

We've decied to have this file as a SSoT under the gitlab-org/gitlab project instead, thus we're moving it here.

This file currently has the main purposes:

  • Identify all the required stops in an upgrade path that user might have to pass through when upgrade their application.
  • The toolbox upgrade path tool uses this SSoT to populate the upgrade path tool, which is a helper for the users to quickly identify where they sit in the path.
  • We have GitLab upgrade tests that depend on it.
  • The release tools bot reads this file to identify when a new upgrade stop has been added, then open a merge request on Omnibus to add this information there. This information is then used during Omnibus upgrades to detect whether the user is trying to upgrade from a non-acceptable version.
  • Similar to the above, the GitLab chart also has this check. It's just not yet automatically updated via release tools.

Future usages of this file:

  • The release tools bot will also read this file and update the Chart repo. (similar to what it does for Omnibus)
  • Maybe the database team can directly read from this file to support some automation regarding to schema validation, and proper migration squashing. Also, the upgrade path is usually tied to long running background migrations. So when a reviewer identifies a long running background migration, they might wanna propose a required stop at that point, before accepting the long running migration.
  • We could also update our documentation automatically based on it.

Related Issues

Move upgrade path information to `gitlab-org/gi... (#455239 - closed)

MRs to update other tools that use the upgrade-path

MR acceptance checklist

Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by João Alexandre Cunha

Merge request reports