Skip to content

Releases: microsoft/azure-linux-image-tools

v0.9.0

13 Jan 22:23
bc3ae6a
Compare
Choose a tag to compare

Breaking changes

  • Script capability restrictions have been removed. A new more flexible design is being worked on.
  • Image Customizer container's base has been updated to Azure Linux 3.0.
    • This fixes Image Customizer's handling of file capabilities.

New features

  • Add basic (incomplete) support for COSI output format.
  • Add support for specifying partition type UUID.

Bug fixes

  • Add basic pre-validation of --rpm-source values.
  • Ensure ext4 and xfs filesystems enable appropriate features for Azure Linux 2.0 and 3.0, regardless which versions of the mkfs tools are used.

v0.8.0

13 Jan 21:45
11ad05f
Compare
Choose a tag to compare

Breaking changes

  • Verity filesystems must now explicitly include the 'ro' mount option.
  • The kernel extraCommandLine field is now a list of strings instead of a single combined string.
  • Custom scripts are now limited to the following capabilities: CAP_CHOWN, CAP_DAC_OVERRIDE, CAP_DAC_READ_SEARCH, CAP_SETFCAP, CAP_SETFCAP.
  • .os.resetBootLoaderType has been renamed to .os.bootloader.resetType.

New features

  • Added support for PXE boot.
  • Mounts options may now include the 'ro' option.
  • SELinux is now supported for ISOs.
  • Add support for generating UKIs. This is a preview feature.
  • Added file to the image describing the config used to generate the image. This can be disabled using the imageHistory API.

Bug fixes

  • Fixed error when --output-split-partitions-format is used and there is an unformatted partition.
  • Fixed issue where a verity hash partition's UUID can sometimes be wrong.
  • Creating ISOs no longer require rpm package to be installed in the customized OS.
  • Fixed an issue that sometimes prevented an ISO from entering initrd debug mode.
  • Fixed error that sometimes occurred when using --shrink-filesystems.

v0.7.0

13 Jan 21:44
29f4ae9
Compare
Choose a tag to compare

Breaking changes

  • .storage.fileSystems has been renamed to filesystems.
  • Partitions must now be specified in order of where they are on the disk.
  • .os.additionalFiles and .iso.additionalFiles are now a list of struct instead of a map. See, additionalFiles docs for details.
  • .os.additionalDirs[].sourcePath has been renamed to source.
  • .os.additionalDirs[].destinationPath has been renamed to destination.
  • .os.overlays[].isRootfsOverlay has been renamed to isInitrdOverlay.
  • .resetPartitionsUuidsType has been moved to .storage.resetPartitionsUuidsType.
  • Verity API has changed substantially. See, verity docs for details.
    • .os.verity has been moved to .storage.verity.
    • Verity is now a list. In the future, we may add support for non-root filesystems. (e.g. /usr.)

New features

  • Disk size can now be auto-calculated. That is .storage.disks[].maxSize is now optional.
  • Partition start (.storage.disks[].partitions[].start) is now optional.
  • Add vfat partition type as an alias for fat32.
  • Partitions are no longer required to have a filesystem.
  • Added syntactic sugar where mountPoint is just a string path.
  • additionalFiles can now specify file contents inline within the YAML file.
  • Added doc for how to clone an RPM repo.

Bug fixes

  • Fixed a partition initialization bug (which is most commonly experienced in Ubuntu build hosts).
  • tdnf cache is now removed after packages are installed/updated.
  • VHDX block size is now always 2 MiB, instead of being dynamic based on disk size. This will likely substantially reduce the file size for large disks.

v0.6.0

13 Jan 21:43
d7765f9
Compare
Choose a tag to compare

Breaking changes

  • The Overlays API implementation has been completely overhauled. It now works the way you'd expect.
  • The /etc/mariner-customizer-release file has been renamed to /etc/image-customizer-release.
  • The curl package is now required for Live-ISO images.

New features

  • A unique build UUID is now added to the /etc/image-customizer-release file.

Bug fixes

  • Improved error message for missing filesystem entry in config file.
  • Report error if no kernel is installed at end of customization.
  • Account for GPT footer when validating disk partition sizes.
  • Report error if lvm2 package is not installed for verity images.
  • Ensure RPM repo metadata is always refreshed for each run of the image customizer tool.
  • Don't assume lsblk and fdisk commands return partitions in any particular order.

v0.5.0

13 Jan 21:42
1b37ef8
Compare
Choose a tag to compare

Breaking changes

None

New features

  • New image output format: vhd-fixed.
  • resolv.conf handling has been improved.
  • Add ability to reset partition and filesystem UUIDs without customizing the partition layout.

Bug fixes

  • Mariner 3.0: Ensure setting SELinux mode to disabled actually fully disables SELinux.
  • Correctly handle output of lsblk when host is running older version of lsblk.
  • Remove dependency on qemu-nbd.
  • Misspelled fields for .os.additionalFiles will now report an error.
  • When --shrink-partitions is used, do not shrink verity hash partition.
  • Pre-check that USER is set to root and HOME is set to /root. This avoids weird tdnf errors.
  • Extend timeout of loopback detach to better cope with obnoxious distros that like to poke at newly attached disks.
  • When host is running parted v3.5+, don't give partitions a default label of "primary".
  • Ensure partitions do not have duplicate partition labels when idType is set to part-label.
  • Provide error message when .os.additionalDirs operation fails.
  • Ensure grub-install is included in the Image Customizer container, so that legacy boot images can be made.

v0.4.0

13 Jan 21:42
6fd93e9
Compare
Choose a tag to compare

Breaking changes

N/A

Highlights

  • Docs update
  • Improvements to container build

Known issues

  • When dm-verity is enabled on an Azure Linux 3.0 image, then networking doesn't initialize correctly during boot.

v0.3.0

13 Jan 21:41
41394c1
Compare
Choose a tag to compare

Breaking changes

  • The universal package is now published to the imagecustomizer package instead of the imagecustomizer_preview package.
  • Script arguments are now a list of strings instead of a single string.
  • Script 'args' have been renamed to 'arguments'.
  • Scripts are now by default executed by /bin/sh instead of being executed directly.

Highlights

  • Scripts now support the following:
    • Environment variables.
    • Inline scripts.
    • Specifying the interpreter program.
  • Support for dm-verity on Azure Linux 3.0*.
  • A guide has been added for building packages.
  • The guide for ISO + cloud-init has been updated to a solution that supports the 'network-config' file.
  • The /etc/selinux/config file is now updated when SELinux is disabled.
  • Image Customizer container is now available on MCR.

Known issues

  • *When dm-verity is enabled on an Azure Linux 3.0 image, then networking doesn't initialize correctly during boot.
  • For Azure Linux 3.0 images, the RPM .repo files point to URLs that are invalid. So, package installation doesn't work.
    To workaround this issue, pass --disable-base-image-rpm-repos to disable the base image's RPM repos and use --rpm-source to specify a different repo to use for package installation.