yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #95345
[Bug 2096941] Re: [OVN Routed Provider Networks] : New Compute nodes are not added to their segment aggregate
Reviewed: https://review.opendev.org/c/openstack/neutron/+/935990
Committed: https://opendev.org/openstack/neutron/commit/2d8fe38ad5dbdc223560f2da661ca9e384f8221b
Submitter: "Zuul (22348)"
Branch: master
commit 2d8fe38ad5dbdc223560f2da661ca9e384f8221b
Author: Terry Wilson <twilson@xxxxxxxxxx>
Date: Fri Nov 22 00:00:42 2024 +0000
Update Nova aggregates on changed host mappings
When creating a subnet on a segment, Nova aggregates are updated
with the host information. But when adding a compute node to an
existing segment or modifying what segments a node is attached to,
Nova was not updated with these changes for ML2/OVN.
ML2/OVS has agent code which via report_state() will call
create_or_update_agent() which causes the aggregates to eventually
get updated via AGENT_AFTER_CREATE events, etc.
ML2/OVN does not have "real" agents. It monkeypatches some agent
methods to respond to the API requests itself--but it does not use
the agents db--which is what create_or_update_agent() modifies.
But it shouldn't be necessary to rely on updates from the agent in
our case, as the segments code can see segment host mappings being updated and just directly handle notifying nova when those change.
Closes-Bug: #2096941
Change-Id: I8112076f8acb821752941396e7aa39ecb1352ca3
** Changed in: neutron
Status: In Progress => Fix Released
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/2096941
Title:
[OVN Routed Provider Networks] : New Compute nodes are not added to
their segment aggregate
Status in neutron:
Fix Released
Bug description:
Reference bug: https://issues.redhat.com/browse/OSPRH-8988
With ML2/OVN w/ segments, adding a compute with ovn-bridge-mappings
for an existing segment does not add the compute to that segment's
nova host aggregate. Modifying the ovn-bridge-mappings (adding new or
deleting mappings) also does not update the nova host aggregates.
With ML2/OVS, via report_state(), create_or_update_agent() is called
which updates the agent db table and fires off events which lead to
the nova api calls to update the aggregates. ML2/OVN does not use the
agents db, but instead monkeypatches some of the agent methods to
handle agent API requests.
Basic devstack install w/ local.conf from the neutron repo.
Add a provider bridges
sudo ovs-vsctl add-br br-provider1
sudo ovs-vsctl add-br br-provider2
sudo ovs-vsctl list open . # get existing ovn-bridge-mappings, then append the new provider mapping
sudo ovs-vsctl set open . external_ids:ovn-bridge-mappings="public:br-ex,providernet1:br-provider1,providernet2:br-provider2"
Add a vlan provider network to ml2_conf.ini and restart q-svc
[ml2_type_vlan]
network_vlan_ranges = public,providernet1:100:199,providernet2:200:299
Create a provider networks
openstack network create providernet1 --share --provider-physical-network providernet1 --provider-network-type vlan --provider-segment 101
openstack network create providernet2 --share --provider-physical-
network providernet2 --provider-network-type vlan --provider-segment
201
Verify segments are created/get uuids
openstack network segment list
Set names on segments
openstack network segment set --name providernet1-101 $vlan101_segment
openstack network segment set --name providernet2-201 $vlan201_segment
Create subnets
openstack subnet create --network providernet1 --network-segment providernet1-101 --ip-version 4 --subnet-range 172.30.1.0/24 providernet1-subnet101
openstack subnet create --network providernet2 --network-segment
providernet2-201 --ip-version 4 --subnet-range 172.30.2.0/24
providernet2-subnet201
Verify segments exist with corresponding aggregates
openstack network segment list
openstack aggregate list
openstack aggregate show for each should show the host listed.
Failure case:
Remove br-provider2 from ovn-bridge-mappings
sudo ovs-vsctl set open . external_ids:ovn-bridge-mappings="public:br-ex,providernet1:br-provider1"
and notice that host is still set for the aggregate pointing to the
segment for providernet2-201
Manually remove the host
openstack aggregate remove host $aggregate_id $hostname
and verify hosts is empty with openstack aggregate show $aggregate_id
Re-add providernet2 to the ovn-bridge-mappings
sudo ovs-vsctl set open . external_ids:ovn-bridge-mappings="public:br-ex,providernet1:br-provider1,providernet2:br-provider2"
and verify with openstack aggregate show that the hosts field is still
empty.
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/2096941/+subscriptions
References