[release-announce] ironic-python-agent 6.4.0 (victoria)

no-reply at openstack.org no-reply at openstack.org
Thu Oct 1 19:05:48 UTC 2020


We are psyched to announce the release of:

ironic-python-agent 6.4.0: Ironic Python Agent Ramdisk

This release is part of the victoria stable release series.

The source is available from:

    https://opendev.org/openstack/ironic-python-agent

Download the package from:

    https://tarballs.openstack.org/ironic-python-agent/

Please report issues through:

    https://storyboard.openstack.org/#!/project/openstack/ironic-
python-agent

For more details, please see below.

6.4.0
^^^^^


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

* Enables support in IPA for hosting the API server over TLS. Using
  this support requires setting "[DEFAULT]listen_tls" to True, and
  then setting "[ssl]cert_file", "[ssl]key_file", and optionally
  "[ssl]ca_file" to files embedded in the ramdisk IPA runs inside.

* When a recent enough version of ironic is detected and
  "listen_tls" is "False", agent will now generate a self-signed TLS
  certificate and send it to ironic on heartbeat. This ensures
  encrypted communication from ironic to the agent. Set
  "enable_auto_tls" to "False" to disable this behavior.

* The "logs" inspection collector is now enabled by default, change
  "ipa-inspection-collectors" to disable.


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

* IPA heartbeat intervals now rely on accurate clock time. Any clean
  or deploy steps which attempt to sync the clock may cause heartbeats
  to not be emitted. IPA syncs time at startup and shutdown, so these
  steps should not be required.


Bug Fixes
*********

* Fixes an issue with nodes undergoing fast-track from introspection
  to deployment where the agent internal cache of the node may be
  stale. In particular, this can be observed if node does not honor a
  root device hint which is saved to Ironic's API *after* the agent
  was started. More information can be found in story 2008039
  (https://storyboard.openstack.org/#!/story/2008039).

* Fixes a minor incorrect keyword argument that was matching between
  the method caller and the unit test but not the actual method, unit
  test, and caller. This was a non-fatal issue, and should now permit
  the agent to attempt to lookup the node one last time before
  deploying the instance image to pick-up a root device hint.

* Fixes an issue with the IntelCnaHardwareManager which prevented
  hardware managers with lower priority to be executed and therefore
  may blocked the initialization and collection of hardware these
  managers are supposed to take care of.

* Fixes a bug where the partitions created during software RAID
  setup are cleaned too early and therefore may prevent the proper
  cleaning of the md superblocks. Leaving superblocks behind will
  impact the creation of new md devices later on.

* Detects md component devices by their UUID, rather than by
  scanning the output of mdadm. This will prevent that devices miss md
  superblock cleanup when they are currently not part of an array.

* Since the Ussuri release, IPA has ignored the listen_host and
  listen_port directives. This fixes the behavior and restores those
  configuration values to working status.
  https://storyboard.openstack.org/#!/story/2008016


Other Notes
***********

* Adds an explicit capture of connectivity failures in the heartbeat
  process to provide a more verbose error message in line with what is
  occuring as opposed to just indicating that an error occured. This
  new exception is called "HeartbeatConnectionError" and is likely
  only going to be visible if there is a local connectivity failure
  such as a router failure, switchport in a blocking state, or
  connection centered transient failure.

Changes in ironic-python-agent 6.3.0..6.4.0
-------------------------------------------

044c64d Software RAID: Get component devices by md UUID
c7aec77 Software RAID: Don't delete partitions too early
565d596 Document ramdisk TLS and update existing TLS docs
4b0ef13 Fix: make Intel CNA hardware manager none generic
a01646f Simplify heartbeating by removing use of select()
afb521d CI: Lower memory usage of VMs/Increase swap
8f49757 Documentation: fix incorrect step names
fe6b687 When reporting that agent is busy, report the executed command
9dd968f [doc] Clarify custom hardware manager inheritance
021e0a6 Generate a TLS certificate and send it to ironic
6a80564 Refactor API version negotiation code
08fdae9 Fix l-c
3426963 Fix backup node lookup
9b75453 Fix and run the correct functional tests job
63513ae Remove unused jobs
85bd44d Prepare to move ipa-builder jobs
1d11f0b If listen_tls is true, enable TLS on wsgi server
700c14c Move ironic-standalone-ipa-src to Ubuntu Focal
4716669 Replace oslo's loopingcall with tenacity
7d0ad36 Make WSGI server respect listen_* directives
d3c3d4d Update the cache if we don't have a root device hint
ffacb71 Document in-band deploy steps and add more docs for custom steps
3faf13b Refactor and fix documentation
82c7043 Remove experimental jobs
d415287 Revert "Temporary disable multiple jobs to land CI fixes."
2a5ba7e Increase memory for tinyipa jobs
9ebab1b Temporary disable multiple jobs to land CI fixes.
f670f70 Clarify connection error on heartbeats
d50ff06 Enable the logs collection by default
ba6ca24 Add possibility to pass global request ID


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

ironic_python_agent/__init__.py                    |   8 +
ironic_python_agent/agent.py                       |  91 +++++----
ironic_python_agent/api/app.py                     |  25 ++-
ironic_python_agent/config.py                      |  26 ++-
ironic_python_agent/errors.py                      |  19 ++
ironic_python_agent/extensions/base.py             |   2 +-
ironic_python_agent/extensions/iscsi.py            |   3 +-
ironic_python_agent/extensions/standby.py          |   6 +-
ironic_python_agent/hardware.py                    | 143 +++++++++++---
ironic_python_agent/hardware_managers/cna.py       |  23 +--
ironic_python_agent/ironic_api_client.py           |  69 ++++---
ironic_python_agent/tls_utils.py                   | 111 +++++++++++
lower-constraints.txt                              |   6 +-
.../add-optional-tls-support-3ab6a834154fedec.yaml |   8 +
releasenotes/notes/auto-tls-b52b873663f35618.yaml  |   8 +
.../change-heartbeat-method-d0119406137022e3.yaml  |   7 +
...artbeat-connection-errors-2af152bf2d7928e2.yaml |  10 +
.../fasttrack-stale-cache-fd93b56a955c7ab1.yaml    |   9 +
...arly-node-lookup-argument-83d3f717c039e454.yaml |   9 +
...nx-hardware-mgr-never-run-72072580be4d6e7a.yaml |   7 +
.../fix_partition_cleanup-46491861c930db12.yaml    |   6 +
...get_md_components_by_uuid-7f08d423ea9e7c94.yaml |   6 +
.../notes/inspector-logs-9b7c010c219691d2.yaml     |   5 +
...respect-listen-directives-94fb863c5b692c07.yaml |   7 +
requirements.txt                                   |   4 +-
zuul.d/ironic-python-agent-jobs.yaml               |  98 ++--------
zuul.d/project.yaml                                |   8 +-
47 files changed, 1335 insertions(+), 469 deletions(-)


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

diff --git a/requirements.txt b/requirements.txt
index 28ea8ac..690a5b1 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -18,0 +19 @@ stevedore>=1.20.0 # Apache-2.0
+tenacity>=6.2.0 # Apache-2.0
@@ -20 +21,2 @@ ironic-lib>=4.1.0 # Apache-2.0
-Werkzeug>=0.15.0 # BSD License
+Werkzeug>=1.0.1 # BSD License
+cryptography>=2.3 # BSD/Apache-2.0






More information about the Release-announce mailing list