We are excited to announce the release of: ironic-python-agent 8.1.0: Ironic Python Agent Ramdisk This release is part of the xena 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. 8.1.0 ^^^^^ New Features ************ * Adds a burn-in cleaning step 'burnin_disk' to stress test disks for a configurable number of iterations or a configurable amount of time with fio. To use this step, stress-ng needs to be installed on the RAM disk. * Adds a burn-in cleaning step 'burnin_network' to stress test the network interface for a configurable amount of time with fio. To use this step, fio needs to be installed on the RAM disk. * Heartbeats to the conductor are grouped when they are scheduled or requested within a time interval of five seconds to avoid sending them in quick succession. * 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 ********* * Fixes an issue with bootloader installation on a software RAID by checking if the ESP is already mounted. * Fixes an issue where a quick succession of heartbeats exposes a race condition in the conductor's RPC handling. * 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). * Recent releases of redhat grub2 will always fail when installing to EFI paths, to encourage a transition to the signed shim bootloader. Partition image deploys avoid calling grub2-install with the preserve-efi-assets functions. Deploying whole disk images doesn't require grub2-install. This leaves whole disk images installed onto softraid devices, which still calls grub2-install. Running grub2-install is still attempted in this one remaining case, but any failures are now ignored. * 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). Changes in ironic-python-agent 8.0.0..8.1.0 ------------------------------------------- 5531d5c Force immediate NTP time sync with chronyd at IPA startup cacdd9b Burn-in: Add network step e5d5524 Catch ismount not being handled 2756820 Only mount the ESP if not yet mounted b605943 Coalesce heartbeats 2fcf35e Reduce logging verbosity when collecting logs 5473700 Remove lower-constraints job 2fab70c Utilize CSV file for EFI loader selection a057be7 Ignore efi grub2-install failure e27cdb3 Changed minversion in tox to 3.18.0 33d889c Refactor: use convert_image from ironic_lib 20c5894 Burn-in: Add disk step Diffstat (except docs and test files) ------------------------------------- ironic_python_agent/agent.py | 21 +- ironic_python_agent/burnin.py | 111 ++++++++++ ironic_python_agent/extensions/image.py | 152 ++++++++++---- ironic_python_agent/extensions/standby.py | 17 +- ironic_python_agent/hardware.py | 30 +++ ironic_python_agent/utils.py | 23 +- .../notes/add_burnin_disk-12adb5735a41af47.yaml | 6 + .../notes/add_burnin_network-4856153d21c25f4a.yaml | 6 + .../check-if-ESP-is-mounted-f9e0eff3609c2668.yaml | 7 + .../coalesce_heartbeats-fb8899a5f9fe4709.yaml | 10 + .../fix_chronyd_time_sync-626a14b66ca37677.yaml | 6 + .../ignore-grub-efi-fail-dcf7eb07f61f4388.yaml | 10 + ...t-bootloader-csv-file-use-c815b520c600cd98.yaml | 22 ++ requirements.txt | 2 +- tox.ini | 15 +- 22 files changed, 773 insertions(+), 152 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index a08384d..69d886c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -20 +20 @@ tenacity>=6.2.0 # Apache-2.0 -ironic-lib>=4.5.0 # Apache-2.0 +ironic-lib>=4.7.1 # Apache-2.0