Ironic fails to provision neutron port with spine-leaf networking.
Issue
- When attempting to build a baremetal host via Ironic on the Overcloud with a spine-leaf network topology the following stack trace can be found in the logs
2019-01-16 16:12:07.184 1 ERROR ironic.conductor.manager [req-5830457d-dbcd-4cb9-9d4b-1227c3b0cddd f5b1c4e792024a68b7715019946fb3ce 3f40d71fb44341b6940903c557a70b16 - default default] Failed to prepare node 524172b4-0314-45ad-b544-0a89cc34524c for cleaning: Failed to create neutron ports for any PXE enabled port on node 524172b4-0314-45ad-b544-0a89cc34524c.: NetworkError: Failed to create neutron ports for any PXE enabled port on node 524172b4-0314-45ad-b544-0a89cc34524c.
2019-01-16 16:12:07.184 1 ERROR ironic.conductor.manager Traceback (most recent call last):
2019-01-16 16:12:07.184 1 ERROR ironic.conductor.manager File "/usr/lib/python2.7/site-packages/ironic/conductor/manager.py", line 1181, in _do_node_clean
2019-01-16 16:12:07.184 1 ERROR ironic.conductor.manager prepare_result = task.driver.deploy.prepare_cleaning(task)
2019-01-16 16:12:07.184 1 ERROR ironic.conductor.manager File "/usr/lib/python2.7/site-packages/ironic_lib/metrics.py", line 60, in wrapped
2019-01-16 16:12:07.184 1 ERROR ironic.conductor.manager result = f(*args, **kwargs)
2019-01-16 16:12:07.184 1 ERROR ironic.conductor.manager File "/usr/lib/python2.7/site-packages/ironic/drivers/modules/iscsi_deploy.py", line 610, in prepare_cleaning
2019-01-16 16:12:07.184 1 ERROR ironic.conductor.manager task, manage_boot=True)
2019-01-16 16:12:07.184 1 ERROR ironic.conductor.manager File "/usr/lib/python2.7/site-packages/ironic/drivers/modules/deploy_utils.py", line 989, in prepare_inband_cleaning
2019-01-16 16:12:07.184 1 ERROR ironic.conductor.manager task.driver.network.add_cleaning_network(task)
2019-01-16 16:12:07.184 1 ERROR ironic.conductor.manager File "/usr/lib/python2.7/site-packages/ironic/drivers/modules/network/flat.py", line 119, in add_cleaning_network
2019-01-16 16:12:07.184 1 ERROR ironic.conductor.manager task, self.get_cleaning_network_uuid(task))
2019-01-16 16:12:07.184 1 ERROR ironic.conductor.manager File "/usr/lib/python2.7/site-packages/ironic/common/neutron.py", line 279, in add_ports_to_network
2019-01-16 16:12:07.184 1 ERROR ironic.conductor.manager "on node %s.") % node.uuid)
2019-01-16 16:12:07.184 1 ERROR ironic.conductor.manager NetworkError: Failed to create neutron ports for any PXE enabled port on node 524172b4-0314-45ad-b544-0a89cc34524c.
2019-01-16 16:12:07.184 1 ERROR ironic.conductor.manager
- The baremetal provisioning network is configured to use network segments similarly to the configuration used on the Undercloud as shown below
$ openstack network list
+--------------------------------------+-------------+----------------------------------------------------------------------------+
| ID | Name | Subnets |
+--------------------------------------+-------------+----------------------------------------------------------------------------+
| 3992a844-0de8-4b63-8574-8a5e143d498e | baremetal | 6761bf48-90ab-487e-8d94-9fd4b444a591, a528059c-3ccb-4d29-9ec4-23e481dcbf57 |
+--------------------------------------+-------------+----------------------------------------------------------------------------+
$ openstack network segment list
+--------------------------------------+-----------------+--------------------------------------+--------------+---------+
| ID | Name | Network | Network Type | Segment |
+--------------------------------------+-----------------+--------------------------------------+--------------+---------+
| 8d736d56-f71d-4e09-bfeb-6efbef6adfbd | baremetal-leaf0 | 3992a844-0de8-4b63-8574-8a5e143d498e | flat | None |
| 23698b87-ae8c-4ab1-aa72-a8d0823a7f01 | baremetal-leaf1 | 3992a844-0de8-4b63-8574-8a5e143d498e | flat | None |
+--------------------------------------+-----------------+--------------------------------------+--------------+---------+
$ openstack subnet list
+--------------------------------------+-----------------+--------------------------------------+---------------+
| ID | Name | Network | Subnet |
+--------------------------------------+-----------------+--------------------------------------+---------------+
| 6761bf48-90ab-487e-8d94-9fd4b444a591 | baremetal-leaf1 | 3992a844-0de8-4b63-8574-8a5e143d498e | 10.0.0.0/24 |
| a528059c-3ccb-4d29-9ec4-23e481dcbf57 | baremetal-leaf0 | 3992a844-0de8-4b63-8574-8a5e143d498e | 10.0.1.0/24 |
+--------------------------------------+-----------------+--------------------------------------+---------------+
- Additionally, the physical network for the port of the baremetal node is set to the correct network mapping
$ openstack baremetal port show c6a1dc13-cd5a-4afa-9609-7138a2df41e1
+-----------------------+--------------------------------------+
| Field | Value |
+-----------------------+--------------------------------------+
| address | aa:bb:cc:dd:ee:ff |
| created_at | 2019-01-15T17:55:54+00:00 |
| extra | {} |
| internal_info | {} |
| local_link_connection | {} |
| node_uuid | 524172b4-0314-45ad-b544-0a89cc34524c |
| physical_network | leaf0 |
| portgroup_uuid | None |
| pxe_enabled | True |
| updated_at | 2019-01-15T21:58:41+00:00 |
| uuid | c6a1dc13-cd5a-4afa-9609-7138a2df41e1 |
+-----------------------+--------------------------------------+
- Relevant configuration information
NeutronFlatNetworks: ‘*’
ControllerExtraConfig:
neutron::agents::ml2::ovs::bridge_mappings:
- leaf0:br-ex
ComputeLeaf0ExtraConfig:
neutron::agents::ml2::ovs::bridge_mappings:
- leaf0:br-ex
ComputeLeaf1ExtraConfig:
neutron::agents::ml2::ovs::bridge_mappings:
- leaf1:br-ex
Environment
Red Hat OpenStack Platform 13.0
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.