Current Series Release Notes

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_strategy

    • ironic_url

    • os_region

    • max_retries

    • retry_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 named ironic-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_group on logical router ports. The code was incorrectly treating ha_chassis_group as a single object when it is actually a list (with 0 or 1 element) in the OVN IDL schema. The fix now properly accesses ha_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’s HA_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 the HA_Chassis_Group, in Neutron OVN deployments using enable_distributed_floating_ip. Router interface ports are now only bound to a network’s HA_Chassis_Group when that network actually contains at least one external port. See bug 2160270.

  • Fixes an issue where the driver attempted to set requested-chassis on 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_id on 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_delete is 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.