Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
9ef77d7
chore: copy selected Fedora kiwi definitions
ddstreet Mar 25, 2026
34e5d42
feat: remove kiwi xml unneeded imports
ddstreet Mar 25, 2026
fe4d470
feat: remove kiwi xml unsupported archs
ddstreet Mar 25, 2026
fb552d3
feat: remove kiwi xml unsupported clouds
ddstreet Mar 25, 2026
e013a30
feat: remove kiwi xml Toolbox container
ddstreet Mar 25, 2026
82a0ff4
feat: replace kiwi xml Fedora references with AzureLinux references
ddstreet Mar 25, 2026
0a84b6d
feat: replace kiwi xml version number 43 with version number 4
ddstreet Mar 25, 2026
cd11ebe
feat: replace kiwi xml btrfs partitions with ext4
ddstreet Mar 25, 2026
7500a22
feat: replace kiwi xml NetworkManager with systemd-networkd
ddstreet Mar 25, 2026
62ff87f
feat: remove kiwi xml ia32 (32-bit x86)
ddstreet Apr 6, 2026
8fb8649
feat: replace kiwi xml Fedora repo with AzureLinux repo
ddstreet Mar 25, 2026
79b18bf
feat: remove kiwi xml users definition
ddstreet Apr 7, 2026
bb83906
feat: remove kiwi xml LiveInstall profile
ddstreet Apr 10, 2026
a068dc4
feat: remove kiwi xml Tiny-Disk profile
ddstreet Apr 7, 2026
9493707
feat: remove kiwi xml BootDiskCore profile
ddstreet Apr 7, 2026
ebbc667
feat: remove kiwi xml HardwareCommon profile
ddstreet Apr 7, 2026
58aa2c0
feat: remove kiwi xml definitions for containers
ddstreet Apr 7, 2026
81676fc
feat: change kiwi xml partition config
ddstreet Apr 8, 2026
29a60b4
feat: add kiwi xml 'core' group package list
ddstreet Apr 9, 2026
1f5353b
feat: remove kiwi xml BaseCommon profile
ddstreet Apr 9, 2026
0543504
feat: add kiwi xml 'cloud-bootloader-tools' and 'cloud-server' groups…
ddstreet Apr 9, 2026
0b53932
feat: move kiwi xml into subdirs and filenames that make more sense f…
ddstreet Apr 9, 2026
03ad8a6
feat: sort kiwi xml common/base.xml package lists alphabetically
ddstreet Apr 9, 2026
fa18b74
feat: remove kiwi xml support for UKI-based images
ddstreet Apr 9, 2026
ec7faa6
feat: move kiwi xml vm/cloud.xml CloudBoot profile to vm/boot.xml Boo…
ddstreet Apr 9, 2026
aefc742
feat: move kiwi xml vm/cloud.xml CloudCore/CloudServer profiles to vm…
ddstreet Apr 9, 2026
fb23500
feat: move kiwi xml vm/cloud.xml Cloud-Base-Generic profile to vm/qem…
ddstreet Apr 9, 2026
83fd85e
feat: add kiwi xml QemuVM image profile to images.toml
ddstreet Mar 26, 2026
b1e46cc
feat: add kiwi xml vm/hyperv.xml HypervVM profile
ddstreet Apr 9, 2026
61144ce
feat: add kiwi xml HypervVM image profile to images.toml
ddstreet Mar 26, 2026
545f34f
feat: move kiwi xml vm/cloud.xml Cloud-Base-Azure profile to vm/azure…
ddstreet Apr 9, 2026
8bd1afb
feat: add kiwi xml AzureVM image profile to images.toml
ddstreet Mar 26, 2026
eec0681
feat: move kiwi xml packages systemd-resolved/systemd-oomd-defaults f…
ddstreet Apr 10, 2026
a0a759c
feat: replace kiwi xml CoreCommon package NetworkManager with systemd…
ddstreet Apr 10, 2026
05fbd9c
feat: remove kiwi xml CoreCommon package plymouth
ddstreet Apr 10, 2026
3b27b03
feat: remove kiwi xml CoreCommon package fwupd
ddstreet Apr 10, 2026
e7885d9
feat: remove kiwi xml CoreCommon package initial-setup
ddstreet Apr 10, 2026
3f9a9ef
feat: remove kiwi xml CoreCommon uboot packages
ddstreet Apr 10, 2026
aeeb89d
feat: remove kiwi xml CoreCommon packages sssd-*
ddstreet Apr 13, 2026
8009d0e
feat: remove kiwi xml CoreCommon package dhcp-client
ddstreet Apr 10, 2026
f8fd67a
feat: remove kiwi xml CoreCommon package prefixdevname
ddstreet Apr 13, 2026
becb33f
feat: remove kiwi xml CoreVM package console-login-helper-messages-is…
ddstreet Apr 10, 2026
965afd0
feat: remove kiwi xml BaseVM python3-dnf-plugin-tracer package
ddstreet Apr 10, 2026
5ef7128
feat: remove kiwi xml BaseVM ignore for dracut-config-rescue
ddstreet Apr 10, 2026
3579e1a
feat: remove kiwi xml BaseVM ignore for firewalld
ddstreet Apr 10, 2026
597093a
feat: remove kiwi xml BootVM package efibootmgr
ddstreet Apr 13, 2026
2d20b91
feat: remove kiwi xml BootVM packages grub2-tools-efi and grub2-tools…
ddstreet Apr 13, 2026
b94ac22
feat: ignore kiwi xml CoreCommon packages libsecret and pinentry
ddstreet Apr 13, 2026
37e0bcc
feat: ignore kiwi xml CoreCommon package memstrack
ddstreet Apr 13, 2026
2d39ab9
feat: ignore kiwi xml CoreCommon packages mkpasswd and whois-nls
ddstreet Apr 13, 2026
4ea8aff
feat: ignore kiwi xml CoreCommon package 7zip
ddstreet Apr 13, 2026
a40b07b
feat: ignore kiwi xml CoreCommon package gawk-all-langpacks
ddstreet Apr 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions base/images/AzureLinux.kiwi
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>

