[release-announce] ironic-python-agent 6.4.4 (victoria)
no-reply at openstack.org
no-reply at openstack.org
Wed Jan 26 11:49:58 UTC 2022
We are tickled pink to announce the release of:
ironic-python-agent 6.4.4: Ironic Python Agent Ramdisk
This release is part of the victoria stable release series.
The source is available from:
https://opendev.org/openstack/ironic-python-agent
Download the package from:
https://tarballs.openstack.org/ironic-python-agent/
Please report issues through:
https://storyboard.openstack.org/#!/project/openstack/ironic-
python-agent
For more details, please see below.
6.4.4
^^^^^
New Features
************
* Adds an configuration option which can be encoded into the ramdisk
itself or the PXE parameters being provided to instruct the agent to
ignore bootloader installation or configuration failures. This
functionality is useful to work around well-intentioned hardware
which is auto-populating all possible device into the UEFI nvram
firmware in order to try and help ensure the machine boots. Except,
this can also mean any explict configuration attempt will fail.
Operators needing this bypass can use the "ipa-ignore-bootloader-
failure" configuration option on the PXE command line or utilize the
"ignore_bootloader_failure" option for the Ramdisk configuration. In
a future version of ironic, this setting may be able to be overriden
by ironic node level configuration.
* Adds the capability into the agent to read and act upon bootloader
CSV files which serve as authoritative indicators of what bootloader
to load instead of leaning towards utilizing the default.
Known Issues
************
* If multiple bootloader CSV files are present on the EFI
filesystem, the first CSV file discovered will be utilized. The
Ironic team considers multiple files to be a defect in the image
being deployed. This may be changed in the future.
Bug Fixes
*********
* Setting the new "ipa-ignore-bootloader-failure" config option
prevents errors due to bootloader installation failure generated by
automatic bootloader entries configuration from multiple attached
devices.
* The system file system configuration file for Linux machines, the
"/etc/fstab" file is now updated to include a reference to the EFI
partition in the case of a partition image base deployment. Without
this reference, images deployed using partition images could end up
in situations where upgrading the bootloader could fail.
* Fixes a minor issue with the regular expression used for UEFI
duplicate entry cleanup which was introduced in a prior change to
refactor the cleanup operation to avoid UEFI firmware which treats
deletion of entries after addition as an invalid operation.
* Fixes cases where duplicates may not be found in the UEFI firmware
NVRAM boot entry table by explicitly looking for, and deleting for
matching labels in advance of creating the EFI boot loader entry.
* IPA now properly checks if the root partition is already mounted.
See Story 2008631
(https://storyboard.openstack.org/#!/story/2008631) for details.
* Fixes an error with UEFI based deployments where using a partition
image a NVMe device was previously failing due to the different
device name pattern.
* Fixes an issue where partitions are not visible due to a incorrect
call to have the partition table re-read.
* Fixes an issue where partitions are not visible due to an
incorrect call to have the partition table re-read during raid
configuration creation.
* Fixes an issue where the NTP time sync at the IPA startup via
chronyd is not immediate (which can break time sensitive components
such as the generation of a TLS certificate).
* Fixes failures with disk image conversions which result in memory
allocation or input/output errors due to memory limitations by
limiting the number of available memory allocation pools to a non-
dynamic reasonable number which should not exceed the available
system memory.
* The lshw package version B.02.19.2-5 on CentOS 8.4 and 8.5
contains a bug (https://bugzilla.redhat.com/show_bug.cgi?id=1955250)
that prevents the size of individual memory banks from being
reported, with the result that the total memory size would be
reported as 0 in some places. The total memory size is now taken
from lshw's total memory size output (which does not suffer from the
same problem) when available.
* No longer crashes if MAC address cannot be determined for one of
the network interfaces.
* Fixes an issue where metadata erasure cleaning fails for
partitions because the read-only file isn't found, while it is
available at the base device. Adds a check for the base device file
on failure. See story 2008696
(https://storyboard.openstack.org/#!/story/2008696).
* Fixes the agent's EFI boot handling such that EFI assets from a
partition image are preserved and used instead of overridden. This
should permit operators to use Secure Boot with partition images IF
the assets are already present in the partition image.
* Mirrors the previously disconnected EFI system partitions (ESPs)
in UEFI software RAID setups. Disconnected ESPs can lead to nodes
booting with outdated kernel parameters or the UEFI firmware not
finding bootable kernels at all.
* Fixes incorrect root partition UUID after streaming a raw
partition image.
* Fixes nodes failing after deployment completes due to issues in
the Grub2 EFI loader entry addition where a "BOOT.CSV" file provides
the authoritative pointer to the bootloader to be used for booting
the OS. The base issue with Grub2 is that it would update the UEFI
bootloader NVRAM entries with whatever is present in a vendor
specific "BOOT.CSV" or "BOOTX64.CSV" file. In some cases, a
baremetal machine *can* crash when this occurs. More information can
be found at story 2008962
(https://storyboard.openstack.org/#!/story/2008962).
* Adds a call to "udevadm settle" in write_image.sh. After GPT and
MBR are destroyed systemd-udevd gets triggered which may hold
/dev/sda open preventing qemu-img from writting its image.
* Provides a more specific error message if a UEFI-incompatible
image is used in the UEFI mode.
* Increase memory usage limit for "qemu-img convert" command to 2
GiB. See Story 2008667
(https://storyboard.openstack.org/#!/story/2008667) for details.
Changes in ironic-python-agent 6.4.3..6.4.4
-------------------------------------------
0b292a1 Re-read the partition table with partx -a, part 2
06cf7f3 Re-read the partition table with partx -a
9525a11 Fix UEFI record regex
47ac40a Delete EFI boot entry duplicate labels first
750934a Output verbose info from efibootmgr
48ffbaa Force immediate NTP time sync with chronyd at IPA startup
97ce08d Fix getting memory size in some lshw output
2645240 Reduce logging verbosity when collecting logs
474d2a9 Utilize CSV file for EFI loader selection
350a67e Make _get_efi_bootloaders return relative paths
ee81184 Limit qemu-img execution arenas
601b833 Fix NVMe Partition image on UEFI
b307c34 Point ipa-builder to stable/wallaby
6e0d08c Software RAID: RAID the ESPs
37c39b1 Fix missing data in log messages
bc13adf Add a call to "udevadm settle" in write_image.sh
b3f489c Do not fail network interface collection on unsupported interface
92a7d7a Fix root UUID for streamed partition images
2076df9 Add fstab pointer to EFI partition
1a19f8b Prepare to use tinycore 12
99b9953 Check the base device if the read-only file cannot be read
de1e751 Increase the memory limit for qemu-img
d1a365e Fixes local boot for partition images
0ff5726 Fix error message with UEFI-incompatible images
a820851 Mock tests to return bios boot mode
9961ed6 Prevent broken partition image UEFI deploys
07cf2c1 Option to enable bootloader config failure bypass
Diffstat (except docs and test files)
-------------------------------------
ironic_python_agent/config.py | 12 +
ironic_python_agent/extensions/image.py | 682 +++++++---
ironic_python_agent/extensions/standby.py | 4 +
ironic_python_agent/hardware.py | 49 +-
ironic_python_agent/shell/write_image.sh | 14 +-
ironic_python_agent/utils.py | 23 +-
...all-failure-to-be-ignored-b99667b13afa9759.yaml | 21 +
...nd-efi-partition-to-fstab-e9f945a4dd19bd7a.yaml | 8 +
.../notes/correct-uefi-regex-112211c2427cd4d9.yaml | 7 +
.../de-duplicate-by-label-baa090c5b1bff992.yaml | 6 +
...boot-for-partition-images-755f570dc0982868.yaml | 7 +
...-partition-image-handling-b8487133a188fd32.yaml | 6 +
.../notes/fix-rescan-device-7b00c6836b687ce8.yaml | 5 +
.../fix-rescan-device-raid-29aa1558b036b496.yaml | 7 +
.../fix_chronyd_time_sync-626a14b66ca37677.yaml | 6 +
...mit-qemu-img-malloc-arena-025ed84115481eae.yaml | 7 +
.../lshw-no-memory-bank-size-05ea71987362986e.yaml | 9 +
releasenotes/notes/no-mac-54616606ee6b844d.yaml | 5 +
...eck_read_only_base_device-5bc15ac2f034aca9.yaml | 7 +
...serve-efi-folder-contents-ea1e278b3093ec55.yaml | 7 +
.../software-raid-raid-ESPs-25a2aa117b99620a.yaml | 7 +
.../notes/streaming-uuid-fdf136a7745fbb3d.yaml | 5 +
...t-bootloader-csv-file-use-c815b520c600cd98.yaml | 22 +
.../notes/udevadm-settle-9d3e5f1f20211857.yaml | 7 +
.../notes/uefi-images-38c8536db189ffc1.yaml | 5 +
.../notes/up-qemuimg-mem-1536183a02b3a235.yaml | 7 +
tox.ini | 6 +-
zuul.d/ironic-python-agent-jobs.yaml | 7 +-
zuul.d/project.yaml | 20 +-
33 files changed, 2212 insertions(+), 453 deletions(-)
More information about the Release-announce
mailing list