Dynamic upgrade scenario
What does this MR do and why?
Adding special patterns for dynamic upgrade scenarios
These are not explicitly defined in the .deployment-base file but are supported by the script
supported patterns are:
- upgrade-from-<initial_revision> (implicit: the update revision will be the current commit)
- upgrade-to-<update_revision> (implicit: the initial revision will be the current commit)
revision format can include alphanumeric characters, dots, dashes and slashes
- e.g., upgrade-from-1.5.x
- e.g., upgrade-to-release/2.0
Theses revision are treated as GIT revision during the deployment and must exist in git.
Special patterns are also supported:
- upgrade-from-prev-tag
- upgrade-from-prev-release-branch
- prev-tag will try to find the latest tag on the CI_MERGE_REQUEST_TARGET_BRANCH_NAME branch
- prev-release-branch will try to find the previous release branch based on the CI_MERGE_REQUEST_TARGET_BRANCH_NAME branch
(e.g. for
mainthe previous release branch is the most recentrelease-xbranch, and forrelease-1.5the previous release branch isrelease-1.4)
I also changed the way we defined the allowed scenario, we'll now merge the override via env var and the special pattern + all locally defined scenario
Related reference(s)
close #3033 (closed)
Test coverage
CI configuration
Below you can choose test deployment variants to run in this MR's CI.
Click to open to CI configuration
Legend:
| Icon | Meaning | Available values |
|---|---|---|
| Infra Provider |
capd, capo, capm3
|
|
| Bootstrap Provider |
kubeadm (alias kadm), rke2, okd, ck8s
|
|
| Node OS |
ubuntu, suse, na, leapmicro
|
|
| Deployment Options |
light-deploy, dev-sources, ha, misc, maxsurge-0, logging, no-logging, cilium
|
|
| Pipeline Scenarios | Available scenario list and description |
-
🎬 preview☁️ capd🚀 kadm🐧 ubuntu -
🎬 preview☁️ capo🚀 rke2🐧 suse -
🎬 preview☁️ capm3🚀 rke2🐧 ubuntu -
☁️ capd🚀 kadm🛠️ light-deploy🐧 ubuntu -
☁️ capd🚀 rke2🛠️ light-deploy🐧 suse -
☁️ capo🚀 rke2🐧 suse🎬 upgrade-from-release-1.4-to-release-1.5 -
☁️ capo🚀 rke2🐧 leapmicro🎬 upgrade-from-prev-tag -
☁️ capo🚀 kadm🐧 ubuntu🎬 upgrade-from-prev-release-branch -
☁️ capo🚀 rke2🎬 rolling-update🛠️ ha🐧 ubuntu -
☁️ capo🚀 kadm🎬 wkld-k8s-upgrade🐧 ubuntu -
☁️ capo🚀 rke2🎬 rolling-update-no-wkld🛠️ ha🐧 suse -
☁️ capo🚀 rke2🎬 sylva-upgrade-from-1.5.x🛠️ ha🐧 ubuntu -
☁️ capo🚀 rke2🎬 sylva-upgrade-from-1.5.x🛠️ ha,misc🐧 ubuntu -
☁️ capo🚀 rke2🛠️ ha,misc🐧 ubuntu -
☁️ capo🚀 rke2🛠️ ha,misc🐧 suse -
☁️ capm3🚀 rke2🐧 suse🎬 upgrade-to-release-1.5 -
☁️ capm3🚀 rke2🐧 suse🎬 upgrade-from-release-1.5 -
☁️ capm3🚀 rke2🐧 suse🎬 upgrade-from-prev-tag -
☁️ capm3🚀 rke2🐧 suse🎬 upgrade-from-prev-release-branch -
☁️ capm3🚀 kadm🐧 ubuntu -
☁️ capm3🚀 ck8s🐧 ubuntu -
☁️ capm3🚀 kadm🎬 rolling-update-no-wkld🛠️ ha,misc🐧 ubuntu -
☁️ capm3🚀 rke2🎬 wkld-k8s-upgrade🛠️ ha🐧 suse -
☁️ capm3🚀 kadm🎬 rolling-update🛠️ ha🐧 ubuntu -
☁️ capm3🚀 rke2🎬 sylva-upgrade-from-1.5.x🛠️ ha🐧 suse -
☁️ capm3🚀 rke2🛠️ misc,ha🐧 suse -
☁️ capm3🚀 rke2🎬 sylva-upgrade-from-1.5.x🛠️ ha,misc🐧 suse -
☁️ capm3🚀 kadm🎬 rolling-update🛠️ ha🐧 suse -
☁️ capm3🚀 ck8s🎬 rolling-update🛠️ ha🐧 ubuntu -
☁️ capm3🚀 rke2|okd🎬 no-update🐧 ubuntu|na
Global config for deployment pipelines
-
autorun pipelines -
allow failure on pipelines -
record sylvactl events
Notes:
- Enabling
autorunwill make deployment pipelines to be run automatically without human interaction - Disabling
allow failurewill make deployment pipelines mandatory for pipeline success. - if both
autorunandallow failureare disabled, deployment pipelines will need manual triggering but will be blocking the pipeline
Be aware: after configuration change, pipeline is not triggered automatically.
Please run it manually (by clicking the run pipeline button in Pipelines tab) or push new code.