[OVN] Add support for Baremetal provisioning with ML2/OVN with IPv4
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
Fix Released
|
High
|
Lucas Alvares Gomes |
Bug Description
The ML2/OVN driver does not yet officially support provisioning baremetal nodes. This bug is a tracker for that work.
I believe the work can be broken up in two parts:
Part 1: Add support for provisioning baremetal nodes with ML2/OVN + Neutron DHCP agent. Since the OVN built-in DHCP server does not yet fully support chainloading from PXE to iPXE the user will need to use the Neutron DHCP agent to handle the DHCP part but everything else, including metadata, should be done by OVN.
Part 2: This will have OVN built-in DHCP server handling the chainloading from PXE to iPXE. Neutron DHCP agent no longer will be needed.
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (master) | #1 |
Changed in neutron: | |
status: | Confirmed → In Progress |
OpenStack Infra (hudson-openstack) wrote : | #2 |
Fix proposed to branch: master
Review: https:/
tags: | added: baremetal |
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master) | #3 |
Reviewed: https:/
Committed: https:/
Submitter: "Zuul (22348)"
Branch: master
commit 243c209eb2cf755
Author: Lucas Alvares Gomes <email address hidden>
Date: Fri Apr 30 09:42:17 2021 +0100
[OVN] Add baremetal support with Neutron DHCP agent
This patch now creates OVN "external" ports for Neutron ports with
VNIC_BAREMETAL. This ports will be scheduled on the OpenStack Controller
nodes (or OVN Gateway nodes) and are responsible for replying to the
ARP requests coming from the baremetal nodes.
This patch also disables OVN's built-in DHCP server for VNIC_BAREMETAL
ports. This is because OVN DHCP server does not yet fully support
chainloading from PXE to iPXE, this feature is work-in-progress right
now. A following patch to this one will be sent in the future adding
support for OVN's built-in DHCP server being used with baremetal nodes.
This patch implements the "Part 1" from bug #1971431.
Partial-bug: #1971431
Change-Id: I6b234fbe1b7c54
Signed-off-by: Lucas Alvares Gomes <email address hidden>
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (stable/yoga) | #4 |
Fix proposed to branch: stable/yoga
Review: https:/
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (stable/xena) | #5 |
Fix proposed to branch: stable/xena
Review: https:/
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (stable/wallaby) | #6 |
Fix proposed to branch: stable/wallaby
Review: https:/
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (stable/victoria) | #7 |
Fix proposed to branch: stable/victoria
Review: https:/
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (stable/ussuri) | #8 |
Fix proposed to branch: stable/ussuri
Review: https:/
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (stable/xena) | #9 |
Reviewed: https:/
Committed: https:/
Submitter: "Zuul (22348)"
Branch: stable/xena
commit bf65c0c33a05f5d
Author: Lucas Alvares Gomes <email address hidden>
Date: Fri Apr 30 09:42:17 2021 +0100
[OVN] Add baremetal support with Neutron DHCP agent
This patch now creates OVN "external" ports for Neutron ports with
VNIC_BAREMETAL. This ports will be scheduled on the OpenStack Controller
nodes (or OVN Gateway nodes) and are responsible for replying to the
ARP requests coming from the baremetal nodes.
This patch also disables OVN's built-in DHCP server for VNIC_BAREMETAL
ports. This is because OVN DHCP server does not yet fully support
chainloading from PXE to iPXE, this feature is work-in-progress right
now. A following patch to this one will be sent in the future adding
support for OVN's built-in DHCP server being used with baremetal nodes.
This patch implements the "Part 1" from bug #1971431.
Conflicts:
neutron/
neutron/
Partial-bug: #1971431
Change-Id: I6b234fbe1b7c54
Signed-off-by: Lucas Alvares Gomes <email address hidden>
(cherry picked from commit 243c209eb2cf755
tags: | added: in-stable-xena |
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (stable/wallaby) | #10 |
Reviewed: https:/
Committed: https:/
Submitter: "Zuul (22348)"
Branch: stable/wallaby
commit 2e1ba361577e59c
Author: Lucas Alvares Gomes <email address hidden>
Date: Fri Apr 30 09:42:17 2021 +0100
[OVN] Add baremetal support with Neutron DHCP agent
This patch now creates OVN "external" ports for Neutron ports with
VNIC_BAREMETAL. This ports will be scheduled on the OpenStack Controller
nodes (or OVN Gateway nodes) and are responsible for replying to the
ARP requests coming from the baremetal nodes.
This patch also disables OVN's built-in DHCP server for VNIC_BAREMETAL
ports. This is because OVN DHCP server does not yet fully support
chainloading from PXE to iPXE, this feature is work-in-progress right
now. A following patch to this one will be sent in the future adding
support for OVN's built-in DHCP server being used with baremetal nodes.
This patch implements the "Part 1" from bug #1971431.
Conflicts:
neutron/
neutron/
Partial-bug: #1971431
Change-Id: I6b234fbe1b7c54
Signed-off-by: Lucas Alvares Gomes <email address hidden>
(cherry picked from commit 243c209eb2cf755
tags: | added: in-stable-wallaby |
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (stable/ussuri) | #11 |
Reviewed: https:/
Committed: https:/
Submitter: "Zuul (22348)"
Branch: stable/ussuri
commit d9fae7b3325ea21
Author: Lucas Alvares Gomes <email address hidden>
Date: Fri Apr 30 09:42:17 2021 +0100
[OVN] Add baremetal support with Neutron DHCP agent
This patch now creates OVN "external" ports for Neutron ports with
VNIC_BAREMETAL. This ports will be scheduled on the OpenStack Controller
nodes (or OVN Gateway nodes) and are responsible for replying to the
ARP requests coming from the baremetal nodes.
This patch also disables OVN's built-in DHCP server for VNIC_BAREMETAL
ports. This is because OVN DHCP server does not yet fully support
chainloading from PXE to iPXE, this feature is work-in-progress right
now. A following patch to this one will be sent in the future adding
support for OVN's built-in DHCP server being used with baremetal nodes.
This patch implements the "Part 1" from bug #1971431.
Conflicts:
neutron/
neutron/
Partial-bug: #1971431
Change-Id: I6b234fbe1b7c54
Signed-off-by: Lucas Alvares Gomes <email address hidden>
(cherry picked from commit 243c209eb2cf755
tags: | added: in-stable-ussuri |
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (stable/victoria) | #12 |
Reviewed: https:/
Committed: https:/
Submitter: "Zuul (22348)"
Branch: stable/victoria
commit bca80bfbfb63c80
Author: Lucas Alvares Gomes <email address hidden>
Date: Fri Apr 30 09:42:17 2021 +0100
[OVN] Add baremetal support with Neutron DHCP agent
This patch now creates OVN "external" ports for Neutron ports with
VNIC_BAREMETAL. This ports will be scheduled on the OpenStack Controller
nodes (or OVN Gateway nodes) and are responsible for replying to the
ARP requests coming from the baremetal nodes.
This patch also disables OVN's built-in DHCP server for VNIC_BAREMETAL
ports. This is because OVN DHCP server does not yet fully support
chainloading from PXE to iPXE, this feature is work-in-progress right
now. A following patch to this one will be sent in the future adding
support for OVN's built-in DHCP server being used with baremetal nodes.
This patch implements the "Part 1" from bug #1971431.
Conflicts:
neutron/
neutron/
Partial-bug: #1971431
Change-Id: I6b234fbe1b7c54
Signed-off-by: Lucas Alvares Gomes <email address hidden>
(cherry picked from commit 243c209eb2cf755
tags: | added: in-stable-victoria |
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (stable/yoga) | #13 |
Reviewed: https:/
Committed: https:/
Submitter: "Zuul (22348)"
Branch: stable/yoga
commit f181a8f3b74376a
Author: Lucas Alvares Gomes <email address hidden>
Date: Fri Apr 30 09:42:17 2021 +0100
[OVN] Add baremetal support with Neutron DHCP agent
This patch now creates OVN "external" ports for Neutron ports with
VNIC_BAREMETAL. This ports will be scheduled on the OpenStack Controller
nodes (or OVN Gateway nodes) and are responsible for replying to the
ARP requests coming from the baremetal nodes.
This patch also disables OVN's built-in DHCP server for VNIC_BAREMETAL
ports. This is because OVN DHCP server does not yet fully support
chainloading from PXE to iPXE, this feature is work-in-progress right
now. A following patch to this one will be sent in the future adding
support for OVN's built-in DHCP server being used with baremetal nodes.
This patch implements the "Part 1" from bug #1971431.
Partial-bug: #1971431
Change-Id: I6b234fbe1b7c54
Signed-off-by: Lucas Alvares Gomes <email address hidden>
(cherry picked from commit 243c209eb2cf755
tags: | added: in-stable-yoga |
Liu Xie (liushy) wrote : | #15 |
Hi Lucas, very nice to see your work!
I have one dout about traffic between baremetal and vms based on one vlan network:
TOR would braodcasting the traffic because arp of baremetal nics are already ageing on TOR and ovn-controller would be arp-proxy for baremetal nics. So how could we avoid the braodcasting events occur?
Maybe it is a matter for ovn.
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master) | #16 |
Reviewed: https:/
Committed: https:/
Submitter: "Zuul (22348)"
Branch: master
commit e73a85f3dd15aea
Author: Lucas Alvares Gomes <email address hidden>
Date: Tue May 3 14:37:46 2022 +0100
[OVN] Add baremetal support without Neutron DHCP agent for IPv4
This patch adds support for deploying baremetal nodes with OVN's
built-in DHCP server for IPv4.
Since Neutron API's for setting DHCP options is mostly a pass-thru,
Ironic uses a dnsmasq syntax for setting the baremetal options [0].
Since this syntax is unlikely to change and it's only a tiny subset of
what dnsmasq can offer this patch does translate that syntax used by
Ironic and convert it to OVN's equivalent options. In this way we do not
need to re-design Neutron's DHCP options API nor change Ironic to use it
with ML2/OVN.
This option also adds a new configuration option called
"disable_
sensitive and operators may prefer to use a fully-fledged DHCP server to
do it (even Ironic makes DHCP pluggable). So if operators wish to
disable OVN's built-in DHCP server for baremetal provisioning they can
do so by setting this new option to True. It defaults to False.
This change has been tested with real hardware and it does work. That
said, we found a problem in core OVN itself [1] while testing it that
can affect PXE from reaching the TFTP server, we already communicated
this with the core OVN folks and we hope it can be fixed soon. The
change in core OVN should not affect the Neutron change tho.
Not that the "server-ip-address" DHCP Option now points to the
"next_server" option in OVN instead of the "tftp_server_
previous behavior was wrong, the "server-ip-address" should set the
"siaddr" in the DHCP header and this has been introduced in OVN [2] as
an option called "next_server".
[0]
https:/
[1]
https:/
[2]
https:/
Partial-Bug: #1971431
Change-Id: Ia041f640293ba2
Signed-off-by: Lucas Alvares Gomes <email address hidden>
Przemyslaw Hausman (phausman) wrote : Re: [OVN] Add support for Baremetal provisioning with ML2/OVN | #17 |
Lukas, thanks for working on this. I'm trying to test the patches and everything's working fine until I run `openstack baremetal node provide <node>`. Baremetal node won't PXE boot and in the neutron-server.log I can see the following errors:
```
Attempting to bind port bb174dfc-
Attempting to bind port bb174dfc-
Refusing to bind port due to unsupported vnic_type: baremetal with no switchdev capability bind_port /usr/lib/
Failed to bind port bb174dfc-
```
Am I still missing some patches?
Lucas Alvares Gomes (lucasagomes) wrote : | #18 |
Hi phausman,
Hmmm... So that error per-se doesn't seem to be a problem because Baremetal ports are created as external ports in OVN [0], so OVN itself should bind it to a node that contains the "ovn-cms-
Using [0] can you verify if it's the case ?
Another thing may be missing is the OVN code itself, you have to make sure that the version of OVN being used also includes this patch here [1], without it the iPXE chainloading won't work with the built-in OVN DHCP server.
[0] https:/
[1] https:/
Przemyslaw Hausman (phausman) wrote : | #19 |
Lukas, thanks for the feedback.
I have three nodes and all of them are configured with `ovn-cms-
```
root@juju-
_uuid : 4445c088-
encaps : [26f71ac6-
external_ids : {}
hostname : node07.maas
name : node07.maas
nb_cfg : 0
other_config : {ct-no-
transport_zones : []
vtep_logical_
[...]
```
Somehow they are not added to the ha_chassis_group though. `ovn-nbctl list ha_chassis_group` reports empty `ha_chassis` list. That's one problem.
```
root@juju-
_uuid : 2c29aee3-
external_ids : {"neutron:
ha_chassis : []
name : neutron-
```
However, I can manually add the chassis to ha_chassis_group with `ovn-nbctl ha-chassis-
But then baremetal node fails to download ipxe.efi. It seems that the TFTP requests are being send towards DHCP server instead of ironic-conductor's TFTP server. So I checked the dhcp_options and realized that `next_server` option was missing. That's the second problem.
As soon as I manually added `next_server` with `ovn-nbctl dhcp-options-
I'm running OVN 22.09 so I think it should have the patch you mentioned already applied.
```
# ovn-nbctl --version
ovn-nbctl 22.09.0
Open vSwitch Library 3.0.1
DB Schema 6.3.0
```
I'll do some more digging but if you have any other ideas, please share. Thanks!
Rodolfo Alonso (rodolfo-alonso-hernandez) wrote : | #20 |
Hi Lucas:
We have [1] and [2] merged. Do we need any other patch? If not, please move the status to "Fix Released".
Thanks!
[1]https:/
[2]https:/
Changed in neutron: | |
status: | In Progress → Fix Released |
summary: |
- [OVN] Add support for Baremetal provisioning with ML2/OVN + [OVN] Add support for Baremetal provisioning with ML2/OVN with IPv4 |
Fix proposed to branch: master /review. opendev. org/c/openstack /neutron/ +/840287
Review: https:/