Skip to content

feat(images): add the Azure Linux 4.0 beta machine image - #56

Merged
bketelsen merged 1 commit into
mainfrom
claude/azure-linux4-nsl-image-d72d69
Oct 8, 2026
Merged

bketelsen merged 1 commit into
mainfrom
claude/azure-linux4-nsl-image-d72d69

Conversation

@bketelsen

Copy link
Copy Markdown
Contributor

Adds Azure Linux 4.0, Microsoft's Fedora-based cloud distribution, as a machine image in the rpm family, with selectors azurelinux:4.0 and azure-linux:4.0.

Microsoft has no finished Azure Linux 4.0 release yet: it publishes 4.0 only as a beta channel, packages.microsoft.com/azurelinux/4.0/beta/. Packages and repository metadata are signed with the Mariner key (0CD9FED33135CE90) that mkosi already trusts for 3.0. The image is built from that repository like every other nsl image, and the user documentation marks it as a beta.

Changes

  • Profile image/machines/profiles/azurelinux/: distribution azure, release 4.0, Fedora 44 tools tree.
    • mkosi v27 builds 4.0/prod/... URLs, which don't exist, so LocalMirror= reads the beta base repository for the build. The image's own repository files come from the distro.
    • The pinned recipes have no Azure Linux recipe, so the profile names the packages Fedora's recipe adds and links /etc/resolv.conf to the VM's resolver.
    • It names azurelinux-repos. azurelinux-repos-dev also satisfies the release package's azurelinux-repos(4.0) requirement, and it points dnf at an internal development feed with gpgcheck=0. A test checks the profile keeps the signed package.
  • Probe: Azure Linux packages no wayland-utils, and its enabled repositories have none of galculator, zenity or foot. On Azure Linux only, probe-machines.py lists the compositor's globals with a small Python Wayland client in place of wayland-info, and opens gtk-lshw (GTK 3, from lshw-gui) as the window check. The other images' checks are unchanged.
  • Publisher: adds the two selectors, so the next images.yml run builds, accepts and publishes the image.
  • Docs: machine-image spec, ADR-0009 (a beta release may join on the same terms, marked beta in user documentation), image README, site pages, README, and a new plan, docs/plans/azure-linux.md, with the evidence.

Validation

  • nsl-machine-azure-4.0-x86-64-r1 built on the first attempt: 71 MB zstd, 138 packages, systemd 258.4.
  • probe-machines.py --gui, run beside the published Debian r5 image on VM image r10 built from this branch: all 24 checks passed, 12 per machine. On Azure Linux, systemd reached running with no failed units, every tally check passed, Podman 5.8 ran rootless, the Python client found wl_compositor and xdg_wm_base, and gtk-lshw held a window open.
  • make ci and make site pass.

Risk

The image depends on Microsoft's beta repository. If Microsoft breaks it, the weekly images.yml run fails for every image until the repository is fixed or this profile is removed. Phase 2 of the plan, publication, is done when a signed catalogue lists the image and nsl create azurelinux:4.0 works on a host with an empty cache.

🤖 Generated with Claude Code

Azure Linux 4.0, Microsoft's Fedora-based cloud distribution, joins the
rpm family as azurelinux:4.0 and azure-linux:4.0. Microsoft publishes 4.0
only as a beta channel, signed with the Mariner key mkosi already trusts
for 3.0:

- The profile reads packages.microsoft.com/azurelinux/4.0/beta/base
  through LocalMirror=, because mkosi v27 builds 4.0/prod URLs, which do
  not exist. The image's own repository files come from the distro.
- The pinned recipes have no Azure Linux recipe, so the profile names the
  packages Fedora's recipe adds and links /etc/resolv.conf to the VM's
  resolver.
- It names azurelinux-repos: azurelinux-repos-dev also satisfies the
  release package and points dnf at an unsigned development feed.

Azure Linux packages no wayland-utils and none of galculator, zenity or
foot in its enabled repositories. On it, probe-machines.py lists the
compositor's globals with a Python client of the Wayland protocol and
opens gtk-lshw, a GTK 3 window.

nsl-machine-azure-4.0-x86-64-r1 (71 MB) passed all 12 checks of
probe-machines.py --gui beside the published Debian r5 image on VM image
r10. ADR-0009 now admits a beta release on the same terms, marked beta in
the user documentation.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@bketelsen
bketelsen merged commit 684facb into main Oct 8, 2026
4 checks passed
@bketelsen
bketelsen deleted the claude/azure-linux4-nsl-image-d72d69 branch October 8, 2026 20:51
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