Browse Source

[OVN] Enable qos service plugin in tempest jobs

This patch adds QoS service plugin and enable QoS
tests while using OVN as a backend.

Note that:
* We need to compile OVS kernel module, in order to support
  OpenFlow Meter action in Ubuntu [1]
* Added qos extension to the list of neutron extensions in tempest
  config file to be able to run qos related tests.
* Update BRANCH_OVS to point 51e9479da6
  (hash for which compilation under Bionic works)
* Update BRANCH_OVS in master jobs, to point OVS and OVN master

Not-trival cherry-pick of Neutron patch:
https://review.opendev.org/#/c/704833

[1] https://mail.openvswitch.org/pipermail/ovs-discuss/2018-December/048009.html
[2] https://bugzilla.redhat.com/show_bug.cgi?id=1782834

Co-Authored-By: Slawek Kaplonski <skaplons@redhat.com>

Change-Id: I175511acef0e661bd1f282f37b1e528959c118a5
changes/67/730567/7
Maciej Józefczyk 1 year ago
parent
commit
c2ce6a6546
  1. 5
      devstack/lib/networking-ovn
  2. 2
      devstack/lib/ovn
  3. 2
      devstack/override-defaults
  4. 26
      zuul.d/networking-ovn-jobs.yaml

5
devstack/lib/networking-ovn