<image schemaversion="7.4" name="AzureLinux">
<description type="system">
<author>Microsoft</author>
<contact>azurelinux@microsoft.com</contact>
<specification>AzureLinux</specification>
</description>
<preferences>
<version>4</version>
<packagemanager>dnf5</packagemanager>
<locale>en_US</locale>
<keytable>us</keytable>
<timezone>UTC</timezone>
<release-version>4</release-version>
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We should probably discuss the whole 4 vs. 4.0 thing to make sure we're consistent. (I don't think I have a strong opinion one way or the other.)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

i'd prefer '4' since we have not yet ever released a '.1' for any of our releases, and keeping it an integer also aligns with Fedora versioning.

</preferences>
<include from="this://./common/base.xml"/>
<include from="this://./common/boot.xml"/>
<include from="this://./repositories/core.xml"/>
<include from="this://./vm/azure.xml"/>
<include from="this://./vm/base.xml"/>
<include from="this://./vm/boot.xml"/>
<include from="this://./vm/hyperv.xml"/>
<include from="this://./vm/qemu.xml"/>
<packages type="bootstrap">
<package name="filesystem"/>
</packages>
</image>
52 changes: 52 additions & 0 deletions base/images/common/base.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
<image>
<profiles>
<profile name="CoreCommon" description="Core common packages"/>
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

What's the intended scoping of "Core" vs. "Base"? I'm assuming we're inheriting the terms from Fedora's kiwi files, but I don't think I'll have an easy time keeping them straight.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

as you said, it's inherited from Fedora's terminology.

