[release-announce] ironic 12.2.0 (train)

no-reply at openstack.org no-reply at openstack.org
Fri Jun 21 14:55:30 UTC 2019


We contentedly announce the release of:

ironic 12.2.0: OpenStack Bare Metal Provisioning

This release is part of the train 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.

12.2.0
^^^^^^


New Features
************

* Adds option "allow_deleting_available_nodes" to control whether
  nodes in state "available" should be deletable (which is and stays
  the default). Setting this option to "False" will remove "available"
  from the list of states in which nodes can be deleted from ironic.
  It hence provides protection against accidental removal of nodes
  which are ready for allocation (and is meant as a safeguard for the
  operational effort to bring nodes into this state). For backwards
  compatibility reasons, the default value for this option is "True".
  The other states in which nodes can be deleted from ironic
  ("manageable", "enroll", and "adoptfail") remain unchanged. This
  option can be changed without service restart.

* Adds capability to hardware type "idrac" for creating and deleting
  RAID sets without rebooting the baremetal node. This realtime
  mechanism is supported on PERC H730 and H740 RAID controllers that
  are running firmware version 25.5.5.0005 or later.

* Adds "reset_idrac" and "known_good_state" cleaning steps to
  hardware type "idrac". "reset_idrac" actually resets the iDRAC;
  "known_good_state" also resets the iDRAC and clears the Lifecycle
  Controller job queue to make sure the iDRAC is in good state.

* API version 1.58 allows backfilling allocations for existing
  deployed nodes by providing "node" to "POST /v1/allocations".

* API version 1.57 adds a REST API endpoint for updating an existing
  allocation. Only "name" and "extra" fields are allowed to be
  updated.

* Adds a new option "enable_mdns" which enables publishing the
  baremetal API endpoint via mDNS as specified in the API SIG
  guideline (http://specs.openstack.org/openstack/api-sig/guidelines
  /dns-sd.html).

* Adds a "[conductor]send_sensor_data_for_undeployed_nodes" option
  to enable ironic to collect and transmit sensor data for all nodes
  for which sensor data collection is available. By default, this
  option is not enabled which aligns with the prior behavior of sensor
  data collection and transmission where such data was only collected
  if an "instance_uuid" was present to signify that the node has been
  or is being deployed. With this option set to "True", operators may
  be able to identify hardware in a faulty state through the sensor
  data and take action before an instance workload is deployed.

* The Smart-Nic functionality that was added to the Bare Metal
  Service during the Stein cycle can now be used with a Train version
  of the Networking Service (neutron) as Smart-Nic support merged into
  that project during the Train development cycle.


Upgrade Notes
*************

* Updates the minimum required version of "python-dracclient" to
  "3.0.0" when using the "idrac" hardware type.

* Removes "commit_required" from the dictionary returned by the
  "set_bios_config" vendor passthru call in the "idrac" hardware type.
  "commit_required" was split into two keys: "is_commit_required" and
  "is_reboot_required", which indicate the actions necessary to
  complete setting the BIOS settings.  "commit_required" was removed
  in "python-dracclient" version 3.0.0.

* Removes deprecated option "[ilo]/power_retry". Please use
  "[conductor]/soft_power_off_timeout" instead.

* Removes the configuration option
  "[DEFAULT]/hash_distribution_replicas" which was deprecated in the
  Stein cycle.

* Removes the configuration option "[DEFAULT]enabled_drivers". The
  option was deprecated in Rocky, and setting this option has raised
  an exception preventing conductor from starting since then.
  "[DEFAULT]enabled_hardware_types" should be used instead.

* Updates the minimum required version of "ironic-lib" to "2.17.1".


Deprecation Notes
*****************

* The configuration option "[DEFAULT]/fatal_exception_format_errors"
  is now deprecated. Please use the configuration option
  "[ironic_lib]/fatal_exception_format_errors" instead.


Bug Fixes
*********

* Fixes an issue where the Networking Service performs a pre-flight
  operation which can exceed the prior default for "30" seconds. The
  new default is "45" seconds, and operators can tune the setting via
  the "[neutron]request_timeout" setting.

* Fixes overflowing of the node fields "last_error" and
  "maintenance_reason", which would prevent the object from being
  correctly committed to the database.  The maximum message length can
  be customized through a new configuration parameter,
  "[DEFAULT]/log_in_db_max_size" (default, 4096 characters).

