Skip to content

Commit

Permalink
Add OVS 2.5.2
Browse files Browse the repository at this point in the history
- Revise Makefile, README, latest
- Add 2.5.2
  • Loading branch information
sangyun-han committed Jul 22, 2017
1 parent fede885 commit 675adf2
Show file tree
Hide file tree
Showing 7 changed files with 120 additions and 5 deletions.
31 changes: 31 additions & 0 deletions 2.5.2/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
FROM socketplane/busybox:latest
MAINTAINER The SocketPlane Team <[email protected]>
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"]
16 changes: 16 additions & 0 deletions 2.5.2/configure-ovs.sh
Original file line number Diff line number Diff line change
@@ -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

64 changes: 64 additions & 0 deletions 2.5.2/supervisord.conf
Original file line number Diff line number Diff line change
@@ -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
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 2 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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`

Expand Down Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion latest
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.4.0
2.5.2

0 comments on commit 675adf2

Please sign in to comment.