Skip to content

Commit 02a7543

Browse files
garloffdepressiveRobotmbuechse
authored
Introduce new os_purpose value oldgeneric. (#1172)
As discussed on SIG Std/Cert on 2026-05-07. Signed-off-by: Kurt Garloff <kurt@garloff.de> Signed-off-by: Marvin Frommhold <depressiveRobot@users.noreply.github.com> Signed-off-by: Matthias Büchse <matthias.buechse@alasca.cloud> Co-authored-by: Marvin Frommhold <depressiveRobot@users.noreply.github.com> Co-authored-by: Matthias Büchse <matthias.buechse@alasca.cloud>
1 parent 19c29f7 commit 02a7543

2 files changed

Lines changed: 8 additions & 5 deletions

File tree

Standards/scs-0102-v2-image-metadata.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ require an additional field:
6060
| `os_purpose` value | Intention |
6161
|--------------------|-----------------------------------------------------------|
6262
| `generic` | A general purpose image, (mostly) vanilla from upstream |
63+
| `oldgeneric` | A general purpose image, replaced by a newer one |
6364
| `minimal` | A much more barebones general purpose image |
6465
| `k8snode` | Node image built for k8s with CRI and kubelet |
6566
| `gpu` | Image with GPU drivers e.g. for HPC or AI |
@@ -70,8 +71,8 @@ require an additional field:
7071
of doubt. Talk to the SCS standardization bodies if you'd like to see this list extended which is
7172
likely the case if you fall back to `custom`.
7273

73-
The usage of standardized `os_distro`, `os_version`, `architecture`, and `os_purpose` help cloud users to create
74-
automation that works across clouds without requiring image names to be standardized.
74+
The usage of standardized `os_distro`, `os_version`, `architecture`, and `os_purpose` helps cloud users
75+
to create automation that works across clouds without requiring image names to be standardized.
7576

7677
_Uniqueness requirement_: For every assignment of values for `os_distro`, `os_version`,
7778
and `architecture`, there MUST be at most one public (`visibility=public`),
@@ -110,7 +111,9 @@ level).
110111
Technically, the thus updated image is a new image and will thus carry a new UUID.
111112
It is recommended that the old image gets renamed (e.g. build date or patch level attached)
112113
and hidden (`os_hidden=True`), but remains accessible via its (unchanged) UUID for some
113-
time.
114+
time. If an old image with `os_purpose` setting of `generic` is kept that way, we recommend
115+
to change `os_purpose` to `oldgeneric`. If it is not hidden, this is mandatory to meet
116+
the uniqueness requirement.
114117

115118
The update handling by the provider is described via the properties `replace_frequency`,
116119
`uuid_validity`, `provided_until`, and `hotfix_hours`.
@@ -271,4 +274,4 @@ A boolean property that is not present is considered to be `false`.
271274
- Reference OpenStack image spec for standard values of `os_distro`, `architecture` and `hypervisor_type`.
272275
- Recommendation on `os_version` to be a version number (if such a value exists).
273276
- Recommended field `os_purpose`.
274-
- Version 2.0 (this one) makes the field `os_purpose` mandatory.
277+
- Version 2.0 makes the field `os_purpose` mandatory and adds a new value `oldgeneric`.

Tests/iaas/scs_0102_image_metadata/image_metadata.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
HW_DISK_BUSES = ("virtio", "scsi", None) # FIXME why None?
1313
HYPERVISOR_TYPES = ("qemu", "kvm", "xen", "hyper-v", "esxi", None)
1414
HW_RNG_MODELS = ("virtio", None)
15-
OS_PURPOSES = ("generic", "minimal", "k8snode", "gpu", "network", "custom")
15+
OS_PURPOSES = ("generic", "oldgeneric", "minimal", "k8snode", "gpu", "network", "custom")
1616
# Auxiliary mapping for `freq2secs` (note that values are rounded up a bit on purpose)
1717
FREQ_TO_SEC = {
1818
"never": 0,

0 commit comments

Comments
 (0)