Add upgrade_path.yml to control required stops
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
- gitlab-qa: gitlab-qa!1326 (merged)
- upgrade path tool: TBD
- upgrade tester: https://gitlab.com/gitlab-org/quality/upgrade-tester/-/merge_requests/22
- pg_dump generator: gitlab-org/quality/pg-dump-generator!31 (merged)
- release tools: release-tools!3148 (merged)
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