We contentedly announce the release of: ironic 13.0.4: OpenStack Bare Metal Provisioning This release is part of the train stable release series. The source is available from: https://opendev.org/openstack/ironic Download the package from: https://tarballs.openstack.org/ironic/ Please report issues through: https://storyboard.openstack.org/#!/project/943 For more details, please see below. 13.0.4 ^^^^^^ New Features ************ * For baremetal operations on DHCPv6-stateful networks multiple IPv6 addresses can now be allocated for neutron ports created for provisioning, cleaning, rescue or inspection. The new parameter "[neutron]/dhcpv6_stateful_address_count" controls the number of addresses to allocate (Default: 1). * Makes management interface of "redfish" hardware type not changing current boot frequency if currently set is the same as the desired one. The goal is to avoid touching potentially faulty BMC option whenever possible. * Adds a new "[ipmi]debug" option that allows users to explicitly turn IPMI command debugging on, as opposed to relying upon the system debug setting "[DEFAULT]debug". Users wishing to continue to log this output should set "[ipmi]debug" to "True" in their ironic.conf. Known Issues ************ * Some redfish-enabled hardware is known not to support persistent boot device setting that is used by the Bare Metal service for deployed instances. The "redfish" hardware type tries to work around this problem, but rebooting such an instance in-band may cause it to boot incorrectly. A predictable boot order should be configured in the node's boot firmware to avoid issues and at least metadata cleaning must be enabled. See this mailing list thread (http://lists.openstack.org/pipermail/openstack- discuss/2020-April/014543.html) for technical details. Upgrade Notes ************* * Changing minimum version of Ansible for use with the "ansible" "deploy_interface" to version 2.5. * The version of "sushy" can now be updated to "3.2.0" or later to address issues with managing persistant boot mode setting with Redfish Baseboard Management Controllers. * If "[DEFAULT]force_raw_images" is set to "true", then MD5 will not be utilized to recalculate the image checksum. This requires the "ironic-python-agent" ramdisk to be at least version 3.4.0. * Debug logging control has been moved to the "[ipmi]debug" configuration setting as opposed to the "conductor" "[DEFAULT]debug" setting as the existing "ipmitool" output can be extremely misleading for users. Operators who wish to continue to log "ipmitool" verbose output in their logs should explicitly set the "[ipmi]debug" command to True. Security Issues *************** * Image checksum recalculation when images are forced to raw images, are now calculated using SHA3-256 if MD5 was selected. This is now unconditional. Bug Fixes ********* * Fixes an issue with the agent client code where checks of the agent command status had no logic to prevent an intermittent or transient connection failure from causing the entire operation to fail. * Fixes the default disk detection in the "ansible" deploy interface with Python 3. Previously a random disk was used, resulting in boot failures, now the first disk is used (as intended). This required bumping the minimum required Ansible version to 2.5. * Fixes 'Invalid parameter value for SpanLength' when configuring RAID using Python 3. This passed incorrect data type to iDRAC, e.g., instead of *2* it passed *2.0*. See story 2004265 (https://storyboard.openstack.org/#!/story/2004265). * Fixes RAID configuration using *idrac-wsman* RAID interface where node remains in 'clean wait' provisioning state forever. See story 2007567 (https://storyboard.openstack.org/#!/story/2007567). * Fixes an issue where a node may be locked from changes if a conductor's hostname case is changed before restarting the conductor service. * Improves interoperability with Redfish BMCs by untying node boot mode change from other boot parameters change (such as boot device, boot frequency). This fix requires a newer version of the "sushy" library, version "3.2.0". * Fixes vague node "last_error" field reporting upon deploy step failure by providing the exception error message in addition to the step that failed. * The 'no address available' problem seen when network booting on DHCPv6-stateful networks is fixed with the support for allocating multiple IPv6 addresses. See bug: 1861032 (https://bugs.launchpad.net/neutron/+bug/1861032). * Fixes an agent command issue in the bootloader installation process that can present itself as a connection timeout under heavy IO load conditions. Now installation commands have an internal timeout which is double the conductor wide "[agent]command_timeout". For more information, see bug 2007483 (https://storyboard.openstack.org/#!/story/2007483). * Fixed a bug where rebooting a node managed by the "idrac" hardware type when using the WS-MAN power interface sometimes fails with a "The command failed to set RequestedState" error. See bug 2007487 (https://storyboard.openstack.org/#!/story/2007487) for details. * To provide a workaround for incorrect boot order problems on some hardware, the "redfish" hardware type now supports the "noop" management interface, similarly to IPMI and SNMP. * Rebooting a node with the "redfish" power interface is now implemented via a power off request followed by power on to avoid returning success when a node stays powered on after the reboot request. * Provides a workaround for hardware that does not support persistent boot device setting with the "redfish" hardware type. When such situation is detected, ironic will fall back to one-time boot device setting, restoring it on every reboot. Other Notes *********** * Ramdisk logs are now collected during cleaning the same way as during deployment. Changes in ironic 13.0.3..13.0.4 -------------------------------- 555494870 devstack: increase concurrency and worker timeout for sushy-tools f2eac72e8 redfish: handle hardware that is unable to set persistent boot 64fcd4040 Add the noop management interface to the redfish hardware type e277c4d3a Collect ramdisk logs also during cleaning 72e7514ce Revert "Add timeout and retries to JSON RPC client" 3904d0202 Pin the python-ibmcclient upper bounds due to six usage aaa7fe765 Improve `redfish` set-boot-device behaviour 8bc07ba05 Improve `redfish` set-boot-mode implementation 901402d11 Add timeout and retries to JSON RPC client 0eaaa1427 Silence debug messages from oslo_messaging 2e47bad7d redfish: split reboot into power off followed by power on d19fcbcd2 DRAC: Added redfish management interface issue 166673046 Add link to other Redfish parms to iDRAC doc 8b21d31fc Add note about UEFI support in Train 78d91c15d Fix RAID configuration with idrac-wsman interface 10c20e29d Update iDRAC doc about soft power off timeout 33af6b119 Update iDRAC doc about vendor passthru timeout 3ebb15ffe Fix issue where server fails to reboot dbf92aefb Fix enabled_hardware_types from idrac-wsman to idrac 41ef959eb Fix SpanLength calculation for DRAC RAID configuration 7c84ade16 Additional IP addresses to IPv6 stateful ports 253253ed8 Make deploy step failure logging indicate the error cea889dac Do not autoescape all Jinja2 templates 3e5816e10 Move ipmi logging to a separate option 9001b2b9d Extend install_bootloader command timeout fc0967189 Document deploy_boot_mode and boot_option for standalone deployments 81748b61f Retry agent get_command_status upon failures 32e6071f6 Documentation clarifications for software RAID 771cc7fc1 Change force_raw_images to use sha256 if md5 is selected a18f5ef18 Make reservation checks caseless f2418d75f Docs: split away user image building and highlight whole disk images 361f00f0c Using loop instead of with_X Diffstat (except docs and test files) ------------------------------------- devstack/lib/ironic | 3 + driver-requirements.txt | 5 +- ironic/common/neutron.py | 29 ++++ ironic/common/utils.py | 35 ++++- ironic/conductor/manager.py | 10 +- ironic/conf/agent.py | 6 +- ironic/conf/ipmi.py | 6 + ironic/conf/neutron.py | 10 ++ ironic/conf/opts.py | 2 + ironic/db/sqlalchemy/api.py | 9 +- ironic/drivers/modules/agent_base_vendor.py | 4 + ironic/drivers/modules/agent_client.py | 42 ++++- .../playbooks/roles/discover/tasks/main.yaml | 2 +- ironic/drivers/modules/deploy_utils.py | 25 +-- ironic/drivers/modules/drac/power.py | 80 +++++++--- ironic/drivers/modules/drac/raid.py | 4 +- ironic/drivers/modules/ipmitool.py | 2 +- ironic/drivers/modules/redfish/management.py | 137 ++++++++++++++--- ironic/drivers/modules/redfish/power.py | 57 +++++-- ironic/drivers/redfish.py | 3 +- ironic/drivers/utils.py | 10 +- .../drivers/modules/drac/test_periodic_task.py | 37 +++-- .../drivers/modules/redfish/test_management.py | 171 ++++++++++++++++++++- .../unit/drivers/modules/redfish/test_power.py | 125 +++++++++++---- .../unit/drivers/modules/test_agent_base_vendor.py | 11 +- .../unit/drivers/modules/test_agent_client.py | 14 +- .../unit/drivers/modules/test_deploy_utils.py | 28 +--- ...gent-command-status-retry-f9b6f53a823c6b01.yaml | 6 + .../notes/ansible-loops-de0eef0d5b79a9ff.yaml | 11 ++ .../notes/bug-2004265-cd9056868295f374.yaml | 7 + .../bug-2007567-wsman-raid-48483affdd9f9894.yaml | 6 + ...s-conductor-restart-check-f70005fbf65f6bb6.yaml | 5 + .../notes/cleaning-logs-dc115b0926ae3982.yaml | 5 + .../decouple-boot-params-2b05806435ad21e5.yaml | 12 ++ .../notes/deploy-step-error-d343e8cb7d1b2305.yaml | 6 + ...v6-stateful-address-count-0f94ac6a55bd9e51.yaml | 14 ++ ...nstall-bootloader-timeout-8fce9590bf405cdf.yaml | 8 + .../idrac-fix-reboot-failure-c740e765ff41bcf0.yaml | 7 + ...ksum-recalculation-sha256-fd3d5b4b0b757e86.yaml | 10 ++ ...e-redfish-set-boot-device-e38e9e9442ab5750.yaml | 7 + .../notes/ipmi-debug-1c7e090c6cc71903.yaml | 13 ++ .../notes/redfish-noop-mgmt-b61d02b77b1c9d6b.yaml | 6 + .../notes/redfish-power-87062756bce8b047.yaml | 6 + .../notes/redfish-sadness-6e2a37b3f45ef1aa.yaml | 18 +++ zuul.d/ironic-jobs.yaml | 2 +- 62 files changed, 1273 insertions(+), 265 deletions(-) Requirements updates -------------------- diff --git a/driver-requirements.txt b/driver-requirements.txt index beb542186..f0902eecb 100644 --- a/driver-requirements.txt +++ b/driver-requirements.txt @@ -17 +17 @@ sushy>=1.9.0 -ansible>=2.4 +ansible>=2.5 @@ -20 +20,2 @@ ansible>=2.4 -python-ibmcclient>=0.1.0 +python-ibmcclient>=0.1.0,<0.2.0 +
participants (1)
-
no-reply@openstack.org