We are chuffed to announce the release of: ironic 25.0.0: OpenStack Bare Metal Provisioning This release is part of the dalmatian 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://bugs.launchpad.net/ironic/+bugs For more details, please see below. 25.0.0 ^^^^^^ New Features ************ * Adds additional validation to the agent "callback_url". * Delegate parsing of version headers in API requests to the "microversion-parse" library which also adds support for the new standard singular header: 'OpenStack-API-Version: baremetal <version>'. Upgrade Notes ************* * *python-cinderclient* is no longer a dependency, all OpenStack Cinder operations are now done using *openstacksdk*. * *python-glanceclient* is no longer a dependency, all OpenStack Glance operations are now done using *openstacksdk*. * The default value for "[redfish]use_swift" has been changed to "false". This is to limit URL validation challenges presented by some baseboard management controllers where characters in the Swift temporary URL form are rejected by Baseboard Management Controllers. * API version 1.91 removes special treatment given to URLs ending in ".json". Operators desiring the previous behavior can request API version 1.90 or earlier. Security Issues *************** * Additional validation of the "callback_url" which is supplied to Ironic by the agent has been added. In addition to any standardized formatting checks included in Python urllib, we will also reject requests which have an invalid URL schema formatting. Bug Fixes ********* * Fixes an issue with units tests that show this DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) Removed the warning for deprecated schema by using a new template. * Previously the "conductors" "online" database column is not considered when displaying the "baremetal conductor list" "Alive" status. This means that when a conductor is stopped gracefully it will be shown as (inaccurately) alive for the duration of "[conductor]graceful_timeout". A conductor is now considered alive if "online" is true and there is a recent enough heartbeat. * Fixes the issue of service steps not starting due to servicing states (states.SERVICING and states.SERVICEWAIT) missing from _FASTTRACK_HEARTBEAT_ALLOWED constant. * Fixes issue with configuring virtual media boot for executing service steps by adding missing entries for states.SERVICING and states.SERVICEWAIT in the whitelist of the states allowed by this method. * [bug 2011053 (https://storyboard.openstack.org/#!/story/2011053)] Fix issue with boot from volume feature. Convert lun field from decimal to hexadecimal when generating iscsi url so that ipxe firmware could be able to identify the iSCSI SAN URI correctly, according to SAN URIs description at https://ipxe.org/sanuri. * Fixes usage of redfish detach virtual media feature to be conform to the general implementation. Before the detach virtual media API call using redfish driver was not working as intended and caused the operation to fail. * Fixes an issue in redfish attach/detach generic virtual media where the attached devices are not correctly recognized causing the attach operation to fail. * No longer falls back to *unmanaged* inspection for virtual media and UEFI HTTP boot interfaces. Previously, if the validation of the boot interface failed before in-band inspection, Ironic would switch to unmanaged inspection, which involved PXE-booting. It is not expected that nodes explicitly configured to use virtual media start booting over PXE, so the fallback has been removed. * Service step validation no longer requires a priority field, which is not supported for servicing. * Fixes service steps that rely on a reboot. Previously, the reboot was not properly recognized in the conductor logic. * Ironic now stops any active IPMI Serial-Over-LAN console sessions when initializing a console session. This resolves and issue where console support would fail if a previous console session was not properly disconnected. * Special treatment of .json is now disabled for nodes with .json extension in URL field. See bug 1748224 (https://bugs.launchpad.net/ironic/+bug/1748224) for more details. * Adds an ISO publisher value to ISO images which are mastered as part of cleaning/deployment/service operations in support of a fix for bug 2032377 (https://bugs.launchpad.net/ironic/+bug/2032377). * Fixes generated URL when using the virtual media attachment API. Previously, it missed the node UUID, causing conflicts between different nodes. Other Notes *********** * Moving forward, Ironic will discourage the use of "partition" images, in favor of "whole disk images", largely due to the underlying complexity in the code to maintain partition image support. This is not the deprecation of the functionality as the community has agreed to keep the functionality and fix any issues we become aware of. UEFI Partition images, where EFI assets are copied from a partition image, are the only partition images Ironic intends to test on a regular basis moving forward. Changes in ironic 24.1.0..25.0.0 -------------------------------- 7bb93f0d5 docs: fix wrong configuration option name 916b0f409 docs: fix markup 88c45151f Assert URL consistency for agent_url e651e9986 Minor ramdisk interface docs update e8634748a GRUB conf template compatibility with arm server b5b7e60c4 Excise use of non-timezone aware utcnow() b64a8ff6e Follow-up: minor wording change from 920706 268b28f52 Enhance security notes in config description 9f456bb63 docs: augment security docs c6328874a Update front page of contributor guide a52cba727 Fix some typo in servicing doc b44cad8e5 Fix CI issues in codespell/pep8 74b148b68 Fix negative lookahead assertion syntax error 1285417c7 Add Node Servicing to api-ref 9bed01d2f Use specific element to detect database backend 0d2a2e4bf docs: allow the state diagram to be larger 74ecde7ea Add servicing states to states doc, fix state diagram a0f48b642 [devstack] Upload images with --file instead of stdin 5a75e9afb docs: detail limitation of use of config drive + rebuild 8d0b556e3 Fix spurious CI job failures around partition images 13ab26188 reno: Update master for unmaintained/zed 198e2ceb3 doc: Fix wrong example of [ipmi] cipher_suite_versions e4c2f884c Remove eventlet workarounds 9c955685c Add pre-commit configuration and docs 021117e35 docs: revise notes around iso booting for clarity 91d4bacbe Replace cinderclient usage with openstacksdk 1e4ef9395 Remove old excludes f43587eff Redfish: fix error formatting when mounting vmedia dcf059af9 Fix iscsi url generate method for ipxe 978afbd5a Replace glanceclient usage with openstacksdk fb850e7f0 Inject a randomized publisher id 508b1ccab ci: re-enable grenade test job bccea706c docs: update ilo docs regarding status -> use redfish 91ee72800 docs: document stance on partition image use ee5315bcf Remove special treatment of .json for API objects 6c1e002c0 doc: Add extra context around release mapping f7fd7961c Trivial: use canonical name of microversion-parse c1f3daf7b Fix attach/detach vmedia redfish implementation 623949bfa Ensure [molds] password is not logged 9cead9457 Validate url options at config input layer 62506393f docs: Cleanup/revise Secure Boot docs ae2b5f5f1 redfish: change default virtual media storage to local storage 126041be9 docs: update redfish docs to detail swift url issues ae4b58534 Run neutron for the functional test job 20543fc11 Follow-up: Use ``microversion-parse`` to parse version headers in API requests 68fcc6b0d Fix device_type in attach/detach vmedia for Redfish 92b61e280 Remove redundant priority override code from service steps e04741ac3 Correct logging call in _heartbeat_service_wait method fb00fa503 Docs: Remove outdated RBAC content 619e1ac80 Add states.SERVICING and SERVICEWAIT to _FASTTRACK_HEARTBEAT_ALLOWED 9c237240b Small Doc Fix: Moved user export for devstack guide. 211e00747 Load machine type from command-line 668dd2410 Remove deprecation warning by setting schema a27f29fb4 Remove SQLAlchemy tips jobs 7408a93dc db: Replace use of Engine.execute() method 774890dd7 Make codespell voting 0f62bd216 Fix spelling reported by codespell 004e78c41 Fix the confusion around service_reboot/servicing_reboot c61c7fabe Handle servicing failures in the Redfish BIOS interface 6c8673c1b Fix servicing clean-up c1ce255f0 Fix get_async_step_return_state to account for servicing 22aa29b86 Stop assuming service steps have priorities 70ccb6af1 Add states.SERVICING and SERVICEWAIT to need_prepare_ramdisk 58fc21fc0 Fix redfish detach generic vmedia device method 2f040ea32 Remove unused DEFAULT_NEUTRON_URL constant 5552e54d8 Use the new microversion-parse library to parse the version headers a9a4fff71 Fix generating local paths when connecting virtual media adef5d60a CI: Unpack cirros image partition jobs 16e839d74 CI: Limit redfish https job to wholedisk images c2dd5fc83 Add note regarding metal3 ci job in CI config for stable runs 12cf47da0 ci: automatically set the branch for IPA to match TARGET_BRANCH 272344e95 Imported Translations from Zanata 388b9ddca Update min required version of scciclient 161374f76 Expose conductor online boolean for accurate alive cd117d1ed Update master for stable/2024.1 b7954ad72 Do not rely on predefined UUIDs in tests 2f399a1fb Drop fallback to unmanaged inspection for virtual media and UEFI boot 45502d7be Fix new codespell issues; tweak config fcbc2b6df Add redfish https boot CI job e5f7e052a Fix Reopen Web Console Duplicate Sol Session 055224c5e Use .coveragerc file Diffstat (except docs and test files) ------------------------------------- .coveragerc | 7 + .pre-commit-config.yaml | 41 ++ .../source/baremetal-api-v1-node-management.inc | 5 + api-ref/source/baremetal-api-v1-nodes.inc | 9 + api-ref/source/baremetal-api-versions.inc | 7 +- api-ref/source/parameters.yaml | 9 + devstack/lib/ironic | 28 +- devstack/tools/ironic/scripts/cirros-partition.sh | 5 + devstack/tools/ironic/scripts/configure-vm.py | 3 + devstack/tools/ironic/templates/vm.xml | 2 +- driver-requirements.txt | 4 +- ironic/api/controllers/base.py | 25 +- ironic/api/controllers/v1/allocation.py | 2 +- ironic/api/controllers/v1/conductor.py | 3 +- ironic/api/controllers/v1/ramdisk.py | 15 + ironic/api/controllers/v1/versions.py | 3 +- ironic/api/middleware/json_ext.py | 25 +- ironic/cmd/__init__.py | 16 - ironic/cmd/status.py | 6 +- ironic/common/async_steps.py | 168 +++++ ironic/common/cinder.py | 120 ++-- ironic/common/glance_service/image_service.py | 77 +- ironic/common/images.py | 38 +- ironic/common/neutron.py | 4 - ironic/common/policy.py | 4 +- ironic/common/pxe_utils.py | 12 +- ironic/common/raid.py | 5 +- ironic/common/release_mappings.py | 8 +- ironic/common/states.py | 5 + ironic/conductor/cleaning.py | 11 +- ironic/conductor/deployments.py | 12 +- ironic/conductor/manager.py | 25 +- ironic/conductor/servicing.py | 12 +- ironic/conductor/steps.py | 25 +- ironic/conductor/utils.py | 36 +- ironic/conf/agent.py | 10 +- ironic/conf/anaconda.py | 2 +- ironic/conf/api.py | 3 +- ironic/conf/cinder.py | 9 +- ironic/conf/default.py | 11 +- ironic/conf/deploy.py | 9 +- ironic/conf/glance.py | 3 +- ironic/conf/ipmi.py | 4 +- ironic/conf/molds.py | 1 + ironic/conf/opts.py | 1 - ironic/conf/redfish.py | 2 +- ironic/drivers/modules/agent.py | 8 +- ironic/drivers/modules/agent_base.py | 50 +- ironic/drivers/modules/deploy_utils.py | 104 +-- ironic/drivers/modules/ilo/boot.py | 14 +- ironic/drivers/modules/image_utils.py | 38 +- ironic/drivers/modules/ipmitool.py | 18 +- ironic/drivers/modules/pxe_base.py | 2 +- ironic/drivers/modules/pxe_grub_config.template | 14 +- ironic/drivers/modules/redfish/bios.py | 7 +- ironic/drivers/modules/redfish/boot.py | 27 +- ironic/drivers/modules/redfish/firmware_utils.py | 2 +- ironic/drivers/modules/redfish/management.py | 22 +- ironic/drivers/utils.py | 4 +- ironic/objects/conductor.py | 4 +- ...ice_type-redfish-advmedia-dff448c2f9085a47.yaml | 7 + .../unit/api/controllers/v1/test_allocation.py | 27 +- .../unit/api/controllers/v1/test_conductor.py | 12 +- .../api/controllers/v1/test_deploy_template.py | 42 +- .../unit/api/controllers/v1/test_portgroup.py | 26 +- .../unit/drivers/modules/drac/test_management.py | 9 +- .../unit/drivers/modules/network/test_neutron.py | 2 +- .../unit/drivers/modules/redfish/test_boot.py | 2 +- .../unit/drivers/modules/redfish/test_firmware.py | 3 +- .../drivers/modules/redfish/test_management.py | 50 +- .../unit/drivers/modules/redfish/test_raid.py | 58 +- .../unit/drivers/modules/test_deploy_utils.py | 5 +- releasenotes/notes/2061160-5e080a17ae31fb53.yaml | 8 + .../notes/accurate_alive-d2687bca802211a4.yaml | 10 + ...ng-to-heartbeat-fasttrack-85863df34ece6401.yaml | 6 + ...g-to-need-prepare-ramdisk-fb0634b4f7d851bd.yaml | 7 + ...add-vmedia-system-support-5d81316d02b909b9.yaml | 2 +- ...onal-agent-url-validation-97271ce72b0b1a9d.yaml | 10 + ...ac-originating-500-errors-4b54977631a015d9.yaml | 4 +- .../notes/bug-2011053-085a8b5a36bb9b59.yaml | 8 + .../cinderclient-removal-33949e6cc45202b7.yaml | 5 + .../create_node_indexes-841b679e6cf332fd.yaml | 2 +- ...fix-detach-vmedia-redfish-c86b7d0f72217816.yaml | 7 + ...x-redfish-advmedia-part02-67ac1b22153ff1cf.yaml | 6 + .../glanceclient-removal-33b382ad03772530.yaml | 5 + ...rub-default-change-to-mac-1e301a96c49acec4.yaml | 2 +- .../no-unmanaged-vmedia-9fc7378f93e3d11a.yaml | 9 + ...icroversion-parse-library-090d2cf5d9cfb74f.yaml | 6 + ...l-media-default-not-swift-3917f0e14fd62a0d.yaml | 7 + .../remove-discoverd-group-03eaf75e9f94d7be.yaml | 2 +- .../notes/service-priority-7482622471102c6b.yaml | 5 + .../notes/servicing-reboot-502f474a01f937a8.yaml | 5 + ...set-stance-on-image-types-4905f00a09a6521f.yaml | 10 + ...-sol-console-before-start-5cbb7be7816f3886.yaml | 6 + ...andling-of-json-extension-c69af7da3abaeaac.yaml | 12 + ...ia-publisher-id-injection-c88674a31634f852.yaml | 6 + .../notes/vmedia-path-648cfa258708e0bb.yaml | 6 + releasenotes/source/2024.1.rst | 6 + releasenotes/source/index.rst | 1 + .../locale/en_GB/LC_MESSAGES/releasenotes.po | 165 +---- .../source/locale/ja/LC_MESSAGES/releasenotes.po | 159 +++++ releasenotes/source/zed.rst | 2 +- requirements.txt | 14 +- setup.cfg | 11 +- test-requirements.txt | 8 +- tox.ini | 11 +- zuul.d/ironic-jobs.yaml | 70 +- zuul.d/project.yaml | 22 +- 157 files changed, 3129 insertions(+), 1523 deletions(-) Requirements updates -------------------- diff --git a/driver-requirements.txt b/driver-requirements.txt index 8b5bec94c..f72b45cd4 100644 --- a/driver-requirements.txt +++ b/driver-requirements.txt @@ -7 +7 @@ -proliantutils>=2.16.2 +proliantutils>=2.16.2,<2.17.0 @@ -11 +11 @@ pyasn1-modules>=0.3.0 # BSD -python-scciclient>=0.15.0 +python-scciclient>=0.16.0,<0.17.0 diff --git a/requirements.txt b/requirements.txt index 3ec1147f5..7773d6e40 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,3 +4,0 @@ -# The order of packages is significant, because pip processes them in the order -# of appearance. Changing the order has an impact on the overall integration -# process, which may cause wedges in the gate later. @@ -14,2 +10,0 @@ WebOb>=1.7.1 # MIT -python-cinderclient!=4.0.0,>=3.3.0 # Apache-2.0 -python-glanceclient>=2.8.0 # Apache-2.0 @@ -29 +24 @@ oslo.serialization>=2.25.0 # Apache-2.0 -oslo.service!=1.28.1,>=1.24.0 # Apache-2.0 +oslo.service>=1.24.0 # Apache-2.0 @@ -34 +29 @@ os-traits>=0.4.0 # Apache-2.0 -pecan!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,>=1.0.0 # BSD +pecan>=1.0.0 # BSD @@ -38 +33 @@ rfc3986>=1.2.0 # Apache-2.0 -jsonpatch!=1.20,>=1.16 # BSD +jsonpatch>=1.16 # BSD @@ -48 +43 @@ tooz>=2.7.0 # Apache-2.0 -openstacksdk>=0.48.0 # Apache-2.0 +openstacksdk>=0.99.0 # Apache-2.0 @@ -51,0 +47 @@ netaddr>=0.9.0 # BSD +microversion-parse>=1.0.1 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index 6d9213179..772496f8f 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -1,5 +1 @@ -# The order of packages is significant, because pip processes them in the order -# of appearance. Changing the order has an impact on the overall integration -# process, which may cause wedges in the gate later. - -coverage!=4.4,>=4.0 # Apache-2.0 +coverage>=4.0 # Apache-2.0 @@ -19 +15 @@ pyasn1-modules>=0.3.0 # BSD -bandit!=1.6.0,>=1.1.0,<2.0.0 # Apache-2.0 +bandit>=1.1.0,<2.0.0 # Apache-2.0
participants (1)
-
no-reply@openstack.org