add tools/check-sylva-units-k8s-versions.py
This MR introduces a CI tool that checks the consistency of things related to k8s version:
-
the version of k8s bundled in OCI artifacts listed in sylva_diskimagebuilder_images, and other related datastructures, needs to be consistent with the version we list in k8s_version_map (or cluster.version)
-
for RKE2, these k8s versions are then used to select versions of some specific Helm charts (calico, coredns, ingress-nginx, multus) ; the versions need to be consistent with the ones supported for that RKE2 version (as specified at
https://github.com/rancher/rke2/blob/ $version /charts/chart_versions.yaml)
(for the implementation, some stuff was borrowed from !4078)
Example output (current, ok):
tools/check-sylva-units-k8s-versions.py
2025-09-30 18:04:56,831 INFO: getting OCI artifact oci://registry.gitlab.com/sylva-projects/sylva-elements/kiwi-imagebuilder/leapmicro-6-0-plain-rke2-1-30:0.3.1
2025-09-30 18:04:57,980 INFO: OS image oci://registry.gitlab.com/sylva-projects/sylva-elements/kiwi-imagebuilder/leapmicro-6-0-plain-rke2-1-30:0.3.1: 1.30.14+rke2r2 rke2
2025-09-30 18:04:57,980 INFO: getting OCI artifact oci://registry.gitlab.com/sylva-projects/sylva-elements/kiwi-imagebuilder/leapmicro-6-0-plain-rke2-1-31:0.3.1
2025-09-30 18:04:59,140 INFO: OS image oci://registry.gitlab.com/sylva-projects/sylva-elements/kiwi-imagebuilder/leapmicro-6-0-plain-rke2-1-31:0.3.1: 1.31.13+rke2r1 rke2
2025-09-30 18:04:59,140 INFO: getting OCI artifact oci://registry.gitlab.com/sylva-projects/sylva-elements/kiwi-imagebuilder/leapmicro-6-0-plain-rke2-1-32:0.3.1
2025-09-30 18:05:00,321 INFO: OS image oci://registry.gitlab.com/sylva-projects/sylva-elements/kiwi-imagebuilder/leapmicro-6-0-plain-rke2-1-32:0.3.1: 1.32.9+rke2r1 rke2
2025-09-30 18:05:00,321 INFO: getting OCI artifact oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/opensuse-15-6-hardened-rke2-1-30:0.6.2
2025-09-30 18:05:01,621 INFO: OS image oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/opensuse-15-6-hardened-rke2-1-30:0.6.2: 1.30.14+rke2r2 rke2
2025-09-30 18:05:01,621 INFO: getting OCI artifact oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/opensuse-15-6-hardened-rke2-1-31:0.6.2
2025-09-30 18:05:02,820 INFO: OS image oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/opensuse-15-6-hardened-rke2-1-31:0.6.2: 1.31.13+rke2r1 rke2
2025-09-30 18:05:02,820 INFO: getting OCI artifact oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/opensuse-15-6-hardened-rke2-1-32:0.6.2
2025-09-30 18:05:04,012 INFO: OS image oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/opensuse-15-6-hardened-rke2-1-32:0.6.2: 1.32.9+rke2r1 rke2
2025-09-30 18:05:04,012 INFO: getting OCI artifact oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/opensuse-15-6-plain-kubeadm-1-30:0.6.2
2025-09-30 18:05:05,201 INFO: OS image oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/opensuse-15-6-plain-kubeadm-1-30:0.6.2: 1.30.14 kubeadm
2025-09-30 18:05:05,201 INFO: getting OCI artifact oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/opensuse-15-6-plain-kubeadm-1-31:0.6.2
2025-09-30 18:05:06,399 INFO: OS image oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/opensuse-15-6-plain-kubeadm-1-31:0.6.2: 1.31.13 kubeadm
2025-09-30 18:05:06,399 INFO: getting OCI artifact oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/opensuse-15-6-plain-kubeadm-1-32:0.6.2
2025-09-30 18:05:07,627 INFO: OS image oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/opensuse-15-6-plain-kubeadm-1-32:0.6.2: 1.32.9 kubeadm
2025-09-30 18:05:07,627 INFO: getting OCI artifact oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/opensuse-15-6-plain-rke2-1-30:0.6.2
2025-09-30 18:05:08,886 INFO: OS image oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/opensuse-15-6-plain-rke2-1-30:0.6.2: 1.30.14+rke2r2 rke2
2025-09-30 18:05:08,886 INFO: getting OCI artifact oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/opensuse-15-6-plain-rke2-1-31:0.6.2
2025-09-30 18:05:10,055 INFO: OS image oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/opensuse-15-6-plain-rke2-1-31:0.6.2: 1.31.13+rke2r1 rke2
2025-09-30 18:05:10,055 INFO: getting OCI artifact oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/opensuse-15-6-plain-rke2-1-32:0.6.2
2025-09-30 18:05:11,231 INFO: OS image oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/opensuse-15-6-plain-rke2-1-32:0.6.2: 1.32.9+rke2r1 rke2
2025-09-30 18:05:11,231 INFO: getting OCI artifact oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/ubuntu-noble-hardened-rke2-1-30:0.6.2
2025-09-30 18:05:12,516 INFO: OS image oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/ubuntu-noble-hardened-rke2-1-30:0.6.2: 1.30.14+rke2r2 rke2
2025-09-30 18:05:12,516 INFO: getting OCI artifact oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/ubuntu-noble-hardened-rke2-1-31:0.6.2
2025-09-30 18:05:13,705 INFO: OS image oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/ubuntu-noble-hardened-rke2-1-31:0.6.2: 1.31.13+rke2r1 rke2
2025-09-30 18:05:13,705 INFO: getting OCI artifact oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/ubuntu-noble-hardened-rke2-1-32:0.6.2
2025-09-30 18:05:15,139 INFO: OS image oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/ubuntu-noble-hardened-rke2-1-32:0.6.2: 1.32.9+rke2r1 rke2
2025-09-30 18:05:15,139 INFO: getting OCI artifact oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/ubuntu-noble-plain-ck8s-1-31:0.6.2
2025-09-30 18:05:16,320 INFO: OS image oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/ubuntu-noble-plain-ck8s-1-31:0.6.2: 1.31.6 ck8s
2025-09-30 18:05:16,320 INFO: getting OCI artifact oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/ubuntu-noble-plain-ck8s-1-32:0.6.2
2025-09-30 18:05:17,480 INFO: OS image oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/ubuntu-noble-plain-ck8s-1-32:0.6.2: 1.32.5 ck8s
2025-09-30 18:05:17,480 INFO: getting OCI artifact oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/ubuntu-noble-plain-kubeadm-1-30:0.6.2
2025-09-30 18:05:18,693 INFO: OS image oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/ubuntu-noble-plain-kubeadm-1-30:0.6.2: 1.30.14 kubeadm
2025-09-30 18:05:18,693 INFO: getting OCI artifact oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/ubuntu-noble-plain-kubeadm-1-31:0.6.2
2025-09-30 18:05:19,889 INFO: OS image oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/ubuntu-noble-plain-kubeadm-1-31:0.6.2: 1.31.13 kubeadm
2025-09-30 18:05:19,889 INFO: getting OCI artifact oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/ubuntu-noble-plain-kubeadm-1-32:0.6.2
2025-09-30 18:05:21,219 INFO: OS image oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/ubuntu-noble-plain-kubeadm-1-32:0.6.2: 1.32.9 kubeadm
2025-09-30 18:05:21,219 INFO: getting OCI artifact oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/ubuntu-noble-plain-rke2-1-30:0.6.2
2025-09-30 18:05:22,432 INFO: OS image oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/ubuntu-noble-plain-rke2-1-30:0.6.2: 1.30.14+rke2r2 rke2
2025-09-30 18:05:22,432 INFO: getting OCI artifact oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/ubuntu-noble-plain-rke2-1-31:0.6.2
2025-09-30 18:05:23,598 INFO: OS image oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/ubuntu-noble-plain-rke2-1-31:0.6.2: 1.31.13+rke2r1 rke2
2025-09-30 18:05:23,598 INFO: getting OCI artifact oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/ubuntu-noble-plain-rke2-1-32:0.6.2
2025-09-30 18:05:24,777 INFO: OS image oci://registry.gitlab.com/sylva-projects/sylva-elements/diskimage-builder/ubuntu-noble-plain-rke2-1-32:0.6.2: 1.32.9+rke2r1 rke2
2025-09-30 18:05:24,780 INFO: Checking consistency for rke2 1.30.14+rke2r2
2025-09-30 18:05:26,836 INFO: k8s_version_map[1.30] matches
2025-09-30 18:05:27,218 INFO: calico Helm chart version check
2025-09-30 18:05:27,218 INFO: rke2-calico v3.30.100 selected ?=? RKE2 supported version: v3.30.100
2025-09-30 18:05:27,218 INFO: calico-crd Helm chart version check
2025-09-30 18:05:27,219 INFO: rke2-calico-crd v3.30.100 selected ?=? RKE2 supported version: v3.30.100
2025-09-30 18:05:27,219 INFO: ingress-nginx Helm chart version check
2025-09-30 18:05:27,219 INFO: rke2-ingress-nginx 4.12.401 selected ?=? RKE2 supported version: 4.12.401
2025-09-30 18:05:27,219 INFO: coredns Helm chart version check
2025-09-30 18:05:27,219 INFO: rke2-coredns 1.42.302 selected ?=? RKE2 supported version: 1.42.302
2025-09-30 18:05:27,219 INFO: multus Helm chart version check
2025-09-30 18:05:27,219 INFO: rke2-multus v4.2.106 selected ?=? RKE2 supported version: v4.2.106
2025-09-30 18:05:27,219 INFO: Checking consistency for kubeadm 1.30.14
2025-09-30 18:05:29,263 INFO: k8s_version_map[1.30] matches
2025-09-30 18:05:29,263 INFO: Checking consistency for rke2 1.31.13+rke2r1
2025-09-30 18:05:31,326 INFO: k8s_version_map[1.31] matches
2025-09-30 18:05:31,714 INFO: calico Helm chart version check
2025-09-30 18:05:31,714 INFO: rke2-calico v3.30.300 selected ?=? RKE2 supported version: v3.30.300
2025-09-30 18:05:31,714 INFO: calico-crd Helm chart version check
2025-09-30 18:05:31,714 INFO: rke2-calico-crd v3.30.300 selected ?=? RKE2 supported version: v3.30.300
2025-09-30 18:05:31,714 INFO: ingress-nginx Helm chart version check
2025-09-30 18:05:31,714 INFO: rke2-ingress-nginx 4.12.600 selected ?=? RKE2 supported version: 4.12.600
2025-09-30 18:05:31,714 INFO: coredns Helm chart version check
2025-09-30 18:05:31,714 INFO: rke2-coredns 1.43.302 selected ?=? RKE2 supported version: 1.43.302
2025-09-30 18:05:31,714 INFO: multus Helm chart version check
2025-09-30 18:05:31,714 INFO: rke2-multus v4.2.205 selected ?=? RKE2 supported version: v4.2.205
2025-09-30 18:05:31,714 INFO: Checking consistency for kubeadm 1.31.13
2025-09-30 18:05:33,790 INFO: k8s_version_map[1.31] matches
2025-09-30 18:05:33,790 INFO: Checking consistency for ck8s 1.31.6
2025-09-30 18:05:35,837 INFO: k8s_version_map[1.31] matches
2025-09-30 18:05:35,837 INFO: Checking consistency for rke2 1.32.9+rke2r1
2025-09-30 18:05:37,904 INFO: k8s_version_map[1.32] matches
2025-09-30 18:05:38,352 INFO: calico Helm chart version check
2025-09-30 18:05:38,353 INFO: rke2-calico v3.30.300 selected ?=? RKE2 supported version: v3.30.300
2025-09-30 18:05:38,353 INFO: calico-crd Helm chart version check
2025-09-30 18:05:38,353 INFO: rke2-calico-crd v3.30.300 selected ?=? RKE2 supported version: v3.30.300
2025-09-30 18:05:38,353 INFO: ingress-nginx Helm chart version check
2025-09-30 18:05:38,353 INFO: rke2-ingress-nginx 4.12.600 selected ?=? RKE2 supported version: 4.12.600
2025-09-30 18:05:38,353 INFO: coredns Helm chart version check
2025-09-30 18:05:38,353 INFO: rke2-coredns 1.43.302 selected ?=? RKE2 supported version: 1.43.302
2025-09-30 18:05:38,353 INFO: multus Helm chart version check
2025-09-30 18:05:38,353 INFO: rke2-multus v4.2.205 selected ?=? RKE2 supported version: v4.2.205
2025-09-30 18:05:38,353 INFO: Checking consistency for kubeadm 1.32.9
2025-09-30 18:05:40,415 INFO: k8s_version_map[1.32] matches
2025-09-30 18:05:40,415 INFO: Checking consistency for ck8s 1.32.5
2025-09-30 18:05:42,475 INFO: k8s_version_map[1.32] matches
Example from https://gitlab.com/sylva-projects/sylva-core/-/jobs/11514154002 (in which I had artificially introduced errors):
025-09-26 16:28:44,227 WARNING: rke2: cluster.version is different from k8s version bundled is OS image artifact ():
2025-09-26 16:28:44,227 WARNING: cluster.version: 1.30.14+rke2r4
2025-09-26 16:28:44,227 WARNING: in OS image artifacts: 1.30.14+rke2r2
2025-09-26 16:28:44,228 WARNING: rke2: cluster.version is different from k8s version bundled is OS image artifact ():
2025-09-26 16:28:44,228 WARNING: cluster.version: 1.31.14+rke2r1
2025-09-26 16:28:44,228 WARNING: in OS image artifacts: 1.31.12+rke2r1
2025-09-26 16:28:44,228 WARNING: RKE2: Helm chart version mismatch for unit 'calico', for k8s 1.31.12+rke2r1
2025-09-26 16:28:44,228 WARNING: unit definition: v3.30.3999 (from helm_chart_versions)
2025-09-26 16:28:44,228 WARNING: upstream RKE2 reference version: v3.30.200
2025-09-26 16:28:44,228 WARNING: from https://github.com/rancher/rke2/blob/v1.31.12%2Brke2r1/charts/chart_versions.yaml
2025-09-26 16:28:44,228 WARNING: RKE2: Helm chart version mismatch for unit 'calico', for k8s 1.32.8+rke2r1
2025-09-26 16:28:44,229 WARNING: unit definition: v3.30.3999 (from helm_chart_versions)
2025-09-26 16:28:44,229 WARNING: upstream RKE2 reference version: v3.30.200
2025-09-26 16:28:44,229 WARNING: from https://github.com/rancher/rke2/blob/v1.32.8%2Brke2r1/charts/chart_versions.yaml
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, openbao
|
|
| 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 -
☁️ capo🚀 rke2🐧 leapmicro -
☁️ capo🚀 kadm🐧 ubuntu -
☁️ 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 -
☁️ capm3🚀 rke2🐧 suse -
☁️ 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.