[OVN] Router Availability Zones doesn't work with segmented networks
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
Fix Released
|
High
|
Lucas Alvares Gomes |
Bug Description
Hi,
Looking at the external networks from the edge environment I see that
these fields are None:
| provider:
| provider:
Instead we have this:
| segments | [{'provider:
'provider:
None}, {'provider:
'leaf1', 'provider:
'flat', 'provider:
'provider:
When building a list of candidates nodes to scheduler the gateway
router ports to, the ML2/OVN driver tries to check if there's a
physical network on the nodes, see [0][1]. And in order to do that it
uses the "provider:
fields (see [1]).
So the physnet attribute is now None (see [0]) and when it gets to the
get_candidates_
be empty because no gateway node matched this physnet. Also it is in
this method that we filter the candidates based on the AZs.
Now, the reason why it does not fail and the gw port still get
scheduled to any other gw node is because once it gets to the
scheduler code if the list candidates is empty it will then just fetch
a list of gw chassis without any consideration [3] regarding the
physnets and use it as candidates.
As you can see the code is messy and a future refactor may be needed.
For this problem specifically I would recommend doing a simpler fix where
get_candidates_
of the physnet in case it's None and then filter these Chassis based on
their AZ. That would be a simpler fix that is backportable.
[0] https:/
[1] https:/
[2] https:/
[3] https:/
Changed in neutron: | |
status: | New → Confirmed |
importance: | Undecided → High |
assignee: | nobody → Lucas Alvares Gomes (lucasagomes) |
tags: | added: ovn |
tags: | added: neutron-proactive-backport-potential |
Fix proposed to branch: master /review. opendev. org/c/openstack /neutron/ +/803759
Review: https:/