Feature: azure
Description
A platform feature that builds a Garden Linux image for Microsoft Azure. Artifacts are delivered as .raw and .vhd files.
What it does
Installs cloud-init and azure-vm-utils for instance initialization on Azure and configures platform-specific settings:
- Time synchronization: uses
chrony(instead ofsystemd-timesyncd, which is excluded) synchronized to the Hyper-V PTP clock device. - Cloud-init: removes
growpart,resizefs, andntpmodules (partition growth is handled in the initramfs; NTP is managed bychrony). - Kernel command line: sets console and NVMe timeout parameters for the Azure environment.
- NVMe: includes NVMe modules in the initramfs via a dracut drop-in.
- Network: marks Azure-managed network devices as unmanaged so that systemd-networkd does not interfere with them.
- Image conversion:
convert.vhdproduces a fixed-size.vhdimage for Azure.
Files
Files present in this feature and their purpose. See the feature file reference for the semantics of each file type.
| File | Purpose |
|---|---|
convert.vhd (ref) | Converts the .raw artifact to a fixed-size .vhd image for Azure import. |
exec.config (ref) | Strips growpart, resizefs, and ntp modules from cloud-init configuration and disables cloud-init network management. |
file.exclude (ref) | Removes the systemd-timesyncd override and the udf module blacklist from the rootfs. |
file.include.markers.yaml (ref) | Maps files to test-coverage marker IDs. |
info.yaml (ref) | Declares type: platform and included/excluded features. |
pkg.exclude (ref) | Prevents installation of systemd-timesyncd (replaced by chrony). |
pkg.include (ref) | Installs chrony, cloud-init, azure-vm-utils, python3-passlib, and python3-cffi-backend. |
file.include/etc/chrony/chrony.conf (file.include) | Configures chrony to use the Hyper-V PTP clock device (/dev/ptp_hyperv) as the primary time source. |
file.include/etc/cloud/cloud.cfg.d/01_debian-cloud.cfg (file.include) | Debian-specific cloud-init configuration baseline. |
file.include/etc/dracut.conf.d/67-azure-nvme-modules.conf (file.include) | Includes Azure NVMe kernel modules in the initramfs. |
file.include/etc/kernel/cmdline.d/10-console.cfg (file.include) | Sets the kernel console parameter for the Azure serial console. |
file.include/etc/kernel/cmdline.d/45-nvme-timeout.cfg (file.include) | Sets NVMe I/O timeout parameters for Azure storage. |
file.include/etc/systemd/99-azure-unmanaged-devices.network (file.include) | Marks Azure-internal network interfaces as unmanaged by systemd-networkd. |
file.include/etc/systemd/system/chronyd.service.d/10-after_dev-ptp_hyperv.device.conf (file.include) | Orders chronyd to start after the Hyper-V PTP device is available. |
file.include/etc/systemd/system-preset/00-chrony-disable.preset (file.include) | Disables chronyd by default so it is only activated when the PTP device is present. |
file.include/etc/udev/rules.d/60-hyperv-ptp.rules (file.include) | Creates a stable /dev/ptp_hyperv symlink when the Hyper-V PTP device appears. |
file.include/etc/udev/rules.d/66-azure-storage.rules (file.include) | Sets Azure storage device attributes via udev. |
file.include/etc/udev/rules.d/99-azure-product-uuid.rules (file.include) | Makes the Azure product UUID available as a udev property for cloud-init. |
Related features
Includes:
cloud— provides common cloud-init integration and base cloud configuration shared across cloud platforms.