Current Series Release Notes

8.1.0-7

Bug Fixes

  • A device in [networking_baremetal] enabled_devices that does not set driver is now actually skipped. Previously it was logged as being ignored but was still returned to the mechanism driver, which then looked up a driver entrypoint named None. The service failed to start with TypeError: sequence item 0: expected str instance, NoneType found, which gave no indication of the option that was missing.

  • The ironic-neutron-agent no longer registers the OVN LocalnetPortEvent handler 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.

  • Setting [l2vni] enable_l2vni_trunk_reconciliation = false now fully disables L2VNI trunk reconciliation in the ironic-neutron-agent. Previously it only stopped the periodic reconciliation loop, because [l2vni] enable_l2vni_trunk_reconciliation_events was treated as an independent switch and also defaults to true. The agent therefore still built the L2VNI trunk manager, connected to OVN, registered the localnet port event handler, and ran a full reconcile, including creating the anchor networks, on every OVN localnet port change. Deployments that do not use the L2VNI feature saw repeated errors from anchor network creation, for example when [l2vni] l2vni_subport_anchor_network_type is not one of the configured ML2 type_drivers. enable_l2vni_trunk_reconciliation is now the single master switch for the feature, matching the documented behaviour of the events option, and enabling only the events option logs a warning and is ignored.

  • The ironic-neutron-agent notification listener pool queue is now named after [DEFAULT] host rather than always the hostname reported by the operating system. host still defaults to that hostname, so there is no change unless it is set. Quorum queues cannot be declared auto_delete, so the pool queue is only reused across restarts when its name is stable; deployments where the hostname is not stable, such as a Kubernetes Deployment where it is the pod name, left a stale queue behind on every rollout. Those deployments can now set host to a durable value.