summaryrefslogtreecommitdiff
path: root/docker/openvswitch
diff options
context:
space:
mode:
Diffstat (limited to 'docker/openvswitch')
-rw-r--r--docker/openvswitch/ovs-base/Dockerfile.j222
-rw-r--r--docker/openvswitch/ovs-db-server/Dockerfile.j29
-rw-r--r--docker/openvswitch/ovs-db-server/config-external.sh3
-rwxr-xr-xdocker/openvswitch/ovs-db-server/start.sh25
-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
8 files changed, 107 insertions, 0 deletions
diff --git a/docker/openvswitch/ovs-base/Dockerfile.j2 b/docker/openvswitch/ovs-base/Dockerfile.j2
new file mode 100644
index 000000000..fd8eac1af
--- /dev/null
+++ b/docker/openvswitch/ovs-base/Dockerfile.j2
@@ -0,0 +1,22 @@
+FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-base:{{ tag }}
+MAINTAINER Kolla Project (https://launchpad.net/kolla)
+
+{% if base_distro in ['fedora', 'centos', 'oraclelinux'] %}
+ {% if install_type == 'source' %}
+
+ # TODO(sdake): groan openvswitch is only in the RDO repos
+RUN yum install -y https://rdoproject.org/repos/openstack-kilo/rdo-release-kilo.rpm \
+ && yum clean all
+
+ {% endif %}
+
+RUN yum install -y \
+ openvswitch \
+ && yum clean all
+
+{% elif base_distro in ['ubuntu', 'debian'] %}
+
+RUN apt-get install -y --no-install-recommends openvswitch-switch \
+ && apt-get clean
+
+{% endif %}
diff --git a/docker/openvswitch/ovs-db-server/Dockerfile.j2 b/docker/openvswitch/ovs-db-server/Dockerfile.j2
new file mode 100644
index 000000000..05c6a928b
--- /dev/null
+++ b/docker/openvswitch/ovs-db-server/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 config-external.sh /opt/kolla/
+
+CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker/openvswitch/ovs-db-server/config-external.sh b/docker/openvswitch/ovs-db-server/config-external.sh
new file mode 100644
index 000000000..9ada4efcb
--- /dev/null
+++ b/docker/openvswitch/ovs-db-server/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-db-server/start.sh b/docker/openvswitch/ovs-db-server/start.sh
new file mode 100755
index 000000000..89b2e3e92
--- /dev/null
+++ b/docker/openvswitch/ovs-db-server/start.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+set -o errexit
+
+LOG_FILE="/var/log/openvswitch/ovsdb-server.log"
+DB_FILE="/etc/openvswitch/conf.db"
+UNIXSOCK_DIR="/var/run/openvswitch"
+UNIXSOCK="${UNIXSOCK_DIR}/db.sock"
+
+CMD="/usr/sbin/ovsdb-server"
+ARGS="$DB_FILE -vconsole:emer -vsyslog:err -vfile:info --remote=punix:${UNIXSOCK} --log-file=${LOG_FILE}"
+
+# Loading common functions.
+source /opt/kolla/kolla-common.sh
+
+# Execute config strategy
+set_configs
+
+mkdir -p "${UNIXSOCK_DIR}"
+
+if [[ ! -e "${DB_FILE}" ]]; then
+ ovsdb-tool create "${DB_FILE}"
+fi
+
+exec $CMD $ARGS
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