We enthusiastically announce the release of: ironic 17.0.4: OpenStack Bare Metal Provisioning This release is part of the wallaby 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. 17.0.4 ^^^^^^ Upgrade Notes ************* * The query pattern for the database when lists of nodes are retrieved has been changed to a more efficient pattern at scale, where a list of nodes is generated, and then additional queries are executed to composite this data together. This is from a model where the database client in the conductor was having to deduplicate the resulting data set which is overall less efficent. Critical Issues *************** * Fixes upgrade failure caused by the missing version of "BIOSSetting" database objects. Bug Fixes ********* * Skips port creation during redfish inspect for devices reported without a MAC address. * Fixes potential cache coherency issues by caching the AgentClient per task, rather than globally. * Fixes a regression in the "ramdisk" deploy where custom kernel parameters were not used during inspection and cleaning. * Slow database retrieval of nodes has been addressed at the lower layer by explicitly passing and handling only the requested fields. The result is excess discarded work is not performed, making the overall process more efficent. This is particullarly beneficial for OpenStack Nova's syncronization with Ironic. * Fixes configuring Redfish RAID using "interface_type" when error "failed to find matching physical disks for all logical disks" occurs. * Fixes issue in "idrac-redfish" clean/deploy step "import_configuration" where partially successful jobs were treated as fully successful. Such jobs, completed with errors, are now treated as failures. * Fix "idrac-redfish" clean/deploy step "import_configuration" to handle completed import configuration tasks that are deleted by iDRAC before Ironic has checked task's status. Prior iDRAC firmware version 5.00.00.00 completed tasks are deleted after 1 minute in iDRAC Redfish. That is not always sufficient to check for their status in periodic check that runs every minute by default. Before this fix node got stuck in wait mode forever. This is fixed by failing the step with error informing to decrease periodic check interval or upgrade iDRAC firmware if not done already. * Fixes "idrac-wsman" BIOS and RAID interface steps to correctly check status of iDRAC job that completed with errors. Now these jobs are treated as failures. Before this fix node stayed in wait state as it was only checking for "Completed" or "Failed" job status, but not "Completed with Errors". * Fixes "idrac-wsman" power interface to wait for the hardware to reach the target state before returning. For systems where soft power off at the end of deployment to boot to instance failed and forced hard power off was used, this left node successfully deployed in off state without any errors. This broke other workflows expecting node to be on booted into OS at the end of deployment. Additional information can be found in story 2009204 (https://storyboard.openstack.org/#!/story/2009204). * When an "http(s)://" image is used, the cached copy of the image will always be updated if the HTTP server does not provide the last modification date and time. Previously the cached image would be considered up-to-date, which could cause invalid behavior if the image is generated on fly or was modified while being served. * Improves record retrieval performance for baremetal nodes by enabling ironic to not make redundant calls as part of generating API result sets for the baremetal nodes endpoint. * Fixes the pattern of execution for periodic tasks such that the majority of drivers now evaluate *if* work needs to be performed in advance of creating a node task. Depending on the individual driver query pattern, this prevents excess database queries from being triggered with every task execution. * Removes unused local images after ejecting a virtual media device via the "eject_vmedia" vendor passthru call of the "redfish" vendor interface. * In Redfish RAID clean and deploy steps skip non-RAID storage controllers for RAID operations. In Redfish systems that do not implement "SupportedRAIDTypes" they are still processed and could result in unexpected errors. * Retries "ssl.SSLError" when connecting to the agent. * Fixes an issue of powering off with the "idrac-wsman" management interface while the execution of a clear job queue cleaning step is proceeding. Prior to this fix, the clean step would fail when powering off a node. Other Notes *********** * The default database query pattern has been changed which will result in additional database queries when compositing lists of "nodes" by separately querying "traits" and "tags". Previously this was a joined query which requires deduplication of the result set before building composite objects. Changes in ironic 17.0.3..17.0.4 -------------------------------- b4e655625 Add iDRAC configuration mold docs 7a0cb9f1f Devstack: don't scan /opt, /etc looking for isolinux 8d88bcf42 Fix idrac-wsman having Completed with Errors jobs 4983afa08 Update iDRAC doc for idrac-redfish RAID c5beaa95c Remove images from the OS profiler docs 6ec6c44ce Always update cache for HTTP images if Last Modified is unknown 18264d3a5 Redfish RAID: Use identity instead of durable_name 8e5221ae3 Fix iDRAC import configuration job with errors e32a795be Fix iDRAC import configuration missing task handling e8c06e206 Fix driver task pattern to reduce periodic db load 14985866f Fix idrac-wsman set_power_state to wait on HW d56cf5f75 Improve edge-case debugging for deployment and cleaning d593c4f43 Retry stdlib ssl.SSLError db9649b6a Use shim-signed on Ubuntu, shim is empty now 449018366 Defer checking image size until instance info is built 5b801be7a Fix regression in ramdisk deploy kernel parameters f64a1881a Fix iPXE docs: snponly is not always available 9d0aee276 Fix Redfish RAID interface_type physical disk hint 085281fbf Redfish: Skip non-RAID controllers for RAID 12117e1ca Update Redfish RAID disk_type unit test e95b4cfde Redfish: Get only RAID controller's physical disks f43e80411 Add missing BIOSSettings version mapping for older releases ccecf7aff Clean up images when ejecting an ISO with Redfish e0d241fa4 Ironic index docs/command check backport 831cd5a15 Use selectinload for all list queries cb1a5a3c9 Allow node_sanitize function to be provided overrides 5a4783e4a API to pass fields to node object list 145765671 Set stage for objects to handle selected field lists. c71d529e7 Only return the requested fields from the DB 5cc097ed9 Skip port create if MAC is blank 39aec4446 Avoid double file removal in create_boot_iso 973d83af6 Cache AgentClient on Task, not globally fe7c58aef Suppress policy deprecation and default change warnings e1652c467 Update the clear job id's constant 68e08b52a Remove redundant/legacy is_admin logic 28d88acba Fix ramdisk boot option handling b88956550 Add documentation for anaconda deploy interface Diffstat (except docs and test files) ------------------------------------- bindep.txt | 2 +- devstack/lib/ironic | 19 +- devstack/upgrade/upgrade.sh | 10 +- ironic/api/controllers/v1/collection.py | 13 +- ironic/api/controllers/v1/node.py | 277 +++-- ironic/api/hooks.py | 3 - ironic/cmd/status.py | 37 + ironic/common/context.py | 4 - ironic/common/glance_service/service_utils.py | 7 +- ironic/common/images.py | 11 +- ironic/common/policy.py | 7 + ironic/common/raid.py | 10 + ironic/common/release_mappings.py | 13 + ironic/conductor/cleaning.py | 8 +- ironic/conductor/deployments.py | 6 +- ironic/conductor/steps.py | 9 + ironic/db/api.py | 6 +- ironic/db/sqlalchemy/api.py | 160 ++- ironic/drivers/modules/agent.py | 23 +- ironic/drivers/modules/agent_base.py | 31 +- ironic/drivers/modules/agent_client.py | 12 +- ironic/drivers/modules/ansible/deploy.py | 6 +- ironic/drivers/modules/deploy_utils.py | 10 + ironic/drivers/modules/drac/bios.py | 11 +- ironic/drivers/modules/drac/management.py | 59 +- ironic/drivers/modules/drac/power.py | 45 +- ironic/drivers/modules/drac/raid.py | 15 +- ironic/drivers/modules/image_cache.py | 28 +- ironic/drivers/modules/image_utils.py | 9 +- ironic/drivers/modules/irmc/raid.py | 9 +- ironic/drivers/modules/iscsi_deploy.py | 5 +- ironic/drivers/modules/pxe.py | 13 - ironic/drivers/modules/redfish/boot.py | 14 +- ironic/drivers/modules/redfish/management.py | 27 +- ironic/drivers/modules/redfish/raid.py | 114 +- ironic/drivers/modules/redfish/utils.py | 21 +- ironic/objects/base.py | 6 +- ironic/objects/node.py | 38 +- .../unit/drivers/modules/drac/test_management.py | 106 +- .../drivers/modules/drac/test_periodic_task.py | 33 + .../unit/drivers/modules/redfish/test_boot.py | 15 +- .../unit/drivers/modules/redfish/test_inspect.py | 15 + .../unit/drivers/modules/redfish/test_raid.py | 216 +++- .../unit/drivers/modules/redfish/test_vendor.py | 49 +- .../unit/drivers/modules/test_agent_client.py | 12 +- .../unit/drivers/modules/test_iscsi_deploy.py | 3 +- .../unit/drivers/third_party_driver_mock_specs.py | 8 +- .../notes/bios-version-dfd5c95805c295c5.yaml | 5 + releasenotes/notes/blank-mac-f8e0b37e0bd6d719.yaml | 5 + ...ache-agentclient-per-task-ec2231684e6876d9.yaml | 5 + ...ss-pattern-for-node-lists-a333dd9c5afa737d.yaml | 16 + .../custom-params-cleaning-f938549964ff6df0.yaml | 5 + ...-field-overhead-reduction-40be1821e38b468c.yaml | 9 + ...dfish-raid-interface-type-4b3566b637cc2301.yaml | 5 + ...port-conf-partial-success-86b8bd1983d227f6.yaml | 6 + ...onfiguration-task-deleted-2a0e6a96509394b6.yaml | 12 + ...man-completed-with-errors-f65c9a48ed4c02d4.yaml | 8 + ...sman-set-power-state-wait-cd8f9ff41b19c7a7.yaml | 10 + .../notes/image-cache-4082178dabd64249.yaml | 8 + ...ode-retrieval-performance-cf5a02eb629bf32c.yaml | 6 + ...imize-driver-task-pattern-322e02b6a2233919.yaml | 8 + .../notes/redfish-eject-iso-9875388ae09bc8f6.yaml | 6 + .../skip-nonraid-controllers-f4a79e2c9e8080ce.yaml | 7 + releasenotes/notes/sslerror-287edf7f8b3c5f1c.yaml | 4 + ...clear-job-id-constant-fix-c69cf96c55364bb3.yaml | 7 + 89 files changed, 2177 insertions(+), 2393 deletions(-)
participants (1)
-
no-reply@openstack.org