Merge "Add noha scenario for bgpvpn"
[apex.git] / build / overcloud-full.sh
index 839fdfb..188c40e 100755 (executable)
@@ -13,17 +13,11 @@ source ./variables.sh
 source ./functions.sh
 
 populate_cache "$rdo_images_uri/overcloud-full.tar"
-populate_cache "$openstack_congress"
 
 if [ ! -d images/ ]; then mkdir images; fi
 tar -xf cache/overcloud-full.tar -C images/
 mv -f images/overcloud-full.qcow2 images/overcloud-full_build.qcow2
 
-# Add extra space to the overcloud image
-qemu-img resize images/overcloud-full_build.qcow2 +1G
-LIBGUESTFS_BACKEND=direct virt-customize -a images/overcloud-full_build.qcow2 \
-                                         --run-command 'resize2fs /dev/sda'
-
 ##########################################################
 #####  Prep initial overcloud image with common deps #####
 ##########################################################
@@ -47,7 +41,7 @@ pushd images > /dev/null
 
 dpdk_pkg_str=''
 for package in ${dpdk_rpms[@]}; do
-  curl -O "$dpdk_uri_base/$package"
+  wget "$dpdk_uri_base/$package"
   dpdk_pkg_str+=" --upload $package:/root/dpdk_rpms"
 done
 
@@ -59,21 +53,13 @@ git archive --format=tar.gz --prefix=congress/ origin/stable/mitaka > ../puppet-
 popd > /dev/null
 
 # create fd.io yum repo file
-cat > /tmp/fdio-master.repo << EOF
-[fdio-master]
-name=fd.io master branch latest merge
-baseurl=https://nexus.fd.io/content/repositories/fd.io.master.centos7/
-enabled=1
-gpgcheck=0
-EOF
-
-cat > /tmp/tacker.repo << EOF
-[tacker-trozet]
-name=Tacker RPMs built from https://github.com/trozet/ tacker repositories
-baseurl=http://radez.fedorapeople.org/tacker/
-enabled=1
-gpgcheck=0
-EOF
+#cat > /tmp/fdio-master.repo << EOF
+#[fdio-master]
+#name=fd.io master branch latest merge
+#baseurl=https://nexus.fd.io/content/repositories/fd.io.master.centos7/
+#enabled=1
+#gpgcheck=0
+#EOF
 
 # tar up the fd.io module
 rm -rf puppet-fdio
@@ -95,6 +81,15 @@ pushd puppet-tacker > /dev/null
 git archive --format=tar.gz --prefix=tacker/ HEAD > ../puppet-tacker.tar.gz
 popd > /dev/null
 
+# Master FD.IO Repo
+cat > /tmp/fdio.repo << EOF
+[fdio-master]
+name=fd.io master branch latest merge
+baseurl=https://nexus.fd.io/content/repositories/fd.io.master.centos7/
+enabled=1
+gpgcheck=0
+EOF
+
 # installing forked opnfv-puppet-tripleo
 # enable connection tracking for protocal sctp
 # upload dpdk rpms but do not install
@@ -105,38 +100,78 @@ popd > /dev/null
 # install fd.io yum repo and packages
 # upload puppet fdio
 # git clone vsperf into the overcloud image
-# upload tacker repo and install the packages
 # upload the tacker puppet module and untar it
 LIBGUESTFS_BACKEND=direct virt-customize \
     --upload ../opnfv-puppet-tripleo.tar.gz:/etc/puppet/modules \
+    --run-command "yum update -y python-ipaddress rabbitmq-server erlang*" \
     --run-command "if ! rpm -qa | grep python-redis; then yum install -y python-redis; fi" \
     --run-command "sed -i 's/^#UseDNS.*$/UseDNS no/' /etc/ssh/sshd_config" \
     --run-command "sed -i 's/^GSSAPIAuthentication.*$/GSSAPIAuthentication no/' /etc/ssh/sshd_config" \
     --run-command "cd /etc/puppet/modules && rm -rf tripleo && tar xzf opnfv-puppet-tripleo.tar.gz" \
     --run-command "echo 'nf_conntrack_proto_sctp' > /etc/modules-load.d/nf_conntrack_proto_sctp.conf" \
     --run-command "mkdir /root/dpdk_rpms" \
+    --upload /tmp/fdio.repo:/etc/yum.repos.d/fdio.repo \
     $dpdk_pkg_str \
+    --run-command "yum install --downloadonly --downloaddir=/root/fdio vpp vpp-devel vpp-lib vpp-python-api vpp-plugins" \
+    $fdio_pkg_str \
+    --upload ../noarch/$netvpp_pkg:/root/fdio \
+    --run-command "pip install distro flask_restful" \
+    --run-command "yum install -y etcd" \
+    --run-command "pip install python-etcd" \
+    --run-command "puppet module install cristifalcas/etcd" \
+    --run-command "yum update -y puppet" \
     --install "centos-release-qemu-ev" \
