Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ovs 2.5.2 #18

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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