[release-announce] ironic-python-agent 6.0.0 (ussuri)

no-reply at openstack.org no-reply at openstack.org
Mon Feb 10 15:46:03 UTC 2020


We are gleeful to announce the release of:

ironic-python-agent 6.0.0: Ironic Python Agent Ramdisk

This release is part of the ussuri 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.0.0
^^^^^


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

* Allows reading the "root_device" from "instance_info", overriding
  the value in "properties".

* Adds a new field "configuration" to the introspection data
  collected by the "default" collector. It contains two fields:

  * "collectors" - list of the enabled inspection collectors.

  * "managers" - list of the enabled hardware managers in their
    priority order.

* Adds support to allow selection of RAID "5" and RAID "6"
  protection levels for software RAID support. This may only be the
  secondary volume, as these volume types of software RAID volumes
  cannot be used to directly boot an operating system.


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

* Python 2.7 support has been dropped. Last release of ironic-
  python- agent to support Python 2.7 is OpenStack Train. The minimum
  version of Python now supported by ironic-python-agent is Python
  3.6.

* For Software RAID, the IPA will no longer assume that the root
  file system is in the first partition of the deployed image.
  Instead, the IPA will use the UUID passed from the conductor to
  identify the root partition. Before upgrades, the root file system
  UUID needs hence to be set as part of the node's
  "driver_internal_info" or as "rootfs_uuid" image metadata.


Security Issues
***************

