We exuberantly announce the release of: ironic 21.3.0: OpenStack Bare Metal Provisioning This release is part of the antelope 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. 21.3.0 ^^^^^^ New Features ************ * Adds API version "1.81" which enables fetching node inventory which might have been stored during introspection * Adds verify step and node vendor passthru method to deal with a firmware incompatibility issue with iRMC versions S6 2.00 and later in which HTTP connection to REST API is not supported and HTTPS connections to REST API is required. Verify step checks connection to iRMC REST API and if connection succeeds, it fetches version of iRMC firmware and store it in "driver_internal_info/irmc_fw_version". Ironic operators use node vendor passthru method to fetch & update iRMC firmware version cached in "driver_internal_info/irmc_fw_version". Upgrade Notes ************* * Since iRMC versions S6 2.00 and later, iRMC firmware doesn't support HTTP connection to REST API. Operators need to set "[irmc] port" in ironic.conf or "driver_info/irmc_port" to 443. * When Ironic operator uses irmc driver against Fujitsu server which runs iRMC version S6 2.00 or later, operator may need to set Redfish parameters in "driver_info" so this fix can operate properly or operator should enable IPMI over LAN through BMC settings, if possible. Bug Fixes ********* * Fixes an issue where if selinux is enabled and enforcing, and the published image is a hardlink, the source selinux context is preserved, causing access denied when retrieving the image using hardlink URL. * Fixes the default value for the "[DEFAULT]grub_config_path" variable to be the default path for UEFI bootloader configurations, where as the default was previously the BIOS grub2 configuration path. * Fixes a firmware incompatibility issue with iRMC versions S6 2.00 and later now doesn't support IPMI over LAN by default. To deal with this problem, irmc driver first tries IPMI operation then, if IPMI operation fails, it tries Redfish API of Fujitsu server. The operator must set Redfish parameters in the "driver_info" if iRMC disable or doesn't support IPMI over LAN. * Fixes "'NoneType' object is not iterable" in conductor logs for "redfish" and "idrac-redfish" RAID clean and deploy steps. The message should no longer appear. For affected nodes re-create the node or delete "raid_configs" entry from "driver_internal_info" field. Changes in ironic 21.2.0..21.3.0 -------------------------------- fbe22b23b Move and fix reno config for releasenotes job 692a383fd [CI] Swap anaconda urls b63d15ccd Make reno ignore bugfix eol tags 38777e503 Clarify release docs: bugfix releases optional fe69e06c7 Reorganise Inventory Storage 8604a799a Docs: Troubleshooting: how to exit clean failed f8608dbd9 Use new get_rpc_client API from oslo.messaging 9a85e4787 CI: Fix race prone unit test in networking f11321099 Create [inventory] d23f72ee5 [iRMC] Handle IPMI incompatibility in iRMC S6 2.x eae33a0ac [iRMC] identify BMC firmware version 2e80ea909 API for node inventory c05c09fd3 Fix selinux context of published image hardlink 2f4a156d2 Fix grub config path default 5cd7bfc52 Docs: Add considerations to anaconda docs 05f6003fe [DOC] Add entry regarding cleaning+raid ca5ed66d5 setup.py: Remove 'py_modules' 0230d361f CI: Reset VM footprint to 2.6GB 1d07be823 Use centos grub artifacts with centos ramdisk for vmedia cab04afe6 Create IRONIC_VM_MACS_CSV_FILE if it does not exist 7150478cd Fix unbound variable in devstack plugin 93158aadd Use tinycore 13 for base ramdisk image 6b84fbf8f Fix CI facd1bca6 Remove lib/neutron-legacy leftovers 17c9e58c9 Fix "'NoneType' object is not iterable" in RAID ef772c2c1 Fixes for tox 4.0 8b00932e4 Use association_proxy for ports node_uuid 44ccc397c Add doc for lsblk: /dev/nvme0n1p2: not a block device 973d3b6ea Enable alternative storage for inventory Diffstat (except docs and test files) ------------------------------------- .../source/baremetal-api-v1-nodes-inventory.inc | 40 +++ api-ref/source/parameters.yaml | 12 + .../source/samples/node-inventory-response.json | 31 ++ devstack/lib/ironic | 21 +- devstack/plugin.sh | 2 +- devstack/upgrade/upgrade.sh | 2 +- ironic/api/controllers/v1/node.py | 25 +- ironic/api/controllers/v1/port.py | 8 +- ironic/api/controllers/v1/utils.py | 5 + ironic/api/controllers/v1/versions.py | 4 +- ironic/common/policy.py | 13 + ironic/common/release_mappings.py | 4 +- ironic/common/rpc.py | 7 +- ironic/common/swift.py | 42 +++ ironic/conf/__init__.py | 2 + ironic/conf/default.py | 2 +- ironic/conf/inventory.py | 34 +++ ironic/conf/opts.py | 1 + ironic/db/sqlalchemy/api.py | 4 +- ironic/db/sqlalchemy/models.py | 10 + ironic/drivers/irmc.py | 6 + ironic/drivers/modules/image_utils.py | 10 + ironic/drivers/modules/inspect_utils.py | 87 ++++++ ironic/drivers/modules/inspector.py | 14 +- ironic/drivers/modules/irmc/common.py | 219 +++++++++++++ ironic/drivers/modules/irmc/inspect.py | 89 ++++-- ironic/drivers/modules/irmc/management.py | 287 +++++++++++++++--- ironic/drivers/modules/irmc/power.py | 57 +++- ironic/drivers/modules/irmc/vendor.py | 75 +++++ ironic/drivers/modules/redfish/raid.py | 8 +- ironic/objects/port.py | 8 +- .../unit/drivers/modules/irmc/test_inspect.py | 107 ++++++- .../unit/drivers/modules/irmc/test_management.py | 337 ++++++++++++++++++++- .../unit/drivers/modules/network/test_common.py | 4 +- .../unit/drivers/modules/redfish/test_raid.py | 4 + .../unit/drivers/modules/test_inspect_utils.py | 121 ++++++++ .../unit/drivers/third_party_driver_mock_specs.py | 2 + releasenotes/config.yaml | 5 + .../notes/add-node-inventory-7cde961b14caa11e.yaml | 5 + ...ix-context-image-hardlink-16f452974abc7327.yaml | 7 + ...ix-grub2-uefi-config-path-f1b4c5083cc97ee5.yaml | 14 + ...2.00-http-incompatibility-61a31d12aa33fbd8.yaml | 19 ++ ...2.00-ipmi-incompatibility-118484a424df02b1.yaml | 15 + ...pe-object-is-not-iterable-0592926d890d6c11.yaml | 7 + reno.yaml | 4 - requirements.txt | 2 +- setup.cfg | 1 + setup.py | 4 +- tox.ini | 12 +- zuul.d/ironic-jobs.yaml | 10 +- 67 files changed, 2303 insertions(+), 209 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index 8a57727ec..0c73e632e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -42 +42 @@ keystonemiddleware>=9.5.0 # Apache-2.0 -oslo.messaging>=5.29.0 # Apache-2.0 +oslo.messaging>=14.1.0 # Apache-2.0
participants (1)
-
no-reply@openstack.org