Skip to content

feat(images): add 1p-vm-base-gen1 image - #18475

Open
binujp wants to merge 1 commit into
4.0from
bphilip/add-1p-vm-base-gen1
Open

feat(images): add 1p-vm-base-gen1 image#18475
binujp wants to merge 1 commit into
4.0from
bphilip/add-1p-vm-base-gen1

Conversation

@binujp

@binujp binujp commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add the Azure Linux 4.0 1P VM Base Gen1 BIOS image
  • use package-provided cloud-init, chrony/PTP, and Hyper-V configuration
  • remove all KIWI file injections and their loose configuration files
  • use systemd-networkd without netplan or post-install config.sh customization

Testing

  • built with azldev image build 1p-vm-base-gen1 --arch x86_64
  • passed azldev image test 1p-vm-base-gen1 (9 passed, 7 skipped)

AB#18608

@binujp
binujp requested a review from a team as a code owner August 17, 2026 20:42
Copilot AI balanced review requested due to automatic review settings August 17, 2026 20:42

Copilot AI 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.

Pull request overview

Adds the Azure Linux 4.0 1P VM Base Gen1 image definition and registration.

Changes:

  • Registers the new machine-bootable image and static tests.
  • Defines a fixed-size VHD with Azure VM packages and systemd-networkd.

Reviewed changes

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

File Description
base/images/images.toml Registers the image, tests, and capabilities.
base/images/1p-vm-base-gen1/1p-vm-base-gen1.kiwi Defines its boot layout, repositories, and packages.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

filesystem="ext4"
fscreateoptions="-m 1"
kernelcmdline="console=ttyS0"
firmware="uefi"
Comment thread base/images/images.toml
Comment thread base/images/images.toml
<package name="WALinuxAgent" />
<package name="wireless-regdb" />

<!-- Hyper-V via kernel-modules + hyperv-daemons) -->
Copilot AI review requested due to automatic review settings August 17, 2026 21:51
@binujp
binujp force-pushed the bphilip/add-1p-vm-base-gen1 branch from 9ed6521 to f804b0b Compare August 17, 2026 21:51

Copilot AI 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.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

Suppressed comments (4)

base/images/1p-vm-base-gen1/1p-vm-base-gen1.kiwi:29

  • This config requests a UEFI disk layout, not the BIOS layout required by an Azure Gen1 VM. In the referenced KIWI v10.2.33 schema, firmware controls the partition-table/boot layout, while eficsm only adds legacy CSM support to an EFI layout. A Gen1 artifact should use firmware="bios" and omit the EFI-only settings; otherwise the resulting GPT/EFI-oriented VHD may not boot as a Gen1 disk.
            firmware="uefi"
            overlayroot="false"
            eficsm="true"
            bootpartition="false"
            efipartsize="200"

base/images/images.toml:100

  • This runtime-package-managed image has only the canonical registration, so there is no -dev image that ships azurelinux-repos-dev. That breaks the image registration convention already used by vm-base and minimal-os (base/images/images.toml:32-66,70-94) and prevents development builds from retaining dev runtime repositories. Add matching canonical/dev profiles and registrations, with the repo package selected per profile.
[images.1p-vm-base-gen1]
description = "1P VM Base Gen1 Image (BIOS)"
definition = { type = "kiwi", path = "1p-vm-base-gen1/1p-vm-base-gen1.kiwi" }

base/images/images.toml:103

  • The only registered suite is generic static validation, and the existing VM kernel/partition tests are auto-scoped to the vm-base family, so they are skipped for 1p-vm-base-gen1. Consequently the defining behavior of this new image—producing a BIOS/Gen1-bootable partition layout—is not tested. Add an image-specific BIOS partition/boot check or register an applicable VM boot smoke suite.
tests.test-suites = [
  { name = "static-image-checks" },
]

base/images/1p-vm-base-gen1/1p-vm-base-gen1.kiwi:127

  • Remove the unmatched closing parenthesis from this comment.
        <!-- Hyper-V via kernel-modules + hyperv-daemons) -->

Comment thread base/images/1p-vm-base-gen1/1p-vm-base-gen1.kiwi
Copilot AI review requested due to automatic review settings August 18, 2026 00:19
@binujp
binujp force-pushed the bphilip/add-1p-vm-base-gen1 branch from f804b0b to 3cc68fd Compare August 18, 2026 00:19

Copilot AI 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.

Pull request overview

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

Suppressed comments (3)

base/images/images.toml:100

  • This runtime-package-managed image is missing the required -dev sibling. The registry convention at base/images/images.toml:5-27 and the adjacent VM entries at lines 32-94 require canonical/dev profiles so local validation can ship azurelinux-repos-dev without changing the canonical artifact. Add matching KIWI profiles with variant-scoped repo packages and register 1p-vm-base-gen1-dev with identical capabilities/tests.
[images.1p-vm-base-gen1]
description = "1P VM Base Gen1 Image (BIOS)"
definition = { type = "kiwi", path = "1p-vm-base-gen1/1p-vm-base-gen1.kiwi" }

base/images/images.toml:103

  • Only the shared offline suite is registered, so the Gen1-specific boot path is not exercised. The existing kernel/partition checks under cases/static/vm-base/ are auto-filtered to the vm-base family, and its partition test expects UEFI, so they are skipped for this image; the suite also never boots the VHD. Add Gen1-specific checks for kernel modules and the BIOS/GRUB layout, plus a boot-level suite to validate networking and cloud provisioning.
