2026.2 Series Release Notes¶
8.1.0-5¶
Bug Fixes¶
Fixed the ironic-neutron-agent silently stopping processing notifications when ironic-api was unavailable during agent startup. Stale agent cleanup is now best-effort and no longer aborts startup, and a node lookup that fails with anything other than a not-found error no longer marks a live agent for removal.
The ironic-neutron-agent no longer registers the OVN
LocalnetPortEventhandler twice when event-driven L2VNI trunk reconciliation is enabled. The handler was registered both inline during agent initialization and by_register_ovn_event_handlers(). Both used the same cached event-only OVN Northbound connection, so every localnet port create or delete triggered two L2VNI trunk reconciliations.
8.0.0¶
New Features¶
L2VNI trunk subports now include the Neutron VLAN segment UUID in
binding:profile['segment_id']. This enables ML2 mechanism drivers like networking-generic-switch to use segment-based cleanup logic instead of parsing switch port configurations, allowing static trunk port configurations on physical switches. See bug 2144875.
Upgrade Notes¶
The following deprecated options in the
[ironic]section have been removed.auth_strategyironic_urlos_regionmax_retriesretry_interval
Support for Python 3.10 has been removed. Now Python 3.11 is the minimum version supported.
Deployments that have been running the ironic-neutron-agent with quorum queues (
rabbit_quorum_queue = True) may have stale RabbitMQ queues namedironic-neutron-agent-member-manager.<hostname>.ironic-neutron-agent-member-manager-pool-<uuid>. These queues can be safely deleted manually after upgrading.
Bug Fixes¶
Fixed AttributeError in L2VNI trunk manager when accessing
ha_chassis_groupon logical router ports. The code was incorrectly treatingha_chassis_groupas a single object when it is actually a list (with 0 or 1 element) in the OVN IDL schema. The fix now properly accessesha_chassis_group[0]to get the HA_Chassis_Group object before iterating over its chassis members, matching the pattern used throughout the upstream Neutron codebase. See bug 2145014.
Fixed an issue in the router HA binding manager (
enable_router_ha_binding, default enabled) where router interface ports (Logical_Router_Port) on networks with no external (baremetal/SR-IOV) ports were still being bound to that network’sHA_Chassis_Group. This pinned the router’s east-west traffic to a single chassis, breaking basic default-gateway reachability and Distributed Floating IP traffic for regular VMs hosted on any chassis other than the one referenced by theHA_Chassis_Group, in Neutron OVN deployments usingenable_distributed_floating_ip. Router interface ports are now only bound to a network’sHA_Chassis_Groupwhen that network actually contains at least one external port. See bug 2160270.
Fixes an issue where the driver attempted to set
requested-chassison localnet ports, which is not a valid option for this port type. See bug 2145148.
Fixed L2VNI trunk subport creation to avoid ML2 ERROR log spam. Previously, setting
binding:host_idon subports before adding them to trunks caused unnecessary binding attempts that would fail. See bug 2148720.
The ironic-neutron-agent notification listener pool name now uses the agent hostname instead of a per-process UUID. Previously, each agent restart created a new permanent RabbitMQ queue named after the UUID, leaving behind stale queues with unconsumed messages when running with quorum queues (
rabbit_quorum_queue = True). With quorum queues,auto_deleteis not supported, so old UUID-named queues were never removed. Using the hostname as the pool name ensures the same queue is reused across restarts on the same host.