Skip to content

images: add dev variant alongside each canonical image#17109

Open
reubeno wants to merge 1 commit intotomls/base/mainfrom
users/reubeno/dev-images
Open

images: add dev variant alongside each canonical image#17109
reubeno wants to merge 1 commit intotomls/base/mainfrom
users/reubeno/dev-images

Conversation

@reubeno
Copy link
Copy Markdown
Member

@reubeno reubeno commented May 9, 2026

Each non-distroless image under base/images/ now ships in two variants:

  • canonical (unsuffixed): runtime points at packages.microsoft.com/ azurelinux/4.0/beta and ships azurelinux-repos.
  • -dev: runtime points at the daily azl4-dev blob and ships azurelinux-repos-dev.

Variants share a single build-time repository (azl4-dev) and differ only in the runtime -repos package. For the core container the canonical variant tags :4.0 + :latest, while -dev tags :4.0-dev only.

vm-iso-installer threads the variant into config.sh so the offline package bundle and the kickstart %packages section pick up the matching -repos package; the opposite variant is held out of the offline repo to keep the dnf resolver unambiguous at install time.

Distroless containers strip the package manager and have no runtime repo, so they remain single-variant.

@reubeno reubeno marked this pull request as ready for review May 9, 2026 21:46
Copilot AI review requested due to automatic review settings May 9, 2026 21:46
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds a -dev image variant alongside most canonical (unsuffixed) Azure Linux images, so the built OS can select its runtime repo source via azurelinux-repos (PMC beta) vs azurelinux-repos-dev (azl4-dev blob), while still sharing a single build-time repo definition.

Changes:

  • Register *-dev images in base/images/images.toml and wire them to KIWI profiles.
  • Split KIWI definitions into canonical/dev profiles and scope azurelinux-repos* packages per variant (including variant-aware ISO offline repo generation).
  • Update static image test routing to treat cases/<family>/ as applying to <family> and <family>-<variant> image names.

Reviewed changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
scripts/update-components-list.py Updates CLI help example path for .packages files to reference the new vm-base-dev output directory.
scripts/demo-build.sh Switches the demo build to container-base-dev and updates the expected output tar path accordingly.
scripts/common.sh Updates example VM image path to point at the vm-base-dev output directory.
scripts/build-vm-images.sh Updates VM image build script to clean/build the vm-base-dev variant.
base/images/wsl/wsl.kiwi Adds wsl/wsl-dev profiles and scopes azurelinux-repos* selection per variant.
base/images/vm-iso-installer/vm-iso-installer.kiwi Adds variant profiles and scopes azurelinux-repos* packages per ISO variant.
base/images/vm-iso-installer/config.sh Detects variant via kiwi_profiles, selects matching repos package, and excludes the opposite variant from the offline repo.
base/images/vm-base/vm-base.kiwi Adds vm-base/vm-base-dev profiles and scopes azurelinux-repos* packages per variant.
base/images/tests/utils/pytest_plugin.py Adjusts @pytest.mark.image(...) semantics to match an image family and its -<variant> forms.
base/images/tests/README.md Documents the canonical vs -dev variant model and updates test selection wording to “image family”.
base/images/images.toml Registers canonical and -dev entries for VM/container/WSL/installer images (distroless remains single-variant).
base/images/container-base/container-base.kiwi Adds core-dev profile, scopes runtime azurelinux-repos* per core variant, and sets distinct OCI tags.
.github/instructions/kiwi.instructions.md Updates KIWI authoring docs to describe canonical + -dev registration via profile.

Comment thread scripts/demo-build.sh Outdated
Comment thread scripts/build-vm-images.sh Outdated
Each non-distroless image under base/images/ now ships in two variants:

  - canonical (unsuffixed): runtime points at packages.microsoft.com/
    azurelinux/4.0/beta and ships azurelinux-repos.
  - <name>-dev: runtime points at the daily azl4-dev blob and ships
    azurelinux-repos-dev.

Variants share a single build-time repository (azl4-dev) and differ
only in the runtime -repos package. For the `core` container the
canonical variant tags :4.0 + :latest, while -dev tags :4.0-dev only.

vm-iso-installer threads the variant into config.sh so the offline
package bundle and the kickstart %packages section pick up the matching
-repos package; the opposite variant is held out of the offline repo to
keep the dnf resolver unambiguous at install time.

Distroless containers strip the package manager and have no runtime
repo, so they remain single-variant.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@reubeno reubeno force-pushed the users/reubeno/dev-images branch from 4359608 to 80f5a5c Compare May 9, 2026 21:57
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.

2 participants