ovn: Use newer OVS

OVS tag v2.13.0 is not compatible with current used kernel on upstream
Bionic Ubuntu kernel 4.15.0. This patch sticks to commit hash to unblock
the gate. We can either change to newer 2.13 tag once released or better
stop compiling OVS and use one packaged by Ubuntu.

Run functional/fullstack tests with selected OVN and OVS versions

Previously for functional tests OVS version was hardcoded - v2.12.0,
and OVN was installed from OVS repository.

After we merged OVN driver to Neutron tree we run both
Neutron/OVS and Neutron/OVN functional tests in one job.

This patch adds possibility to specify from which tag/branch OVS and OVN
should be checkout.

Change-Id: I83688031951b97bfe64f3aaa761ad7afc1d5ea55
Closes-Bug: #1883601
Closes-Bug: #1878160
This commit is contained in:
Jakub Libosvar 2020-06-16 10:07:49 +02:00 committed by Maciej Józefczyk
parent 7d8f400791
commit d086058895
5 changed files with 21 additions and 12 deletions

View File

@ -19,8 +19,8 @@
# There are some ovs functions OVN depends on that must be sourced from # There are some ovs functions OVN depends on that must be sourced from
# the ovs neutron plugins. After doing this, the OVN overrides must be # the ovs neutron plugins. After doing this, the OVN overrides must be
# re-sourced. # re-sourced.
source $TOP_DIR/lib/neutron_plugins/ovs_base source ${TOP_DIR}/lib/neutron_plugins/ovs_base
source $TOP_DIR/lib/neutron_plugins/openvswitch_agent source ${TOP_DIR}/lib/neutron_plugins/openvswitch_agent
# Defaults # Defaults
@ -412,9 +412,6 @@ function compile_ovn {
local prefix=$2 local prefix=$2
local localstatedir=$3 local localstatedir=$3
# First, compile OVS
_compile_ovs $build_modules
if [ -n "$prefix" ]; then if [ -n "$prefix" ]; then
prefix="--prefix=$prefix" prefix="--prefix=$prefix"
fi fi
@ -476,10 +473,9 @@ function install_ovn {
remove_ovs_packages remove_ovs_packages
sudo rm -f $OVS_RUNDIR/* sudo rm -f $OVS_RUNDIR/*
compile_ovs $OVN_BUILD_MODULES
if use_new_ovn_repository; then if use_new_ovn_repository; then
compile_ovn $OVN_BUILD_MODULES compile_ovn $OVN_BUILD_MODULES
else
compile_ovs $OVN_BUILD_MODULES
fi fi
sudo mkdir -p $OVS_RUNDIR sudo mkdir -p $OVS_RUNDIR

View File

@ -10,10 +10,15 @@
PROJECT_NAME={{ project_name }} PROJECT_NAME={{ project_name }}
NEUTRON_PATH={{ neutron_dir }} NEUTRON_PATH={{ neutron_dir }}
DEVSTACK_PATH={{ devstack_dir }} DEVSTACK_PATH={{ devstack_dir }}
TOP_DIR={{ devstack_dir }}
VENV={{ tests_venv }} VENV={{ tests_venv }}
STACK_USER=stack
OVS_BRANCH={{ OVS_BRANCH }}
OVN_BRANCH={{ OVN_BRANCH }}
source $DEVSTACK_PATH/functions source $DEVSTACK_PATH/functions
source $NEUTRON_PATH/devstack/lib/ovs source $NEUTRON_PATH/devstack/lib/ovs
source $NEUTRON_PATH/devstack/lib/ovn_agent
source $NEUTRON_PATH/tools/configure_for_func_testing.sh source $NEUTRON_PATH/tools/configure_for_func_testing.sh
configure_host_for_func_testing configure_host_for_func_testing

View File

@ -63,6 +63,8 @@ INSTALL_MYSQL_ONLY=${INSTALL_MYSQL_ONLY:-False}
# The gate should automatically install dependencies. # The gate should automatically install dependencies.
INSTALL_BASE_DEPENDENCIES=${INSTALL_BASE_DEPENDENCIES:-$IS_GATE} INSTALL_BASE_DEPENDENCIES=${INSTALL_BASE_DEPENDENCIES:-$IS_GATE}
BUILD_OVS_FROM_SOURCE=${BUILD_OVS_FROM_SOURCE:-True} BUILD_OVS_FROM_SOURCE=${BUILD_OVS_FROM_SOURCE:-True}
OVN_BRANCH=${OVN_BRANCH:-master}
OVS_BRANCH=${OVS_BRANCH:-master}
if [ ! -f "$DEVSTACK_PATH/stack.sh" ]; then if [ ! -f "$DEVSTACK_PATH/stack.sh" ]; then
@ -81,7 +83,7 @@ function _init {
TOP_DIR=$DEVSTACK_PATH TOP_DIR=$DEVSTACK_PATH
if [ -f $DEVSTACK_PATH/local.conf ]; then if [ -f $DEVSTACK_PATH/local.conf ]; then
source $DEVSTACK_PATH/local.conf 2> /dev/null source $DEVSTACK_PATH/local.conf 2> /dev/null || true
fi fi
source $DEVSTACK_PATH/stackrc source $DEVSTACK_PATH/stackrc
@ -109,9 +111,10 @@ function _install_base_deps {
install_package $PACKAGES install_package $PACKAGES
source $NEUTRON_PATH/devstack/lib/ovs source $NEUTRON_PATH/devstack/lib/ovs
remove_ovs_packages source $NEUTRON_PATH/devstack/lib/ovn_agent
OVS_BRANCH="v2.12.0" echo_summary "OVN_BRANCH: ${OVN_BRANCH} OVS_BRANCH: ${OVS_BRANCH}"
compile_ovs False /usr /var compile_ovs False /usr /var
compile_ovn False /usr /var
else else
PACKAGES=$(get_packages general,neutron,q-agt,q-l3,openvswitch) PACKAGES=$(get_packages general,neutron,q-agt,q-l3,openvswitch)
PACKAGES=$(echo $PACKAGES | perl -pe 's|python-(?!dev)[^ ]*||g') PACKAGES=$(echo $PACKAGES | perl -pe 's|python-(?!dev)[^ ]*||g')

View File

@ -18,6 +18,9 @@
- ^neutron/locale/.*$ - ^neutron/locale/.*$
- ^releasenotes/.*$ - ^releasenotes/.*$
vars: vars:
OVN_BRANCH: v20.03.0
# TODO(jlibosva): v2.13.0 is incompatible with kernel 4.15.0, sticking to commit hash until new v2.13 tag is created.
OVS_BRANCH: 51e9479da62edb04a5be47a7655de75c299b9fa1
devstack_services: devstack_services:
# Ignore any default set by devstack. Emit a "disable_all_services". # Ignore any default set by devstack. Emit a "disable_all_services".
base: false base: false

View File

@ -299,7 +299,8 @@
vars: vars:
devstack_localrc: devstack_localrc:
OVN_BRANCH: v20.03.0 OVN_BRANCH: v20.03.0
OVS_BRANCH: v2.13.0 # TODO(jlibosva): v2.13.0 is incompatible with kernel 4.15.0, sticking to commit hash until new v2.13 tag is created
OVS_BRANCH: 51e9479da62edb04a5be47a7655de75c299b9fa1
- job: - job:
name: neutron-ovn-tempest-ovs-release name: neutron-ovn-tempest-ovs-release
@ -308,7 +309,8 @@
vars: vars:
devstack_localrc: devstack_localrc:
OVN_BRANCH: v20.03.0 OVN_BRANCH: v20.03.0
OVS_BRANCH: v2.13.0 # TODO(jlibosva): v2.13.0 is incompatible with kernel 4.15.0, sticking to commit hash until new v2.13 tag is created
OVS_BRANCH: 51e9479da62edb04a5be47a7655de75c299b9fa1
- job: - job:
name: neutron-ovn-tempest-ovs-master-fedora name: neutron-ovn-tempest-ovs-master-fedora