diff options
Diffstat (limited to 'docker/openvswitch')
| -rw-r--r-- | docker/openvswitch/ovs-base/Dockerfile.j2 | 22 | ||||
| -rw-r--r-- | docker/openvswitch/ovs-db-server/Dockerfile.j2 | 9 | ||||
| -rw-r--r-- | docker/openvswitch/ovs-db-server/config-external.sh | 3 | ||||
| -rwxr-xr-x | docker/openvswitch/ovs-db-server/start.sh | 25 | ||||
| -rw-r--r-- | docker/openvswitch/ovs-vswitchd/Dockerfile.j2 | 9 | ||||
| -rw-r--r-- | docker/openvswitch/ovs-vswitchd/config-external.sh | 3 | ||||
| -rwxr-xr-x | docker/openvswitch/ovs-vswitchd/ovs_ensure_configured.sh | 17 | ||||
| -rwxr-xr-x | docker/openvswitch/ovs-vswitchd/start.sh | 19 |
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 |
