[release-announce] ironic 21.2.0 (antelope)

no-reply at openstack.org no-reply at openstack.org
Thu Dec 15 16:23:33 UTC 2022


We contentedly announce the release of:

ironic 21.2.0: OpenStack Bare Metal Provisioning

This release is part of the antelope 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.

21.2.0
^^^^^^


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

* Adds an upgrade status check for the Allocation table engine and
  character set encoding on MySQL. This is a result of a missing
  encoding definition on the table schema when originally created.
  This issue will be remedied, in part, in a later version of Ironic,
  but the upgrade status check will provide advance operator
  visibility.

* This upgrade updates the default character set to utilized in the
  database tables when using MySQL/MariaDB. Previously, the default
  for Ironic was "UTF8", however we now explicitly set "UTF8MB3" which
  is short for "3 byte UTF8" encoding. The exception to this is the
  "allocations" table, which would just rely upon the database
  default. This was done as Ironic's database schema is incompatible
  with MySQL/MariaDB's "UTF8MB4", or "4 byte UTF8" character encoding
  and storage constraints.

* Upgrading will change the default chracter encoding of all tables.
  For most tables, this should be an effective noop, but may result in
  transitory table locks. For the "allocations" table, it will need to
  be re-written, during which the database engine will have locked the
  table from being used. Operators are advised to perform test
  upgrades and set expectation and upgrade plans accordingly.

* Adds "sha256", "sha384" and "sha512" as supported SNMPv3
  authentication protocols to iRMC driver.

* Operators who are upgrading should be aware that a bug was
  discovered with the automatic selection of "boot_interface" for
  users of the "irmc" hardware types. This was an inconsistency,
  resulting in "irmc-pxe" being selected instead of "ipxe" if these
  boot interfaces were enabled. Depending on the local configuration,
  this may, or may not have happened and will remain static on
  preexisting baremetal nodes. Some users may have been relying upon
  this incorrect behavior by having mis-alligned defaults by trying to
  use the "irmc-pxe" interface for "ipxe". Users wishing to continue
  this usage as it was previously will need to explicitly set a
  "boot_interface" value to either "pxe" or "irmc-pxe", depending on
  the local configuration. Most operators have leveraged the default
  examples, and thus did not explicitly encounter this condition.
  Operators explicitly wishing to use "pxe" boot interfaces with the
  "ipxe" templates and defaults set to override the defaults for
  "ironic.conf" will need to either continue to leverage default
  override configurations in their "ironic.conf" file.

* Ironic has started the process of upgrading the code base to
  support SQLAlchemy 2.0 in anticipation of it's release. This results
  in the minimum version of SQLAlchemy becoming 1.4.0 as it contains
  migration features for the move to SQLAlchemy 2.0.


Bug Fixes
*********

* Fixes an missing MySQL/MariaDB character set configuration and
  default table type encoding for the "allocations" database table.
  Previously, If Ironic's database was attempted to be populated on a
  machine which was using 4 byte character encoding, such as
  MySQL/MariaDB on Debian based systems, then the database schema
  creation would fail.

* Fixes an issue where unexpected exceptions coming from the process
  to start cleaning would not trigger the cleaning_error_handler which
  performs the needful internal resets to permit cleaning to be
  retried again in the future. Now any error which is encountered
  during the launch of cleaning will trigger the error handler.

* Fixes the URL based anaconda deployment for parsing the given
  "image_source" url.

* Fixes URL based anaconda deploy to work in pxe boot. It also
  enables grub based pxe anaconda deploy which is required for "ilo"
  hardware type.

* Modify iRMC driver to use ironic.conf [deploy] default_boot_mode
  to determine default boot_mode.

* Fixes the default boot interface order for the "irmc" hardware
  type where previously it would prefer "irmc-pxe" over "ipxe". This
  created inconsistencies for operators using multiple hardware types,
  where both interfaces were enabled in the deployment.

Changes in ironic 21.1.0..21.2.0
--------------------------------

d7c95306d Ironic doesn't use metering; don't start it in CI
aca8ebc06 Catch any exception for Cleaning
7c47ad04f [grenade] Explicitly enable Neutron ML2/OVS services in the CI job
342f4b37d Fix unit tests for Python 3.11
b70b4180f Follow-up to Redfish Interop Profile
4073d1983 Get inventory from Inspector
d691ee05e Add ports statistics to tools/benchmark scripts
26a6b4ed0 [doc] Add documentation on SMART test after disk burn-in
59b0dc459 Implements node inventory: database
fdcf3ad9e Create 'redfish' driver Redfish Interop Profile
071cf9b2d Align iRMC driver with Ironic's default boot_mode
2200f931d Change boot_interface order of iRMC driver
9e9b24821 Imported Translations from Zanata
cab51a9fc Fix the invalid glance client test
5d5ae5953 Replace more instances of model_query
cec04bb04 Do not disable autocommit until we fully migrate
ad0b8e4dc Cross test sushy with python 3.10
a1fe6cb41 Fix double mock call in glance_service test
b93fb2e5c Imported Translations from Zanata
c0287d0fd Phase 3 - SQLAlchemy 2.0 Compatability
ceec89094 Use project scoped token for cinder, glance services
b87b63db7 Trival: Remove minor troubleshooting accidently committed
c2df29e52 Phase 2 - SQLAlchemy 2.0 Compatability
49e085583 Phase 1 - SQLAlchemy 2.0 Compatability
1435a15ce Fix allocations default table type
9344eb22d Add upgrade check warning for allocations db
d26e0d2b7 Bump min version of testtools
cbaa871b2 Imported Translations from Zanata
eb046d341  Remove reference to 'all-plugin' tox environment
0215d3cd7 Fixes anaconda deploy for PXE boot
3b1504f4a Imported Translations from Zanata
ca54c4df2 Fix the anaconda deploy for the ISO mounted
233c64083 Add support auth protocols for iRMC
fdfbe6b68 Add missing space to log message
35b896ae2 Imported Translations from Zanata
bb6662f1e Update release versions for zed
1499023c4 Switch to 2023.1 Python3 unit tests and generic template name
2e4f287b7 Update master for stable/zed
2a05500c7 Update release versions for yoga


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

devstack/lib/ironic                                |   11 +-
.../install/include/common-prerequisites.inc       |   10 +-
ironic/cmd/status.py                               |   41 +-
ironic/common/exception.py                         |    4 +
ironic/common/glance_service/image_service.py      |    3 +-
ironic/common/images.py                            |   26 +-
ironic/common/pxe_utils.py                         |    3 +
ironic/common/release_mappings.py                  |    1 +
ironic/common/utils.py                             |   15 +
ironic/conductor/base_manager.py                   |   17 +-
ironic/conductor/cleaning.py                       |    5 +-
ironic/conductor/manager.py                        |    7 +-
ironic/conf/glance.py                              |    1 +
ironic/conf/irmc.py                                |   15 +-
ironic/db/api.py                                   |   30 +
ironic/db/sqlalchemy/__init__.py                   |    2 +-
.../0ac0f39bc5aa_add_node_inventory_table.py       |   46 +
.../versions/2581ebaf0cb2_initial_migration.py     |   16 +-
.../versions/2aac7e0872f6_add_deploy_templates.py  |    8 +-
.../alembic/versions/48d6c242bb9b_add_node_tags.py |    4 +-
...10e_added_port_group_table_and_altered_ports.py |    4 +-
.../versions/82c315d60161_add_bios_settings.py     |    4 +-
.../9ef41f07cb58_add_node_history_table.py         |    4 +-
.../b4130a7fc904_create_nodetraits_table.py        |    4 +-
.../versions/dd67b91a1981_add_allocations_table.py |    5 +-
ironic/db/sqlalchemy/api.py                        | 1026 ++++++++++++--------
ironic/db/sqlalchemy/models.py                     |   52 +-
ironic/drivers/irmc.py                             |    4 +-
ironic/drivers/modules/boot_mode_utils.py          |    2 +-
ironic/drivers/modules/inspector.py                |   12 +-
ironic/drivers/modules/irmc/common.py              |    7 +-
ironic/drivers/modules/irmc/inspect.py             |    9 +-
ironic/drivers/modules/irmc/management.py          |    4 +-
ironic/drivers/modules/irmc/power.py               |    7 +-
ironic/drivers/modules/pxe_grub_config.template    |    5 +
ironic/objects/__init__.py                         |    1 +
ironic/objects/node_inventory.py                   |  104 ++
.../unit/drivers/modules/irmc/test_inspect.py      |   25 +-
.../unit/drivers/modules/irmc/test_management.py   |   20 +-
.../OpenStackIronicProfile.v1_0_0.json             |  221 +++++
...d-allocations-table-check-38f1c9eef189b411.yaml |    8 +
.../allocations-charset-5384d1ea00964bdd.yaml      |   23 +
...h-all-cleaning-exceptions-1317a534a1c9db56.yaml |    8 +
.../notes/fix_anaconda-70f4268edc255ff4.yaml       |    5 +
.../notes/fix_anaconda_pxe-6c75d42872424fec.yaml   |    6 +
...c-add-snmp-auth-protocols-3ff7597cea7ef9dd.yaml |    5 +
...-ironic-default-boot-mode-dde6f65ea084c9e6.yaml |    5 +
...ange-boot-interface-order-e76f5018da116a90.yaml |   26 +
...prepare-for-sqlalchemy-20-e817f340f261b1a2.yaml |    7 +
releasenotes/source/index.rst                      |    1 +
.../locale/en_GB/LC_MESSAGES/releasenotes.po       |  205 +++-
releasenotes/source/yoga.rst                       |    6 +-
releasenotes/source/zed.rst                        |    6 +
requirements.txt                                   |    2 +-
test-requirements.txt                              |    2 +-
.../benchmark/do_not_run_create_benchmark_data.py  |   63 +-
tools/benchmark/generate-statistics.py             |  112 +++
tox.ini                                            |    2 +
zuul.d/ironic-jobs.yaml                            |   20 +-
zuul.d/project.yaml                                |    4 +-
83 files changed, 2359 insertions(+), 744 deletions(-)


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

diff --git a/requirements.txt b/requirements.txt
index ae8e14f39..8a57727ec 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -9 +9 @@ pbr>=3.1.1 # Apache-2.0
-SQLAlchemy>=1.2.19 # MIT
+SQLAlchemy>=1.4.0 # MIT
diff --git a/test-requirements.txt b/test-requirements.txt
index bd29d9394..0c4bdb0ca 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -14 +14 @@ psycopg2>=2.8.5 # LGPL/ZPL
-testtools>=2.2.0 # MIT
+testtools>=2.5.0 # MIT






More information about the Release-announce mailing list