@ -254,6 +254,11 @@ function configure_ovn_plugin {
export NETWORK_API_EXTENSIONS=$NETWORK_API_EXTENSIONS,$($PYTHON -c \
'from networking_ovn.common import extensions ;\
print(",".join(extensions.ML2_SUPPORTED_API_EXTENSIONS_OVN_L3))')
if is_service_enabled q-qos neutron-qos ; then
export NETWORK_API_EXTENSIONS="$NETWORK_API_EXTENSIONS,qos"
source $NEUTRON_DIR/devstack/lib/qos
configure_qos_service_plugin
fi
populate_ml2_config /$Q_PLUGIN_CONF_FILE ml2_type_geneve max_header_size=$OVN_GENEVE_OVERHEAD
populate_ml2_config /$Q_PLUGIN_CONF_FILE ovn ovn_nb_connection="$OVN_NB_REMOTE"
populate_ml2_config /$Q_PLUGIN_CONF_FILE ovn ovn_sb_connection="$OVN_SB_REMOTE"

2
devstack/lib/ovn

@ -90,10 +90,12 @@ function _prepare_for_ovs_compilation {
# _reload_ovs_kernel_modules() - Reload the ovs kernel modules
function _reload_ovs_kernel_modules {
set +e
local ovs_system=$(sudo ovs-dpctl dump-dps | grep ovs-system)
if [ -n "$ovs_system" ]; then
sudo ovs-dpctl del-dp ovs-system
fi
set -e
sudo modprobe -r vport_geneve
sudo modprobe -r openvswitch
sudo modprobe openvswitch || (dmesg && die $LINENO "FAILED TO LOAD openvswitch")

2
devstack/override-defaults

@ -4,7 +4,7 @@ Q_ML2_PLUGIN_MECHANISM_DRIVERS=${Q_ML2_PLUGIN_MECHANISM_DRIVERS:-ovn,logger}
Q_ML2_PLUGIN_TYPE_DRIVERS=${Q_ML2_PLUGIN_TYPE_DRIVERS:-local,flat,vlan,geneve}
Q_ML2_TENANT_NETWORK_TYPE=${Q_ML2_TENANT_NETWORK_TYPE:-"geneve"}
Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS=${Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS:-"vni_ranges=1:65536"}
Q_ML2_PLUGIN_EXT_DRIVERS=${Q_ML2_PLUGIN_EXT_DRIVERS:-port_security,dns}
Q_ML2_PLUGIN_EXT_DRIVERS=${Q_ML2_PLUGIN_EXT_DRIVERS:-port_security,dns,qos}
ML2_L3_PLUGIN="networking_ovn.l3.l3_ovn.OVNL3RouterPlugin,trunk"
# This function is invoked by DevStack's Neutron plugin setup

26
zuul.d/networking-ovn-jobs.yaml

@ -62,6 +62,10 @@
ENABLE_CHASSIS_AS_GW: true
OVN_L3_CREATE_PUBLIC_NETWORK: true
OVN_DBS_LOG_LEVEL: dbg
# TODO(mjozefcz): Stop compiling OVS modules when meter action in kernel
# will be released in Ubuntu Bionic.
# More info: https://mail.openvswitch.org/pipermail/ovs-discuss/2018-December/048009.html
OVN_BUILD_MODULES: True
USE_PYTHON3: True
DOWNLOAD_DEFAULT_IMAGES: false
IMAGE_URLS: "http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img,https://cloud-images.ubuntu.com/releases/xenial/release/ubuntu-16.04-server-cloudimg-amd64-disk1.img"
@ -121,6 +125,7 @@
s-container: false
s-object: false
s-proxy: false
q-qos: true
- job:
name: networking-ovn-multinode-base
@ -156,6 +161,10 @@
ENABLE_CHASSIS_AS_GW: true
OVN_L3_CREATE_PUBLIC_NETWORK: true
OVN_DBS_LOG_LEVEL: dbg
# TODO(mjozefcz): Stop compiling OVS modules when meter action in kernel
# will be released in Ubuntu Bionic.
# More info: https://mail.openvswitch.org/pipermail/ovs-discuss/2018-December/048009.html
OVN_BUILD_MODULES: True
DOWNLOAD_DEFAULT_IMAGES: false
IMAGE_URLS: "http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img,https://cloud-images.ubuntu.com/releases/xenial/release/ubuntu-16.04-server-cloudimg-amd64-disk1.img"
DEFAULT_IMAGE_NAME: cirros-0.4.0-x86_64-disk
@ -196,6 +205,7 @@
s-container: false
s-object: false
s-proxy: false
q-qos: true
group-vars:
subnode:
devstack_services:
@ -214,6 +224,10 @@
q-metering: false
networking-ovn-metadata-agent: true
devstack_localrc:
# TODO(mjozefcz): Stop compiling OVS modules when meter action in kernel
# will be released in Ubuntu Bionic.
# More info: https://mail.openvswitch.org/pipermail/ovs-discuss/2018-December/048009.html
OVN_BUILD_MODULES: True
Q_USE_PROVIDERNET_FOR_PUBLIC: true
PHYSICAL_NETWORK: public
ENABLE_CHASSIS_AS_GW: false
@ -227,6 +241,7 @@
vars:
devstack_localrc:
OVN_BRANCH: master
OVS_BRANCH: master
- job:
name: networking-ovn-tempest-dsvm-ovs-release
@ -235,7 +250,7 @@
vars:
devstack_localrc:
OVN_BRANCH: v20.03.0
OVS_BRANCH: v2.13.0
OVS_BRANCH: 51e9479da62edb04a5be47a7655de75c299b9fa1
- job:
name: networking-ovn-tempest-dsvm-ovs-release-python2
@ -244,7 +259,7 @@
vars:
devstack_localrc:
OVN_BRANCH: v20.03.0
OVS_BRANCH: v2.13.0
OVS_BRANCH: 51e9479da62edb04a5be47a7655de75c299b9fa1
USE_PYTHON3: False
- job:
@ -252,6 +267,10 @@
description: Job testing for devstack/tempest testing networking-ovn with OVN master branch and Fedora
parent: networking-ovn-tempest-dsvm-ovs-master
nodeset: devstack-single-node-fedora-latest
vars:
devstack_localrc:
OVN_BRANCH: v20.03.0
OVS_BRANCH: 51e9479da62edb04a5be47a7655de75c299b9fa1
- job:
name: networking-ovn-rally-task
@ -302,6 +321,7 @@
ENABLE_CHASSIS_AS_GW: true
OVN_L3_CREATE_PUBLIC_NETWORK: true
OVN_BRANCH: master
OVS_BRANCH: master
devstack_local_conf:
post-config:
"${RALLY_CONF_DIR}/${RALLY_CONF_FILE}":
@ -381,10 +401,12 @@
(^tempest.api.compute.admin.test_live_migration.LiveMigrationTest)"
devstack_localrc:
OVN_BRANCH: master
OVS_BRANCH: master
group-vars:
subnode:
devstack_localrc:
OVN_BRANCH: master
OVS_BRANCH: master
- job:
name: networking-ovn-octavia-dsvm-base

Loading…
Cancel
Save