feat(images): add 1p-vm-base-gen1-fips image - #18476
Conversation
There was a problem hiding this comment.
Pull request overview
Adds the Azure Linux 4.0 1P Gen1 FIPS VM image.
Changes:
- Registers the image and static test suite.
- Defines its VHD, FIPS, boot, networking, and Azure package configuration.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
base/images/images.toml |
Registers image capabilities and tests. |
base/images/1p-vm-base-gen1-fips/1p-vm-base-gen1-fips.kiwi |
Defines the bootable FIPS image. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| <package name="WALinuxAgent" /> | ||
| <package name="wireless-regdb" /> | ||
|
|
||
| <!-- Hyper-V via kernel-modules + hyperv-daemons) --> |
b92b628 to
2f6e814
Compare
There was a problem hiding this comment.
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
static-image-checksdoes not validate the defining behaviors of this new image. The existing VM checks undercases/static/vm-base/are auto-marked for thevm-basefamily, so this1p-...name skips them, and the suite never boots the VHD to verify legacy BIOS startup orcrypto.fips_enabled=1. Add image-specific static checks plus a boot/runtime test suite that asserts FIPS is active before treating the image as tested.
tests.test-suites = [
{ name = "static-image-checks" },
]
base/images/1p-vm-base-gen1-fips/1p-vm-base-gen1-fips.kiwi:130
- Remove the unmatched closing parenthesis in this comment.
<!-- Hyper-V via kernel-modules + hyperv-daemons) -->
base/images/images.toml:100
- This runtime-managed image is missing the required
-devsibling/profile. The established pattern registers both variants and scopesazurelinux-reposversusazurelinux-repos-devby profile (seebase/images/images.toml:33-66andbase/images/vm-base/vm-base.kiwi:9-23,170-199); without that, contributors cannot build the equivalent image pointed at azl4-dev runtime repositories. Please add both registry entries and profile-scoped repo packages.
[images.1p-vm-base-gen1-fips]
description = "1P VM Base Gen1 FIPS Image (BIOS)"
definition = { type = "kiwi", path = "1p-vm-base-gen1-fips/1p-vm-base-gen1-fips.kiwi" }
2f6e814 to
d493458
Compare
There was a problem hiding this comment.
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
- The static suite does not exercise this image's VM-specific checks: tests under
cases/static/vm-base/are selected only when the image name isvm-baseor starts withvm-base-, so this1p-vm-base...image skips the partition and kernel checks. It also has no runtime suite to verify that the BIOS image boots with FIPS active. Add image-specific static checks and a boot-time FIPS smoke test (or register an appropriate runtime suite) so the image's defining BIOS/FIPS behavior is covered.
tests.test-suites = [
{ name = "static-image-checks" },
]
base/images/1p-vm-base-gen1-fips/1p-vm-base-gen1-fips.kiwi:129
- The comment ends with an unmatched
). Replace it with a period or add the corresponding opening parenthesis.
<!-- Hyper-V via kernel-modules + hyperv-daemons) -->
base/images/images.toml:100
- This runtime-managed image ships
azurelinux-reposbut has no-devregistry entry/profile that shipsazurelinux-repos-dev. Runtime-managed Kiwi images are paired this way throughout the file (for example,vm-base/vm-base-devat lines 32–66), with only package-manager-free distroless images exempt. Add a matching1p-vm-base-gen1-fips-deventry and Kiwi profile so local/dev builds do not bake production runtime repositories.
[images.1p-vm-base-gen1-fips]
description = "1P VM Base Gen1 FIPS Image (BIOS)"
definition = { type = "kiwi", path = "1p-vm-base-gen1-fips/1p-vm-base-gen1-fips.kiwi" }
d493458 to
51e19f6
Compare
There was a problem hiding this comment.
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:103
- The configured test run never exercises this VM's boot path or FIPS state. Tests under
cases/static/vm-base/are auto-marked for thevm-basefamily (pytest_plugin.py:182-197,246-251), so this image name skips the kernel and partition checks; the reported 9 passed/7 skipped are only generic checks. Add image-specific BIOS/FIPS checks plus a LISA/runtime boot suite that verifies FIPS is active, rather than relying solely on offline package inspection.
tests.test-suites = [
{ name = "static-image-checks" },
]
base/images/1p-vm-base-gen1-fips/1p-vm-base-gen1-fips.kiwi:130
- Remove the unmatched closing parenthesis from this comment.
<!-- Hyper-V via kernel-modules + hyperv-daemons) -->
base/images/1p-vm-base-gen1-fips/1p-vm-base-gen1-fips.kiwi:40
- This is the only KIWI image that builds directly from PMC beta. The registry contract says local image builds use the azl4-dev source and Koji overrides it for distro builds (
base/images/images.toml:21-23), as every other KIWI definition does. Using beta here means local validation can miss current development packages; point this source at the shared azl4-dev repository.
<source path="https://packages.microsoft.com/azurelinux/4.0/beta/base/$basearch" />
base/images/images.toml:100
- This runtime-managed image has no
-devsibling or KIWI profile, although the registry contract requires canonical/-devpairs to shipazurelinux-reposandazurelinux-repos-devrespectively; only distroless images are exempt (base/images/images.toml:5-27). Add matching canonical/dev profiles and register1p-vm-base-gen1-fips-dev, otherwise the development-repository variant cannot be built or tested.
[images.1p-vm-base-gen1-fips]
description = "1P VM Base Gen1 FIPS Image (BIOS)"
definition = { type = "kiwi", path = "1p-vm-base-gen1-fips/1p-vm-base-gen1-fips.kiwi" }
9727ea5 to
6f6442d
Compare
There was a problem hiding this comment.
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:103
- Although
static-image-checksis registered, this image name does not match the existingvm-basetest family:pytest_plugin.py:182-197only acceptsvm-baseorvm-base-*, so the kernel and partition tests undercases/static/vm-base/are skipped for1p-vm-base-gen1-fips. Add image-specific BIOS/FIPS checks (or an explicit family mapping) so the suite verifies boot layout, kernel contents,fips=1, and the FIPS initramfs rather than only shared RPM metadata.
tests.test-suites = [
{ name = "static-image-checks" },
{ name = "lisa-main" },
base/images/1p-vm-base-gen1-fips/1p-vm-base-gen1-fips.kiwi:130
- Remove the unmatched closing parenthesis from this comment.
<!-- Hyper-V via kernel-modules + hyperv-daemons) -->
base/images/images.toml:100
- This runtime-package-managed image is registered only as the canonical variant. The registry contract at
base/images/images.toml:5-27and every existing runtime-managed family pair the canonical entry with a-deventry/profile so local validation can shipazurelinux-repos-devinstead of PMC repos. Please add the matching1p-vm-base-gen1-fips-devregistration and Kiwi profile/package selection; the only documented single-variant exception is distroless images without package management.
[images.1p-vm-base-gen1-fips]
description = "1P VM Base Gen1 FIPS Image (BIOS)"
definition = { type = "kiwi", path = "1p-vm-base-gen1-fips/1p-vm-base-gen1-fips.kiwi" }
base/images/1p-vm-base-gen1-fips/1p-vm-base-gen1-fips.kiwi:40
- The repository-wide image contract uses the azl4-dev blob as the local build-time source and lets Koji override it (
base/images/images.toml:21-23;base/images/vm-base/vm-base.kiwi:82-92). Pointing this definition directly at PMC beta means local builds cannot consume current azl4-dev RPMs and makes canonical and future-devbuilds use a different input source from every other image. Use the standard azl4-dev source here; keepazurelinux-reposresponsible only for the image's runtime repository.
<!-- Build-time package source; koji overrides this for distro builds. -->
<repository type="rpm-md" alias="azurelinux-base">
<source path="https://packages.microsoft.com/azurelinux/4.0/beta/base/$basearch" />
Add the Azure Linux 4.0 1P VM Base Gen1 FIPS (BIOS) image. It matches the Gen1 base image with FIPS enabled through `fips=1` on the kernel command line and the dracut-fips module. Legacy BIOS boot uses an MBR disk 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
6f6442d to
c17bafe
Compare
There was a problem hiding this comment.
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/1p-vm-base-gen1-fips/1p-vm-base-gen1-fips.kiwi:130
- Remove the unmatched closing parenthesis from this comment.
<!-- Hyper-V via kernel-modules + hyperv-daemons) -->
base/images/images.toml:102
static-image-checksonly gives this image the generic checks. The plugin markscases/static/vm-base/tests asimage("vm-base")and matches only that exact name or avm-base-*prefix (tests/utils/pytest_plugin.py:182-197,246-251), so this1p-*image skips the existing kernel-module and root-partition checks, and there is no BIOS-specific partition check. Add static tests for this family or refactor the shared bootable-VM checks to use themachine-bootablecapability.
tests.test-suites = [
{ name = "static-image-checks" },
base/images/1p-vm-base-gen1-fips/1p-vm-base-gen1-fips.kiwi:40
- This is the only KIWI definition that builds directly from PMC beta. The repository-wide image convention (
base/images/images.toml:21-23, followed by every other.kiwi) usesazl4-devfor local build inputs and lets Koji override that source; using beta here makes local builds consume older published RPMs instead of current development packages. Point the build-time repository at the sameazl4-devsource as the other images.
<!-- Build-time package source; koji overrides this for distro builds. -->
<repository type="rpm-md" alias="azurelinux-base">
<source path="https://packages.microsoft.com/azurelinux/4.0/beta/base/$basearch" />
base/images/images.toml:100
- This runtime-managed image installs
azurelinux-reposbut has no matching-devregistration/profile. The registry convention atbase/images/images.toml:5-27requires canonical and-devvariants to differ only byazurelinux-reposversusazurelinux-repos-dev; only distroless images are exempt. Add the paired registry entry and KIWI profiles so local development can build and test the dev-repository variant.
[images.1p-vm-base-gen1-fips]
description = "1P VM Base Gen1 FIPS Image (BIOS)"
definition = { type = "kiwi", path = "1p-vm-base-gen1-fips/1p-vm-base-gen1-fips.kiwi" }
Summary
Testing
azldev image build 1p-vm-base-gen1-fips --arch x86_64azldev image test 1p-vm-base-gen1-fips(9 passed, 7 skipped)AB#22819