* Enables pre-hashed passwords to be supplied to the "rescue"
  extension. See story 2006777
  (https://storyboard.openstack.org/#!/story/2006777) for more
  information.


Bug Fixes
*********

* Fixes the workflow for wholedisk images when using UEFI boot mode,
  when possible it will use efibootmgr instead of grub2 to update the
  NVRAM.

* Fixes an issue with the tinyIPA CI testing image by providing a
  fallback root volume uuid detection method via the "findfs" utility,
  which is also already packaged in most distributions with "lsblk".

  This fallback was necesary as the "lsblk" command in "TinyCore"
  Linux, upon which TinyIPA is built, does not return data as expected
  for volume UUID values.

* Fixes an issue where metadata erasure cleaning would fail on
  devices that are read-only at the hardware level. Typically these
  are virtual devices being offered to the operating system for
  purposes like OS self-installation.

  In the case of full device erasure, this is explicitly raised as a
  hard failure requiring operator intervention.

* Fixes an issue in fallback error handling where native iSCSI
  controls are unavailable due to the composition of the IPA ramdisk
  and where direct "tgtadm" commands also fails.

  Before fallback error handling was added, the teardown was skipped
  completely in the event of the native iSCSI controls being
  unavailable. The end user behavior is now as it was previously prior
  to the fallback error handling being added, but IPA will still
  continue to attempt to clean up the iSCSI session.

* Skips NIC "numa_node" discovery if it's not assigned to a
  numa_node as in some rare case, such as a VM with virtual NUMA node,
  NICs might not be in a NUMA node and this breaks "numa-topology"
  discovery.

* Fixes the "numa-topology" inspection collector to be compatible
  with Pint < 0.5.2.

* Fixes an issue where wholedisk images are requested for deployment
  and the bootloader is overridden. IPA now explicitly looks for the
  boot partition, and examines the contents if the disk appears to be
  MBR bootable. If override/skip bootloader installation does not
  apply if UEFI or PREP boot partitions are present on the disk.


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

* Increases the default value for the "ipa-ip-lookup-attempts"
  kernel argument to 6, adding extra time for networking to be set up
  before giving up.

* The output of "lsblk" and the contents of "/proc/mdstat" are now
  collected with the ramdisk logs for debugging.

* The sample configuration file
  "etc/ironic_python_agent/ironic_python_agent.conf.sample" is no
  longer shipped with the source code. It can be generated locally
  with:

     tox -egenconfig

Changes in ironic-python-agent 5.0.0..6.0.0
-------------------------------------------

06d65e4 Tidy up relese notes for 6.0.0
cd7b269 Skip read-only devices with metadata erase
31b73b4 Expose collector and hardware manager names via introspection data
4b60277 Document introspection data and collectors
2017c27 Start installing DIB from Zuul-cloned sources in the CI
a1a121f Skip nic numa_node discovery if it's not assigned to a numa_node
b6210be Avoid grub2-install when on UEFI boot mode
74c6fe8 Update hardware to 0.24,0
d40132a Omit configdrive and system_logs from logging
584d209 Lower RAM for DIB jobs to 2 GiB
84f7a2d CI: add a non-voting partition-iscsi DIB job
38eda4f CI: make the metalsmith job voting and gating
96a0946 Allow reading root_device from instance_info
4cfd449 Run publishing jobs with CentOS 8 instead of 7
22ab827 Remove deprecated ironic-agent element
96d46aa Enforce running tox with correct python version based on env
de90f54 Permit hashed passwords to be sent to IPA.
8aa9b79 Stop the API so rescue can exit and succeed
966356e Search for efi partition
f1b2df9 Replace WSME and Pecan with Werkzeug
13a2655 Software RAID: Use UUID to find root fs
4354bc0 Replace netaddr dependency with stdlib ipaddress
9f6c2aa Remove the unused dependency on iso8601
8208473 Remove the configuration sample file
ca7a46b Stop using six library
e4659c9 RAID 5/6
cdee7bb Rename job to mention python3
18862bb Drop python 2.7 support and testing
4097847 Clean up options deprecated prehistory
c4bb694 Bump up ipa-ip-lookup-attempts to 6
1d12505 Do not try to read raw disk data as unicode
11862cc Fix instructions for enabling SSH on recent tinyipa images
9f8fa28 Don't try to put a bootloader in place when bootable
c5956bd Suppress errors from iscsi session cleanup
68fb800 Switch jobs to py3
cb96cec [Trivial]: Typo in comment for _get_partition
16f3598 Switch to Ussuri job
d61887e Correct string formatting in logging
1975478 Set rd.md.uuid kernel parameter when deploying on software raid
4197e20 Remove imagebuild/common, it's not longer used by IPA-builder
3ee17e8 Last resort fallback to find a partition
11976c9 Collect lsblk and /proc/mdstat with ramdisk logs
12209f8 Add versions to release notes series
16d1593 Refer to ironic-python-agent-builder for image building
fc068f2 tox.ini: remove the devenv environment
91ed556 Fix tox.ini to correctly test lower-constraints
386654f Fix compatibility with Pint 0.5
246dddf Update master for stable/train


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

.gitignore                                         |   3 +
bindep.txt                                         |   1 +
.../ironic_python_agent.conf.sample                | 266 -----------
.../extract_upper_constraints_from_tox_ini.sh      |   9 -
imagebuild/common/generate_upper_constraints.sh    |  87 ----
ironic_python_agent/agent.py                       |  58 ++-
ironic_python_agent/api/app.py                     | 233 +++++++--
ironic_python_agent/api/config.py                  |  39 --
ironic_python_agent/api/controllers/__init__.py    |   0
ironic_python_agent/api/controllers/root.py        |  97 ----
ironic_python_agent/api/controllers/v1/__init__.py | 118 -----
ironic_python_agent/api/controllers/v1/base.py     |  74 ---
ironic_python_agent/api/controllers/v1/command.py  | 126 -----
ironic_python_agent/api/controllers/v1/link.py     |  43 --
ironic_python_agent/api/controllers/v1/status.py   |  55 ---
ironic_python_agent/config.py                      |  12 +-
ironic_python_agent/extensions/base.py             |  25 +-
ironic_python_agent/extensions/clean.py            |   2 +-
ironic_python_agent/extensions/image.py            | 316 ++++++++++++-
ironic_python_agent/extensions/iscsi.py            |  30 +-
ironic_python_agent/extensions/rescue.py           |  24 +-
ironic_python_agent/extensions/standby.py          |  13 +-
ironic_python_agent/hardware.py                    | 122 +++--
ironic_python_agent/inspector.py                   |  12 +-
ironic_python_agent/numa_inspector.py              |   5 +-
ironic_python_agent/utils.py                       |  57 ++-
lower-constraints.txt                              |   7 +-
plugin-requirements.txt                            |   2 +-
...id-grub2-using-efibootmgr-bd27c0978d1cf71b.yaml |   5 +
.../bumpsipalookupattempts-29de7c949aaf6556.yaml   |   6 +
.../notes/collect-more-8bc9ad4c63e873e1.yaml       |   5 +
.../notes/drop-python2-2006fd8a4a6de56d.yaml       |   7 +
.../notes/fallback-to-findfs-59abde55221e1e84.yaml |  10 +
...cleaning-read-only-device-c8a0f4cc2f434d99.yaml |  10 +
...x-iscsi-teardown-handling-0df2345318d3c843.yaml |  12 +
...fix-nic-without-numa-node-b401f97c46afa4a1.yaml |   6 +
...instance-info-root-device-02fed0966bb00fb3.yaml |   5 +
.../notes/inventory-conf-29b59ebe97aefbde.yaml     |   9 +
releasenotes/notes/no-sample-ac11bd0fa27af62a.yaml |   7 +
...e-hashed-rescue-passwords-4275f6e697533cec.yaml |   6 +
releasenotes/notes/pint-0.5-816aaf3a4f6d4a6e.yaml  |   5 +
.../notes/raid5-6-support-0807597c3633a26c.yaml    |   7 +
.../skips-bootloader-install-35c463195aa61800.yaml |   8 +
...ware_raid_use_rootfs_uuid-9149cc0c8638d5d5.yaml |   8 +
releasenotes/source/index.rst                      |   1 +
releasenotes/source/train.rst                      |   6 +
requirements.txt                                   |   6 +-
setup.cfg                                          |   2 -
test-requirements.txt                              |   2 -
tox.ini                                            |  33 +-
zuul.d/ironic-python-agent-jobs.yaml               |  32 +-
zuul.d/project.yaml                                |  20 +-
67 files changed, 2135 insertions(+), 1511 deletions(-)


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

diff --git a/plugin-requirements.txt b/plugin-requirements.txt
index 3a75a5e..9d393f2 100644
--- a/plugin-requirements.txt
+++ b/plugin-requirements.txt
@@ -2 +2 @@
-hardware>=0.20.1
+hardware>=0.24.0
diff --git a/requirements.txt b/requirements.txt
index f8c4bb8..4905237 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -6,2 +5,0 @@ eventlet!=0.18.3,!=0.20.1,>=0.18.2 # MIT
-iso8601>=0.1.11 # MIT
-netaddr>=0.7.18 # BSD
@@ -15 +12,0 @@ oslo.utils>=3.33.0 # Apache-2.0
-pecan!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,>=1.0.0 # BSD
@@ -21 +17,0 @@ rtslib-fb>=2.1.65 # Apache-2.0
-six>=1.10.0 # MIT
@@ -23 +18,0 @@ stevedore>=1.20.0 # Apache-2.0
-WSME>=0.8.0 # MIT
@@ -24,0 +20 @@ ironic-lib>=2.17.0 # Apache-2.0
+Werkzeug>=0.15.0 # BSD License
diff --git a/test-requirements.txt b/test-requirements.txt
index afc80a2..ad69171 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -16 +15,0 @@ doc8>=0.6.0 # Apache-2.0
-sphinx!=1.6.6,!=1.6.7,>=1.6.2,<2.0.0;python_version=='2.7' # BSD
@@ -18 +16,0 @@ sphinx!=1.6.6,!=1.6.7,>=1.6.2;python_version>='3.4' # BSD
-sphinxcontrib-pecanwsme>=0.8.0 # Apache-2.0






More information about the Release-announce mailing list