New neutron subnet pool support breaks multinode testing.
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ironic |
Fix Released
|
Undecided
|
Unassigned | ||
Magnum |
Fix Released
|
Undecided
|
yatin | ||
OpenStack DBaaS (Trove) |
In Progress
|
Undecided
|
Unassigned | ||
OpenStack Shared File Systems Service (Manila) |
Fix Released
|
Undecided
|
Unassigned | ||
devstack |
Fix Released
|
Critical
|
Unassigned | ||
ironic-python-agent |
Fix Released
|
Critical
|
Unassigned | ||
networking-bgpvpn |
Fix Released
|
Undecided
|
Unassigned | ||
neutron |
Won't Fix
|
Undecided
|
Unassigned |
Bug Description
The new subnet pool support in devstack breaks multinode testing bceause it results in the route for 10.0.0.0/8 being set to via br-ex when the host has interfaces that are actually on 10 nets and that is where we need the routes to go out. Multinode testing is affected because it uses these 10 net addresses to run the vxlan overlays between hosts.
For many years devstack-gate has set FIXED_RANGE to ensure that the networks devstack uses do not interfere with the underlying test host's networking. However this setting was completely ignored when setting up the subnet pools.
I think the correct way to fix this is to use a much smaller subnet pool range to avoid conflicting with every possible 10.0.0.0/8 network in the wild, possibly by defaulting to the existing FIXED_RANGE information. Using the existing information will help ensure that anyone with networks in 10.0.0.0/8 will continue to work if they have specified a range that doesn't conflict using this variable.
In addition to this we need to clearly document what this new stuff in devstack does and how people can work around it should they conflict with the new defaults we end up choosing.
I have proposed https:/
Changed in devstack: | |
importance: | Undecided → Critical |
Changed in ironic-python-agent: | |
importance: | Undecided → Critical |
Changed in ironic-python-agent: | |
status: | New → Confirmed |
Changed in ironic: | |
status: | New → Fix Committed |
Changed in devstack: | |
assignee: | Miguel Angel Ajo (mangelajo) → nobody |
Changed in magnum: | |
assignee: | nobody → yatin (yatinkarel) |
status: | New → In Progress |
Changed in magnum: | |
assignee: | yatin (yatinkarel) → Spyros Trigazis (strigazi) |
Changed in trove: | |
status: | New → In Progress |
Changed in magnum: | |
assignee: | Spyros Trigazis (strigazi) → yatin (yatinkarel) |
Changed in ironic-python-agent: | |
status: | Confirmed → Fix Released |
Changed in ironic: | |
status: | Fix Committed → Fix Released |
Changed in bgpvpn: | |
status: | New → Fix Released |
Changed in manila: | |
status: | New → Fix Released |
It seems that the tests for network auto allocation need at least four subnets within each subnet pool (v4+v6).
The issue with reusing the FIXED_RANGE* settings as subnet pools is that the former were intended to be used as a single network, while the subnet pools will be split up into multiple subnets. So in particular FIXED_RANGE_V6 is defined as a /64, which is the proper size for a single network, but using that for SUBNETPOOL_ PREFIX_ V6 would need to chop it into pieces smaller than /64, which will not work with SLAAC.
So my proposal has two parts:
1. Update devstack-gate to set the SUBNETPOOL* variables in a way that the behaviour in the gate will be similar to what was happening before. It will not be identical, since we need to split the /20 into four /22s, but that should resolve the current failures. https:/ /review. openstack. org/379521
2. Update devstack to have more sensible defaults for the subnet pools. Using all of 10/8 seems pretty greedy and should be changed. Using the documentation prefix as a real world default value also seems broken, probably setting SUBNETPOOL_ PREFIX_ V6 to some random prefix from fd00::/8 like we do for FIXED_RANGE_V6 would be more sensible.