Public bug reported:

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.

** Affects: neutron
     Importance: Undecided
         Status: In Progress

-- 
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:
  In Progress

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


-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to