</profiles>
<packages type="image" patternType="plusRecommended" profiles="CoreCommon">
<package name="audit"/>
<package name="bash"/>
<package name="coreutils"/>
<package name="curl"/>
<package name="dnf5"/>
<package name="dnf5-plugins"/>
<package name="dracut-config-generic"/>
<package name="dracut-config-rescue"/>
<package name="e2fsprogs"/>
<package name="filesystem"/>
<package name="firewalld"/>
<package name="glibc"/>
<package name="hostname"/>
<package name="initscripts"/>
<package name="iproute"/>
<package name="iputils"/>
<package name="kbd"/>
<package name="less"/>
<package name="man-db"/>
<package name="ncurses"/>
<package name="openssh-clients"/>
<package name="openssh-server"/>
<package name="parted"/>
<package name="policycoreutils"/>
<package name="procps-ng"/>
<package name="rootfiles"/>
<package name="rpm"/>
<package name="selinux-policy-targeted"/>
<package name="setup"/>
<package name="shadow-utils"/>
<package name="sudo"/>
<package name="systemd"/>
<package name="systemd-networkd"/>
<package name="systemd-oomd-defaults"/>
<package name="systemd-resolved"/>
<package name="util-linux"/>
<package name="vim-minimal"/>
<package name="zram-generator-defaults"/>
<ignore name="7zip"/>
<ignore name="gawk-all-langpacks"/>
<ignore name="libsecret"/>
<ignore name="memstrack"/>
<ignore name="mkpasswd"/>
<ignore name="pinentry"/>
<ignore name="whois-nls"/>
</packages>
</image>
24 changes: 24 additions & 0 deletions base/images/common/boot.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<image>
<profiles>
<profile name="BootCore" description="Boot core packages"/>
</profiles>
<packages type="bootstrap" patternType="plusRecommended" profiles="BootCore">
<package name="grubby"/>
</packages>
<packages type="image" patternType="plusRecommended" profiles="BootCore">
<ignore name="kernel-*debug*"/>
<package name="grub2-efi-aa64" arch="aarch64"/>
<package name="grub2-efi-aa64-modules" arch="aarch64"/>
<package name="grub2-efi-x64" arch="x86_64"/>
<package name="grub2-efi-x64-modules" arch="x86_64"/>
<package name="grub2-pc" arch="x86_64"/>
<package name="grub2-pc-modules" arch="x86_64"/>
<package name="shim-signed-aa64" arch="aarch64"/>
<package name="shim-signed-x64" arch="x86_64"/>
<package name="kernel-core"/>
</packages>
<packages type="iso" patternType="plusRecommended" profiles="BootCore">
<package name="grub2-efi-aa64-cdboot" arch="aarch64"/>
<package name="grub2-efi-x64-cdboot" arch="x86_64"/>
</packages>
</image>
12 changes: 12 additions & 0 deletions base/images/images.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,18 @@ definition = { type = "kiwi", path = "vm-base/vm-base.kiwi" }
description = "Container Base Image"
definition = { type = "kiwi", path = "container-base/container-base.kiwi" }

[images.AzureVM]
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

How do you see AzureVM being different from the vm-base we already have? Is the plan to remove the latter?

We should also align on naming within the TOML file (i.e., images.AzureVM vs. images.azure-vm), independent of the kiwi profile names used.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

How do you see AzureVM being different from the vm-base we already have

see the package list comparisons in previous comments

Is the plan to remove the latter?

i think so, yes

We should also align on naming

sure that's fine, do you have specific name suggestions?

description = "AzureVM"
definition = { profile = "AzureVM", type = "kiwi", path = "AzureLinux.kiwi" }

[images.HypervVM]
description = "HypervVM"
definition = { profile = "HypervVM", type = "kiwi", path = "AzureLinux.kiwi" }

[images.QemuVM]
description = "QemuVM"
definition = { profile = "QemuVM", type = "kiwi", path = "AzureLinux.kiwi" }

