Xena Series Release Notes


Bug Fixes

  • Fixed the incorrect handling of exceptions from openstacksdk when querying the list of ports from ironic, that caused the agent to stop reporting its state. Also when there are problems querying ports, agent now does not report an empty state, and rather waits for the next iteration to retry.


Upgrade Notes

  • Operators using ironic-neutron-agent with noauth authentication strategy (i.e standalone ironic without keystone) must update the configuration. Replace [ironic]/auth_strategy = noauth with [ironic]/auth_type = none and set the [ironic]/endpoint_override option accordingly.

Deprecation Notes

  • With the switch from ironicclient to openstacksdk the following options has been deprecated.

    • [ironic]/ironic_url replaced by [ironic]/endpoint_override

    • [ironic]/os_region replaced by [ironic]/region_name

    • [ironic]/retry_interval replaced by [ironic]/status_code_retries

    • [ironic]/max_retries replaced by [ironic]/status_code_retry_delay

    • [ironic]/auth_strategy is ignored, please use [ironic]/auth_type instead.

Other Notes

  • Communication with ironic is now using openstacksdk, removing the dependency on ironicclient.


Upgrade Notes

  • Python 2.7 support has been dropped. Last release of Networking Baremetal to support Python 2.7 is OpenStack Train. The minimum version of Python now supported by Networking Baremetal is Python 3.6.


Upgrade Notes

  • To fix bug: 2004933 oslo.messaging notification queues are now renamed and created with amqp_auto_delete=true. When upgrading the agent old queues should be deleted to free up message broker resources. Previous queue that can be deleted are named ironic-neutron-agent-heartbeat.info. There may also be queues with uuid of previous agent instances as name, these can also safely be deleted. (Look in the agent logs for relevant agent uuids).

    On rabbitmq queues can be deleted via the web console. For example with curl:

    curl -i -u username:password \
      -H "content-type:application/json" -XDELETE \

    Another example with vhost: ‘/’ deleting the ironic-neutron-agent-heartbeat.info queue:

    curl -i -u username:password \
      -H "content-type:application/json" \
      -XDELETE \


    In the example above the vhost is /. To ensure the vhost is correctly encoded the use of %2F, instead of / is required.

Bug Fixes

  • Fixes an issue where old oslo.messaging notification pool queues remained in the broker without any consumer after agent restart. The notification queues will now be created with amqp_auto_delete=true. See bug: 2004933.

  • Fixes an issue causing heavy RAM (and/or-storage) usage on the message broker back-end. The ironic-neutron-agent uses oslo.messaging notifications, with all notification listeners using pools. Since all listeneres are using pools the default notification queue in messaging is not consumed (only the pool queues are consumed). The default notification queue was continously growing, consuming more and more resources on the messaging back-end. See oslo.messaging bug: 1814544 and bug: 2004938 for more details.


New Features

  • Issuing a SIGHUP (e.g. pkill -HUP ironic-neutron-agent) to the agent service will cause the service to reload and use any changed values for mutable configuration options.

    Mutable configuration options are indicated as such in the sample configuration file by Note: This option can be changed without restarting.

    A warning is logged for any changes to immutable configuration options.


New Features

  • Adds support for load distribution when multiple instances of the networking-baremetal agent are running. Each instance will manage a subset of bare metal nodes. In case one or more instances of networking-baremetal agent is lost, the remaining instances will take over the bare metal nodes previously managed by the lost instance(s).

  • Add neutron agent ironic-neutron-agent to enable integration with neutron routed provider networks. The ml2 agent reports the state of ironic ports associated with ironic nodes to neutron, it populates the bridge_mappings configuration for each ironic node. The agent data can be used by the neutron segments plug-in in conjunction with neutron ml2 mechanism driver to ensure that port binding and ipam ip address allocations are taken from subnets associated with physical network segments available to the ironic port.

  • Baremetal ml2 mechanism driver integration with the L2 agent. This enables the ml2 mechanism driver to use the agent_db data when binding ports. E.g the bridge mappings to enable binding on routed provider networks.

  • Add support for type vlan networks in baremetal ml2 mechanism driver. This enables binding on networks using vlans for segmentation. It is only setting type vlan as supported. The intent is to use this in combination with another neutron mechanism driver that actually knows how to configure the network devices.


    The driver will not do anything to set up the correct vlan tagging in the network infrastructure such as switches or baremetal node ports.

    Another ml2 mechanism driver, or some other implementation, must be enabled to perform the necessary configuration on network devices.



This is the initial release of the networking-baremetal. The project includes the baremetal ml2 mechanism driver performing binding of the Networking service ports with binding_vnic_type=baremetal in flat networks. It also includes the devstack plugin to simplify the development setup and testing.