sfc: enable vault repo for kernel packages
[integration/test.git] / csit / suites / sfc / Full_Deploy / setup-docker-image.sh
1 #!/bin/bash
2
3 set -o xtrace
4 set -o nounset #Do not allow for unset variables
5 #set -e #Exit script if a command fails
6
7 WORK_DIR=`pwd`
8
9 # bootstrap_centos
10 EL_VERSION=$(grep -oP '\d+\.\d+.\d+' /etc/centos-release)
11 K_VERSION=$(uname -r)
12 APT="sudo yum update -y centos-release"
13 $APT || (echo "Failed to update centos release info" && exit 1)
14
15 APT="sudo yum install -y --enablerepo=C${EL_VERSION}-base  --enablerepo=C${EL_VERSION}-updates kernel-devel-${K_VERSION} kernel-debug-devel-${K_VERSION} kernel-headers-${K_VERSION}"
16 $APT || (echo "Failed to install kernel devel packages" && exit 1)
17
18 APT="sudo yum install -y git python-devel vim autoconf automake libtool systemd-units rpm-build openssl openssl-devel groff graphviz selinux-policy-devel python python-twisted-core python-zope-interface python-twisted-web PyQt4 python-six desktop-file-utils procps-ng wget"
19 $APT || (echo "Failed to install ovs requirement packages" && exit 1)
20
21 cd $WORK_DIR
22 [ -e configure-ovs.sh ] || \
23    wget https://raw.githubusercontent.com/socketplane/docker-ovs/master/configure-ovs.sh
24 chmod a+x configure-ovs.sh
25 [ -e supervisord.conf ] || \
26    wget https://raw.githubusercontent.com/socketplane/docker-ovs/master/supervisord.conf
27
28 [ -e supervisor-stdout/supervisor-stdout-0.1.1.tar.gz ] || \
29    wget https://pypi.python.org/packages/source/s/supervisor-stdout/supervisor-stdout-0.1.1.tar.gz --no-check-certificate
30
31 [ -e ovs_nsh_patches ] || \
32    git clone https://github.com/yyang13/ovs_nsh_patches.git
33 [ -e ovs ] || \
34    git clone https://github.com/openvswitch/ovs.git
35
36 cd ovs
37 git config user.email "yi.y.yang@intel.com"
38 git config user.name "Yi Yang"
39 git checkout -b v2.6.1 v2.6.1
40 git am ../ovs_nsh_patches/v2.6.1/*.patch
41
42 #compile ovs
43 ./boot.sh
44 ./configure --with-linux=/lib/modules/${K_VERSION}/build --prefix=/usr/local
45 make rpm-fedora RPMBUILD_OPT="--without check --without libcapng"
46 make DESTDIR=$WORK_DIR/ovs_install/openvswitch_2.6.1 install
47
48 #copy rpms and installation
49 mkdir -p $WORK_DIR/ovs_package
50 find . -name "*.rpm"|xargs -I[] cp [] $WORK_DIR/ovs_package
51 tar cvzf $WORK_DIR/ovs_package/openvswitch_2.6.1.tgz -C $WORK_DIR/ovs_install .
52
53 # install_ovs
54 cd $WORK_DIR/ovs_package
55 CMD='sudo yum list installed openvswitch'
56 if $CMD; then
57   echo "openvswitch already installed"
58 else
59   sudo yum --nogpgcheck -y install `find . -regex "\./openvswitch-[0-9,.,-].*"`
60 fi
61
62 #start ovs
63 sudo /sbin/service openvswitch start
64
65 #prepare libraries for docker image in busybox
66 cd $WORK_DIR
67 cp /usr/lib64/libcrypto.so.10 .
68 cp /usr/lib64/libssl.so.10 .
69 cp /usr/lib64/libgssapi_krb5.so.2 .
70 cp /usr/lib64/libkrb5.so.3 .
71 cp /usr/lib64/libcom_err.so.2 .
72 cp /usr/lib64/libk5crypto.so.3 .
73 cp /usr/lib64/libkrb5support.so.0 .
74 cp /usr/lib64/libkeyutils.so.1 .
75 cp /usr/lib64/libselinux.so.1 .
76 cp /usr/lib64/libpcre.so.1 .
77 cp /usr/lib64/liblzma.so.5 .
78
79 # build_ovs_docker
80 cd $WORK_DIR
81 sudo docker --version
82 if [ -z `sudo docker images | awk '/^ovs-docker / {print $1}'` ];
83  then
84    sudo docker build -t ovs-docker .
85 fi
86
87
88