devstack/lib/os-vif
Sean Mooney 5344885a61 os_vif: Add support for configuring os_vif_ovs plugin
This change add an os-vif lib that declares two new variables
OS_VIF_OVS_OVSDB_INTERFACE and OS_VIF_OVS_ISOLATE_VIF

The former is introduced to workaround bug #1929446 which cause the nova
and neutron agents to periodically block waiting for ovs to respond.

OS_VIF_OVS_ISOLATE_VIF is added to address bug #1734320 when using
ml2/ovs vif isolation should always be used to prevent cross tenant
traffic during a live migration.  This makes devstack more closely
mirror reality by enabling it when ml2/ovs is used and disabling it
otherwise.

Related-Bug: #1734320
Related-Bug: #1929446
Related-Bug: #1912310
Change-Id: I88254c6e22b52585506ee4907c1c03b8d4f2dac7
2021-06-18 14:05:39 +00:00

30 lines
1.0 KiB
Bash

#!/bin/bash
# support vsctl or native.
# until bug #1929446 is resolved we override the os-vif default
# and fall back to the legacy "vsctl" driver.
OS_VIF_OVS_OVSDB_INTERFACE=${OS_VIF_OVS_OVSDB_INTERFACE:="vsctl"}
function is_ml2_ovs {
if [[ "${Q_AGENT}" == "openvswitch" ]]; then
echo "True"
fi
echo "False"
}
# This should be true for any ml2/ovs job but should be set to false for
# all other ovs based jobs e.g. ml2/ovn
OS_VIF_OVS_ISOLATE_VIF=${OS_VIF_OVS_ISOLATE_VIF:=$(is_ml2_ovs)}
OS_VIF_OVS_ISOLATE_VIF=$(trueorfalse False OS_VIF_OVS_ISOLATE_VIF)
function configure_os_vif {
if [[ -e ${NOVA_CONF} ]]; then
iniset ${NOVA_CONF} os_vif_ovs ovsdb_interface ${OS_VIF_OVS_OVSDB_INTERFACE}
iniset ${NOVA_CONF} os_vif_ovs isolate_vif ${OS_VIF_OVS_ISOLATE_VIF}
fi
if [[ -e ${NEUTRON_CONF} ]]; then
iniset ${NEUTRON_CONF} os_vif_ovs ovsdb_interface ${OS_VIF_OVS_OVSDB_INTERFACE}
iniset ${NEUTRON_CONF} os_vif_ovs isolate_vif ${OS_VIF_OVS_ISOLATE_VIF}
fi
}