# NOTE:
# sudo dnf install -y kiwi-cli
# sudo kiwi --loglevel 10 \
Expand Down
5 changes: 5 additions & 0 deletions base/images/repositories/core-evergreen.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<image>
<repository type="rpm-md" alias="evergreen">
<source path="http://20.88.251.114/kojifiles/repos-dist/azl4-bootstrap-rpms-tag-20260405/latest/$basearch/" />
</repository>
</image>
5 changes: 5 additions & 0 deletions base/images/repositories/core-nonevergreen.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<image>
<repository type="rpm-md" alias="azurelinux">
<source path="https://packages.microsoft.com/azurelinux/$releasever/prod/base/$basearch/" />
</repository>
</image>
1 change: 1 addition & 0 deletions base/images/repositories/core.xml
40 changes: 40 additions & 0 deletions base/images/vm/azure.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<image>
<profiles>
<profile name="AzureVM" description="Azure Base Guest Image">
<requires profile="CoreHypervVM"/>
<requires profile="BaseVM"/>
</profile>
</profiles>
<packages type="bootstrap" patternType="plusRecommended" profiles="AzureVM">
<package name="azurelinux-release-cloud"/>
</packages>
<packages type="image" patternType="plusRecommended" profiles="AzureVM">
<package name="azurelinux-release-cloud"/>
<package name="azure-vm-utils"/>
<package name="WALinuxAgent"/>
</packages>
<preferences profiles="AzureVM" arch="x86_64">
<type image="oem" format="vhd-fixed" formatoptions="force_size"
filesystem="ext4"
kernelcmdline="no_timer_check console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0 systemd.firstboot=off"
devicepersistency="by-uuid"
bootpartition="false" efipartsize="100" firmware="uefi"
rootfs_label="azurelinux"
>
<bootloader name="grub2" bls="true" console="serial" timeout="0"/>
<size unit="G">5</size>
</type>
</preferences>
<preferences profiles="AzureVM" arch="aarch64">
<type image="oem" format="vhd-fixed" formatoptions="force_size"
filesystem="ext4"
kernelcmdline="no_timer_check console=tty1 console=ttyAMA0,115200n8 earlyprintk=ttyAMA0 systemd.firstboot=off"
devicepersistency="by-uuid"
bootpartition="false" efipartsize="100" firmware="uefi"
rootfs_label="azurelinux"
>
<bootloader name="grub2" console="serial" timeout="0"/>
<size unit="G">5</size>
</type>
</preferences>
</image>
49 changes: 49 additions & 0 deletions base/images/vm/base.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<image>
<profiles>
<profile name="CoreVM" description="Core packages for VMs">
<requires profile="CoreCommon"/>
</profile>
<profile name="CoreHypervVM" description="Core packages for Hyper-V VMs">
<requires profile="BootVM"/>
<requires profile="CoreVM"/>
</profile>
<profile name="CoreQemuVM" description="Core packages for Qemu VMs">
<requires profile="BootVM"/>
<requires profile="CoreVM"/>
</profile>
<profile name="BaseVM" description="Base packages for VMs">
<requires profile="CoreVM"/>
</profile>
</profiles>
<packages type="image" patternType="plusRecommended" profiles="CoreVM">
<package name="cloud-init"/>
<package name="cloud-utils-growpart"/>
<package name="dracut-config-generic"/>
<package name="grubby"/>
<package name="rsync"/>
<package name="tar"/>
<package name="chrony"/>
<!-- console-login-helper-messages-issuegen requires
NetworkManager; it may be useful to re-include
once it can work for systemd-networkd also -->
<!-- <package name="console-login-helper-messages-issuegen"/> -->
<package name="console-login-helper-messages-motdgen"/>
<package name="console-login-helper-messages-profile"/>
<package name="systemd-oomd-defaults"/>
</packages>
<packages type="image" patternType="plusRecommended" profiles="CoreHypervVM">
<package name="hyperv-daemons"/>
</packages>
<packages type="image" patternType="plusRecommended" profiles="CoreQemuVM">
<package name="qemu-guest-agent"/>
</packages>
<packages type="image" patternType="plusRecommended" profiles="BaseVM">
<ignore name="kernel"/>
<ignore name="*-firmware"/>
<ignore name="geolite2-city"/>
<ignore name="geolite2-country"/>
<package name="dracut-kiwi-oem-repart"/>
<package name="glibc-langpack-en"/>
<package name="kernel-modules"/>
</packages>
</image>
10 changes: 10 additions & 0 deletions base/images/vm/boot.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<image>
<profiles>
<profile name="BootVM" description="Boot packages for VMs">
<requires profile="BootCore"/>
</profile>
</profiles>
<packages type="image" patternType="plusRecommended" profiles="BootVM">
<package name="grub2-tools" arch="aarch64,x86_64"/>
</packages>
</image>
38 changes: 38 additions & 0 deletions base/images/vm/hyperv.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<image>
<profiles>
<profile name="HypervVM" description="Hyperv Base Guest Image">
<requires profile="CoreHypervVM"/>
<requires profile="BaseVM"/>
</profile>
</profiles>
<packages type="bootstrap" patternType="plusRecommended" profiles="HypervVM">
<package name="azurelinux-release"/>
</packages>
<packages type="image" patternType="plusRecommended" profiles="HypervVM">
<package name="azurelinux-release"/>
</packages>
<preferences profiles="HypervVM" arch="x86_64">
<type image="oem" format="vhdx"
filesystem="ext4"
kernelcmdline="no_timer_check console=tty1 console=ttyS0,115200n8 systemd.firstboot=off"
devicepersistency="by-uuid"
bootpartition="false" efipartsize="100" firmware="uefi"
rootfs_label="azurelinux"
>
<bootloader name="grub2" bls="true" console="serial" timeout="0"/>
<size unit="G">5</size>
</type>
</preferences>
<preferences profiles="HypervVM" arch="aarch64">
<type image="oem" format="vhdx"
filesystem="ext4"
kernelcmdline="no_timer_check console=tty1 console=ttyAMA0,115200n8 systemd.firstboot=off"
devicepersistency="by-uuid"
bootpartition="false" efipartsize="100" firmware="uefi"
rootfs_label="azurelinux"
>
<bootloader name="grub2" bls="true" console="serial" timeout="0"/>
<size unit="G">5</size>
</type>
</preferences>
</image>
38 changes: 38 additions & 0 deletions base/images/vm/qemu.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<image>
<profiles>
<profile name="QemuVM" description="Qemu Base Guest Image">
<requires profile="CoreQemuVM"/>
<requires profile="BaseVM"/>
</profile>
</profiles>
<packages type="bootstrap" patternType="plusRecommended" profiles="QemuVM">
<package name="azurelinux-release"/>
</packages>
<packages type="image" patternType="plusRecommended" profiles="QemuVM">
<package name="azurelinux-release"/>
</packages>
<preferences profiles="QemuVM" arch="x86_64">
<type image="oem" format="qcow2"
filesystem="ext4"
kernelcmdline="no_timer_check console=tty1 console=ttyS0,115200n8 systemd.firstboot=off"
devicepersistency="by-uuid"
bootpartition="false" efipartsize="100" firmware="uefi"
rootfs_label="azurelinux"
>
<bootloader name="grub2" bls="true" console="serial" timeout="0"/>
<size unit="G">5</size>
</type>
</preferences>
<preferences profiles="QemuVM" arch="aarch64">
<type image="oem" format="qcow2"
filesystem="ext4"
kernelcmdline="no_timer_check console=tty1 console=ttyAMA0,115200n8 systemd.firstboot=off"
devicepersistency="by-uuid"
bootpartition="false" efipartsize="100" firmware="uefi"
rootfs_label="azurelinux"
>
<bootloader name="grub2" bls="true" console="serial" timeout="0"/>
<size unit="G">5</size>
</type>
</preferences>
</image>
Loading