We are overjoyed to announce the release of: ironic 34.0.0 This release is part of the gazpacho 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://bugs.launchpad.net/ironic/+bugs For more details, please see below. 34.0.0 ^^^^^^ New Features ************ * Adds a new configuration option "[conductor]clear_image_cache_on_deploy_failure" to control whether cached instance images are cleared during deployment failure state transitions, default=True. * Adds hardware health status monitoring and synchronization capability. A new "health" field has been added to the Node object and API (microversion 1.109) to expose hardware health status reported by the BMC. This feature introduces a new optional "get_node_health()" method in the management interface. Drivers can implement this method to retrieve health status from the BMC. During periodic power state synchronization, Ironic automatically calls this method for all nodes. Drivers that don't support health monitoring simply raise "UnsupportedDriverExtension" and are skipped. When health status changes, it is automatically saved to the node record and logged in the node history. The Redfish management interface (including "idrac-redfish") provides the first implementation, retrieving health status from the Redfish System resource ("Status.Health" field). Values include "OK", "Warning", and "Critical". Operators can monitor this field to detect hardware issues proactively. Other driver implementations (iLO, iRMC, etc.) can add support by implementing the "get_node_health()" method in their management interface. The feature is enabled by default but can be disabled using the "[conductor]/enable_health_monitoring" configuration option. When disabled, health status queries are not performed, and the node.health field will not be updated automatically. Drivers opt-in to health monitoring by implementing the "get_node_health()" interface method. * Adds Redfish LLDP data collection support to the Redfish inspection interface. This enables collecting Link Layer Discovery Protocol (LLDP) data from Redfish-compliant hardware during the inspection process. The collected data includes chassis ID, port ID, system name, system description, system capabilities, and management addresses, formatted as TLVs compatible with Ironic Python Agent inspection hooks and rules. * When deploying a container image with the direct deploy interface, the *instance_info.image_disk_format* will be set to *bootc* when the chosen manifest does not refer to an OCI artifact image. * A new "ironic.console.container" provider is added called "kubernetes" which allows Ironic conductor to manage console containers as Kubernetes pods. The kubernetes resources are defined in the template file configured by "[vnc]kubernetes_container_template" and the default template creates one secret to store the app info, and one pod to run the console container. It is expected that Ironic conductor is deployed inside the kubernetes cluster. The associated service account will need roles and bindings which allow it to manage the required resources (with the default template this will be secrets and pods). This provider holds the assumption that ironic-novnc will be deployed in the same kubernetes cluster, and so can connect to the VNC servers via the pod's "status.hostIP". * When using iDRAC Redfish, we now check the Dell-specific OEM locations for LLDP first, then fall back to the standards location if that data is unavailable. * Adds "[redfish]firmware_update_overall_timeout" (default 2 hours) to limit total firmware update duration as a safety net for stuck updates. * Adds support for accessing an OCI Registry Service utilizing Basic authentication with the "instance_info\image_pull_secret" parameter. The credentials should be set as colon delimited string in the format of "username:password". * Adds a capability to permit OCI URL support to be automatically able to fallback to using HTTP instead of the expected HTTPS for transport. By default, this option is disabled but can be enabled via the "[oci]permit_fallback_to_http_transport" configuration option. * The "/v1/portgroups" API endpoint now accepts filtering by shard. In API version 1.106, requests with the "shard" parameter will only return portgroups associated with nodes assigned to that shard. * Ironic API now returns the "X-OpenStack-Request-Id" header, which is the common response header to return request id in multiple OpenStack projects. The header mirrors the existing "OpenStack- Request-Id" header. If ironic API supports microversion 1.107, ironic returns the new header. * Adds support for using "disable_ramdisk" with manual servicing ("target=service") starting with Bare Metal API microversion "1.108". This enables running service steps that are explicitly marked as not requiring a ramdisk. * Adds a new Ubuntu based container file for VNC graphical client operation containers, which is above and beyond the stock Centos based VNC. Upgrade Notes ************* * The minimum required version of "openstacksdk" has been updated from ">=0.99.0" to ">=4.9.0". This version bump is required, amongst others, to enable secure hash validation for image downloads, which provides improved data integrity verification using SHA256, SHA512, and other secure hash algorithms instead of MD5-only validation. Deprecation Notes ***************** * The following options are now formally deprecated. These have been unused since the idrac wsman driver interfaces were removed in 26.0.0 release. * "[drac] config_job_max_retries" * "[drac] bios_factory_reset_timeout" * Ironic is deprecating and immediately removing the capability to pass OVN VTEP connection information across through to Neutron. Over the past year, multiple contributors have looked into this alpha level functionality which was merged into Ironic and it was realized that the functionality was geared for the OVN VTEP port service which is a separate service one must launch on a OVN networking node to make an attachment. Since the functionality which was merged into ironic is unsuitable for scaled and automated operations it must be removed. API field validation is being kept, and the API version has bee incremented to "1.104" to signify this change, however the passing on Neutron Port Binding has been removed. Ironic developers are actively working on a performant solution in the short term. We hope to have something else usable before the 2026.1 release. Security Issues *************** * Image downloads now support secure hash validation direct from the sdk library using SHA256, SHA512, and other secure hash algorithms via the "os_hash_algo" and "os_hash_value" metadata fields, instead of Ironic having to perform these checks outside of sdk code. [Bug 2130662 (https://bugs.launchpad.net/openstacksdk/+bug/2130662)] Bug Fixes ********* * [Bug 2135265 (https://bugs.launchpad.net/ironic/+bug/2135265)] Fixes an issue where an exception in one of the inspection hooks when using the agent inspector interface would result in the node not being cleaned up. * This fixes a minor off-by-one bug where, instead of removing OVN VTEP support from API microversion 1.105, we removed it from any microversion *after* 1.105. * "[pxe]loader_file_paths" allowed nested paths but this was never an intended function of the code. Other places in Ironic expect the file to just be a base path without a directory. Remove the ability provide nested paths to avoid user issues in the future. * Ensure that the path to where we are copying the bootloader exists before attempting to copy the bootloader in. * Each firmware component might have different reboot requirements depending on the hardware, this change adds two new configuration options to help operators configure the reboot behavior for firmware updates. "[redfish]firmware_update_reboot_delay": reboot delay for firmware updates of components. "[redfish]firmware_update_bmc_version_check_interval": delay in seconds after the firmware update fails before the node is rebooted. * Fixes an issue with BIOS firmware updates on certain BMCs where the firmware task completes very quickly after staging the firmware, before Ironic can trigger a reboot. Previously, this would result in the staged BIOS firmware not being applied because no reboot was triggered. Now, Ironic detects this condition and triggers the reboot when the task completes, ensuring the staged firmware is properly applied. * Fix retrieving BIOS settings via redfish based interfaces. The code used some references to an earlier version of the spec which was ultimately not adopted. Fixes bug 2137596 (https://bugs.launchpad.net/ironic/+bug/2137596). * Some BMCs maybe return they are not processing the firmware update when the task is still in RUNNING, STARTING, or PENDING state. Previously, Ironic will treat it as complete and stop polling for the update. Now, Ironic will continue polling for the update until it is complete. * Fixes an issue where service and clean steps with "requires_ramdisk=False" (such as Redfish firmware updates) would incorrectly fail due to heartbeat timeout. These steps operate independently of the ramdisk agent and should not be subject to heartbeat timeouts. Previously, such steps would fail after "service_callback_timeout" or "clean_callback_timeout" (default 30 minutes) with a misleading error about the ramdisk not running. The fix updates "provision_updated_at" during firmware update polling, preventing the heartbeat timeout mechanism from triggering while the out-of-band operation is still in progress. For more information, see bug 2136276 (https://bugs.launchpad.net/ironic/+bug/2136276). * Fixes an issue where baremetal nodes that experienced inspection errors, either through timeout or hard failure, were not having their inspection VIFs (Virtual Interfaces) removed from the node's ports. This resulted in network resource leaks that persisted after the node transitioned to the "inspect fail" state. The inspection error handling now properly cleans up inspection networks by calling "remove_inspection_network()" on all error paths, matching the behavior of cleaning, servicing, and deployment error handlers. This ensures that inspection VIFs are always removed from ports when inspection fails, preventing network resource leaks. * Fixes an issue where "disable_ramdisk" could bypass API validation when supplied via a runbook because validation happened before runbook resolution. * The port API endpoints were not returning the vendor and category fields when they should have been. A number of places the API docs were incorrect and missed adding information about the vendor and category fields but other fields were omitted as well. * Fixes an issue with the redfish firmware updates attached to the "management" interface where firmware updates performed as part of the SERVICE steps workflow could end up stuck in "service wait". This issue has been corrected and the nodes should now properly have their state checked. For more information, please consult bug 2136895 (https://bugs.launchpad.net/ironic/+bug/2136895). * Extremely large instance images, post eventlet removal, were causing CPU spikes and the conductor process to hang while the image was being fetched and validated. This optimizes the instance fetch and validation in two ways -- first, we now calculate the image checksum while the file is being fetched instead of as a separate step. Secondly, we were, in some cases, using the default chunk size of 128 bytes during downloads. Now, we use a more standard and reasonable value of 1 megabyte. * Fix the loading of built-in inspection rules which are supplied via a file on the conductor. See bug 2136776 (https://bugs.launchpad.net/ironic/+bug/2136776) * Fixes the "is-empty" inspection rule to properly handle missing fields in the inventory. Previously, when checking for empty values using fields that don't exist in the inventory, the rule would fail with a KeyError during variable interpolation. Now, missing fields are treated as empty for the "is-empty" operation, allowing the rule to pass when checking for non-existent inventory fields. * Moves the "check_image_size" to "deploy_utils" so it runs earlier in the deploy flow and only when it matters, reusing already-fetched image information. * Fixed iPXE boot interfaces ("ipxe" and "http-ipxe") not being recognized as PXE-capable by the neutron network interface. This resolves inconsistent neutron port creation and deletion during cleaning operations that could lead to orphaned neutron ports. * Fixes excessive logging when Redfish-managed servers do not have NetworkAdapters endpoints. Previously, servers without NetworkAdapters would generate warning-level log messages during firmware component caching. Now these messages are logged at debug level since having no NetworkAdapters is a valid hardware configuration. * Fixes a bug where virtual media was ejected before the graceful shutdown was issued during the inspection teardown phase. This caused filesystem corruption errors on nodes (particularly visible on iDRAC consoles) when the operating system lost access to its boot media during shutdown. The fix ensures that a soft power off is performed before ejecting virtual media, allowing the OS to shut down cleanly before the virtual media is ejected. * When using the redfish inspection driver, the system product name in the data was always the value 'System' due to the wrong field being read. See bug 2136233 (https://bugs.launchpad.net/ironic/+bug/2136233) * Adds retry logic for Redfish boot device changes when BMC rejects modifications during POST (Power-On Self-Test). This addresses issues with HPE iLO BMCs returning "UnableToModifyDuringSystemPOST" errors after firmware updates or reboots. See bug 2136275 (https://bugs.launchpad.net/ironic/+bug/2136275). * Fixes Redfish RAID volume creation failure when size_gb='MAX' is specified. Ironic now omits CapacityBytes from the Redfish payload for MAX size volumes, allowing the controller to calculate the optimal size accounting for metadata overhead. The actual volume size is queried and stored after creation. * Fixes handling of configuration drive ISO storage urls to respect the node "driver_info\external_http_url" override value when set. * Report a better error message than a KeyError when there are no interfaces in the inspection data when running the validate- interfaces inspection hook. Other Notes *********** * Remove the fallback to loading sushy-oem-idrac since Ironic now requires at a minimum a version of sushy that has sushy-oem-idrac integrated and will always load that first. Changes in ironic 33.0.0..34.0.0 -------------------------------- 85a8c72a4 Minimum version bump dd36d06a6 OciImageService detect bootc image b13db5750 Speed the slowest tests 9eb561222 [doc] Releasenote for iDRAC LLDP f61755d81 Add hardware health monitoring via management interface 07102b6c0 Refactor firmware update temp field handling c3418b15a Improve image download performance 86f9a94e9 Add LLDP collect for DRAC Redfish inspection e470f7fd5 docs: refactor the inspection docs a908fc25f Adapt bindep for debian-trixie 23948dabf Support `disable_ramdisk` during servicing 0b3fadd27 Add configuration options for Trait Based Networking 7ffa84c17 Rip out check for multiple physnets in vif_attach ff9308739 Fix introspection failure handling 7b4699f40 Add positive port api category/vendor field test 3f0f73389 Simplify ovn vtep microversion logic b26230292 fix: port endpoints did not return vendor and category and fix docs 2d253a04f Add retry logic for boot device changes during POST 54ca5a3b4 Fix heartbeat for steps with requires_ramdisk=False dce19076d Fix BMC resource validation to catch all sushy exceptions 2306d90f8 Fix BIOS firmware not flashing when task completes before first poll 326c4e9be Fix firmware update failure when task remains in RUNNING state d90824a39 Make post-firmware-update reboot conditional on component 922f56eb1 Fix order of `disable_ramdisk` validation a0968f841 Add release mapping alias for 2025.2 aa748ea91 fix: bios fields could not be fetched via the API 18bedb69f Silence loud logging when no NetworkAdapters d56a70e8a fix: report a better error in validate-interfaces 98cda8f2c Fix async periodic on redfish for servicewait 7b79d62a9 Soft power off before cleaning up inspection ramdisk 5f59aa0b2 Use common utility to wrap IPv6 address 8200f0f5d Adjust url to pull dnsmasq 9c5fb01f3 Use oslo.config to split [console] port_range b51930c0d Validate [molds] storage while loading config files 43c599750 Use common request_id middleware 4b58b8a82 Support filtering portgroups by shard 9e47609f0 fix: iPXE boot interface PXE capability detection 555c019bb fix loading of built-in inspection rules 2c118a4d4 fix: inspection rules docs to match the code c11e12a45 Omit `CapacityBytes` for Redfish RAID MAX size_gb ade41cae4 fix redfish inspect system product name 0255cc98a update inspection rules docs and code to the same order a6b3f1e33 Add generic switch driver support 006ca964b Introduce switch driver base class 4ce577d28 Add two phase driver factor initialization 52300e0a6 OCI Basic Auth/Tag access 595258da9 OCI: Add an option to fallback to HTTP 2570f7559 Use native override of RequestContext.from_environ 30113a4c2 fix: agent inspection hooks failure does not clean up e273bb958 Add Redfish LLDP data collection support to the Redfish inspection interface. dcc668fae Replace remaining usage of policy.json b47afbca3 remove sushy_oem_idrac usage 2622864b7 [api-ref] Fix api-ref to mention list port by cg 7e4ffe7c8 Include all relevant error messages in exception ca0ee56cc `is-empty` inspection rule to handle missing field 041f0a586 Move `check_image_size` to `deploy_utils` a382b21e6 fix: do not allow nested paths in loader_file_paths c69caf28e Separate states code from states constants 094337f14 Remove ovn vtep support 2756b8e81 Trivial: Fix `instance_name` policy name 33bfc1e28 Add PCIe function fields to redfish inspection d3d65ee2c Trait Based Networking Simulator 278cf5f96 Implement networking service RPC API methods 28168c416 Add a kubernetes provider for console container 856238c56 Switch graphical console image to ubuntu by default eccfb8bb5 Use per-node external_http_url for configdrive ISO 68277dd05 Generate network plan based on trait based networking config e4ac3dd76 Add documentation regarding the is_root_volume RAID config 05b9dc22c Add networking driver framework infrastructure 194b638c7 Add a conductor liveness check utility script 1b2504428 Trivial: Fix typo in documentation 91159a439 Drop xinetd/tftpd on CentOS 9 c789f480b Use new bifrost ci job name 2cb813c03 drac: Deprecate unused options b8f3318ca Add standalone networking service for ironic 1991a6de6 Remove ironic-inspector jobs and leftovers from zuul settings d12fc12a8 Drop remaining references to ironic-inspector 7a0a9ef78 fix: ensure that the bootloader path exists 694769f37 split error messages in image cache for more clarity 66ade9b9b doc: trivial: Quick revision of README 5cb4933df Clear image cache on deployment failure a4a5c9b3b docs: a little more clarity around the state of ipxe+uefi Diffstat (except docs and test files) ------------------------------------- .gitignore | 2 + README.rst | 18 +- api-ref/source/baremetal-api-v1-nodes-ports.inc | 28 + api-ref/source/baremetal-api-v1-portgroups.inc | 5 + api-ref/source/baremetal-api-v1-ports.inc | 25 +- api-ref/source/baremetal-api-versions.inc | 4 + api-ref/source/parameters.yaml | 20 +- bindep.txt | 10 +- devstack/files/bindep.txt | 2 +- devstack/lib/ironic | 66 +- devstack/tools/ironic/templates/tftp-server.conf | 14 + driver-requirements.txt | 3 + ironic/api/app.py | 16 + ironic/api/controllers/v1/node.py | 9 +- ironic/api/controllers/v1/port.py | 2 + ironic/api/controllers/v1/portgroup.py | 42 +- ironic/api/controllers/v1/utils.py | 57 +- ironic/api/controllers/v1/versions.py | 14 +- ironic/api/hooks.py | 19 +- ironic/command/networking.py | 64 ++ ironic/command/singleprocess.py | 1 + ironic/common/checksum_utils.py | 7 +- ironic/common/context.py | 12 +- ironic/common/driver_factory.py | 98 +- ironic/common/exception.py | 5 + ironic/common/glance_service/image_service.py | 73 +- ironic/common/health_states.py | 37 + ironic/common/image_service.py | 348 ++++-- ironic/common/images.py | 16 +- ironic/common/inspection_rules/actions.py | 6 +- ironic/common/inspection_rules/base.py | 26 +- ironic/common/inspection_rules/engine.py | 26 +- ironic/common/inspection_rules/validation.py | 7 +- ironic/common/json_rpc/client.py | 1 - ironic/common/keystone.py | 3 +- ironic/common/network.py | 9 + ironic/common/neutron.py | 35 +- ironic/common/oci_registry.py | 143 ++- ironic/common/pxe_utils.py | 46 +- ironic/common/release_mappings.py | 6 +- ironic/common/rpc.py | 1 + ironic/common/rpc_service.py | 9 +- ironic/common/state_machine.py | 370 ++++++ ironic/common/states.py | 391 +------ ironic/common/trait_based_networking/plan.py | 99 ++ ironic/common/utils.py | 11 - ironic/conductor/inspection.py | 19 +- ironic/conductor/manager.py | 7 +- ironic/conductor/task_manager.py | 5 +- ironic/conductor/utils.py | 184 +++ ironic/conf/__init__.py | 5 + ironic/conf/conductor.py | 50 +- ironic/conf/console.py | 19 +- ironic/conf/drac.py | 6 + ironic/conf/inspector.py | 5 +- ironic/conf/ironic_networking.py | 118 ++ ironic/conf/molds.py | 4 +- ironic/conf/oci.py | 12 + ironic/conf/opts.py | 3 + ironic/conf/redfish.py | 45 + ironic/conf/vnc.py | 23 +- .../container/ironic-console-pod.yaml.template | 45 + ironic/console/container/kubernetes.py | 307 +++++ ironic/db/api.py | 15 + .../9f8c7d6e5b4a_add_node_health_fields.py | 31 + ironic/db/sqlalchemy/api.py | 10 + ironic/db/sqlalchemy/models.py | 1 + ironic/drivers/base.py | 23 + ironic/drivers/modules/agent.py | 42 - ironic/drivers/modules/console_utils.py | 7 +- ironic/drivers/modules/deploy_utils.py | 60 +- ironic/drivers/modules/drac/inspect.py | 83 +- ironic/drivers/modules/drac/raid.py | 6 +- ironic/drivers/modules/image_cache.py | 57 +- ironic/drivers/modules/image_utils.py | 4 +- ironic/drivers/modules/inspector/agent.py | 13 +- .../modules/inspector/hooks/validate_interfaces.py | 5 + ironic/drivers/modules/inspector/interface.py | 24 +- ironic/drivers/modules/ipxe.py | 8 +- ironic/drivers/modules/network/common.py | 20 +- ironic/drivers/modules/redfish/boot.py | 17 +- ironic/drivers/modules/redfish/firmware.py | 921 +++++++++++++-- ironic/drivers/modules/redfish/inspect.py | 200 +++- ironic/drivers/modules/redfish/management.py | 105 +- ironic/drivers/modules/redfish/raid.py | 11 +- ironic/drivers/modules/redfish/utils.py | 32 +- ironic/drivers/modules/switch/__init__.py | 0 ironic/drivers/modules/switch/base.py | 356 ++++++ ironic/drivers/modules/switch/generic_switch.py | 421 +++++++ ironic/networking/__init__.py | 0 ironic/networking/api.py | 169 +++ ironic/networking/manager.py | 640 +++++++++++ ironic/networking/rpc_service.py | 78 ++ ironic/networking/rpcapi.py | 251 ++++ ironic/networking/switch_config.py | 140 +++ ironic/networking/switch_drivers/__init__.py | 0 ironic/networking/switch_drivers/driver_adapter.py | 305 +++++ ironic/networking/switch_drivers/driver_factory.py | 179 +++ ironic/networking/utils.py | 91 ++ ironic/objects/bios.py | 9 +- ironic/objects/node.py | 7 +- ironic/objects/portgroup.py | 21 + .../unit/api/controllers/v1/test_portgroup.py | 68 ++ .../common/trait_based_networking/test_plan.py | 317 ++++++ .../console/container/test_console_container.py | 764 ++++++++++++- .../unit/drivers/modules/drac/test_inspect.py | 188 +++ .../unit/drivers/modules/network/test_common.py | 57 +- .../unit/drivers/modules/redfish/test_boot.py | 74 +- .../unit/drivers/modules/redfish/test_firmware.py | 1119 ++++++++++++++++-- .../unit/drivers/modules/redfish/test_inspect.py | 328 +++++- .../drivers/modules/redfish/test_management.py | 323 ++++++ .../unit/drivers/modules/redfish/test_power.py | 34 +- .../unit/drivers/modules/redfish/test_raid.py | 185 +++ .../drivers/modules/switch/test_generic_switch.py | 925 +++++++++++++++ .../unit/drivers/modules/test_console_utils.py | 22 +- .../unit/drivers/modules/test_deploy_utils.py | 120 +- .../unit/drivers/third_party_driver_mock_specs.py | 26 +- pyproject.toml | 9 +- ...cleanup-on-deploy-failure-afd00a4fa3d97ea3.yaml | 6 + ...health-monitoring-support-a8f3c4d2e9b7f1a3.yaml | 32 + ...p-data-collection-support-4848abc537e4a434.yaml | 9 + ...spect-hooks-cleanup-error-c8901a7f8ad0dfd3.yaml | 7 + .../api-105-off-by-one-fix-d4732a7b33fa7a0f.yaml | 4 + .../notes/bootc-detect-0d9b305ba71e5bae.yaml | 6 + .../bootloader-file-path-f452a580f2d11e1b.yaml | 7 + ...bootloader-paths-creation-b5097003f25a18ad.yaml | 5 + .../conditional-reboot-fwup-6ca14573a2bebba0.yaml | 10 + .../notes/console-k8s-b4aee1bb1d3d0a65.yaml | 18 + ...eprecate-drac-unused-opts-a1ac2082a250a7c0.yaml | 8 + .../notes/drac-redfish-lldp-af725b889471cf83.yaml | 5 + .../notes/fix-bios-fw-flash-190220f3beccf2f3.yaml | 9 + .../notes/fix-bios-settings-d6f8daed2b17c0b5.yaml | 6 + ...when-task-remains-running-bbe30ab1059baf32.yaml | 7 + ...-timeout-no-ramdisk-steps-732f3da7faa28f94.yaml | 17 + ...ix-inspection-vif-cleanup-2e6dcbc248c8f7c8.yaml | 14 + ...k-validation-for-runbooks-e32617f1e9227e65.yaml | 6 + .../fix-port-vendor-category-28600ca30d98b368.yaml | 7 + ...async-updates-servicewait-e834ae30c5f72641.yaml | 9 + ...mage-download-performance-0bf1af5556c1adbf.yaml | 9 + ...ction-rules-built-in-load-00958e99e3ab7ecb.yaml | 5 + ...ection-rule-missing-field-3c489a9b71c47538.yaml | 9 + ...mage-size-to-deploy-utils-4022d17f0b8a88c7.yaml | 6 + .../notes/neutron-pxe-boot-cc850e1e7e1170c3.yaml | 7 + ...-network-adapters-logging-46b8908b319f0bdd.yaml | 8 + .../oci-support-basic-auth-f308a85f53436e85.yaml | 7 + ...mit_http_fallback_for_oci-877e2278407a2633.yaml | 7 + ...portgroup-filter-by-shard-941960e6e49fc638.yaml | 7 + ...before-virtualmedia-eject-280bf0559f7c4047.yaml | 10 + ...fish-inspect-product-name-bd537f417d35b254.yaml | 6 + .../redfish-post-boot-retry-8da100f84e6fcacf.yaml | 8 + ...redfish-raid-max-size-fix-2e4c84945936dbe2.yaml | 8 + .../remove-ovn-vtep-usage-c857f1ab22d8f6f1.yaml | 20 + .../remove-sushy-oem-idrac-1728961f55c49660.yaml | 6 + .../request-id-middleware-4db7aa2f5dc6121b.yaml | 7 + ...-http-url-for-configdrive-2c3598d95d2d316d.yaml | 5 + .../secure-hash-validation-a0bec74de64e2769.yaml | 15 + ...-ramdisk-during-servicing-582683e5f304efa3.yaml | 7 + .../ubuntu-vnc-containerfile-c4f0dba3c469a9c0.yaml | 6 + .../validate-interfaces-hook-49d7d6c57929a8cd.yaml | 5 + requirements.txt | 4 +- .../config/ironic-networking-config-generator.conf | 7 + tools/live_check_conductor | 57 + tools/states_to_dot.py | 4 +- .../network_objects.yaml.sample | 37 + tools/trait_based_networking/simulator.py | 115 ++ .../tbn_trait_config.yaml.sample | 23 + .../{Containerfile => Containerfile.centos} | 3 + tools/vnc-container/Containerfile.ubuntu | 37 + tools/vnc-container/README.rst | 2 +- tools/vnc-container/bin/start-firefox.sh | 14 +- tools/vnc-container/bin/start-x11vnc.sh | 10 +- tools/vnc-container/bin/stop-firefox.sh | 4 +- tox.ini | 1 + zuul.d/ironic-jobs.yaml | 65 -- zuul.d/project.yaml | 6 +- 230 files changed, 17571 insertions(+), 1814 deletions(-) Requirements updates -------------------- diff --git a/driver-requirements.txt b/driver-requirements.txt index 5da233890..7889e1edb 100644 --- a/driver-requirements.txt +++ b/driver-requirements.txt @@ -14,0 +15,3 @@ ansible>=2.7 + +# Standalone Networking Switch drivers +networking-generic-switch>=8.0.0 diff --git a/requirements.txt b/requirements.txt index e4753191f..431a22cd0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -39,2 +39,2 @@ tooz>=2.7.0 # Apache-2.0 -openstacksdk>=0.99.0 # Apache-2.0 -sushy>=5.7.0 +openstacksdk>=4.9.0 # Apache-2.0 +sushy>=5.9.0