aboutsummaryrefslogtreecommitdiff
path: root/docker/openvswitch/ovs-vswitchd
diff options
context:
space:
mode:
Diffstat (limited to 'docker/openvswitch/ovs-vswitchd')
-rw-r--r--docker/openvswitch/ovs-vswitchd/Dockerfile.j29
-rw-r--r--docker/openvswitch/ovs-vswitchd/config-external.sh3
-rwxr-xr-xdocker/openvswitch/ovs-vswitchd/ovs_ensure_configured.sh17
-rwxr-xr-xdocker/openvswitch/ovs-vswitchd/start.sh19
4 files changed, 48 insertions, 0 deletions
diff --git a/docker/openvswitch/ovs-vswitchd/Dockerfile.j2 b/docker/openvswitch/ovs-vswitchd/Dockerfile.j2
new file mode 100644
index 000000000..59079d335
--- /dev/null
+++ b/docker/openvswitch/ovs-vswitchd/Dockerfile.j2
@@ -0,0 +1,9 @@
+FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-ovs-base:{{ tag }}
+MAINTAINER Kolla Project (https://launchpad.net/kolla)
+
+COPY start.sh /
+COPY ovs_ensure_configured.sh config-external.sh /opt/kolla/
+
+CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker/openvswitch/ovs-vswitchd/config-external.sh b/docker/openvswitch/ovs-vswitchd/config-external.sh
new file mode 100644
index 000000000..9ada4efcb
--- /dev/null
+++ b/docker/openvswitch/ovs-vswitchd/config-external.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+#This file should be a noop. It just needs to exist, but it don't perform any function
diff --git a/docker/openvswitch/ovs-vswitchd/ovs_ensure_configured.sh b/docker/openvswitch/ovs-vswitchd/ovs_ensure_configured.sh
new file mode 100755
index 000000000..c39d64ff7
--- /dev/null
+++ b/docker/openvswitch/ovs-vswitchd/ovs_ensure_configured.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+bridge=$1
+port=$2
+
+ovs-vsctl br-exists $bridge; rc=$?
+if [[ $rc == 2 ]]; then
+ changed=changed
+ ovs-vsctl add-br $bridge
+fi
+
+if [[ ! $(ovs-vsctl list-ports $bridge) =~ $(echo "\<$port\>") ]]; then
+ changed=changed
+ ovs-vsctl add-port $bridge $port
+fi
+
+echo $changed
diff --git a/docker/openvswitch/ovs-vswitchd/start.sh b/docker/openvswitch/ovs-vswitchd/start.sh
new file mode 100755
index 000000000..3ec2c26b2
--- /dev/null
+++ b/docker/openvswitch/ovs-vswitchd/start.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+LOG_FILE="/var/log/openvswitch/ovs-vswitchd.log"
+DB_FILE="/etc/openvswitch/conf.db"
+UNIXSOCK_DIR="/var/run/openvswitch"
+UNIXSOCK="${UNIXSOCK_DIR}/db.sock"
+
+CMD="/usr/sbin/ovs-vswitchd"
+ARGS="unix:${UNIXSOCK} -vconsole:emer -vsyslog:err -vfile:info --mlockall --log-file=${LOG_FILE}"
+
+# Loading common functions.
+source /opt/kolla/kolla-common.sh
+
+# Execute config strategy
+set_configs
+
+modprobe openvswitch
+mkdir -p "${UNIXSOCK_DIR}"
+
+exec $CMD $ARGS