[Rework CI] part3 Provide control on deployment variants to be tested
What does this MR do and why?
This MR revisits how deployment variants are made available into CI pipelines. The underlying idea is to give more control to developers for choosing which variant to test.
Now the script .gitlab/ci/scripts/generate_deployment_jobs.py is run in CI and dynamically generates a new child pipeline containing deployment variants to test:
- For MR pipelines, deployment variant are directly set in MR description using tick boxes
- For schedule or cross-project pipelines
DEPLOYMENT_DESCRIPTIONorDEPLOYMENT_DESCRIPTION_OVERRIDEenv variables should be used - Default variants are defined in default MR template
Here are the main changes that may impact user CI experience:
- A new layer of child pipeline is created.
In MR, deployment variant are still manual but 'blocking'. It mean that all deployments variants need to be green for the whole pipeline to be green (and mergeable)- Default MR template provides a limited list of variant, but it's not exhaustive and should be seen as examples. Thus it is possible for user to add any variant he may want to test.
- Currently variants choices are limited to 9. (To fit with current upgrade schedule pipelines)
Related reference(s)
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
|
|
| Node OS |
ubuntu, suse
|
|
| Deployment Options |
light-deploy, oci, ha, misc
|
|
| Pipeline Scenarios |
rolling-update, mgmt-rolling-update, sylva-upgrade, simple-update, preview
|
-
🎬 preview☁️ capd🚀 kadm🐧 ubuntu🛠️ oci -
🎬 preview☁️ capo🚀 rke2🐧 suse🛠️ oci -
🎬 preview☁️ capm3🚀 rke2🐧 suse -
☁️ capd🚀 kadm🛠️ oci,light-deploy🎸 ubuntu -
☁️ capd🚀 rke2🛠️ light-deploy🐧 suse -
☁️ capo🚀 rke2🎸 ubuntu -
☁️ capo🚀 kadm🛠️ oci🎸 suse -
☁️ capo🚀 rke2🎬 rolling-update🛠️ ha🐧 ubuntu -
☁️ capo🚀 rke2🎬 mgmt-rolling-update🛠️ ha,misc🐧 suse -
☁️ capo🚀 rke2🎬 sylva-upgrade🛠️ misc🎸 ubuntu -
☁️ capm3🚀 rke2🎸 suse -
☁️ capm3🚀 kubeadm🛠️ oci🎸 ubuntu -
☁️ capm3🚀 rke2🎬 sylva-upgrade🛠️ misc,ha🐧 suse -
☁️ capm3🚀 rke2🎬 mgmt-rolling-update🛠️ ha,misc🐧 ubuntu -
☁️ capm3🚀 kubeadm🎬 rolling-update🛠️ ha🐧 suse -
☁️ capm3🚀 rke3🎬 sylva-upgrade-from-1.1.1🛠️ ha🐧 suse -
☁️ capo🚀 rke2🎬 sylva-upgrade-from-1.1.1🛠️ ha🐧 suse -
☁️ capm3🚀 kadm🎬 sylva-upgrade🛠️ ha🐧 ubuntu -
☁️ capm3🚀 kadm🎬 sylva-upgrade🛠️ ha,misc🐧 ubuntu
Be aware: after configuration change, pipeline is not triggered automatically. Please run it manually or push new code.