diff --git a/snap-overlay/bin/setup-br-ex b/snap-overlay/bin/setup-br-ex new file mode 100755 index 0000000..939b774 --- /dev/null +++ b/snap-overlay/bin/setup-br-ex @@ -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 diff --git a/snap/hooks/configure b/snap/hooks/configure index e054cee..85a67c1 100755 --- a/snap/hooks/configure +++ b/snap/hooks/configure @@ -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 diff --git a/snapcraft.yaml b/snapcraft.yaml index bc2eaa0..42c43f2 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -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