Improve get_image_refs.py to identify which Sylva unit uses which OCI artifact
What does this MR do and why?
closes: #2877 (closed)
This MR:
- Identify which OCI artifact is associated with which sylva unit. sample output:
jq '.oci_artifacts_per_unit' image_refs.json
{
"alertmanager-config": [
"oci://gitlab.repos.tech.orange/sylva-projects/sylva-core/kustomize-units:0.0.0-git-c7ef0ce2",
"oci://gitlab.repos.tech.orange/sylva-projects/sylva-core/alertmanager-config:0.0.4"
],
"cabpr": [
"oci://gitlab.repos.tech.orange/sylva-projects/sylva-core/kustomize-units:0.0.0-git-c7ef0ce2"
],
"calico": [
"oci://gitlab.repos.tech.orange/sylva-projects/sylva-core/kustomize-units:0.0.0-git-c7ef0ce2",
"oci://gitlab.repos.tech.orange/sylva-projects/sylva-core/rke2-calico:v3.30.300"
],
.....
- also does proxy registry normalization i.e. normalizes proxy URLs back to upstream URLs, for example:
Proxy: oci://172.20.0.0/proxy_cache_registry.gitlab.com/sylva-projects/sylva-units:1.2.3
Normalized: oci://registry.gitlab.com/sylva-projects/sylva-units:1.2.3
- Can also define custom pattern for URL remap, like:
python3 sylva-core/tools/get_image_refs.py --url-remap-config url-remap.yaml
cat url-remap.yaml
url_remap:
- pattern: 'oci://docker-proxy-[^-]+-([^/]+)(/.*)'
substitution: 'oci://\1\2'
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, 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🐧 suse -
☁️ capm3🚀 rke2🐧 suse -
☁️ capm3🚀 rke2🎬 no-update🐧 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.