In flat network scenario with port groups, neutron port mac address isn't updated
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ironic |
Triaged
|
Medium
|
Unassigned |
Bug Description
In the *flat network* scenario Ironic doesn't create and assign a dedicated provisioning Neutron port.
When you attach a neutron vif to a node in Ironic it will check if there is a hardware MAC address in Ironic, and set the mac address to that.
When you use port groups the MAC address field is optional so Neutron is not updated with a hardware MAC address.
This causes PXE to fail because there is no MAC address in Neutron that matches the hardware NICs of the baremetal node.
The current work around is to set the portgroup MAC address to the MAC address of one of the portgroup's sub-ports, then neutron is updated with that MAC address.
Possible solutions include either:
- Documenting and enforcing a MAC address on portgroups in the flat network case.
OR
- Picking the first sub-port that has pxe enabled and using that MAC address.
OR
- The same as above but we store the old Neutron MAC address and then reset it after we're done provisioning to maintain the behaviour of using the Neutron generated MAC address.
I would also consider enforcing mac_address for portgroup object as mandatory field as possible option.
De-facto all proposed options makes mac_address always set on portgroup no matter it is set manually by user or picked automatically by Neutron or Ironic. Might be I'm missing something but allowing dynamic mac_address allocation leads to additional problems without providing any benefits.