We are pumped to announce the release of: ironic-inspector 7.3.0: Hardware introspection for OpenStack Bare Metal This release is part of the rocky release series. The source is available from: https://git.openstack.org/cgit/openstack/ironic-inspector Download the package from: https://tarballs.openstack.org/ironic-inspector/ Please report issues through launchpad: https://storyboard.openstack.org/#!/project/944 For more details, please see below. 7.3.0 ^^^^^ New Features ************ * Adds wildcard ignore entry to "dnsmasq" PXE filter. When node introspection is active, or if "node_not_found_hook" is set in the configuration the ignore is removed from the wildcard entry. This ensures that unknown nodes do not accidentally boot into the introspection image when no node introspection is active. This brings "dnsmasq" PXE filter driver feature parity with the "iptables" PXE filter driver, which uses a firewall rule to block any DHCP request on the interface where Ironic Inspector's DHCP server is listening. * Issuing a SIGHUP to the ironic-inspector service will cause the service to reload and use any changed values for *mutable* configuration options. Mutable configuration options are indicated as such in the sample configuration file (https://docs.openstack.org/ironic- inspector/latest/configuration/sample-config.html) by "Note: This option can be changed without restarting". A warning is logged for any changes to immutable configuration options. Upgrade Notes ************* * The "[discovery]enroll_node_driver" option, specifying the hardware type or driver to use for newly discovered nodes, was changed from "fake" classic driver to "fake-hardware" hardware type. * Adds dependency on the retrying (https://github.com/rholder/retrying) python library. Bug Fixes ********* * Fixes bug in which the "switch_id" field in a port's "local_link_connection" can be set to a non-MAC address if the processed LLDP has a value other than a MAC address for "ChassisID". The bare metal API requires the "switch_id" field to be a MAC address, and will return an error otherwise. See bug 1748022 (https://bugs.launchpad.net/ironic-inspector/+bug/1748022) for details. * Ironic introspection no longer tries to access the Identity service if the "auth_strategy" option is set to "noauth" and the "auth_type" option is not set to "none". * The periodic PXE filter update task now retries fetching port list from the Bare Metal service 5 times (with 1 second delay) before giving up. This ensures that a temporary networking glitch will not result in the ironic-inspector service stopping. Changes in ironic-inspector 7.1.0..7.3.0 ---------------------------------------- 737dbea Raise KeyboardInterrupt on SIGTERM - Workaround be3f7ee Gate fix: Cap hacking to avoid gate failure 868965c Fix pycodestyle warnings/errors now visible with hacking 1.1.0 2c5cf4e Fix dnsmasq filter nits 5e54e72 PXE Filter dnsmasq: blacklist unknown host bded1ab Imported Translations from Zanata 66f318b Change the default discovery driver to fake-hardware 50a5aa1 Trivial: Update pypi url to new url 3b3a3ef Fix lower constraints and uncap eventlet 03db5d8 Update auth_uri option to www_authenticate_uri 76898b7 Support reload configuration on SIGHUP f257c57 Add 'inspect wait' as a valid state 1b0adcb Switch the grenade job to hardware types and clean up its playbook 1ae010b Disable automated cleaning in grenade 5128a63 Imported Translations from Zanata 47e4e40 Update launchpad to storyboard references 1fc3bfa Support zuul's standard override-checkout variable 697a2c1 Enable custom IRONIC_INSPECTOR_EXTRA_KERNEL_CMDLINE 3946a94 Updated from global requirements 5113ef5 add lower-constraints job 0c159b0 test_failure_to_write fails with root user faf9d35 Switch documentation to hardware types 5cb04f5 devstack: enable "fake" inspection implementation 46ec5a2 Updated from global requirements f440bcb Updated from global requirements 1292657 Updated from global requirements 5c63f14 Prevent mocks in test_dnsmasq_pxe_filter from conflicting with oslo.config 4bba042 Fix typo in README.md e73ebb7 Correct Queens release notes versions 0561fc6 Imported Translations from Zanata e9d9d63 Imported Translations from Zanata 11c26d2 Updated from global requirements 3237511 Retry port lists on failure in PXE filter periodic sync 97282c6 Only set switch_id in local_link_connection if it is a mac address fbeb078 ironic_inspector: ironic: Fix 'auth_type' when 'auth_strategy' is used 50a0f84 Remove redundant "the" from a docstring 7697821 Update reno for stable/queens Diffstat (except docs and test files) ------------------------------------- CONTRIBUTING.rst | 6 +- README.rst | 8 +- devstack/example.local.conf | 34 ++++-- devstack/plugin.sh | 6 +- ironic-inspector.8 | 2 +- ironic_inspector/cmd/all.py | 1 + ironic_inspector/common/ironic.py | 37 ++++-- ironic_inspector/common/lldp_parsers.py | 2 +- ironic_inspector/common/lldp_tlvs.py | 1 + ironic_inspector/conf/discovery.py | 2 +- ironic_inspector/introspection_state.py | 1 + .../locale/en_GB/LC_MESSAGES/ironic_inspector.po | 6 +- ironic_inspector/main.py | 2 +- ironic_inspector/migrations/env.py | 1 + .../18440d0834af_introducing_the_aborting_state.py | 12 +- .../versions/578f84f38d_inital_db_schema.py | 6 +- .../882b2d84cb1b_attribute_constraints_relaxing.py | 11 +- ...d00d6e3f38c4_change_created_finished_at_type.py | 11 +- ...2e48801c8ef_introducing_node_state_attribute.py | 13 +- .../migrations/versions/d588418040d_add_rules.py | 9 +- ...9a4a81d88_add_invert_field_to_rule_condition.py | 7 +- ironic_inspector/plugins/local_link_connection.py | 15 ++- ironic_inspector/plugins/pci_devices.py | 1 + ironic_inspector/pxe_filter/dnsmasq.py | 52 +++++++- ironic_inspector/pxe_filter/iptables.py | 9 +- ironic_inspector/test/base.py | 2 +- ironic_inspector/test/functional.py | 2 +- ironic_inspector/test/unit/test_common_ironic.py | 78 ++++++++++-- .../test/unit/test_dnsmasq_pxe_filter.py | 107 ++++++++++++++++- ironic_inspector/test/unit/test_introspect.py | 10 ++ ironic_inspector/test/unit/test_iptables.py | 19 +++ ironic_inspector/test/unit/test_plugins_base.py | 4 +- .../test/unit/test_plugins_discovery.py | 5 +- .../unit/test_plugins_local_link_connection.py | 18 +++ ironic_inspector/test/unit/test_process.py | 11 +- ironic_inspector/test/unit/test_utils.py | 5 +- ironic_inspector/test/unit/test_wsgi_service.py | 17 +++ ironic_inspector/wsgi_service.py | 16 +++ lower-constraints.txt | 131 +++++++++++++++++++++ .../legacy/ironic-inspector-grenade-dsvm/run.yaml | 66 ++--------- .../run.yaml | 3 +- .../ironic-inspector-tempest-dsvm-python3/run.yaml | 3 +- .../discovery-default-driver-94f990bb0676369b.yaml | 6 + ...fix-llc-switch-id-not-mac-e2de3adc0945ee70.yaml | 9 ++ .../notes/keystone-noauth-9ba5ad9884c6273c.yaml | 6 + .../notes/port-list-retry-745d1cf41780e961.yaml | 11 ++ ...sq-not-known-hosts-filter-76ae5bd7a8db6f75.yaml | 13 ++ .../notes/sighup-support-e6eaec034d963108.yaml | 11 ++ releasenotes/source/index.rst | 1 + .../locale/en_GB/LC_MESSAGES/releasenotes.po | 118 +++++++++++++++++-- releasenotes/source/queens.rst | 6 + requirements.txt | 13 +- test-requirements.txt | 4 +- tox.ini | 11 +- zuul.d/project.yaml | 2 + 57 files changed, 790 insertions(+), 193 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index 10d82ee..7a4e9b2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,2 +7,2 @@ Babel!=2.4.0,>=2.3.4 # BSD -construct>=2.8.10 # MIT -eventlet!=0.18.3,!=0.20.1,<0.21.0,>=0.18.2 # MIT +construct<2.9,>=2.8.10 # MIT +eventlet!=0.18.3,!=0.20.1,>=0.18.2 # MIT @@ -14 +14 @@ jsonschema<3.0.0,>=2.6.0 # MIT -keystoneauth1>=3.3.0 # Apache-2.0 +keystoneauth1>=3.4.0 # Apache-2.0 @@ -18 +18 @@ pbr!=2.1.0,>=2.0.0 # Apache-2.0 -python-ironicclient>=2.2.0 # Apache-2.0 +python-ironicclient>=2.3.0 # Apache-2.0 @@ -21,2 +21,2 @@ pytz>=2013.6 # MIT -oslo.concurrency>=3.25.0 # Apache-2.0 -oslo.config>=5.1.0 # Apache-2.0 +oslo.concurrency>=3.26.0 # Apache-2.0 +oslo.config>=5.2.0 # Apache-2.0 @@ -31,0 +32 @@ oslo.utils>=3.33.0 # Apache-2.0 +retrying!=1.3.0,>=1.2.3 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index 47029ef..c2fe6ef 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -7 +7 @@ flake8-import-order>=0.13 # LGPLv3 -hacking>=1.0.0 # Apache-2.0 +hacking>=1.0.0,<1.1.0 # Apache-2.0 @@ -9 +9 @@ mock>=2.0.0 # BSD -sphinx!=1.6.6,>=1.6.2 # BSD +sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD