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
participants (1)
-
no-reply@openstack.org