Test Suite - Docker: Difference between revisions

From Libreswan
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
Libreswan testing suite docker adventures.
Libreswan testing suite docker adventures.


'''Everything below runs as root'''
'''Everything below runs as root on Fedora 20'''


<pre>
<pre>
# install docker 1.3
#swantest depend on python 3.3 or later


yum install python3-setproctitle python3-pexpect
yum install python3-setproctitle python3-pexpect


# install docker 1.3
yum -y remove docker  
yum -y remove docker  
yum -y install docker-io bridge-utils
yum -y install docker-io bridge-utils
Line 18: Line 19:


cd /home/build/
cd /home/build/
# clone an up to date libreswan tree from somewhere
# clone an up to date libreswan tree from somewhere to /home/build/
# git checkout testing-docker-pool


cd /home/build/libreswan/testing/docker/
cd /home/build/libreswan/testing/docker/
Line 25: Line 25:


docker build -t swanbase .
docker build -t swanbase .
# coffee break. It will download fedora, about 200 packages  
# coffee break. It will download Fedora 20 + about 200 packages  
# on swantest real 19m31.907s
# my experience on swantest real 19m31.907s, on parallels vm from Toronto real 7m1.228s
# on parallels vm from Toronto real 7m1.228s


# make sure the host has netkey stack loaded  
# make sure the host has netkey stack loaded  
Line 40: Line 39:
</pre>
</pre>


== Docker diagnostics ==
== Docker related diagnostics commands ==


=== Stop all Docker containers ===
<pre>
<pre>
#will stop ALL containers  
# show running docker containers
docker ps -a
 
# check if you have a proper docker installation?
docker images
 
# stop ALL containers  
docker stop $(docker ps -a -q)
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
docker rm $(docker ps -a -q)
# if your tests it create a bunch of bridge devices too. Not all of them are cleaned up.
brctl show
</pre>
</pre>


Line 62: Line 71:


=== Prerequisites ===
=== Prerequisites ===
The latest one need Python 3.3 or later, necessary for subprocess to deal with 10-100s of threads.
The swantest need Python 3.3 or later. It is necessary for subprocess to deal with 100s of threads/processes. Also pexpect is works better in 3.3.
Also pexpect is works better.  
 
<pre>
sudo yum install python3-setproctitle python3-pexpect

Revision as of 18:17, 2 December 2014

Libreswan testing suite docker adventures.

Everything below runs as root on Fedora 20

#swantest depend on python 3.3 or later

yum install python3-setproctitle python3-pexpect

# install docker 1.3
yum -y remove docker 
yum -y install docker-io bridge-utils
yum -y update docker-io
systemctl start docker
systemctl enable docker

wget -O /usr/local/bin/pipework  https://github.com/jpetazzo/pipework/raw/master/pipework
chmod a+x /usr/local/bin/pipework

cd /home/build/
# clone an up to date libreswan tree from somewhere to  /home/build/

cd /home/build/libreswan/testing/docker/
# check authorized_keys file edit or add your your keys in there

docker build -t swanbase .
# coffee break. It will download Fedora 20 + about 200 packages 
# my experience on swantest real 19m31.907s, on parallels vm from Toronto real 7m1.228s

# make sure the host has netkey stack loaded 
ipsec _stackmanager start --netkey
ipsec version |grep klips && echo you need netkey

cd /home/build/libreswan/
make programs
cd /home/build/libreswan/testing/pluto/ikev2-37-docker-rw
../../utils/swantest --docker

Docker related diagnostics commands

# show running docker containers
docker ps -a 

# check if you have a proper docker installation?
docker images

# stop ALL containers 
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)

# if your tests it create a bunch of bridge devices too. Not all of them are cleaned up.

brctl show

Check if you got correct image

cd /home/build/libreswan/testing/docker

docker build -t swanbase .

root@jes:/home/build/libreswan/testing/docker# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
swanbase            latest              e8e73564a0ae        55 minutes ago      2.84 GB
fedora              20                  7d3f07f8de5f        6 weeks ago         374.1 MB

Prerequisites

The swantest need Python 3.3 or later. It is necessary for subprocess to deal with 100s of threads/processes. Also pexpect is works better in 3.3.