From 675adf2d4c305bca112cc2f24515064aa6d09efc Mon Sep 17 00:00:00 2001 From: sangyun-han Date: Sat, 22 Jul 2017 11:28:18 +0900 Subject: [PATCH] Add OVS 2.5.2 - Revise Makefile, README, latest - Add 2.5.2 --- 2.5.2/Dockerfile | 31 ++++++++++++++++++++ 2.5.2/configure-ovs.sh | 16 +++++++++++ 2.5.2/supervisord.conf | 64 ++++++++++++++++++++++++++++++++++++++++++ Dockerfile | 2 +- Makefile | 3 +- README.md | 7 +++-- latest | 2 +- 7 files changed, 120 insertions(+), 5 deletions(-) create mode 100644 2.5.2/Dockerfile create mode 100755 2.5.2/configure-ovs.sh create mode 100644 2.5.2/supervisord.conf diff --git a/2.5.2/Dockerfile b/2.5.2/Dockerfile new file mode 100644 index 0000000..dc9f7f2 --- /dev/null +++ b/2.5.2/Dockerfile @@ -0,0 +1,31 @@ +FROM socketplane/busybox:latest +MAINTAINER The SocketPlane Team +ENV OVS_VERSION 2.5.2 +ENV SUPERVISOR_STDOUT_VERSION 0.1.1 +# Configure supervisord +RUN mkdir -p /var/log/supervisor/ +ADD supervisord.conf /etc/ +# Install supervisor_stdout +WORKDIR /opt +RUN mkdir -p /var/log/supervisor/ +RUN mkdir -p /etc/openvswitch +RUN wget https://pypi.python.org/packages/source/s/supervisor-stdout/supervisor-stdout-$SUPERVISOR_STDOUT_VERSION.tar.gz --no-check-certificate && \ + tar -xzvf supervisor-stdout-0.1.1.tar.gz && \ + mv supervisor-stdout-$SUPERVISOR_STDOUT_VERSION supervisor-stdout && \ + rm supervisor-stdout-0.1.1.tar.gz && \ + cd supervisor-stdout && \ + python setup.py install -q +# Get Open vSwitch +WORKDIR / +RUN wget https://s3-us-west-2.amazonaws.com/docker-ovs/openvswitch-$OVS_VERSION.tar.gz --no-check-certificate && \ + tar -xzvf openvswitch-$OVS_VERSION.tar.gz &&\ + mv openvswitch-$OVS_VERSION openvswitch &&\ + cp -r openvswitch/* / &&\ + rm -r openvswitch &&\ + rm openvswitch-$OVS_VERSION.tar.gz +ADD configure-ovs.sh /usr/local/share/openvswitch/ +# Create the database +RUN ovsdb-tool create /etc/openvswitch/conf.db /usr/local/share/openvswitch/vswitch.ovsschema +# Put the OVS Python modules on the Python Path +RUN cp -r /usr/local/share/openvswitch/python/ovs /usr/lib/python2.7/site-packages/ovs +CMD ["/usr/bin/supervisord"] diff --git a/2.5.2/configure-ovs.sh b/2.5.2/configure-ovs.sh new file mode 100755 index 0000000..db20c74 --- /dev/null +++ b/2.5.2/configure-ovs.sh @@ -0,0 +1,16 @@ +#!/bin/sh +ovs_version=$(ovs-vsctl -V | grep ovs-vsctl | awk '{print $4}') +ovs_db_version=$(ovsdb-tool schema-version /usr/local/share/openvswitch/vswitch.ovsschema) + +# give ovsdb-server and vswitchd some space... +sleep 3 +# begin configuring +ovs-vsctl --no-wait -- init +ovs-vsctl --no-wait -- set Open_vSwitch . db-version="${ovs_db_version}" +ovs-vsctl --no-wait -- set Open_vSwitch . ovs-version="${ovs_version}" +ovs-vsctl --no-wait -- set Open_vSwitch . system-type="docker-ovs" +ovs-vsctl --no-wait -- set Open_vSwitch . system-version="0.1" +ovs-vsctl --no-wait -- set Open_vSwitch . external-ids:system-id=`cat /proc/sys/kernel/random/uuid` +ovs-vsctl --no-wait -- set-manager ptcp:6640 +ovs-appctl -t ovsdb-server ovsdb-server/add-remote db:Open_vSwitch,Open_vSwitch,manager_options + diff --git a/2.5.2/supervisord.conf b/2.5.2/supervisord.conf new file mode 100644 index 0000000..4df730e --- /dev/null +++ b/2.5.2/supervisord.conf @@ -0,0 +1,64 @@ +[unix_http_server] +file = /var/run/supervisor.sock + +[inet_http_server] +port = 9001 + +[supervisord] +nodaemon=true +logfile = /var/log/supervisor/supervisord.log +logfile_maxbytes = 200KB +logfile_backups = 1 +pidfile = /var/run/supervisord.pid +childlogdir = /var/log/supervisor + +[rpcinterface:supervisor] +supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface + +[supervisorctl] +serverurl = unix:///var/run/supervisor.sock + +[program:ovsdb-server] +command=/usr/local/sbin/ovsdb-server /etc/openvswitch/conf.db --remote=punix:/usr/local/var/run/openvswitch/db.sock --remote=ptcp:6640 --pidfile=ovsdb-server.pid +priority=10 +startsec=10 +stderr_events_enabled=true +stdout_events_enabled=true + +[program:ovs-vswitchd] +command=/usr/local/sbin/ovs-vswitchd -v --pidfile +priority=20 +startsec=10 +stderr_events_enabled=true +stdout_events_enabled=true + +[program:ovsdb-server-vtep] +command=/usr/local/sbin/ovsdb-server /etc/openvswitch/conf.db /etc/openvswitch/vtep.db --remote=punix:/var/run/openvswitch/db.sock --pidfile=ovsdb-server.pid +autostart=false +priority=10 +startsec=10 +stderr_events_enabled=true +stdout_events_enabled=true + +[program:ovs-vtep] +command=/usr/local/share/openvswitch/scripts/ovs-vtep --pidfile=/var/run/openvswitch/ovs-vtep.pid br-vtep +autostart=false +priority=30 +startsec=10 +stderr_events_enabled=true +stdout_events_enabled=true + +[program:configure-ovs] +command=/usr/local/share/openvswitch/configure-ovs.sh +priority=30 +startsecs=0 +exitcodes=0 +autorestart=false +stderr_events_enabled=true +stdout_events_enabled=true + +[eventlistener:stdout] +command = supervisor_stdout +buffer_size = 100 +events = PROCESS_LOG +result_handler = supervisor_stdout:event_handler diff --git a/Dockerfile b/Dockerfile index f8dc0d5..3e051f7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,7 +22,7 @@ RUN wget https://s3-us-west-2.amazonaws.com/docker-ovs/openvswitch-$OVS_VERSION. mv openvswitch-$OVS_VERSION openvswitch &&\ cp -r openvswitch/* / &&\ rm -r openvswitch &&\ - rm openvswitch-$OVS_VERSION.tar.gz + rm openvswitch-$OVS_VERSION.tar.gz ADD configure-ovs.sh /usr/local/share/openvswitch/ # Create the database RUN ovsdb-tool create /etc/openvswitch/conf.db /usr/local/share/openvswitch/vswitch.ovsschema diff --git a/Makefile b/Makefile index 9578e26..731e751 100644 --- a/Makefile +++ b/Makefile @@ -29,7 +29,8 @@ OVS_VERSIONS = \ "2.3" \ "2.3.1" \ "2.3.2" \ - "2.4.0" + "2.4.0" \ + "2.5.2" all: reconfigure build diff --git a/README.md b/README.md index 4c828b2..c591fd4 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ To run the container with the kernel module (assuming you have Linux Kernel 3.7+ modprobe openvswitch docker run -itd --cap-add NET_ADMIN socketplane/openvswitch - + While it's recommended to load the kernel module outside of the container, it is possible to load the kernel module from within: cid=$(docker run -itd --cap-add NET_ADMIN --cap-add SYS_MODULE -v /lib/modules:/lib/modules socketplane/openvswitch) @@ -37,7 +37,7 @@ While it's recommended to load the kernel module outside of the container, it is > Note 1: You need the "tun" kernel module loaded to run in userspace mode > Note 2: Change the tag for a specific OVS version e.g socketplane/openvswitch:2.3.0 -## Controlling The Processes +## Controlling The Processes The processes can be controlled using `supervisorctl` @@ -80,6 +80,9 @@ The follwing releases are supported: - 2.1.3 - 2.3 - 2.3.1 +- 2.3.2 +- 2.4.0 +- 2.5.2 ### Creating bridges in Userspace Mode diff --git a/latest b/latest index 197c4d5..f225a78 100644 --- a/latest +++ b/latest @@ -1 +1 @@ -2.4.0 +2.5.2