[release-announce] ironic-inspector 10.2.0 (victoria)
no-reply at openstack.org
no-reply at openstack.org
Wed Jul 8 19:12:38 UTC 2020
We eagerly announce the release of:
ironic-inspector 10.2.0: Hardware introspection for OpenStack Bare
Metal
This release is part of the victoria release series.
The source is available from:
https://opendev.org/openstack/ironic-inspector
Download the package from:
https://tarballs.openstack.org/ironic-inspector/
Please report issues through:
https://storyboard.openstack.org/#!/project/944
For more details, please see below.
10.2.0
^^^^^^
New Features
************
* Adds the ability for periodic clean-up and synchronization tasks
with "ironic" to be able to be disabled by setting the
"[DEFAULT]clean_up_period" to a value of "0". This is intended for
"stand-alone" operators only as it may result in unexpected
behaviors if used in a non-standalone environment.
* Adds a new configuration option "[discovery]enroll_node_fields"
that specifies additional fields to set on a node (e.g. driver
interfaces).
* Enable Basic HTTP authentication middleware.
When the config option "[DEFAULT]auth_strategy" is set to
"http_basic" then non-public API calls require a valid HTTP Basic
authentication header to be set. The config option
"[DEFAULT]http_basic_auth_user_file" defaults to "/etc/ironic-
inspector/htpasswd" and points to a file that supports the Apache
htpasswd syntax[1]. This file is read for every request, so no
service restart is required when changes are made.
The only password digest supported is bcrypt, and the "bcrypt"
python library is used for password checks since it supports "$2y$"
prefixed bcrypt passwords as generated by the Apache htpasswd
utility.
To try basic authentication, the following can be done:
* Set "/etc/ironic-inspector/inspector.conf"
"[DEFAULT]auth_strategy" to "http_basic"
* Populate the htpasswd file with entries, for example: "htpasswd
-nbB myName myPassword >> /etc/ironic-inspector/htpasswd"
* Make basic authenticated HTTP requests, for example: "curl
--user myName:myPassword http://localhost:6385/v1/introspection"
[1]
https://httpd.apache.org/docs/current/misc/password_encryptions.html
* Adds periodic leader election for the cleanup sync with Ironic.
The election interval is configured by the new
"leader_election_interval" config option.
* Adds a configuration option "[processing]update_pxe_enabled" to
control whether the pxe_enabled should be updated according to
introspection data for ports. The default value is True which is
backwards compatible.
Upgrade Notes
*************
* Remove upper constraint for python construct library and use the
latest version available. The minimum compatible version for python
construct is now 2.9.39
* The raw data from the "extra_hardware" processing hook is no
longer stored in Swift in an object named "extra_hardware-<node
UUID>". The same information is already available as part of the
unprocessed introspection data without a hard dependency on Swift.
Deprecation Notes
*****************
* The deprecated "[swift]max_retries" parameter has been removed.
Bug Fixes
*********
* Fixes an issue where IPv6 link local addresses are ignored during
interface validation, making introspection fail.
* Fixes "AttributeError: 'Node' object has no attribute 'uuid'" when
trying to introspect an active node that is not currently in the
cache.
* No longer aborts the whole process if one periodic task fails.
* Fixes accessing API endpoints with trailing slashes. Now they're
treated the same way as without slashes, although the latter remain
canonical URLs.
* No longer uses introspection delay for nodes with
"manage_boot==False" (i.e. boot is managed by ironic). It is useless
and may actually break introspection if a node boots before it gets
whitelisted in the PXE filter.
* The introspection start API is now synchronous when
"manage_boot==False". This means that any failures will be
propagated to ironic, preventing it from powering a node on and
booting it without the PXE filter updated.
Changes in ironic-inspector 10.1.0..10.2.0
------------------------------------------
b1e79e0 Add release version to release notes
06390e3 Use node.id instead of node.uuid in record_node
79878d7 Prepare release notes for release 10.2
0d20064 Add leader election for periodic sync with ironic
2f828ae Allow operators to disable clean_up sync
f78229f Allow setting other fields on discovery
2532be9 Document [ironic] auth options for inspector
b31888a Fix incorrect pxe-enabled was set during introspection
f416673 Merge jobs
610228a Imported Translations from Zanata
7166617 Accept IPv6 link local address during interface validation
463cc07 Remove cimc_address from address field list
2b87caa CI: make grenade voting again
47315f9 devstack: Use uwsgi binary from path; temporary disable grenade
52138f2 Update doc for multi-arch x86
80167d4 Use unittest.mock instead of mock
6175bc4 [doc] Add misconfigured BMC channel to trouble shooting guide
196c019 Enable Basic HTTP authentication middleware.
7470320 Remove introspection timeout option
5004f93 Update lower-constraints.txt
542db84 Set default timeouts for ironic inspector base job
5960cde Cap jsonschema 3.2.0 as the minimal version
5d61513 Add py38 package metadata
06ee500 Set tempest_test_timeout for managed job
c2224fd Bump hacking min version to 3.0.1
68ab6a0 Switch to newer openstackdocstheme and reno versions
0a037c5 Increase timeout for introspection in ironic-inspector-tempest-managed
9951b72 Imported Translations from Zanata
c044ebd extra_hardware: stop storing raw data in swift
b9f1746 Stop configuring install_command in tox.
721bd81 Use latest version of python construct
1818bda Remove translation sections from setup.cfg
5ccef9c Treat endpoints with trailing slashes the same way as without them
9643451 Stop creating a green thread in the introspection unit tests
f3e27c1 Make POST /v1/introspection synchronous when manage_boot==False
3d1bf55 Avoid using introspection start delays with non-managed boot
b5d3214 Convert jobs to dib
a7ef716 Revert disabling the grenade job
edfec4c Temporary disbling grenade and non-standalone-tempest
6ba9e00 [docs] remove the horribly outdated version support matrix
bb71167 Fix grenade job
a02fcd1 Add variable to set inspection timeout in tempest tests
fe15db0 Silence debug logging from oslo_messaging
8a02e5a Stop running a periodic task for the noop PXE filter
6e38eff Stop aborting the process on periodic task failures
1b972c7 Monkey patch original current_thread _active
8211ab4 Update local.conf example file.
84c47d9 Cleanup deprecated [swift]max_retries
41b3323 [trivial] Remove duplicate entry in lldp test
d580714 Remove testresources and testscenarios from test-requirements
cee5922 Hacking: enforce usage of autospec=True in tests
c4a057c Imported Translations from Zanata
a5a81cf Add Python3 victoria unit tests
3c23ad1 Update master for stable/ussuri
61cd2af Upgrade flake8-import-order version to 0.17.1
773b199 No need to import print function anymore
Diffstat (except docs and test files)
-------------------------------------
api-ref/source/conf.py | 36 +---
babel.cfg | 1 -
devstack/example.local.conf | 60 ++++---
devstack/plugin.sh | 6 +-
ironic_inspector/cmd/__init__.py | 6 +
ironic_inspector/cmd/migration.py | 2 -
ironic_inspector/common/coordination.py | 35 ++++
ironic_inspector/common/lldp_parsers.py | 13 +-
ironic_inspector/common/lldp_tlvs.py | 16 +-
ironic_inspector/conductor/manager.py | 95 ++++++----
ironic_inspector/conf/default.py | 32 +++-
ironic_inspector/conf/discovery.py | 2 +
ironic_inspector/conf/opts.py | 5 +-
ironic_inspector/conf/processing.py | 5 +
ironic_inspector/conf/swift.py | 3 -
ironic_inspector/introspect.py | 42 +++--
.../locale/en_GB/LC_MESSAGES/ironic_inspector.po | 57 ++++--
ironic_inspector/main.py | 27 ++-
ironic_inspector/node_cache.py | 5 +-
ironic_inspector/plugins/discovery.py | 2 +-
ironic_inspector/plugins/extra_hardware.py | 19 --
ironic_inspector/plugins/lldp_basic.py | 1 -
ironic_inspector/plugins/local_link_connection.py | 5 +-
ironic_inspector/plugins/standard.py | 6 +-
ironic_inspector/pxe_filter/base.py | 3 +
ironic_inspector/test/functional.py | 43 ++++-
ironic_inspector/test/unit/test_common_ironic.py | 6 +-
ironic_inspector/test/unit/test_introspect.py | 38 +++-
ironic_inspector/test/unit/test_iptables.py | 2 +-
ironic_inspector/test/unit/test_main.py | 85 ++++++---
ironic_inspector/test/unit/test_manager.py | 62 ++-----
ironic_inspector/test/unit/test_migrations.py | 22 +--
ironic_inspector/test/unit/test_node_cache.py | 13 +-
.../test/unit/test_plugins_base_physnet.py | 3 +-
.../test/unit/test_plugins_discovery.py | 23 +++
.../test/unit/test_plugins_extra_hardware.py | 73 +-------
.../test/unit/test_plugins_lldp_basic.py | 25 ++-
.../unit/test_plugins_local_link_connection.py | 3 +-
.../test/unit/test_plugins_pci_devices.py | 18 +-
.../test/unit/test_plugins_physnet_cidr_map.py | 14 +-
.../test/unit/test_plugins_standard.py | 23 +--
ironic_inspector/test/unit/test_process.py | 9 +-
ironic_inspector/test/unit/test_pxe_filter.py | 12 +-
ironic_inspector/test/unit/test_utils.py | 5 +
ironic_inspector/test/unit/test_wsgi_service.py | 10 ++
ironic_inspector/utils.py | 12 +-
lower-constraints.txt | 110 ++++++++++--
...to-turn-off-periodic-sync-5309ff2aa8a9ec14.yaml | 8 +
...accept-link-local-address-1fbb9cbdc3f980bb.yaml | 5 +
.../notes/construct-fly-free-fab62c0a5cb71fa5.yaml | 6 +
.../notes/enroll-node-fields-3f4e22213fd90307.yaml | 5 +
.../extra-hardware-data-2346f0163e4b7699.yaml | 7 +
.../notes/http-basic-auth-fbe1da9669f5388c.yaml | 27 +++
.../notes/leader-election-c6692d9962f30ad1.yaml | 6 +
releasenotes/notes/node-id-920629472f01c83a.yaml | 5 +
releasenotes/notes/periodics-18bf7fb57777c043.yaml | 4 +
.../pxe-enabled-for-pxe-a199e81128557bc0.yaml | 6 +
...swift-max-retries-removal-8f3c117240448760.yaml | 4 +
.../notes/trailing-slashes-93c2466b71829ec1.yaml | 5 +
.../notes/unmanaged-delay-d39871e1346d9448.yaml | 6 +
.../notes/unmanaged-result-4de3788e7820e3c5.yaml | 6 +
releasenotes/source/conf.py | 9 +-
releasenotes/source/index.rst | 1 +
.../locale/en_GB/LC_MESSAGES/releasenotes.po | 194 ++++++++++++++++++++-
releasenotes/source/train.rst | 6 +-
releasenotes/source/ussuri.rst | 6 +
requirements.txt | 10 +-
setup.cfg | 15 +-
test-requirements.txt | 12 +-
tox.ini | 4 +-
zuul.d/ironic-inspector-jobs.yaml | 38 ++--
zuul.d/project.yaml | 8 +-
76 files changed, 1055 insertions(+), 521 deletions(-)
Requirements updates
--------------------
diff --git a/requirements.txt b/requirements.txt
index 95c0dd4..27b08bb 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -5,2 +5,2 @@ automaton>=1.9.0 # Apache-2.0
-alembic>=0.8.10 # MIT
-construct<2.9,>=2.8.10 # MIT
+alembic>=0.9.6 # MIT
+construct>=2.9.39 # MIT
@@ -10 +10 @@ futurist>=1.2.0 # Apache-2.0
-ironic-lib>=2.17.0 # Apache-2.0
+ironic-lib>=4.3.0 # Apache-2.0
@@ -12,2 +12,2 @@ jsonpath-rw<2.0,>=1.2.0 # Apache-2.0
-jsonschema>=2.6.0 # MIT
-keystoneauth1>=3.14.0 # Apache-2.0
+jsonschema>=3.2.0 # MIT
+keystoneauth1>=4.2.0 # Apache-2.0
diff --git a/test-requirements.txt b/test-requirements.txt
index ce6c002..be6935d 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -8,3 +8,3 @@ doc8>=0.6.0 # Apache-2.0
-flake8-import-order>=0.13 # LGPLv3
-hacking>=3.0.0,<3.1.0 # Apache-2.0
-sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD
+flake8-import-order>=0.17.1 # LGPLv3
+hacking>=3.0.1,<3.1.0 # Apache-2.0
+sphinx>=2.0.0,!=2.1.0 # BSD
@@ -13 +13 @@ sphinxcontrib-apidoc>=0.2.0 # BSD
-openstackdocstheme>=1.31.2 # Apache-2.0
+openstackdocstheme>=2.2.0 # Apache-2.0
@@ -17 +17 @@ stestr>=1.0.0 # Apache-2.0
-reno>=2.5.0 # Apache-2.0
+reno>=3.1.0 # Apache-2.0
@@ -19,2 +18,0 @@ fixtures>=3.0.0 # Apache-2.0/BSD
-testresources>=2.0.0 # Apache-2.0/BSD
-testscenarios>=0.4 # Apache-2.0/BSD
More information about the Release-announce
mailing list