You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
3.5 KiB
Bash
116 lines
3.5 KiB
Bash
echo "*********************************************************************"
|
|
echo "Begin $0"
|
|
echo "*********************************************************************"
|
|
|
|
# Clean up any resources that may be in use
|
|
cleanup() {
|
|
set +o errexit
|
|
|
|
echo "*********************************************************************"
|
|
echo "ERROR: Abort $0"
|
|
echo "*********************************************************************"
|
|
|
|
# Kill ourselves to signal any calling process
|
|
trap 2; kill -2 $$
|
|
}
|
|
|
|
trap cleanup SIGHUP SIGINT SIGTERM
|
|
|
|
# Keep track of the grenade directory
|
|
RUN_DIR=$(cd $(dirname "$0") && pwd)
|
|
set -o xtrace
|
|
|
|
# Set for DevStack compatibility
|
|
|
|
source $GRENADE_DIR/grenaderc
|
|
source $GRENADE_DIR/functions
|
|
source $TARGET_DEVSTACK_DIR/stackrc
|
|
|
|
set -o errexit
|
|
TOP_DIR=$TARGET_DEVSTACK_DIR
|
|
|
|
# Get functions from current DevStack
|
|
source $TARGET_DEVSTACK_DIR/lib/apache
|
|
source $TARGET_DEVSTACK_DIR/lib/tls
|
|
source $TARGET_DEVSTACK_DIR/lib/keystone
|
|
[[ -r $TARGET_DEVSTACK_DIR/lib/neutron ]] && source $TARGET_DEVSTACK_DIR/lib/neutron
|
|
source $TARGET_DEVSTACK_DIR/lib/neutron-legacy
|
|
source $TARGET_DEVSTACK_DIR/lib/neutron_plugins/services/l3
|
|
source $TARGET_DEVSTACK_DIR/lib/database
|
|
source $TARGET_DEVSTACK_DIR/lib/nova
|
|
|
|
NW_OVN_DEVSTACK_DIR=$(dirname "$0")/..
|
|
source $NW_OVN_DEVSTACK_DIR/lib/networking-ovn
|
|
|
|
export OVN_NEUTRON_SYNC_MODE=repair
|
|
|
|
set -x
|
|
|
|
# Restart rabbitmq. Without this, the tempest test cases on the upgraded stack
|
|
# fails randomly due to rabbitmq connection problems.
|
|
sudo service rabbitmq-server restart
|
|
|
|
# We are no more starting OVS agent, delete the dead agents from neutron
|
|
dead_agents=$(neutron --os-cloud devstack-admin agent-list --alive False -f value -c id || /bin/true)
|
|
for agent in $dead_agents; do
|
|
neutron --os-cloud devstack-admin agent-delete $agent || /bin/true
|
|
done
|
|
|
|
# stop neutron and its agents as the neutron configuration file is going to
|
|
# be modified now
|
|
stop_neutron || /bin/true
|
|
|
|
#Re use the exisiting vswitch db
|
|
ovs_db_file=$(/usr/share/openvswitch/scripts/ovs-ctl --help | grep DBDIR | awk '{gsub(/\:/, ""); printf $2"/"$1"\n"}')
|
|
mkdir -p $DATA_DIR/ovs
|
|
cp $ovs_db_file $DATA_DIR/ovs/conf.db
|
|
|
|
install_ovn
|
|
|
|
#uprade the db to the latest ovsschema
|
|
OVS_SHARE_ROOT=/usr/local/share/openvswitch/
|
|
/bin/bash -c ". $OVS_SHARE_ROOT/scripts/ovs-lib; upgrade_db $DATA_DIR/ovs/conf.db $OVS_SHARE_ROOT/vswitch.ovsschema"
|
|
|
|
configure_ovn
|
|
start_ovs
|
|
|
|
# We need to reconfigure br-ex because install_ovn must have removed the
|
|
# ovs kernel module thereby removing the br-ex interface. start_ovs
|
|
# must have recreated the br-ex interface.
|
|
sudo ip addr add $PUBLIC_NETWORK_GATEWAY/${FLOATING_RANGE#*/} dev br-ex
|
|
sudo ip link set br-ex up
|
|
|
|
# Reset the openflow protocol in the vswitchd Bridge tables
|
|
for br in br-int br-ex br-tun; do
|
|
ovs-vsctl set Bridge $br protocols=[] || /bin/true
|
|
done
|
|
|
|
disable_libvirt_apparmor
|
|
|
|
upgrade_project ovn $RUN_DIR $BASE_DEVSTACK_BRANCH $TARGET_DEVSTACK_BRANCH
|
|
|
|
neutron_plugin_configure_common
|
|
Q_PLUGIN_CONF_FILE=$Q_PLUGIN_CONF_PATH/$Q_PLUGIN_CONF_FILENAME
|
|
Q_ML2_PLUGIN_MECHANISM_DRIVERS=ovn,logger
|
|
Q_ML2_PLUGIN_TYPE_DRIVERS=local,flat,vlan,geneve,vxlan
|
|
Q_ML2_TENANT_NETWORK_TYPE="geneve"
|
|
neutron_plugin_configure_service
|
|
|
|
configure_ovn_plugin
|
|
|
|
if is_service_enabled nova; then
|
|
create_nova_conf_neutron
|
|
fi
|
|
start_ovn
|
|
|
|
ensure_services_started ovn-controller ovn-northd
|
|
|
|
start_neutron_service_and_check
|
|
start_neutron_agents
|
|
|
|
set +x
|
|
set +o xtrace
|
|
echo "*********************************************************************"
|
|
echo "SUCCESS: End $0"
|
|
echo "*********************************************************************"
|