Introduce target platform πŸ—οΈ for CI deployments

What does this MR do and why?

This MR introduce platform selector (πŸ—οΈ) for deployment jobs.

In the past, we had one test platform for each infra provider: capd was tested on gitlab-runners, capo in Orange hosted Openstack and capm3 was tested on Equinix Metal with libvirt-metal. We naturally used the infra provider selector (☁️) as platform selector.
We are now introducing capm3 test on real baremetal servers and we see that we cannot longer do that. Even if a deployment platform it strongly linked to the infra provider, we need a platform selector.

So with this MR we have the possibility to select a target deployment platform firstly for capm3:

  • πŸ—οΈ virt-equinix triggers capm3-virt test on Equinix Metal
  • πŸ—οΈ real-bmh triggers capm3 test on new real baremetal servers
  • without selector the default platform is used => it is equivalent to πŸ—οΈ virt-equinix

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
🟒 Enabled units Any available units name, by default apply to management and workload cluster. Can be prefixed by mgmt: or wkld: to be applied only to a specific cluster type
  • 🎬 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

  • ☁️ capo πŸš€ rke2 🐧 leapmicro

  • ☁️ capo πŸš€ kadm 🐧 ubuntu

  • ☁️ capo πŸš€ kadm 🐧 ubuntu 🟒 neuvector,mgmt:harbor

  • ☁️ 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,openbao🐧 suse

  • ☁️ capo πŸš€ rke2 🐧 suse 🎬 upgrade-from-prev-tag

  • ☁️ capm3 πŸš€ rke2 🐧 suse πŸ—οΈ real-bmh

  • ☁️ capm3 πŸš€ kadm 🐧 ubuntu πŸ—οΈ virt-equinix

  • ☁️ 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

  • ☁️ capm3 πŸš€ rke2 🐧 suse 🎬 upgrade-from-release-1.5

  • ☁️ capm3 πŸš€ rke2 🐧 suse 🎬 upgrade-to-main

Global config for deployment pipelines

  • autorun pipelines
  • allow failure on pipelines
  • record sylvactl events

Notes:

  • Enabling autorun will make deployment pipelines to be run automatically without human interaction
  • Disabling allow failure will make deployment pipelines mandatory for pipeline success.
  • if both autorun and allow failure are 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.

Edited by MΓ©dΓ©ric de Verdilhac

Merge request reports

Loading