[release-announce] ironic 17.0.4 (wallaby)

no-reply at openstack.org no-reply at openstack.org
Thu Oct 7 09:58:51 UTC 2021


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(-)







More information about the Release-announce mailing list