Skip to content

Adds Installer information to release-info output - #553

Open
dharmit wants to merge 1 commit into
SUSE:mainfrom
dharmit:release-info
Open

Adds Installer information to release-info output#553
dharmit wants to merge 1 commit into
SUSE:mainfrom
dharmit:release-info

Conversation

@dharmit

@dharmit dharmit commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

This helps people use release-info output to download the required
images before running customize with --local flag as the image
referred to by Installer is used when building a VM using customize.

Example output:

# core manifest
$ cat /tmp/core/release_manifest.yaml | yq '.components.operatingSystem.image'
base: registry.suse.com/elemental/base-os-kernel-default:16.0-3.10
iso: registry.suse.com/elemental/base-os-kernel-default-iso:16.0-3.11

# before
$ sudo ./build/elemental3 release-info ./examples/elemental/customize/multi-node/suse-solution-manifest.yaml | grep -A2 "Operating System"
│ Operating System          │ SLES 16.0      │ registry.suse.com/elemental/base-os-kernel-default:16.0-3.16 │
│ Kubernetes                │ v1.35.6+rke2r1 │ registry.suse.com/elemental/rke2/rke2-tar:1.35.6_rke2r1-9.1  │

# after
$ sudo ./build/elemental3 release-info ./examples/elemental/customize/multi-node/suse-solution-manifest.yaml | grep -A2 "Operating System"
│ Operating System          │ SLES 16.0      │ registry.suse.com/elemental/base-os-kernel-default:16.0-3.16     │
│ Installer                 │ SLES 16.0      │ registry.suse.com/elemental/base-os-kernel-default-iso:16.0-3.15 │
│ Kubernetes                │ v1.35.6+rke2r1 │ registry.suse.com/elemental/rke2/rke2-tar:1.35.6_rke2r1-9.1      │

@dharmit
dharmit requested a review from a team as a code owner August 6, 2026 09:34
@dharmit
dharmit force-pushed the release-info branch 2 times, most recently from 49074bc to a474e40 Compare August 6, 2026 10:08
@ipetrov117

Copy link
Copy Markdown
Contributor

While this is true, when running cusomitze, the opposite is true, when doing an upgrade. The base-os-kernel-default-iso image is only used during initial image creation, after that we always refer and use the base-os-kernel-default. Furthermore, the base-os-kernel-default is the actual image that represents the base OS state, base-os-kernel-default-iso is just a wrapper that ships an installer ontop.

Since the field is labeled Operating System, I'd suggest to keep it pointing to the base-os-kernel-default, as that is the actual image that is used for the base OS. Both during customize (through the base-os-kernel-default-iso) and upgrade. If we put base-os-kernel-default-iso under Operating System, we would be inviting questions such as - "Why is it called *-iso, what do I need to use for raw?" etc..

Alternatively, we could provide the base-os-kernel-default-iso reference in a different field (e.g. Installer), but I am not sure we would get much out of it. I'll let others chime in as well, but IMO the release-info command should provide easy to follow and understand information about the general system that this manifest represents - what OS version it ships (e.g. base-os-kernel-default build), what RKE2 version it ships, which charts it ships. Going further into detail about other images that we use to achieve this basic state, could just cause confusion.

@dharmit

dharmit commented Aug 6, 2026

Copy link
Copy Markdown
Contributor Author

@ipetrov117 thank you for the explanation. 👍🏽

Alternatively, we could provide the base-os-kernel-default-iso reference in a different field (e.g. Installer), but I am not sure we would get much out of it.

I'd prefer this. Personally, my workflow is:

  • Do elemental3 release-info
  • Store container images in its output into a shell variable
  • Download the images
  • Use --local flag when running customize

I don't see a reason right now, but at some point I feel it'll be valuable to add a flag to release-info command that prints only the container images. These output can be used to download all required images before running customize. Would be very useful for folks relying on --local.

@davidcassany davidcassany left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am also unsure about this change, I think the Operating System should point to the OS image. However I see the benefits of having the ISO listed too, so I think the ISO deserves another field or making the Operator System a multi value stanza. I am not sure what would be the best approach. IMHO release info should give the references of both, the installer image and the OS image.

@atanasdinov

Copy link
Copy Markdown
Contributor

Agree with both Ivo & David here. Adding Installer field is fine, but keep in mind the behaviour for the --local flag has been already on the radar to adjust with the changes around airgap functionality that @dbw7 is looking forward to introduce.

This helps people use `release-info` output to download the required
images before running `customize` with `--local` flag as the image
referred to by Installer is used when building a VM using `customize`.

Signed-off-by: Dharmit Shah <dharmit.shah@suse.com>
@dharmit dharmit changed the title Use ISO instead of Base for OS info Adds Installer information to release-info output Aug 19, 2026
@dharmit

dharmit commented Aug 20, 2026

Copy link
Copy Markdown
Contributor Author

Updated the PR such that release-info output now incldues "Installer" field and relevant value. Also the PR description is updated with example output. PTAL again folks. :)

Comment on lines +274 to +281
if cm.Components.OperatingSystem.Image.ISO != "" {
installerVersion := "Unknown"
parts := strings.Split(cm.Components.OperatingSystem.Image.ISO, ":")
if len(parts) > 1 {
installerVersion = "SLES" + " " + strings.Split(parts[1], "-")[0]
}
data = append(data, []string{"Installer", installerVersion, cm.Components.OperatingSystem.Image.ISO})
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Feels misconstructed to me. Initialising the value and setting it should happen outside of the conditional.

Suggested change
if cm.Components.OperatingSystem.Image.ISO != "" {
installerVersion := "Unknown"
parts := strings.Split(cm.Components.OperatingSystem.Image.ISO, ":")
if len(parts) > 1 {
installerVersion = "SLES" + " " + strings.Split(parts[1], "-")[0]
}
data = append(data, []string{"Installer", installerVersion, cm.Components.OperatingSystem.Image.ISO})
}
installerVersion := "Unknown"
if cm.Components.OperatingSystem.Image.ISO != "" {
parts := strings.Split(cm.Components.OperatingSystem.Image.ISO, ":")
if len(parts) > 1 {
installerVersion = "SLES" + " " + strings.Split(parts[1], "-")[0]
}
}
data = append(data, []string{"Installer", installerVersion, cm.Components.OperatingSystem.Image.ISO})

installerVersion := "Unknown"
parts := strings.Split(cm.Components.OperatingSystem.Image.ISO, ":")
if len(parts) > 1 {
installerVersion = "SLES" + " " + strings.Split(parts[1], "-")[0]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure how to approach this version. This is the installer which is based on SLES 16, not SLES 16 itself. Any thoughts?

@dharmit dharmit Aug 21, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should leave it blank using a hyphen in that case.

│ Installer                 │ -      │ registry.suse.com/elemental/base-os-kernel-default-iso:16.0-3.15 │

Or hardcode it to N/A.

│ Installer                 │ N/A      │ registry.suse.com/elemental/base-os-kernel-default-iso:16.0-3.15 │

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants