We are psyched to announce the release of: ironic-python-agent 11.3.0 This release is part of the gazpacho 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://bugs.launchpad.net/ironic-python-agent/+bugs For more details, please see below. 11.3.0 ^^^^^^ New Features ************ * Adds support for the "is_root_volume" property in software RAID configurations. The property can be set to True on a RAID volume to indicate that it should be used as the root device for OS installation. When set to False, the volume and the underlying physical devices and partitions are excluded from consideration as potential root devices. It defaults to None, which has no effect on root device selection. * Adds support for automatically skipping BMC detection via ipmitool when Ironic indicates the node uses out-of-band management interfaces (e.g., Redfish, iDRAC Redfish, iLO, iRMC). This reduces deployment time and avoids unnecessary ipmitool calls when the BMC information is already known to Ironic. * BMC information (address, v6address, and MAC) is now cached after the first detection to avoid repeated expensive ipmitool calls during subsequent inventory collections. This improves performance during heartbeats and long-running operations like cleaning or rescue mode. Upgrade Notes ************* * Support for Python 3.9 has been removed. Now Python 3.10 is the minimum version supported. Deprecation Notes ***************** * If a volume_name is present in the skip_block_devices property, the function validate_confiuguration will now fail unless all logical disks in the target_raid_config have a volume_name specified. Bug Fixes ********* * Fix a conditional which is supposed to check whether there are any erasable devices. In the previous state, the conditional was wrong as the call was missing the node as a parameter. * Fixes matching hints with lists of WWN/Serial which was only handled in some cases - due to the issue, it was possible to choose a device listed in the skip_block_devices property as a root device. * Fixes an issue where the agent could not find a valid IP address when the Ironic API was running on a non-standard port. The reachability test now uses the full API URL including the port number, instead of only using the hostname. This prevents "LookupAgentIPError" when connecting to Ironic APIs on custom ports. * Fixes RuntimeError when entering rescue mode by checking if the heartbeater thread is alive before attempting to stop it. * The skip_block_devices property now supports RAIDs, including scenarios with multiple arrays on the same physical disk. This included 6 smaller bugs that have all been addressed. * The agent now tests Ironic API URL reachability via HTTP during startup before determining the advertised IP address. Unreachable API URLs are filtered out, preventing the agent from advertising an IP address that cannot actually reach the Ironic API. This improves reliability when multiple API URLs are configured or in complex network topologies. The IP reachability test uses the configured "http_request_timeout" (default 30 seconds) timeout for the HTTP request. Changes in ironic-python-agent 11.2.0..11.3.0 --------------------------------------------- 3adc5c2b ci: disable vnc on IPA jobs ca6f4fb9 Skip BMC detection when using out-of-band management 7d7735a2 Fix API URL reachability test to use full URL with port bae591a8 Fix RuntimeError when stopping heartbeater in rescue mode e7653ee1 Build and publish updated debian images 2c6cf7cf Test advertised ip reachability before assigning it 487f069e Implement functionality for the is_root_volume RAID config bb4b4fdb Fix for matching hints with lists of strings 6fdb13d6 reno: Update master for unmaintained/2024.1 82fef2db fix: docs(troubleshooting) update deprecated password hash algorithm 57d2c868 Remove the metalsmith job 29deed1b Remove testing for pending-EOL items d4391345 Fix skip block devices for RAID arrays 26b7d6f3 Remove support for Python 3.9 f14c187a Fix erasable devices check ae3dda4e Update master for stable/2025.2 Diffstat (except docs and test files) ------------------------------------- ironic_python_agent/agent.py | 81 +- ironic_python_agent/device_hints.py | 63 +- ironic_python_agent/hardware.py | 811 +++++++--- ironic_python_agent/raid_utils.py | 13 +- ...root_volume-functionality-02340c3887b882e8.yaml | 9 + ...ix-erasable-devices-check-151da773bcb2be50.yaml | 6 + .../fix-matching-hints-lists-b62254ff8eb4a2c1.yaml | 6 + .../fix-reachability-test-7da1c27ad261bbc4.yaml | 8 + ...cue-mode-heartbeater-stop-8f3a2b1c4d5e6f7g.yaml | 6 + .../notes/remove-py39-fca5d9e7d2e135cf.yaml | 5 + .../safeguards_raid_fix-6521157d95aed18f.yaml | 12 + ...ction-with-oob-management-7920f722d53974dc.yaml | 13 + ...hability-before-advertise-689f2d3b9276d399.yaml | 10 + releasenotes/source/2024.1.rst | 2 +- releasenotes/source/2025.2.rst | 6 + releasenotes/source/index.rst | 1 + setup.cfg | 3 +- zuul.d/ironic-python-agent-jobs.yaml | 36 +- zuul.d/project.yaml | 6 +- 26 files changed, 2622 insertions(+), 441 deletions(-)
participants (1)
-
no-reply@openstack.org