From 5e73fe1c1187bbd9c152221bb0febd20e915b185 Mon Sep 17 00:00:00 2001 From: Guo Ruijing Date: Thu, 21 Apr 2016 07:45:22 +0000 Subject: [PATCH] Refactor fuel ovs plugin Change-Id: I078a1c7472d76041371075c41a1069a3ba248503 Signed-off-by: Guo Ruijing --- README.md | 5 +- .../puppet/manifests/ovs-install-compute.pp | 30 ++-- .../manifests/ovs-install-controller.pp | 22 --- .../ovs-install-primary-controller.pp | 22 --- environment_config.yaml | 18 +-- metadata.yaml | 4 +- ovs-nsh/Dockerfile | 27 ---- ovs-nsh/build-ovs-nsh-dpdk.sh | 50 ------ ovs_build/Dockerfile | 14 ++ ovs_build/build-ovs-dpdk.sh | 37 +++++ ovs_build/build-ovs-nsh-dpdk.sh | 41 +++++ {ovs-nsh => ovs_build}/build-ovs-nsh.sh | 10 +- {ovs-nsh => ovs_build}/patches/060679.patch | 0 {ovs-nsh => ovs_build}/patches/060680.patch | 0 {ovs-nsh => ovs_build}/patches/060681.patch | 0 {ovs-nsh => ovs_build}/patches/060682.patch | 0 {ovs-nsh => ovs_build}/patches/060683.patch | 0 {ovs-nsh => ovs_build}/patches/060684.patch | 0 {ovs-nsh => ovs_build}/patches/060685.patch | 0 pre_build_hook | 17 +- repositories/ubuntu/dpdk/dpdk-install.sh | 24 --- repositories/ubuntu/dpdk/dpdk.conf | 6 - repositories/ubuntu/dpdk/dpdk.init | 147 ------------------ repositories/ubuntu/dppd/dppd-install.sh | 9 -- repositories/ubuntu/ovs/ovs-install.sh | 12 -- tasks.yaml | 16 -- 26 files changed, 129 insertions(+), 382 deletions(-) delete mode 100644 deployment_scripts/puppet/manifests/ovs-install-controller.pp delete mode 100644 deployment_scripts/puppet/manifests/ovs-install-primary-controller.pp delete mode 100644 ovs-nsh/Dockerfile delete mode 100755 ovs-nsh/build-ovs-nsh-dpdk.sh create mode 100644 ovs_build/Dockerfile create mode 100755 ovs_build/build-ovs-dpdk.sh create mode 100755 ovs_build/build-ovs-nsh-dpdk.sh rename {ovs-nsh => ovs_build}/build-ovs-nsh.sh (57%) rename {ovs-nsh => ovs_build}/patches/060679.patch (100%) rename {ovs-nsh => ovs_build}/patches/060680.patch (100%) rename {ovs-nsh => ovs_build}/patches/060681.patch (100%) rename {ovs-nsh => ovs_build}/patches/060682.patch (100%) rename {ovs-nsh => ovs_build}/patches/060683.patch (100%) rename {ovs-nsh => ovs_build}/patches/060684.patch (100%) rename {ovs-nsh => ovs_build}/patches/060685.patch (100%) delete mode 100755 repositories/ubuntu/dpdk/dpdk-install.sh delete mode 100644 repositories/ubuntu/dpdk/dpdk.conf delete mode 100644 repositories/ubuntu/dpdk/dpdk.init delete mode 100755 repositories/ubuntu/dppd/dppd-install.sh delete mode 100755 repositories/ubuntu/ovs/ovs-install.sh diff --git a/README.md b/README.md index ca871bb..c5e36db 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Openvswitch plugin Overview -------- -New fuel plugin fuel-plugin-ovs is developed to deploy OVS with NSH + DPDK in Fuel@OPNFV, which is requested by ODL project +Fuel plugin fuel-plugin-ovs is developed to deploy OVS with NSH + DPDK Requirements ------------ @@ -60,7 +60,7 @@ Openvswitch plugin installation id | name | version | package_version ---|-----------------|---------|---------------- - 1 | fuel-plugin-ovs | 0.5.2 | 3.0.0 + 1 | fuel-plugin-ovs | 0.8.0 | 3.0.0 8. Plugin is ready to use and can be enabled on the Settings tab of the Fuel web UI. @@ -132,4 +132,3 @@ Contributors ------------ * ling.y.yu@intel.com,ruijing.guo@intel.com - diff --git a/deployment_scripts/puppet/manifests/ovs-install-compute.pp b/deployment_scripts/puppet/manifests/ovs-install-compute.pp index 0206a84..b29deee 100644 --- a/deployment_scripts/puppet/manifests/ovs-install-compute.pp +++ b/deployment_scripts/puppet/manifests/ovs-install-compute.pp @@ -1,22 +1,16 @@ $fuel_settings = parseyaml(file('/etc/compute.yaml')) if $operatingsystem == 'Ubuntu' { - if $fuel_settings['fuel-plugin-ovs']['use_dpdk'] { - $NICS = $fuel_settings['fuel-plugin-ovs']['dpdk-bind-nic'] - exec { "install dpdk": - command => "wget http://10.20.0.2:8080/plugins/fuel-plugin-ovs-0.5/repositories/ubuntu/dpdk/dpdk-install.sh; bash ./dpdk-install.sh $NICS", - path => "/usr/bin:/usr/sbin:/bin:/sbin", - } - } else { - exec { "install ovs": - command => "wget http://10.20.0.2:8080/plugins/fuel-plugin-ovs-0.5/repositories/ubuntu/ovs/ovs-install.sh; bash ./ovs-install.sh", - path => "/usr/bin:/usr/sbin:/bin:/sbin", - } - } - if $fuel_settings['fuel-plugin-ovs']['use_dppd'] { - exec { "install dppd": - command => "wget http://10.20.0.2:8080/plugins/fuel-plugin-ovs-0.5/repositories/ubuntu/dppd/dppd-install.sh; bash ./dppd-install.sh", - path => "/usr/bin:/usr/sbin:/bin:/sbin", - } - } + if $fuel_settings['fuel-plugin-ovs']['support_dpdk'] { + $packages='openvswitch-datapath-dkms_2.4.90.dpdk-1 openvswitch-common_2.4.90.dpdk-1 openvswitch-switch_2.4.90.dpdk-1' + } + if $fuel_settings['fuel-plugin-ovs']['support_nsh'] { + $packages='openvswitch-datapath-dkms_2.4.90.nsh-1 openvswitch-common_2.4.90.nsh-1 openvswitch-switch_2.4.90.nsh-1' + } + if $fuel_settings['fuel-plugin-ovs']['support_nsh_dpdk'] { + $packages='openvswitch-datapath-dkms_2.4.90.nshdpdk-1 openvswitch-common_2.4.90.nshdpdk-1 openvswitch-switch_2.4.90.nshdpdk-1' + } + exec { 'ovs install': + command => '/usr/bin/apt-get -y --force-yes install $packages' + } } elsif $operatingsystem == 'CentOS' { } diff --git a/deployment_scripts/puppet/manifests/ovs-install-controller.pp b/deployment_scripts/puppet/manifests/ovs-install-controller.pp deleted file mode 100644 index befee13..0000000 --- a/deployment_scripts/puppet/manifests/ovs-install-controller.pp +++ /dev/null @@ -1,22 +0,0 @@ -$fuel_settings = parseyaml(file('/etc/controller.yaml')) -if $operatingsystem == 'Ubuntu' { - if $fuel_settings['fuel-plugin-ovs']['use_dpdk'] { - $NICS = $fuel_settings['fuel-plugin-ovs']['dpdk-bind-nic'] - exec { "install dpdk": - command => "wget http://10.20.0.2:8080/plugins/fuel-plugin-ovs-0.5/repositories/ubuntu/dpdk/dpdk-install.sh; bash ./dpdk-install.sh $NICS", - path => "/usr/bin:/usr/sbin:/bin:/sbin", - } - } else { - exec { "install ovs": - command => "wget http://10.20.0.2:8080/plugins/fuel-plugin-ovs-0.5/repositories/ubuntu/ovs/ovs-install.sh; bash ./ovs-install.sh", - path => "/usr/bin:/usr/sbin:/bin:/sbin", - } - } - if $fuel_settings['fuel-plugin-ovs']['use_dppd'] { - exec { "install dppd": - command => "wget http://10.20.0.2:8080/plugins/fuel-plugin-ovs-0.5/repositories/ubuntu/dppd/dppd-install.sh; bash ./dppd-install.sh", - path => "/usr/bin:/usr/sbin:/bin:/sbin", - } - } -} elsif $operatingsystem == 'CentOS' { -} diff --git a/deployment_scripts/puppet/manifests/ovs-install-primary-controller.pp b/deployment_scripts/puppet/manifests/ovs-install-primary-controller.pp deleted file mode 100644 index e939679..0000000 --- a/deployment_scripts/puppet/manifests/ovs-install-primary-controller.pp +++ /dev/null @@ -1,22 +0,0 @@ -$fuel_settings = parseyaml(file('/etc/primary-controller.yaml')) -if $operatingsystem == 'Ubuntu' { - if $fuel_settings['fuel-plugin-ovs']['use_dpdk'] { - $NICS = $fuel_settings['fuel-plugin-ovs']['dpdk-bind-nic'] - exec { "install dpdk": - command => "wget http://10.20.0.2:8080/plugins/fuel-plugin-ovs-0.5/repositories/ubuntu/dpdk/dpdk-install.sh; bash ./dpdk-install.sh $NICS", - path => "/usr/bin:/usr/sbin:/bin:/sbin", - } - } else { - exec { "install ovs": - command => "wget http://10.20.0.2:8080/plugins/fuel-plugin-ovs-0.5/repositories/ubuntu/ovs/ovs-install.sh; bash ./ovs-install.sh", - path => "/usr/bin:/usr/sbin:/bin:/sbin", - } - } - if $fuel_settings['fuel-plugin-ovs']['use_dppd'] { - exec { "install dppd": - command => "wget http://10.20.0.2:8080/plugins/fuel-plugin-ovs-0.5/repositories/ubuntu/dppd/dppd-install.sh; bash ./dppd-install.sh", - path => "/usr/bin:/usr/sbin:/bin:/sbin", - } - } -} elsif $operatingsystem == 'CentOS' { -} diff --git a/environment_config.yaml b/environment_config.yaml index 1d28f37..ac4b617 100644 --- a/environment_config.yaml +++ b/environment_config.yaml @@ -1,16 +1,16 @@ attributes: - use_dpdk: + support_dpdk: type: "checkbox" weight: 20 value: false - label: "Use dpdk" - dpdk-bind-nic: - value: 'eth2' - label: 'Network device' - weight: 40 - type: "text" - use_dppd: + label: "support DPDK" + support_nsh: type: "checkbox" weight: 20 value: false - label: "Use dppd" + label: "support NSH" + support_nsh_dpdk: + type: "checkbox" + weight: 20 + value: false + label: "support NSH & DPDK" diff --git a/metadata.yaml b/metadata.yaml index 333c46c..bec0dcb 100644 --- a/metadata.yaml +++ b/metadata.yaml @@ -1,9 +1,9 @@ # Plugin name name: fuel-plugin-ovs # Human-readable name for your plugin -title: Openvswitch with NSH support +title: Openvswitch with NSH/DPDK support # Plugin version -version: '0.5.2' +version: '0.8.0' # Description description: 'This plugin provides to deploy openvswitch with nsh' # Required fuel version diff --git a/ovs-nsh/Dockerfile b/ovs-nsh/Dockerfile deleted file mode 100644 index 9d23652..0000000 --- a/ovs-nsh/Dockerfile +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash - -FROM ubuntu:14.04.3 - -RUN rm -rf /lib/modules -RUN apt-get update -RUN apt-get install -y software-properties-common python-software-properties \ - make python-setuptools python-all dpkg-dev debhelper \ - fuseiso git genisoimage bind9-host wget curl lintian tmux lxc iptables \ - ca-certificates sudo apt-utils lsb-release libtool autoconf automake build-essential fakeroot libssl-dev graphviz dh-autoreconf python-qt4 python-twisted-conch python-zopeinterface linux-headers-3.13.0-76-generic - -RUN ln -s /lib/modules/3.13.0-76-generic /lib/modules/`uname -r` - -RUN apt-get install -y pkg-config unzip liblua5.2-dev libpcap-dev libedit-dev libncurses5-dev libncursesw5-dev - -RUN echo "ALL ALL=NOPASSWD: ALL" > /etc/sudoers.d/open-sudo -RUN chmod 0440 /etc/sudoers.d/open-sudo - -ADD ./patches /patches - -ADD ./build-ovs-nsh.sh /build-ovs-nsh.sh -RUN chmod +x /build-ovs-nsh.sh -RUN /build-ovs-nsh.sh - -ADD ./build-ovs-nsh-dpdk.sh /build-ovs-nsh-dpdk.sh -RUN chmod +x /build-ovs-nsh-dpdk.sh -RUN /build-ovs-nsh-dpdk.sh diff --git a/ovs-nsh/build-ovs-nsh-dpdk.sh b/ovs-nsh/build-ovs-nsh-dpdk.sh deleted file mode 100755 index 1f9e7cc..0000000 --- a/ovs-nsh/build-ovs-nsh-dpdk.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash - -DPDK_VER=2.1.0 - -OVS_COMMIT=121daded51b9798fe3722824b27a05c16806cbd1 -RTE_TARGET=x86_64-native-linuxapp-gcc -PATCHES="060679 060680 060681 060682 060683 060684 060685" -URL_OVS=https://github.com/openvswitch/ovs.git -URL_DPDK=http://dpdk.org/browse/dpdk/snapshot/dpdk-${DPDK_VER}.tar.gz - -wget ${URL_DPDK} -tar -xzvf dpdk-${DPDK_VER}.tar.gz -cd dpdk-${DPDK_VER} -sed -i -e 's/CONFIG_RTE_LIBRTE_VHOST=n/CONFIG_RTE_LIBRTE_VHOST=y/' \ - -e 's/CONFIG_RTE_BUILD_COMBINE_LIBS=n/CONFIG_RTE_BUILD_COMBINE_LIBS=y/' \ - -e 's/CONFIG_RTE_PKTMBUF_HEADROOM=128/CONFIG_RTE_PKTMBUF_HEADROOM=256/' \ - config/common_linuxapp -cd / -tar -czvf dpdk-${DPDK_VER}.tar.gz dpdk-${DPDK_VER} -cd dpdk-${DPDK_VER} -make install T=${RTE_TARGET} -find . | grep "\.o$" | xargs rm -rf -cd / -tar czvf dpdk-${DPDK_VER}.bin.tar.gz dpdk-${DPDK_VER} - -git clone ${URL_OVS} openvswitch-dpdk -cd openvswitch-dpdk -git checkout ${OVS_COMMIT} -b development -for patch in ${PATCHES} -do - patch -p1 < /patches/${patch}.patch -done -export RTE_SDK=/dpdk-${DPDK_VER} -export DPDK_BUILD=${RTE_SDK}/${RTE_TARGET} -./boot.sh -./configure --with-dpdk=$DPDK_BUILD -sed -i "s?set ovs-vswitchd unix?set ovs-vswitchd --dpdk -c 0x1 -n 4 -- unix?" utilities/ovs-ctl.in;sed -i "s?configure --with-linux?configure --with-dpdk=/dpdk-2.1.0/x86_64-native-linuxapp-gcc --with-linux?" debian/dkms.conf.in;sed -i "s?configure --with-linux?configure --with-dpdk=/dpdk-2.1.0/x86_64-native-linuxapp-gcc --with-linux?" debian/rules.modules;sed -i "s?configure --?configure -- --with-dpdk=/dpdk-2.1.0/x86_64-native-linuxapp-gcc?" debian/rules;make dist;tar -xzf openvswitch-2.4.90.tar.gz; -cd openvswitch-2.4.90;DEB_BUILD_OPTIONS='parallel=8 nocheck' fakeroot debian/rules binary - - -cd / -wget https://01.org/sites/default/files/downloads/intel-data-plane-performance-demonstrators/dppd-prox-v021.zip -unzip dppd-prox-v021.zip -export RTE_SDK=/dpdk-${DPDK_VER} -export RTE_TARGET=x86_64-native-linuxapp-gcc -cd /dppd-PROX-v021 -export DPPD_DIR=`pwd`; make -find . | grep "\.o$" | xargs rm -rf -cd / -tar czvf dppd-prox-v021.bin.tar.gz dppd-PROX-v021 diff --git a/ovs_build/Dockerfile b/ovs_build/Dockerfile new file mode 100644 index 0000000..f92df82 --- /dev/null +++ b/ovs_build/Dockerfile @@ -0,0 +1,14 @@ +#!/bin/bash + +FROM ubuntu:14.04.3 + +RUN apt-get update -y + +RUN rm -rf /lib/modules +RUN apt-get install -y linux-headers-3.13.0-76-generic +RUN ln -s /lib/modules/3.13.0-76-generic /lib/modules/`uname -r` + +RUN apt-get build-dep openvswitch -y +RUN apt-get -y install devscripts dpkg-dev git wget + +ADD ./ /ovs_build diff --git a/ovs_build/build-ovs-dpdk.sh b/ovs_build/build-ovs-dpdk.sh new file mode 100755 index 0000000..53313a5 --- /dev/null +++ b/ovs_build/build-ovs-dpdk.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +DPDK_VER=2.1.0 + +export RTE_TARGET=x86_64-native-linuxapp-gcc +export RTE_SDK=/dpdk-${DPDK_VER} +export DPDK_BUILD=${RTE_SDK}/${RTE_TARGET} + +OVS_COMMIT=121daded51b9798fe3722824b27a05c16806cbd1 +URL_OVS=https://github.com/openvswitch/ovs.git +URL_DPDK=http://dpdk.org/browse/dpdk/snapshot/dpdk-${DPDK_VER}.tar.gz + +cd / +wget ${URL_DPDK} +tar -xzvf dpdk-${DPDK_VER}.tar.gz +cd dpdk-${DPDK_VER} +sed -i -e 's/CONFIG_RTE_LIBRTE_VHOST=n/CONFIG_RTE_LIBRTE_VHOST=y/' \ + -e 's/CONFIG_RTE_BUILD_COMBINE_LIBS=n/CONFIG_RTE_BUILD_COMBINE_LIBS=y/' \ + -e 's/CONFIG_RTE_PKTMBUF_HEADROOM=128/CONFIG_RTE_PKTMBUF_HEADROOM=256/' \ + config/common_linuxapp +make install T=${RTE_TARGET} + +cd / +git clone ${URL_OVS} openvswitch +cd openvswitch +git checkout ${OVS_COMMIT} -b development + +export DEB_BUILD_OPTIONS='parallel=8 nocheck' +sed -i "s/2.4.90/2.4.90.dpdk/g" debian/changelog +sed -i "s/DATAPATH_CONFIGURE_OPTS.*=.*//" debian/rules +sed -i "2iDATAPATH_CONFIGURE_OPTS='--with-dpdk=$DPDK_BUILD'" debian/rules +sed -i "s/DATAPATH_CONFIGURE_OPTS.*=.*//" debian/rules.modules +sed -i "2iDATAPATH_CONFIGURE_OPTS='--with-dpdk=$DPDK_BUILD'" debian/rules.modules +debian/rules build +fakeroot debian/rules binary + +cp /*.deb /build diff --git a/ovs_build/build-ovs-nsh-dpdk.sh b/ovs_build/build-ovs-nsh-dpdk.sh new file mode 100755 index 0000000..11ef6b8 --- /dev/null +++ b/ovs_build/build-ovs-nsh-dpdk.sh @@ -0,0 +1,41 @@ +#!/bin/bash + +DPDK_VER=2.1.0 + +export RTE_TARGET=x86_64-native-linuxapp-gcc +export RTE_SDK=/dpdk-${DPDK_VER} +export DPDK_BUILD=${RTE_SDK}/${RTE_TARGET} + +OVS_COMMIT=121daded51b9798fe3722824b27a05c16806cbd1 +PATCHES="060679 060680 060681 060682 060683 060684 060685" +URL_OVS=https://github.com/openvswitch/ovs.git +URL_DPDK=http://dpdk.org/browse/dpdk/snapshot/dpdk-${DPDK_VER}.tar.gz + +cd / +wget ${URL_DPDK} +tar -xzvf dpdk-${DPDK_VER}.tar.gz +cd dpdk-${DPDK_VER} +sed -i -e 's/CONFIG_RTE_LIBRTE_VHOST=n/CONFIG_RTE_LIBRTE_VHOST=y/' \ + -e 's/CONFIG_RTE_BUILD_COMBINE_LIBS=n/CONFIG_RTE_BUILD_COMBINE_LIBS=y/' \ + -e 's/CONFIG_RTE_PKTMBUF_HEADROOM=128/CONFIG_RTE_PKTMBUF_HEADROOM=256/' \ + config/common_linuxapp +make install T=${RTE_TARGET} + +cd / +git clone ${URL_OVS} openvswitch +cd openvswitch +git checkout ${OVS_COMMIT} -b development +for patch in ${PATCHES} +do + patch -p1 < /ovs_build/patches/${patch}.patch +done +export DEB_BUILD_OPTIONS='parallel=8 nocheck' +sed -i "s/2.4.90/2.4.90.nshdpdk/g" debian/changelog +sed -i "s/DATAPATH_CONFIGURE_OPTS.*=.*//" debian/rules +sed -i "2iDATAPATH_CONFIGURE_OPTS='--with-dpdk=$DPDK_BUILD'" debian/rules +sed -i "s/DATAPATH_CONFIGURE_OPTS.*=.*//" debian/rules.modules +sed -i "2iDATAPATH_CONFIGURE_OPTS='--with-dpdk=$DPDK_BUILD'" debian/rules.modules +debian/rules build +fakeroot debian/rules binary + +cp /*.deb /build diff --git a/ovs-nsh/build-ovs-nsh.sh b/ovs_build/build-ovs-nsh.sh similarity index 57% rename from ovs-nsh/build-ovs-nsh.sh rename to ovs_build/build-ovs-nsh.sh index 9a5fc9c..34c661d 100755 --- a/ovs-nsh/build-ovs-nsh.sh +++ b/ovs_build/build-ovs-nsh.sh @@ -4,13 +4,17 @@ OVS_COMMIT=121daded51b9798fe3722824b27a05c16806cbd1 PATCHES="060679 060680 060681 060682 060683 060684 060685" URL_OVS=https://github.com/openvswitch/ovs.git +cd / git clone ${URL_OVS} openvswitch cd openvswitch git checkout ${OVS_COMMIT} -b development for patch in ${PATCHES} do - patch -p1 < /patches/${patch}.patch + patch -p1 < /ovs_build/patches/${patch}.patch done -./boot.sh;./configure;make dist;tar -xzf openvswitch-2.4.90.tar.gz -cd openvswitch-2.4.90;dpkg-checkbuilddeps;DEB_BUILD_OPTIONS='parallel=8 nocheck' fakeroot debian/rules binary +export DEB_BUILD_OPTIONS='parallel=8 nocheck' +sed -i "s/2.4.90/2.4.90.nsh/g" debian/changelog +debian/rules build +fakeroot debian/rules binary +cp /*.deb /build diff --git a/ovs-nsh/patches/060679.patch b/ovs_build/patches/060679.patch similarity index 100% rename from ovs-nsh/patches/060679.patch rename to ovs_build/patches/060679.patch diff --git a/ovs-nsh/patches/060680.patch b/ovs_build/patches/060680.patch similarity index 100% rename from ovs-nsh/patches/060680.patch rename to ovs_build/patches/060680.patch diff --git a/ovs-nsh/patches/060681.patch b/ovs_build/patches/060681.patch similarity index 100% rename from ovs-nsh/patches/060681.patch rename to ovs_build/patches/060681.patch diff --git a/ovs-nsh/patches/060682.patch b/ovs_build/patches/060682.patch similarity index 100% rename from ovs-nsh/patches/060682.patch rename to ovs_build/patches/060682.patch diff --git a/ovs-nsh/patches/060683.patch b/ovs_build/patches/060683.patch similarity index 100% rename from ovs-nsh/patches/060683.patch rename to ovs_build/patches/060683.patch diff --git a/ovs-nsh/patches/060684.patch b/ovs_build/patches/060684.patch similarity index 100% rename from ovs-nsh/patches/060684.patch rename to ovs_build/patches/060684.patch diff --git a/ovs-nsh/patches/060685.patch b/ovs_build/patches/060685.patch similarity index 100% rename from ovs-nsh/patches/060685.patch rename to ovs_build/patches/060685.patch diff --git a/pre_build_hook b/pre_build_hook index 5804d83..cdfc09c 100755 --- a/pre_build_hook +++ b/pre_build_hook @@ -20,18 +20,11 @@ function build_pkg { pushd "${DIR}/repositories/${1}/" download_dependencies ${1} popd - cd ${DIR}/ovs-nsh - sudo docker build -t ovs-nsh . - container_id=`sudo docker run -d ovs-nsh` - sudo docker cp $container_id:/openvswitch/openvswitch-common_2.4.90-1_amd64.deb ${DIR}/repositories/ubuntu/ovs/ - sudo docker cp $container_id:/openvswitch/openvswitch-datapath-dkms_2.4.90-1_all.deb ${DIR}/repositories/ubuntu/ovs/ - sudo docker cp $container_id:/openvswitch/openvswitch-switch_2.4.90-1_amd64.deb ${DIR}/repositories/ubuntu/ovs/ - - sudo docker cp $container_id:/openvswitch-dpdk/openvswitch-common_2.4.90-1_amd64.deb ${DIR}/repositories/ubuntu/dpdk - sudo docker cp $container_id:/openvswitch-dpdk/openvswitch-datapath-dkms_2.4.90-1_all.deb ${DIR}/repositories/ubuntu/dpdk - sudo docker cp $container_id:/openvswitch-dpdk/openvswitch-switch_2.4.90-1_amd64.deb ${DIR}/repositories/ubuntu/dpdk - sudo docker cp $container_id:/dpdk-2.1.0.bin.tar.gz ${DIR}/repositories/ubuntu/dpdk/ - sudo docker cp $container_id:/dppd-prox-v021.bin.tar.gz ${DIR}/repositories/ubuntu/dppd/ + cd ${DIR}/ovs_build + sudo docker build -t ovs_build . + sudo docker run -v ${DIR}/repositories/ubuntu/ovs-nsh:/build -ti ovs_build /ovs_build/build-ovs-nsh.sh + sudo docker run -v ${DIR}/repositories/ubuntu/ovs-dpdk:/build -ti ovs_build /ovs_build/build-ovs-dpdk.sh + sudo docker run -v ${DIR}/repositories/ubuntu/ovs-nsh-dpdk:/build -ti ovs_build /ovs_build/build-ovs-nsh-dpdk.sh ;; *) echo "Not supported system"; exit 1;; esac diff --git a/repositories/ubuntu/dpdk/dpdk-install.sh b/repositories/ubuntu/dpdk/dpdk-install.sh deleted file mode 100755 index 99b406c..0000000 --- a/repositories/ubuntu/dpdk/dpdk-install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -NICS=$1 -INSTALL_HOME=/usr/share/dpdk/ -rm -rf $INSTALL_HOME ; mkdir -p $INSTALL_HOME -cd $INSTALL_HOME -wget http://10.20.0.2:8080/plugins/fuel-plugin-ovs-0.5/repositories/ubuntu/dpdk/dpdk-2.1.0.bin.tar.gz -tar xzvf dpdk-2.1.0.bin.tar.gz -rm -rf dpdk-2.1.0.bin.tar.gz -wget http://10.20.0.2:8080/plugins/fuel-plugin-ovs-0.5/repositories/ubuntu/dpdk/dpdk.init -O /etc/init.d/dpdk -chmod +x /etc/init.d/dpdk -wget http://10.20.0.2:8080/plugins/fuel-plugin-ovs-0.5/repositories/ubuntu/dpdk/dpdk.conf -O /etc/default/dpdk.conf -sed "s/DPDK_NIC_MAPPINGS=.*/DPDK_NIC_MAPPINGS=${NICS}/" -i /etc/default/dpdk.conf -service dpdk start - -INSTALL_HOME=/usr/share/ovs-dpdk/ -rm -rf $INSTALL_HOME ; mkdir -p $INSTALL_HOME -cd $INSTALL_HOME -wget http://10.20.0.2:8080/plugins/fuel-plugin-ovs-0.5/repositories/ubuntu/dpdk/openvswitch-datapath-dkms_2.4.90-1_all.deb -dpkg -i openvswitch-datapath-dkms_2.4.90-1_all.deb -wget http://10.20.0.2:8080/plugins/fuel-plugin-ovs-0.5/repositories/ubuntu/dpdk/openvswitch-common_2.4.90-1_amd64.deb -dpkg -i openvswitch-common_2.4.90-1_amd64.deb -wget http://10.20.0.2:8080/plugins/fuel-plugin-ovs-0.5/repositories/ubuntu/dpdk/openvswitch-switch_2.4.90-1_amd64.deb -dpkg -i openvswitch-switch_2.4.90-1_amd64.deb diff --git a/repositories/ubuntu/dpdk/dpdk.conf b/repositories/ubuntu/dpdk/dpdk.conf deleted file mode 100644 index 6264bf5..0000000 --- a/repositories/ubuntu/dpdk/dpdk.conf +++ /dev/null @@ -1,6 +0,0 @@ -DPDK_NUM_HUGEPAGES=${DPDK_NUM_HUGEPAGES:-2048} -DPDK_HUGEPAGE_MOUNT=${DPDK_HUGEPAGE_MOUNT:-/dev/hugepages} -DPDK_NIC_MAPPINGS=eth1 -DPDK_ALLOCATE_HUGEPAGES=True -DPDK_INTERFACE_DRIVER='igb_uio' -DPDK_HUGEPAGE_MOUNT_PAGESIZE='' diff --git a/repositories/ubuntu/dpdk/dpdk.init b/repositories/ubuntu/dpdk/dpdk.init deleted file mode 100644 index 3a1ee5d..0000000 --- a/repositories/ubuntu/dpdk/dpdk.init +++ /dev/null @@ -1,147 +0,0 @@ -#! /bin/bash -# -# Copyright (C) 2015 Intel, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -echo "sourcing config" -source /etc/default/dpdk.conf - -RTE_SDK=${RTE_SDK:-/usr/share/dpdk/dpdk-2.1.0} -RTE_TARGET=${RTE_TARGET:-x86_64-native-linuxapp-gcc} -DPDK_DIR=$RTE_SDK - - -remove_igb_uio_module(){ - sudo rmmod igb_uio -} - -unbind_nics(){ - NICS=`RTE_SDK=${DPDK_DIR} RTE_TARGET=build ${DPDK_DIR}/tools/dpdk_nic_bind.py --status | grep drv=igb_uio | head -1` - while [ "${NICS}" != "" ] - do - BUSID=`echo "${NICS}" | awk '{ print $1 }'` - NANTIC=`echo "${NICS}" | grep "82574L"` - FVL=`echo "${NICS}" | grep "X710"` - RRC=`echo "${NICS}" | grep "82576"` - EM=`echo "${NICS}" | grep "82540EM"` - if [ "${NANTIC}" != "" ] ;then - DRIVER=e1000e - elif [ "${FVL}" != "" ] ;then - DRIVER=i40e - elif [ "${RRC}" != "" ] ;then - DRIVER=igb - elif [ "${EM}" != "" ] ;then - DRIVER=e1000 - else - DRIVER=ixgbe - fi - sudo RTE_SDK=${DPDK_DIR} RTE_TARGET=build ${DPDK_DIR}/tools/dpdk_nic_bind.py -b ${DRIVER} ${BUSID} - NICS=`RTE_SDK=${DPDK_DIR} RTE_TARGET=build ${DPDK_DIR}/tools/dpdk_nic_bind.py --status | grep drv=igb_uio | head -1` - done -} - -free_hugepages() { - HUGEPAGE_SIZE=$(grep Hugepagesize /proc/meminfo | awk '{ print $2 }') - - if [ -d $DPDK_HUGEPAGE_MOUNT ]; then - sudo rm -rf ${DPDK_HUGEPAGE_MOUNT}/rtemap* - fi - - sudo umount ${DPDK_HUGEPAGE_MOUNT} - - # de-allocate hugepages - if [ $DPDK_ALLOCATE_HUGEPAGES == 'True' ]; then - for d in /sys/devices/system/node/node? ; do - echo 0 | sudo tee $d/hugepages/hugepages-${HUGEPAGE_SIZE}kB/nr_hugepages - done - fi -} - -load_igb_uio_module(){ - if [ ! -f $RTE_SDK/$RTE_TARGET/kmod/igb_uio.ko ];then - echo "## ERROR: Target does not have the DPDK UIO Kernel Module." - echo " To fix, please try to rebuild target." - return - fi - sudo modprobe uio - echo "Loading DPDK UIO module" - sudo insmod $RTE_SDK/$RTE_TARGET/kmod/igb_uio.ko -} - -bind_nic_2_driver() { - list=("$@") - # Bind nics to DPDK_INTERFACE_DRIVER. - for pair in "${list[@]}"; do - addr=`echo $pair | cut -f 1 -d "#"` - nic=`echo $pair | cut -f 2 -d "#"` - echo sudo RTE_SDK=${DPDK_DIR} RTE_TARGET=build ${DPDK_DIR}/tools/dpdk_nic_bind.py -b $DPDK_INTERFACE_DRIVER $addr - sudo RTE_SDK=${DPDK_DIR} RTE_TARGET=build ${DPDK_DIR}/tools/dpdk_nic_bind.py -b $DPDK_INTERFACE_DRIVER $addr - done -} - -bind_nics(){ - # Extract nic name, bind it with DPDK_INTERFACE_DRIVER driver - PCI_MAPPINGS=${DPDK_NIC_MAPPINGS//,/ } - PCI_ARRAY=( $PCI_MAPPINGS ) - bind_nic_2_driver "${PCI_ARRAY[@]}" -} - -alloc_hugepages() { - HUGEPAGE_SIZE=$(grep Hugepagesize /proc/meminfo | awk '{ print $2 }') - sudo mkdir -p $DPDK_HUGEPAGE_MOUNT - - - #allocate hugepages - if [ $DPDK_ALLOCATE_HUGEPAGES == 'True' ]; then - for d in /sys/devices/system/node/node? ; do - echo $DPDK_NUM_HUGEPAGES | sudo tee $d/hugepages/hugepages-${HUGEPAGE_SIZE}kB/nr_hugepages - done - fi - - if [ -n "$DPDK_HUGEPAGE_MOUNT_PAGESIZE" ]; then - sudo mount -t hugetlbfs pagesize=$DPDK_HUGEPAGE_MOUNT_PAGESIZE nodev $DPDK_HUGEPAGE_MOUNT - else - sudo mount -t hugetlbfs nodev $DPDK_HUGEPAGE_MOUNT - fi -} - -cmd_start(){ - echo "mounting hugepages" - alloc_hugepages - echo "loading DPDK_INTERFACE_DRIVER diver" - load_igb_uio_module - bind_nics -} -cmd_stop(){ - #if physical nics bindings are defined, bind nics with linux driver - echo "rebinding nics to linux_driver" - unbind_nics - remove_igb_uio_module - echo "unmounting hugepages" - free_hugepages -} -case "$1" in - start) - cmd_start - ;; - stop) - cmd_stop - ;; - *) - echo "Usage: $0 {start|stop}" >&2 - exit 1 - ;; -esac - -exit 0 diff --git a/repositories/ubuntu/dppd/dppd-install.sh b/repositories/ubuntu/dppd/dppd-install.sh deleted file mode 100755 index 93b918e..0000000 --- a/repositories/ubuntu/dppd/dppd-install.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -set -eux -INSTALL_HOME=/usr/share/dppd/ -rm -rf $INSTALL_HOME ; mkdir -p $INSTALL_HOME -cd $INSTALL_HOME -apt-get install -y pkg-config liblua5.2-dev libpcap-dev libedit-dev libncurses5-dev libncursesw5-dev -wget http://10.20.0.2:8080/plugins/fuel-plugin-ovs-0.5/repositories/ubuntu/dppd/dppd-prox-v021.bin.tar.gz -tar xzvf dppd-prox-v021.bin.tar.gz -rm -rf dppd-prox-v021.bin.tar.gz diff --git a/repositories/ubuntu/ovs/ovs-install.sh b/repositories/ubuntu/ovs/ovs-install.sh deleted file mode 100755 index a323817..0000000 --- a/repositories/ubuntu/ovs/ovs-install.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash -set -eux - -INSTALL_HOME=/usr/share/ovs/ -rm -rf $INSTALL_HOME ; mkdir -p $INSTALL_HOME -cd $INSTALL_HOME -wget http://10.20.0.2:8080/plugins/fuel-plugin-ovs-0.5/repositories/ubuntu/ovs/openvswitch-datapath-dkms_2.4.90-1_all.deb -dpkg -i openvswitch-datapath-dkms_2.4.90-1_all.deb -wget http://10.20.0.2:8080/plugins/fuel-plugin-ovs-0.5/repositories/ubuntu/ovs/openvswitch-common_2.4.90-1_amd64.deb -dpkg -i openvswitch-common_2.4.90-1_amd64.deb -wget http://10.20.0.2:8080/plugins/fuel-plugin-ovs-0.5/repositories/ubuntu/ovs/openvswitch-switch_2.4.90-1_amd64.deb -dpkg -i openvswitch-switch_2.4.90-1_amd64.deb diff --git a/tasks.yaml b/tasks.yaml index 4cfdcc7..0df40be 100644 --- a/tasks.yaml +++ b/tasks.yaml @@ -1,19 +1,3 @@ -- id: ovs_install_primary_controller - role: ['primary-controller'] - stage: pre_deployment - type: puppet - parameters: - puppet_manifest: puppet/manifests/ovs-install-primary-controller.pp - puppet_modules: puppet/modules:/etc/puppet/modules - timeout: 720 -- id: ovs_install_controller - role: ['controller'] - stage: pre_deployment - type: puppet - parameters: - puppet_manifest: puppet/manifests/ovs-install-controller.pp - puppet_modules: puppet/modules:/etc/puppet/modules - timeout: 720 - id: ovs_install_compute role: ['compute'] stage: pre_deployment