[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_DESCRIPTION or DEPLOYMENT_DESCRIPTION_OVERRIDE env 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.

Edited by Francois Eleouet

Merge request reports

Loading