Bug 1622154

Summary: [RFE] Baremetal provisioning with OVN (without Neutron DHCP agent) for IPv4
Product: Red Hat OpenStack Reporter: Lucas Alvares Gomes <lmartins>
Component: openstack-neutronAssignee: Lucas Alvares Gomes <lmartins>
Status: CLOSED MIGRATED QA Contact: Eran Kuris <ekuris>
Severity: medium Docs Contact:
Priority: medium    
Version: 18.0 (Zed)CC: apevec, asimonel, bcafarel, bfournie, chris.smart, chrisw, dalvarez, dhill, dsneddon, ihrachys, imatza, jamsmith, jschluet, lhh, majopela, mburrows, mdemaced, mmethot, nusiddiq, racedoro, sclewis, scohen, tfreger, ushkalim
Target Milestone: betaKeywords: FutureFeature, Triaged, ZStream
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: openstack-neutron-22.1.1-18.0.20231206121644.5fd71ac.el9ost Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 2098625 2118688 2120988 (view as bug list) Environment:
Last Closed: 2024-01-08 11:32:54 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1666673    
Bug Blocks: 2098625, 2118688, 2120988    

Description Lucas Alvares Gomes 2018-08-24 14:41:20 UTC
Description of problem:

We still need some bits and pieces in place in order to deploy baremetal machines with OVN, more specifically to be able to PXE boot the baremetal nodes using the OVN's built-in DHCP server [0].

Here are the missing parts off the top of my head:

1. Be able to serve DHCP for an external/provider network.

2. Per port DHCP options

In core OVN this should be already supported via the "dhcpv{4,6}_options" columns in the "Logical_Switch_Port table" from OVN Northbound db.

For networking-ovn ML2 driver we will need to implement the API to handle the update_dhcp_port() call and populate OVN accordingly.

3. Tags and conditional DHCP server

We should allow the creation of "tags" that matches certain DHCP options. That way Ironic can instruct the DHCP server to return different values based on whether a certain tag is set or not [1].

4. (Not required, but a nice-to-have) Support for Ironic inspector

Currently Ironic Inspector has it's own DHCP server because the Neutron DHCP agent only supports updating the DHCP options related to ports that already exists in Neutron.

The idea here would be to have some global Options which can which can instruct the nodes to boot a default ramdisk (the inspector ramdisk) if the MAC address in the DHCP request packet doesn't match any ports in Neutron/OVN.


[0] Some Ironic drivers may not rely on PXE boot (e.g if the driver supports virtual media), but, PXE booting is pretty standard and broadly used when it comes to deploying baremetal nodes so can't be discarded.

[1] https://github.com/openstack/ironic/blob/756ac8fbcb5095b459c5ea55a53ee4c2c24bff58/ironic/common/pxe_utils.py#L365-L370


Actual results:

Baremetal machines not able to be deployed (via PXE booting) when using ml2/networking-ovn.


Expected results:

Baremetal machines being deployed (via PXE booting) when using ml2/networking-ovn.


Additional info:

1. As a temporary measure it may be possible to use Neutron's DHCP server to handle the baremetal provisioning for OVN. Similar as to how we also use it for SRIOV.

2. I'm using PXE booting as a generic term for standard PXE and iPXE as well.

Comment 1 Daniel Alvarez Sanchez 2019-02-14 17:37:01 UTC
Assigning this to Lucas for Triaging of the networking-ovn side. We'll depend on BZ 1666673 to be able to implement this RFE.

Comment 34 Red Hat Bugzilla 2024-05-08 04:25:02 UTC
The needinfo request[s] on this closed bug have been removed as they have been unresolved for 120 days