Perist external bridge over reboots.

This fixes an issue where we weren't creating a netplan config and/or
and entry in /etc/network/interfaces for br-ex, and thus losing
external access to our virtual networks after reboot.

Since we don't actually want to touch the host system's networking
config, we just drop a oneshot daemon into place that sets br-ex up
each time the snap services are started.
This commit is contained in:
Pete Vander Giessen 2018-12-05 21:25:11 +00:00
parent e769f51a9d
commit 597ffc99d8
3 changed files with 29 additions and 10 deletions

19
snap-overlay/bin/setup-br-ex Executable file
View File

@ -0,0 +1,19 @@
#!/bin/bash
#
# Oneshot daemon which creates a networking bridge.
#
# Creates br-ex, and sets up an ip address for it. We put this in a
# oneshot so that the ip address persists after reboot, without
# needing to add networking entries to the host system. (We want this
# to work well when we turn off classic confinement.)
set -ex
# Create external integration bridge
ovs-vsctl --retry --may-exist add-br br-ex
# Configure br-ex
ip address add 10.20.20.1/24 dev br-ex || :
ip link set br-ex up || :
exit 0

12
snap/hooks/configure vendored
View File

@ -30,16 +30,8 @@ done
HOME=$SNAP_COMMON/lib/rabbitmq rabbitmqctl add_user openstack rabbitmq || :
HOME=$SNAP_COMMON/lib/rabbitmq rabbitmqctl set_permissions openstack ".*" ".*" ".*"
# Open vSwitch/Neutron
echo "Configuring Open vSwitch networking"
# Create external integration bridge
ovs-vsctl --retry --may-exist add-br br-ex
# Configure br-ex
ip address add 10.20.20.1/24 dev br-ex || :
ip link set br-ex up || :
# Glance
echo "Waiting for glance to start."
while ! nc -z localhost 9292; do sleep 0.1; done;
sleep 5

View File

@ -213,6 +213,14 @@ apps:
ovs-dpctl:
command: ovs-wrapper $SNAP/bin/ovs-dpctl
# plugs:
# - network
external-bridge:
command: bin/setup-br-ex
daemon: oneshot
passthrough:
after: [ovs-vswitchd]
# plugs:
# - network
# Libvirt/Qemu