images: add dev variant alongside each canonical image#17109
Open
reubeno wants to merge 1 commit intotomls/base/mainfrom
Open
images: add dev variant alongside each canonical image#17109reubeno wants to merge 1 commit intotomls/base/mainfrom
reubeno wants to merge 1 commit intotomls/base/mainfrom
Conversation
Contributor
There was a problem hiding this comment.
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
*-devimages inbase/images/images.tomland wire them to KIWIprofiles. - 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. |
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>
4359608 to
80f5a5c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Each non-distroless image under base/images/ now ships in two variants:
Variants share a single build-time repository (azl4-dev) and differ only in the runtime -repos package. For the
corecontainer 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.