tests.test-suites = [
  { name = "static-image-checks" },
]

base/images/1p-vm-base-gen1/1p-vm-base-gen1.kiwi:40

  • This is the only image definition that builds locally from PMC beta; every other KIWI definition uses the azl4-dev source (for example vm-base/vm-base.kiwi:89-92 and minimal-os/minimal-os.kiwi:52-55). Building against beta can validate stale packages rather than the current distro output. Keep the build-time source on azl4-dev; azurelinux-repos should control only the image's runtime repositories.
        <source path="https://packages.microsoft.com/azurelinux/4.0/beta/base/$basearch" />

Copilot AI review requested due to automatic review settings August 18, 2026 05:58
@binujp
binujp force-pushed the bphilip/add-1p-vm-base-gen1 branch from 3cc68fd to 48cfbb8 Compare August 18, 2026 05:58

Copilot AI 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.

Pull request overview

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

Suppressed comments (3)

base/images/images.toml:103

  • This only runs the shared generic offline checks. Because image-specific tests are selected by their family directory, the existing cases/static/vm-base kernel and partition checks are skipped for 1p-vm-base-gen1; no test currently validates its new BIOS/MBR boot layout or that the package-provided cloud/network/Hyper-V configuration is present. Add a cases/static/1p-vm-base-gen1 suite (including a Gen1 partition/bootloader check and required config/service checks) and a boot/deployment test for the machine-bootable path.
tests.test-suites = [
  { name = "static-image-checks" },
]

base/images/images.toml:100

  • This package-managed image is missing the required -dev sibling. The registry contract in this file (lines 5-27) and the existing vm-base/minimal-os entries register both variants so one ships azurelinux-repos and the other azurelinux-repos-dev; only distroless images are exempt. Add matching Kiwi profiles with profile-scoped repo packages, then register images.1p-vm-base-gen1-dev with the same tests and capabilities.
[images.1p-vm-base-gen1]
description = "1P VM Base Gen1 Image (BIOS)"
definition = { type = "kiwi", path = "1p-vm-base-gen1/1p-vm-base-gen1.kiwi" }

base/images/1p-vm-base-gen1/1p-vm-base-gen1.kiwi:40

  • This makes local builds consume PMC beta rather than the repository's current package set, so an image change depending on an unpublished component update can fail or silently test stale RPMs. Every other Kiwi definition uses the azl4-dev build source (for example vm-base/vm-base.kiwi:89-92), while Koji replaces it for distro builds; use the same source here.
        <source path="https://packages.microsoft.com/azurelinux/4.0/beta/base/$basearch" />

Add the Azure Linux 4.0 1P VM Base Gen1 (BIOS) image. Package selection preserves the established core image, base image, container, tooling, Azure VM, and Hyper-V package groups while using their Azure Linux 4 equivalents.

BIOS boot uses an MBR partition table and grub2-pc without EFI packages. The image relies on package-provided cloud-init, chrony/PTP, and Hyper-V configuration, with no KIWI file injection or config.sh post-install customization.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 727c4c35-afde-4eb0-82bf-b307f6550d58
Copilot AI review requested due to automatic review settings August 18, 2026 15:12
@binujp
binujp force-pushed the bphilip/add-1p-vm-base-gen1 branch from 48cfbb8 to 68b982c Compare August 18, 2026 15:12

Copilot AI 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.

Pull request overview

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

Suppressed comments (4)

base/images/images.toml:100

  • This image is the only package-managed image without the canonical/-dev pair required by the registry convention (images.toml:5-27); as a result, developers cannot build this image with azurelinux-repos-dev while keeping the canonical artifact pointed at PMC. Add Kiwi profiles that select azurelinux-repos versus azurelinux-repos-dev, then register a matching 1p-vm-base-gen1-dev entry as done for vm-base.
[images.1p-vm-base-gen1]
description = "1P VM Base Gen1 Image (BIOS)"
definition = { type = "kiwi", path = "1p-vm-base-gen1/1p-vm-base-gen1.kiwi" }

base/images/images.toml:102

  • The shared static suite does not exercise the VM checks for this new family. Tests under cases/static/vm-base/ are auto-marked for the vm-base family, and the matcher in tests/utils/pytest_plugin.py:182-197 skips them for 1p-vm-base-gen1; this explains why the reported run has skips and leaves the kernel and BIOS partition layout unverified. Add family-specific kernel/partition tests, including a Gen1 BIOS boot-layout assertion.
tests.test-suites = [
  { name = "static-image-checks" },

base/images/1p-vm-base-gen1/1p-vm-base-gen1.kiwi:127

  • Remove the unmatched closing parenthesis from this comment.
        <!-- Hyper-V via kernel-modules + hyperv-daemons) -->

base/images/1p-vm-base-gen1/1p-vm-base-gen1.kiwi:40

  • This build source differs from every other Kiwi image and from the documented registry convention (images.toml:21-23): local image builds are expected to consume the azl4-dev repository, while the installed azurelinux-repos package controls the runtime PMC destination. Building directly from PMC beta prevents validation of packages published only to the development repository.
        <source path="https://packages.microsoft.com/azurelinux/4.0/beta/base/$basearch" />

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