* Fixes an issue encountered during deployment, more precisely
  during the configdrive partition creation step. On some specific
  devices like NVMe drives, the created configdrive partition could
  not be correctly identified (required to dump data onto it
  afterward). See story 2005764
  (https://storyboard.openstack.org/#!/story/2005764).

* Fixes an issue regarding the "ansible" deploy interface cleaning
  workflow. Handling the error in the driver and returning nothing
  caused the manager to consider the step done and go to the next one
  instead of interrupting the cleaning workflow.

* Fixes an issue with the "ansible" deploy interface where raw
  images could not be streamed correctly to the host.

* Fixes deployment with the "ansible" deploy interface and instance
  images with GPT partition table.

* Fixes traceback on cleaning of nodes with the "redfish" hardware
  type if their BMC does not support BIOS settings.

* Fixes an issue where the sensor data parsing method for the
  "ipmitool" interface lacked the ability to handle the automatically
  included *ipmitool* debugging information when the "debug" option is
  set to "True" in the ironic.conf file. As such, extra debugging
  information supplied by the underlying "ipmitool" command is
  disregarded. More information can be found in story 2005331
  (https://storyboard.openstack.org/#!/story/2005332).

* Fixes an issue where deploy fails during node preparation if the
  node "capabilities" are passed as string.

* Fixes GRUB configuration file generation procedure when building
  bootable ISO images that include user EFI boot loader image. Prior
  to this fix, no bootable ISO image could be generated unless EFI
  boot loader is extracted from deploy ISO image.

* Fixes an issue when the image source is a local file, the image
  will be truncated to 2G and fails deployment due to image
  corruption.

* Fixes binary files upload to Swift. Prior to this fix, binary file
  upload to Swift might fail at unicode characters interpretation.

* The internal JSON RPC server now binds to "::" by default,
  allowing it to work correctly with IPv6.

* This fix binds the jsonschema to use draft-04 for raid schema. The
  jsonschema 3.0.1 supports draft-03, draft-04, draft-06 and draft-07
  and by default the validate function uses latest draft validator.
  Draft-04 is the latest draft in the jsonschema 2.6. Hence binding
  the schema to draft-04 validator makes it compliant for both
  jsonschema 2.6 and jsonschema 3.0.1.

* Fixes the duplication of the "ipxe" tag when using IPv6, which
  leads to the dhcp server possibly returning an incorrect response to
  the DHCPv6 client.

* Fixes an issue where nodes in the process of deployment may have
  metrics data collected and transmitted during the deployment process
  which may erroneously generate alarms depending on the operator's
  monitoring configuration. This was due to a database filter relying
  upon the indicator of an "instance_uuid" as opposed to the state of
  a node.

* No longer tries to create a temporary URL with zero lifetime if
  the "deploy_callback_timeout" option is set to zero. The default of
  1800 seconds is used in that case. Use the new
  "configdrive_swift_temp_url_duration" option to override.

Changes in ironic 12.1.0..12.2.0
--------------------------------

0cf907bd0 Spruce up release notes for 12.2.0 release
dcab7df39 Update API history and release mapping for 12.2.0
d02acfb3b DRAC: Adding reset_idrac and known_good_state cleaning steps
809653e12 devstack: add missing variables for ironic-python-agent-builder
2fde1940b Remove ipxe tags when ipx6 is in use.
c59dc1386 Update qemu hook to facilitate Multicast
46884deba redfish: handle missing Bios attribute
43f7bf9f0 Fix :param: in docstring
df5ac6d5b Updates ironic for using ironic-python-agent-builder
c2ab34a8c Do not log an exception if Allocation is deleted during handling.
6ca99d673 Add release note updating status of smartnics
f5dbf8ba0 Switch to use exception from ironic-lib
87464fbbc Change constraints opendev.org to release.openstack.org
a09a34207 Ansible module: fix configdrive partition creation step
a3634840f Remove deprecated option [DEFAULT]enabled_drivers
9ffb6054d Fix regex string in the hacking check
2d4380e32 Add api-ref for allocation update
55e8d3fde Add a pxe/uefi/grub2 CI job
234dea98b Bump lower mock version to 3.0.0
77b8898fd Start using importlib for Python 3.x
99137706e Remove XML support in parsable_error middleware
45020712d Fix binary file upload to Swift
5c4efd3b6 fix typo in code comment
5b0ec703c Software RAID: Trigger grub installation on the holder disks
73845b365 Move stray reno file
db7d9bb1f Trivial: correct configuration option copy-pased from inspector
cc10323db Remove commit_required in iDRAC hardware type
75d796e73 Make the multinode grenade job voting again
6849a43cf devstack: configure rabbit outside of API configuration
2c42e3cdf Blacklist python-cinderclient 4.0.0
c36a01a43 Publish baremetal endpoint via mdns
4537e2c54 Fix inaccurate url links
9ed910139 Update sphinx requirements
a0f0e52b8 Allocation API: correct setting name to None
8f6bf4f9d Allocation API: backfilling allocations
306aebad4 Fix GRUB config path when building EFI ISO
5d054cac4 Add DHCP server part to make the document more detail
f8e1fbf30 Do not try to return mock as JSON in unit tests
5dd64771d Remove deprecated option [ilo]power_retry
aec48ca27 Add API to allow update allocation name and extra field
befc4a61e Update Python 3 test runtimes for Train
a89e903f7 Replace hardcoded "stack" user to $STACK_USER
bace52165 Run vbmcd as stack user in devstack
9d5461506 Adding enabled_boot_interface attribute in tempest config
d308d10cd Add openstack commands in node deployment guide
2c8f3a95a Add a high level vision reflection document
3a54fe3e8 Add iDRAC driver realtime RAID creation and deletion
810670cf1 Correct spelling errors
a280696a0 Replace git.openstack.org URLs with opendev.org URLs
bda02c43f Direct bridge to be setup
bb8101ca9 Fix pyghmi path
d0e6c6cb1 OpenDev Migration Patch
e9540f5d2 Removes `hash_distribution_replicas` configuration option
9124a4a13 Truncate node text fields when too long
ada661185 Add note for alternative checksums
18fdc447e Make the JSON RPC server work with both IPv4 and IPv6
b60975641 Jsonschema 3.0.1: Binding the schema to draft-04
708319742 Place upper bound on python-dracclient version
c2588c4de devstack: Remove syslinux dependency
2039138cf Do not try to create temporary URLs with zero lifetime
84741e940 Ansible module: fix partition_configdrive.sh file
1d0accbbe Use the PUBLIC_BRIDGE for vxlan
edd78ce09 Move devstack emulators configs under /etc/ironic
84dfc151e Uncap jsonschema in requirements
3fce1a54a Split ibmc power/reboot classes
2bb05fef7 Temporarily mark grenade multinode as non-voting
01b0be9db Improve VirtualBMC use in Devstack
380519c07 Run IPMI, SNMP and Redfish BMC emulators as stack
9d9e7df87 Add UEFI firmware to Redfish emulator config
4964d1771 Add systemd unit for sushy emulator in devstack
df5261bb3 Ansible module: fix clean error handling
e8a8b7897 [Trivial] Fix typo in agent_base_vendor unit test
7d0cd4c28 Fix exception generation errors
56bec518b Add a request_timeout to neutron
74357e5d0 doc: update ibmc driver support servers document
732bbd851 Ansible module fix: stream_url
68ba34552 Make it possible to send sensor data for all nodes
3e703a6b2 Slightly rephrase note in tenant networking docs
d52aacd29 Bump sphinxcontrib-pecanwsme to 0.10.0
418a5668a ipmi: Ignore sensor debug data
692cbd2ac Make 'noop' the explicit default of default_storage_interface
00342d997 Docs: correct expected host format for drac_address
b5e34e167 Check for deploy.deploy deploy step in heartbeat
17a65c89b Workaround for sendfile size limit
6f22c0014 Workaround for uefi job with ubuntu bionic
228dfe308 Replace openstack.org git:// URLs with https://
37c443700 Remove vbmc log file in devstack
ad6c2f7e5 Add versions to release notes series
944585151 Imported Translations from Zanata
8b86cdd90 Update master for stable/stein
93a40e3fc Fix capabilities passed as string in agent prepare
f25a83b57 Respect $USE_PYTHON3 settings for gunicorn
407724a22 Migrate ironic-grenade-dsvm-multinode-multitenant job to Ubuntu Bionic


Diffstat (except docs and test files)
-------------------------------------

.gitreview                                         |   2 +-
README.rst                                         |   2 +-
api-ref/source/baremetal-api-v1-allocation.inc     |  65 +++
api-ref/source/parameters.yaml                     |  18 +-
.../source/samples/allocation-update-request.json  |   7 +
.../source/samples/allocation-update-response.json |  26 +
bindep.txt                                         |   3 +
devstack/common_settings                           |   2 +-
devstack/files/debs/ironic                         |   3 +-
devstack/files/hooks/qemu.py                       |  14 +
devstack/lib/ironic                                | 357 +++++++++----
devstack/tools/ironic/scripts/cleanup-node.sh      |   5 -
devstack/tools/ironic/scripts/create-node.sh       |   6 -
devstack/tools/ironic/templates/vm.xml             |   5 +
devstack/upgrade/settings                          |   2 +-
.../contributor/ironic-multitenant-networking.rst  |   4 +-
.../include/configure-ironic-api-mod_wsgi.inc      |   2 +-
.../install/include/kernel-boot-parameters.inc     |   2 +-
driver-requirements.txt                            |   2 +-
ironic/api/controllers/v1/allocation.py            | 106 +++-
ironic/api/controllers/v1/utils.py                 |  18 +-
ironic/api/controllers/v1/versions.py              |   6 +-
ironic/api/middleware/parsable_error.py            |  29 +-
ironic/cmd/dbsync.py                               |  10 +-
ironic/common/driver_factory.py                    |   6 -
ironic/common/exception.py                         | 119 +----
ironic/common/glance_service/v2/image_service.py   |   6 +-
ironic/common/image_service.py                     |  16 +-
ironic/common/images.py                            |   7 +-
ironic/common/neutron.py                           |   3 +-
ironic/common/policy.py                            |   5 +
ironic/common/pxe_utils.py                         |  29 +-
ironic/common/release_mappings.py                  |  21 +-
ironic/common/swift.py                             |   2 +-
ironic/conductor/allocations.py                    |  88 ++++
ironic/conductor/base_manager.py                   |  77 +--
ironic/conductor/manager.py                        |  63 ++-
ironic/conductor/rpcapi.py                         |   3 +-
ironic/conf/conductor.py                           |  20 +
ironic/conf/default.py                             |  27 +-
ironic/conf/ilo.py                                 |   8 -
ironic/conf/json_rpc.py                            |   2 +-
ironic/conf/neutron.py                             |   9 +
ironic/db/sqlalchemy/api.py                        |   2 +-
ironic/drivers/ibmc.py                             |   3 +-
ironic/drivers/modules/agent.py                    |   2 +-
ironic/drivers/modules/agent_base_vendor.py        |  65 ++-
ironic/drivers/modules/ansible/deploy.py           |  15 +-
.../ansible/playbooks/library/stream_url.py        |   2 +-
.../roles/deploy/files/partition_configdrive.sh    |  29 +-
ironic/drivers/modules/deploy_utils.py             |   3 +-
ironic/drivers/modules/drac/bios.py                |   9 +-
ironic/drivers/modules/drac/management.py          |  32 ++
ironic/drivers/modules/drac/raid.py                |  57 ++-
ironic/drivers/modules/drac/vendor_passthru.py     |  18 +-
ironic/drivers/modules/ilo/power.py                |  12 +-
ironic/drivers/modules/ipmitool.py                 |   3 +
ironic/drivers/modules/pxe.py                      |   6 +-
ironic/drivers/modules/redfish/bios.py             |  24 +-
ironic/drivers/modules/xclarity/common.py          |   6 +-
ironic/drivers/raid_config_schema.json             |   1 +
ironic/hacking/checks.py                           |   2 +-
ironic/objects/node.py                             |  17 +-
...ction-for-available-nodes-25f163d69782ef63.yaml |  12 -
.../unit/api/controllers/v1/test_allocation.py     | 273 +++++++++-
.../unit/drivers/modules/ansible/test_deploy.py    |  11 +-
.../unit/drivers/modules/drac/test_management.py   |  26 +
.../unit/drivers/modules/redfish/test_bios.py      |  68 ++-
.../unit/drivers/modules/test_agent_base_vendor.py | 168 ++++++-
.../unit/drivers/modules/test_deploy_utils.py      |  11 +-
lower-constraints.txt                              |   6 +-
.../{set-stack-key.yaml => pre.yaml}               |   4 +-
.../run.yaml                                       |  12 +-
playbooks/legacy/grenade-dsvm-ironic/run.yaml      |   8 +-
.../legacy/ironic-dsvm-base-multinode/pre.yaml     |   6 +-
playbooks/legacy/ironic-dsvm-base/pre.yaml         |   6 +-
...d-neutron-request-timeout-1f7372af81f14ddd.yaml |   7 +
...ction-for-available-nodes-25f163d69782ef63.yaml |  12 +
.../add-realtime-support-d814d5917836e9e2.yaml     |  13 +
...drac_and_known_good_state-cdbebf97d7b87fe7.yaml |   8 +
.../allocation-backfill-c31e84c5fcf24216.yaml      |   5 +
.../allow-allocation-update-94d862c3da454be2.yaml  |   5 +
.../notes/bug-2005377-5c63357681a465ec.yaml        |   7 +
.../notes/bug-2005764-15f45e11b9f9c96d.yaml        |   8 +
releasenotes/notes/bug-30315-e46eafe5b575f3da.yaml |   8 +
releasenotes/notes/bug-30316-8c53358681e464eb.yaml |   4 +
releasenotes/notes/bug-30317-a972c8d879c98941.yaml |   5 +
.../notes/cleaning-bios-d74a4947d2525b80.yaml      |   5 +
...sor-data-fix-for-ipmitool-eb13e80ccdd984db.yaml |  10 +
...abilities-as-string-agent-7c5c7975560ce280.yaml |   5 +
.../notes/fix-esp-grub-path-9e5532993dccc07a.yaml  |   7 +
.../fix-sendfile-size-cap-d9966a96e2d7db51.yaml    |   6 +
.../fix-swift-binary-upload-bf9471fca29290e1.yaml  |   5 +
...ac-remove-commit_required-d9ea849e8f5e78e2.yaml |   9 +
...ve-deprecated-power-retry-ba29a21f03fe8dbb.yaml |   5 +
.../notes/json-rpc-bind-a0348cc6f5efe812.yaml      |   5 +
.../notes/jsonschema_draft04-1cb5fc4a3852f9ae.yaml |   9 +
releasenotes/notes/mdns-a5f4034257139e31.yaml      |   6 +
...ash_distribution_replicas-08351358eba4c9e1.yaml |   5 +
.../remove-enabled-drivers-5afcd77b53da1499.yaml   |   7 +
...emove-ipxe-tags-with-ipv6-cf4b7937c27590d6.yaml |   6 +
...sensor-data-for-all-nodes-a732d9df43e74318.yaml |  19 +
...gic-has-merged-in-neutron-79078280d40f042c.yaml |   7 +
.../use-ironic-lib-exception-4bff237c9667bf46.yaml |   8 +
.../notes/zero-temp-url-c21e208f8933c6f6.yaml      |   7 +
releasenotes/source/index.rst                      |   1 +
.../locale/en_GB/LC_MESSAGES/releasenotes.po       | 559 ++++++++++++++++++++-
releasenotes/source/stein.rst                      |   6 +
requirements.txt                                   |   6 +-
setup.cfg                                          |   3 +-
test-requirements.txt                              |   2 +-
tools/config/ironic-config-generator.conf          |   2 +
tox.ini                                            |  10 +-
zuul.d/ironic-jobs.yaml                            |  37 +-
zuul.d/legacy-ironic-jobs.yaml                     |  17 +-
zuul.d/project.yaml                                |   4 +-
167 files changed, 3428 insertions(+), 896 deletions(-)


Requirements updates
--------------------

diff --git a/driver-requirements.txt b/driver-requirements.txt
index 6b4765745..fd0dbc4d3 100644
--- a/driver-requirements.txt
+++ b/driver-requirements.txt
@@ -12 +12 @@ UcsSdk==0.8.2.2;python_version<'3'
-python-dracclient>=1.5.0
+python-dracclient>=3.0.0,<4.0.0
diff --git a/requirements.txt b/requirements.txt
index ba1845d8d..86c36219d 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -10 +10 @@ WebOb>=1.7.1 # MIT
-python-cinderclient>=3.3.0 # Apache-2.0
+python-cinderclient!=4.0.0,>=3.3.0 # Apache-2.0
@@ -14 +14 @@ keystoneauth1>=3.4.0 # Apache-2.0
-ironic-lib>=2.15.0 # Apache-2.0
+ironic-lib>=2.17.1 # Apache-2.0
@@ -46 +46 @@ oslo.versionedobjects>=1.31.2 # Apache-2.0
-jsonschema<3.0.0,>=2.6.0 # MIT
+jsonschema>=2.6.0 # MIT
diff --git a/test-requirements.txt b/test-requirements.txt
index 373d2a4da..9ec005c94 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -8 +8 @@ fixtures>=3.0.0 # Apache-2.0/BSD
-mock>=2.0.0 # BSD
+mock>=3.0.0 # BSD






More information about the Release-announce mailing list