Releases: microsoft/azure-linux-image-tools
Releases · microsoft/azure-linux-image-tools
v0.9.0
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
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
Breaking changes
.storage.fileSystems
has been renamed tofilesystems
.- 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 tosource
..os.additionalDirs[].destinationPath
has been renamed todestination
..os.overlays[].isRootfsOverlay
has been renamed toisInitrdOverlay
..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 forfat32
. - 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
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
andfdisk
commands return partitions in any particular order.
v0.5.0
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 oflsblk
. - 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 toroot
andHOME
is set to/root
. This avoids weirdtdnf
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 topart-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
v0.3.0
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.