[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