-    --run-command "yum update -y" \
+    --run-command "yum install -y qemu-kvm-ev-2.3.0-31.el7_2.21.1.x86_64" \
     --run-command "yum remove -y qemu-system-x86" \
     --upload ../os-net-config.tar.gz:/usr/lib/python2.7/site-packages \
     --run-command "cd /usr/lib/python2.7/site-packages/ && rm -rf os_net_config && tar xzf os-net-config.tar.gz" \
-    --install "$openstack_congress" \
+    --upload ../noarch/$congress_pkg:/root/ \
+    --install /root/$congress_pkg \
     --install "python2-congressclient" \
     --upload puppet-congress.tar.gz:/etc/puppet/modules/ \
     --run-command "cd /etc/puppet/modules/ && tar xzf puppet-congress.tar.gz" \
     --run-command "cd /usr/lib/python2.7/site-packages/congress/datasources && curl -O $doctor_driver" \
-    --run-command "sed -i \"s/'--detailed-exitcodes',/'--detailed-exitcodes','-l','syslog','-l','console',/g\" /var/lib/heat-config/hooks/puppet" \
-    --upload /tmp/fdio-master.repo:/etc/yum.repos.d/fdio-master.repo \
-    --install unzip,vpp,honeycomb \
+    --run-command "yum install -y /root/fdio/*.rpm" \
+    --run-command "rm -f /etc/sysctl.d/80-vpp.conf" \
+    --install unzip \
     --upload puppet-fdio.tar.gz:/etc/puppet/modules \
     --run-command "cd /etc/puppet/modules && tar xzf puppet-fdio.tar.gz" \
     --upload vsperf.tar.gz:/var/opt \
     --run-command "cd /var/opt && tar xzf vsperf.tar.gz" \
-    --upload /tmp/tacker.repo:/etc/yum.repos.d/ \
-    --install "openstack-tacker,python-tackerclient" \
     --upload puppet-tacker.tar.gz:/etc/puppet/modules/ \
     --run-command "cd /etc/puppet/modules/ && tar xzf puppet-tacker.tar.gz" \
+    --run-command "pip install python-senlinclient" \
+    --upload ../neutron/agent/interface/interface.py:/usr/lib/python2.7/site-packages/neutron/agent/linux/ \
+    --run-command "mkdir /root/fdio_neutron_l3" \
+    --upload ../neutron/agent/l3/namespaces.py:/root/fdio_neutron_l3/ \
+    --upload ../neutron/agent/l3/router_info.py:/root/fdio_neutron_l3/ \
+    --upload ../puppet-neutron/manifests/agents/ml2/networking-vpp.pp:/etc/puppet/modules/neutron/manifests/agents/ml2/ \
+    --upload ../puppet-neutron/manifests/plugins/ml2/networking-vpp.pp:/etc/puppet/modules/neutron/manifests/plugins/ml2/ \
+    --upload ../puppet-neutron/lib/puppet/type/neutron_agent_vpp.rb:/etc/puppet/modules/neutron/lib/puppet/type/ \
+    --mkdir /etc/puppet/modules/neutron/lib/puppet/provider/neutron_agent_vpp \
+    --upload ../puppet-neutron/lib/puppet/provider/neutron_agent_vpp/ini_setting.rb:/etc/puppet/modules/neutron/lib/puppet/provider/neutron_agent_vpp/ \
+    -a overcloud-full_build.qcow2
+
+rm -rf ovs_nsh_patches
+rm -rf ovs
+git clone https://github.com/yyang13/ovs_nsh_patches.git
+git clone https://github.com/openvswitch/ovs.git
+pushd ovs > /dev/null
+git reset --hard 7d433ae57ebb90cd68e8fa948a096f619ac4e2d8
+cp ../ovs_nsh_patches/*.patch ./
+# Hack for build servers that have no git config
+git config user.email "apex@opnfv.com"
+git config user.name "apex"
+git am *.patch
+popd > /dev/null
+tar czf ovs.tar.gz ovs
+
+# BUILD NSH OVS
+LIBGUESTFS_BACKEND=direct virt-customize \
+    --upload ../build_ovs_nsh.sh:/root/ \
+    --upload ovs.tar.gz:/root/ \
+    --run-command "cd /root/ && tar xzf ovs.tar.gz" \
+    --run-command "cd /root/ovs && /root/build_ovs_nsh.sh" \
     -a overcloud-full_build.qcow2
 
 mv -f overcloud-full_build.qcow2 overcloud-full.qcow2