diff options
36 files changed, 237 insertions, 288 deletions
diff --git a/build/Makefile b/build/Makefile index 1573ea94..c693e895 100644 --- a/build/Makefile +++ b/build/Makefile @@ -17,30 +17,30 @@ export RPMCOM = $(shell pwd)/noarch/opnfv-apex-common-$(RPMVERS)-$(shell echo ${ export RPMUDR = $(shell pwd)/noarch/opnfv-apex-undercloud-$(RPMVERS)-$(shell echo ${RELEASE} | tr -d '_-').noarch.rpm export RPMODL = $(shell pwd)/noarch/opnfv-apex-$(RPMVERS)-$(shell echo ${RELEASE} | tr -d '_-').noarch.rpm export RPMONO = $(shell pwd)/noarch/opnfv-apex-onos-$(RPMVERS)-$(shell echo ${RELEASE} | tr -d '_-').noarch.rpm -export RPMSFC = $(shell pwd)/noarch/opnfv-apex-opendaylight-sfc-$(RPMVERS)-$(shell echo ${RELEASE} | tr -d '_-').noarch.rpm .PHONY: all all: iso .PHONY: clean -clean: images-clean rpms-clean iso-clean tacker-clean congress-clean vpp-clean +clean: images-clean rpms-clean iso-clean tacker-clean tackerclient-clean congress-clean vpp-clean .PHONY: images -images: undercloud overcloud-full overcloud-opendaylight overcloud-onos overcloud-opendaylight-sfc +images: undercloud overcloud-full overcloud-opendaylight overcloud-onos .PHONY: images-clean -images-clean: undercloud-clean overcloud-full-clean overcloud-opendaylight-clean overcloud-onos-clean overcloud-opendaylight-sfc-clean - @rm -rf images/ +images-clean: undercloud-clean overcloud-full-clean overcloud-opendaylight-clean overcloud-onos-clean + rm -rf images/ .PHONY: rpms -rpms: common-rpm undercloud-rpm opendaylight-rpm onos-rpm opendaylight-sfc-rpm +rpms: common-rpm undercloud-rpm opendaylight-rpm onos-rpm .PHONY: rpms-check -rpms-check: common-rpm-check undercloud-rpm-check opendaylight-rpm-check onos-rpm-check opendaylight-sfc-rpm-check +rpms-check: common-rpm-check undercloud-rpm-check opendaylight-rpm-check onos-rpm-check .PHONY: rpms-clean -rpms-clean: common-rpm-clean undercloud-rpm-clean opendaylight-rpm-clean onos-rpm-clean opendaylight-sfc-rpm-clean +rpms-clean: common-rpm-clean undercloud-rpm-clean opendaylight-rpm-clean onos-rpm-clean + rm -rf noarch opnfv-apex-common.tar.gz: pushd ../ && git archive --format=tar.gz --prefix=opnfv-apex-common-$(RPMVERS)/ HEAD > build/opnfv-apex-common.tar.gz @@ -57,6 +57,9 @@ $(RPMCOM): # build the common RPM rpmbuild --clean -ba rpm_specs/opnfv-apex-common.spec -D '_topdir %(echo `pwd`)' -D '_builddir %(echo `pwd`)' -D '_sourcedir %(echo `pwd`)' -D '_rpmdir %(echo `pwd`)' -D '_specdir %(echo `pwd`)' -D '_srcrpmdir %(echo `pwd`)' -D "release $(shell echo $(RELEASE) | tr -d '_-')" +.PHONY: common-rpm-clean +common-rpm-clean: + ################## # PYTHON TESTS # ################## @@ -88,8 +91,8 @@ python-pep8-check: .PHONY: tacker-clean tacker-clean: - @rm -rf openstack-tacker-2015.2 - @rm -f openstack-tacker.tar.gz + rm -rf openstack-tacker-2015.2 + rm -f openstack-tacker.tar.gz openstack-tacker.tar.gz: @echo "Preparing the Tacker RPM prerequisites" @@ -108,10 +111,9 @@ openstack-tacker-2015.2-1.trozet.noarch.rpm: ################# .PHONY: tackerclient-clean - tackerclient-clean: - @rm -rf python-tackerclient-2015.2 - @rm -f python-tackerclient.tar.gz + rm -rf python-tackerclient-2015.2 + rm -f python-tackerclient.tar.gz python-tackerclient.tar.gz: @echo "Preparing the TackerClient RPM prerequisites" @@ -209,7 +211,9 @@ networking-vpp: .PHONY: undercloud-clean undercloud-clean: - @rm -f images/undercloud.* + rm -f images/undercloud.* + rm -rf opnfv-tht.tar.gz + rm -rf opnfv-tht/ .PHONY: undercloud undercloud: images/undercloud.qcow2 @@ -236,14 +240,21 @@ $(RPMUDR): @echo "Building the Apex Undercloud RPM" rpmbuild --clean -ba rpm_specs/opnfv-apex-undercloud.spec -D '_topdir %(echo `pwd`)' -D '_builddir %(echo `pwd`)' -D '_sourcedir %(echo `pwd`)' -D '_rpmdir %(echo `pwd`)' -D '_specdir %(echo `pwd`)' -D '_srcrpmdir %(echo `pwd`)' -D "release $(shell echo $(RELEASE) | tr -d '_-')" +.PHONY: undercloud-rpm-clean +undercloud-rpm-clean: + ############### # OVERCLOUD # ############### .PHONY: overcloud-full-clean overcloud-full-clean: - @rm -rf images/overcloud-full.d - @rm -f images/overcloud-full.* + rm -rf images/overcloud-full.d + rm -f images/overcloud-full.* + rm -rf opnfv-puppet-tripleo.tar.gz + rm -rf opnfv-puppet-tripleo/ + rm -rf os-net-config.tar.gz + rm -rf os-net-config/ .PHONY: overcloud-full overcloud-full: images/overcloud-full.qcow2 @@ -282,6 +293,9 @@ $(RPMODL): # build the overcloud RPM rpmbuild --clean -ba rpm_specs/opnfv-apex.spec -D '_topdir %(echo `pwd`)' -D '_builddir %(echo `pwd`)' -D '_sourcedir %(echo `pwd`)' -D '_rpmdir %(echo `pwd`)' -D '_specdir %(echo `pwd`)' -D '_srcrpmdir %(echo `pwd`)' -D "release $(shell echo $(RELEASE) | tr -d '_-')" +.PHONY: opendaylight-rpm-clean +opendaylight-rpm-clean: + ############### # ONOS # ############### @@ -301,7 +315,8 @@ images/overcloud-full-onos.qcow2: images/overcloud-full.qcow2 .PHONY: onos-rpm-clean onos-rpm-clean: - @rpmbuild --clean rpm_specs/opnfv-apex-onos.spec -D "release $(shell echo $RELEASE | tr -d '_-')" + @#rpmbuild --clean rpm_specs/opnfv-apex-onos.spec -D "release $(shell echo $RELEASE | tr -d '_-')" + rm -rf opnfv-apex-onos.tar.gz opnfv-apex-onos.tar.gz: images/overcloud-full-onos.qcow2 tar -czf opnfv-apex-onos.tar.gz --xform="s:images/overcloud-full-onos.qcow2:opnfv-apex-onos-$(RPMVERS)/build/images/overcloud-full-onos.qcow2:" images/overcloud-full-onos.qcow2 @@ -319,35 +334,6 @@ $(RPMONO): rpmbuild --clean -ba rpm_specs/opnfv-apex-onos.spec -D '_topdir %(echo `pwd`)' -D '_builddir %(echo `pwd`)' -D '_sourcedir %(echo `pwd`)' -D '_rpmdir %(echo `pwd`)' -D '_specdir %(echo `pwd`)' -D '_srcrpmdir %(echo `pwd`)' -D "release $(shell echo $(RELEASE) | tr -d '_-')" ############### -# ODL-SFC # -############### - -.PHONY: overcloud-opendaylight-sfc-clean -overcloud-opendaylight-sfc-clean: - @rm -f images/overcloud-full-opendaylight-sfc.qcow2 - -.PHONY: overcloud-opendaylight-sfc -overcloud-opendaylight-sfc: images/overcloud-full-opendaylight-sfc.qcow2 - -images/overcloud-full-opendaylight-sfc.qcow2: images/overcloud-full-opendaylight.qcow2 - @echo "Building the Apex OpenDaylight Overcloud Image" - @./overcloud-opendaylight-sfc.sh - -opnfv-apex-opendaylight-sfc.tar.gz: images/overcloud-full-opendaylight-sfc.qcow2 - tar -czf opnfv-apex-opendaylight-sfc.tar.gz --xform="s:images/overcloud-full-opendaylight-sfc.qcow2:opnfv-apex-opendaylight-sfc-$(RPMVERS)/build/images/overcloud-full-opendaylight-sfc.qcow2:" images/overcloud-full-opendaylight-sfc.qcow2 - -.PHONY: opendaylight-sfc-rpm-check -opendaylight-sfc-rpm-check: opnfv-apex-opendaylight-sfc.tar.gz - rpmbuild --clean -bi -bl rpm_specs/opnfv-apex-opendaylight-sfc.spec -D '_topdir %(echo `pwd`)' -D '_builddir %(echo `pwd`)' -D '_sourcedir %(echo `pwd`)' -D '_rpmdir %(echo `pwd`)' -D '_specdir %(echo `pwd`)' -D '_srcrpmdir %(echo `pwd`)' -D "release $(shell echo $(RELEASE) | tr -d '_-')" - -.PHONY: opendaylight-sfc-rpm -opendaylight-sfc-rpm: opnfv-apex-opendaylight-sfc.tar.gz $(RPMSFC) - -$(RPMSFC): - @echo "Building the Apex OpenDaylight SFC RPM" - rpmbuild --clean -ba rpm_specs/opnfv-apex-opendaylight-sfc.spec -D '_topdir %(echo `pwd`)' -D '_builddir %(echo `pwd`)' -D '_sourcedir %(echo `pwd`)' -D '_rpmdir %(echo `pwd`)' -D '_specdir %(echo `pwd`)' -D '_srcrpmdir %(echo `pwd`)' -D "release $(shell echo $(RELEASE) | tr -d '_-')" - -############### # ISO # ############### @@ -385,7 +371,6 @@ iso: iso-clean images rpms $(CENTISO) @ln $(RPMUDR) centos/Packages @ln $(RPMODL) centos/Packages @ln $(RPMONO) centos/Packages - @ln $(RPMSFC) centos/Packages # add packages to the centos packages cd centos/Packages && yumdownloader openvswitch cd centos/Packages && yumdownloader openstack-tripleo diff --git a/build/build_perf_image.sh b/build/build_perf_image.sh index 68a1804f..68f74ea2 100644 --- a/build/build_perf_image.sh +++ b/build/build_perf_image.sh @@ -41,3 +41,14 @@ if [ "$CATEGORY" == "kernel" ]; then fi fi +if [ "$CATEGORY" == "vpp" ]; then + if [ "$KEY" == "main-core" ]; then + sudo sed -i "/${ROLE}VPPMainCore:/c\ ${ROLE}VPPMainCore: '${VALUE}'" /usr/share/openstack-tripleo-heat-templates/environments/numa.yaml + fi + if [ "$KEY" == "corelist-workers" ]; then + sudo sed -i "/${ROLE}VPPCorelistWorkers:/c\ ${ROLE}VPPCorelistWorkers: '${VALUE}'" /usr/share/openstack-tripleo-heat-templates/environments/numa.yaml + fi + if [ "$KEY" == "uio-driver" ]; then + sudo sed -i "/${ROLE}UIODriver:/c\ ${ROLE}UIODriver: '${VALUE}'" /usr/share/openstack-tripleo-heat-templates/environments/numa.yaml + fi +fi
\ No newline at end of file diff --git a/build/c7-opnfv-x86_64-comps.xml b/build/c7-opnfv-x86_64-comps.xml index a9b0af0c..67a0e511 100644 --- a/build/c7-opnfv-x86_64-comps.xml +++ b/build/c7-opnfv-x86_64-comps.xml @@ -3,7 +3,7 @@ <comps> <group> <id>apex-opendaylight</id> - <name>OPNFV Apex OpenDaylight (non-sfc) Support</name> + <name>OPNFV Apex OpenDaylight Support</name> <description>Disk images and configuration files used to launch an Apex OpenDaylight deployment.</description> <default>false</default> <uservisible>false</uservisible> @@ -15,7 +15,7 @@ </group> <group> <id>apex-onos</id> - <name>OPNFV Apex ONOS (non-sfc) Support</name> + <name>OPNFV Apex ONOS Support</name> <description>Disk images and configuration files used to launch an Apex ONOS deployment.</description> <default>false</default> <uservisible>false</uservisible> @@ -26,18 +26,6 @@ </packagelist> </group> <group> - <id>apex-opendaylight-sfc</id> - <name>OPNFV Apex OpenDaylight SFC Support</name> - <description>Disk images and configuration files used to launch an Apex ODL SFC deployment.</description> - <default>false</default> - <uservisible>false</uservisible> - <packagelist> - <packagereq type="mandatory">opnfv-apex-opendaylight-sfc</packagereq> - <packagereq type="mandatory">opnfv-common</packagereq> - <packagereq type="mandatory">opnfv-undercloud</packagereq> - </packagelist> - </group> - <group> <id>additional-devel</id> <name>Additional Development</name> <name xml:lang="as">অতিৰিক্ত উন্নয়ন</name> @@ -7852,7 +7840,6 @@ <groupid>virtualization-tools</groupid> <groupid>apex-opendaylight</groupid> <groupid>apex-onos</groupid> - <groupid>apex-opendaylight-sfc</groupid> </grouplist> <optionlist> <groupid>virtualization-platform</groupid> @@ -7879,7 +7866,6 @@ <groupid>virtualization-tools</groupid> <groupid>apex-opendaylight</groupid> <groupid>apex-onos</groupid> - <groupid>apex-opendaylight-sfc</groupid> </grouplist> <optionlist> <groupid>kde-desktop</groupid> diff --git a/build/cache.sh b/build/cache.sh index 4d41a7a2..5c7e5e73 100644 --- a/build/cache.sh +++ b/build/cache.sh @@ -38,12 +38,15 @@ function curl_file { } # $1 = download url +# $2 = remote md5 function populate_cache { local my_md5 cache_dir # get the file name filename="${1##*/}" + # copy passed in md5 + remote_md5=$2 # check if the cache file exists # and if it has an md5 compare that @@ -53,7 +56,9 @@ function populate_cache { curl_file $1 $filename else echo "Cache file exists...comparing MD5 checksum" - remote_md5="$(curl -sf -L ${1}.md5 | awk {'print $1'})" + if [ -z $remote_md5 ]; then + remote_md5="$(curl -sf -L ${1}.md5 | awk {'print $1'})" + fi if [ -z "$remote_md5" ]; then echo "Got empty MD5 from remote for $filename, skipping MD5 check" curl_file $1 $filename diff --git a/build/overcloud-full.sh b/build/overcloud-full.sh index e35a89f1..fa4444a4 100755 --- a/build/overcloud-full.sh +++ b/build/overcloud-full.sh @@ -100,6 +100,7 @@ popd > /dev/null # 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" \ @@ -116,12 +117,12 @@ LIBGUESTFS_BACKEND=direct virt-customize \ --run-command "puppet module install cristifalcas/etcd" \ --run-command "yum update -y puppet" \ --install "centos-release-qemu-ev" \ - --run-command "yum update -y qemu-kvm-ev" \ + --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" \ - --upload ../noarch/openstack-congress-2016.1-1.el7.centos.noarch.rpm:/root/ \ - --install /root/openstack-congress-2016.1-1.el7.centos.noarch.rpm \ + --upload ../noarch/$openstack_congress_pkg:/root/ \ + --install /root/$openstack_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" \ @@ -162,23 +163,6 @@ git am *.patch popd > /dev/null tar czf ovs.tar.gz ovs -# Required packages to redirect stdin with virt-customize -virt_pkg_str="./$libguestfs_pkg " -wget $virt_uri_base/$libguestfs_pkg -for package in ${virt_pkgs[@]}; do - wget "$virt_uri_base/$package" - virt_pkg_str+=" ./$package" -done - -if ! sudo yum -y install ${virt_pkg_str}; then - if [ "$(rpm -q libguestfs)" != "$(rpm -qpf $libguestfs_pkg)" ]; then - echo "ERROR: Failed to update libguestfs" - exit 1 - fi -fi - - - # BUILD NSH OVS LIBGUESTFS_BACKEND=direct virt-customize \ --upload ../build_ovs_nsh.sh:/root/ \ diff --git a/build/overcloud-onos.sh b/build/overcloud-onos.sh index b695983a..921ad506 100755 --- a/build/overcloud-onos.sh +++ b/build/overcloud-onos.sh @@ -18,15 +18,9 @@ cp -f overcloud-full.qcow2 overcloud-full-onos_build.qcow2 ##### Adding ONOS to overcloud ##### ####################################### -# upgrade ovs into ovs 2.5.90 with NSH function -LIBGUESTFS_BACKEND=direct virt-customize --run-command "yum install -y /root/ovs/rpm/rpmbuild/RPMS/x86_64/${ovs_kmod_rpm_name}" \ - --run-command "yum upgrade -y /root/ovs/rpm/rpmbuild/RPMS/x86_64/${ovs_rpm_name}" \ - -a overcloud-full-onos_build.qcow2 - - # get the onos files rm -rf puppet-onos -populate_cache "$onos_release_uri/$onos_release_file" +populate_cache "$onos_release_uri/$onos_release_file" "$(curl https://downloads.onosproject.org/nightly/ | grep $onos_release_file | grep -o -e '[0-9a-f]\{32\}')" populate_cache "$onos_jdk_uri/jdk-8u51-linux-x64.tar.gz" LIBGUESTFS_BACKEND=direct virt-customize --upload $CACHE_DIR/$onos_release_file:/opt/ \ diff --git a/build/overcloud-opendaylight-sfc.sh b/build/overcloud-opendaylight-sfc.sh deleted file mode 100755 index 444d284a..00000000 --- a/build/overcloud-opendaylight-sfc.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh -############################################################################## -# Copyright (c) 2015 Tim Rozet (Red Hat), Dan Radez (Red Hat) and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## -set -e -source ./variables.sh -pushd images > /dev/null - -################################################ -##### Adding SFC+OpenDaylight overcloud ##### -################################################ - -#copy opendaylight overcloud full to odl-sfc -cp -f overcloud-full-opendaylight.qcow2 overcloud-full-opendaylight-sfc_build.qcow2 - -# upgrade ovs into ovs 2.5.90 with NSH function -LIBGUESTFS_BACKEND=direct virt-customize --run-command "yum install -y /root/ovs/rpm/rpmbuild/RPMS/x86_64/${ovs_kmod_rpm_name}" \ - --run-command "yum upgrade -y /root/ovs/rpm/rpmbuild/RPMS/x86_64/${ovs_rpm_name}" \ - -a overcloud-full-opendaylight-sfc_build.qcow2 - -mv overcloud-full-opendaylight-sfc_build.qcow2 overcloud-full-opendaylight-sfc.qcow2 -popd > /dev/null diff --git a/build/rpm_specs/opnfv-apex-common.spec b/build/rpm_specs/opnfv-apex-common.spec index 6ad5782f..33e14861 100644 --- a/build/rpm_specs/opnfv-apex-common.spec +++ b/build/rpm_specs/opnfv-apex-common.spec @@ -1,5 +1,5 @@ Name: opnfv-apex-common -Version: 3.0 +Version: 4.0 Release: %{release} Summary: Scripts for OPNFV deployment using RDO Manager @@ -136,6 +136,8 @@ install config/inventory/pod_example_settings.yaml %{buildroot}%{_docdir}/opnfv/ %doc %{_docdir}/opnfv/inventory.yaml.example %changelog +* Wed Nov 2 2016 Dan Radez <dradez@redhat.com> - 4.0-1 +- Version update for Danube * Fri Sep 16 2016 Dan Radez <dradez@redhat.com> - 3.0-13 - adding bash completion script * Tue Aug 30 2016 Tim Rozet <trozet@redhat.com> - 3.0-12 diff --git a/build/rpm_specs/opnfv-apex-onos.spec b/build/rpm_specs/opnfv-apex-onos.spec index e99bfa9a..ef1c66da 100644 --- a/build/rpm_specs/opnfv-apex-onos.spec +++ b/build/rpm_specs/opnfv-apex-onos.spec @@ -1,5 +1,5 @@ Name: opnfv-apex-onos -Version: 3.0 +Version: 4.0 Release: %{release} Summary: Overcloud Disk images for OPNFV Apex ONOS deployment @@ -28,6 +28,8 @@ install build/images/overcloud-full-onos.qcow2 %{buildroot}%{_var}/opt/opnfv/ima %{_var}/opt/opnfv/images/overcloud-full-onos.qcow2 %changelog +* Wed Nov 2 2016 Dan Radez <dradez@redhat.com> - 4.0-1 +- Version update for Danube * Mon Apr 04 2016 Dan Radez <dradez@redhat.com> - 3.0-0 - Version update for Colorado * Mon Mar 07 2016 Dan Radez <dradez@redhat.com> - 2.1-1 diff --git a/build/rpm_specs/opnfv-apex-opendaylight-sfc.spec b/build/rpm_specs/opnfv-apex-opendaylight-sfc.spec deleted file mode 100644 index a63ec7c5..00000000 --- a/build/rpm_specs/opnfv-apex-opendaylight-sfc.spec +++ /dev/null @@ -1,34 +0,0 @@ -Name: opnfv-apex-opendaylight-sfc -Version: 3.0 -Release: %{release} -Summary: Overcloud Disk images for OPNFV Apex OpenDaylight with SFC deployment - -Group: System Environment -License: Apache 2.0 -URL: https://gerrit.opnfv.org/gerrit/apex.git -Source0: opnfv-apex-opendaylight-sfc.tar.gz - -Provides: opnfv-apex-sdn -BuildArch: noarch -Requires: opnfv-apex-common opnfv-apex-undercloud - -%description -Overcloud Disk images for OPNFV Apex OpenDaylight with SFC deployment -https://wiki.opnfv.org/apex - -%prep -%setup -q - -%install -mkdir -p %{buildroot}%{_var}/opt/opnfv/images/ -install build/images/overcloud-full-opendaylight-sfc.qcow2 %{buildroot}%{_var}/opt/opnfv/images/ - -%files -%defattr(644, root, root, -) -%{_var}/opt/opnfv/images/overcloud-full-opendaylight-sfc.qcow2 - -%changelog -* Mon Apr 04 2016 Dan Radez <dradez@redhat.com> - 3.0-0 -- Version update for Colorado -* Tue Jan 19 2016 Dan Radez <dradez@redhat.com> - 2.1-1 -- Initial Packaging diff --git a/build/rpm_specs/opnfv-apex-undercloud.spec b/build/rpm_specs/opnfv-apex-undercloud.spec index 7b688b55..54b8acc1 100644 --- a/build/rpm_specs/opnfv-apex-undercloud.spec +++ b/build/rpm_specs/opnfv-apex-undercloud.spec @@ -1,5 +1,5 @@ Name: opnfv-apex-undercloud -Version: 3.0 +Version: 4.0 Release: %{release} Summary: Scripts and Disk images to launch the Undercloud for OPNFV Apex @@ -35,6 +35,8 @@ install build/nics-template.yaml.jinja2 %{buildroot}%{_var}/opt/opnfv/ %changelog +* Wed Nov 2 2016 Dan Radez <dradez@redhat.com> - 4.0-1 +- Version update for Danube * Tue May 24 2016 Tim Rozet <trozet@redhat.com> - 3.0-1 - Adds jinja2 nic templates * Mon Apr 04 2016 Dan Radez <dradez@redhat.com> - 3.0-0 diff --git a/build/rpm_specs/opnfv-apex.spec b/build/rpm_specs/opnfv-apex.spec index acc8a53e..1844d8c5 100644 --- a/build/rpm_specs/opnfv-apex.spec +++ b/build/rpm_specs/opnfv-apex.spec @@ -1,5 +1,5 @@ Name: opnfv-apex -Version: 3.0 +Version: 4.0 Release: %{release} Summary: Overcloud Disk images for OPNFV Apex OpenDaylight deployment @@ -28,6 +28,8 @@ install build/images/overcloud-full-opendaylight.qcow2 %{buildroot}%{_var}/opt/o %{_var}/opt/opnfv/images/overcloud-full-opendaylight.qcow2 %changelog +* Wed Nov 2 2016 Dan Radez <dradez@redhat.com> - 4.0-1 +- Version update for Danube * Mon Apr 04 2016 Dan Radez <dradez@redhat.com> - 3.0-0 - Version update for Colorado * Wed Jan 20 2016 Dan Radez <dradez@redhat.com> - 2.1-4 diff --git a/build/variables.sh b/build/variables.sh index e536600b..c4ac16c8 100644 --- a/build/variables.sh +++ b/build/variables.sh @@ -14,6 +14,7 @@ onos_release_file=onos-1.6.0-rc2.tar.gz onos_jdk_uri=http://artifacts.opnfv.org/apex/colorado onos_ovs_uri=http://artifacts.opnfv.org/apex/colorado onos_ovs_pkg=package_ovs_rpm3.tar.gz +openstack_congress_pkg="openstack-congress-2016.1-1$(rpm -E '%dist').noarch.rpm" doctor_driver=https://raw.githubusercontent.com/openstack/congress/master/congress/datasources/doctor_driver.py if [ -z ${GS_PATHNAME+x} ]; then GS_PATHNAME=/colorado @@ -35,19 +36,3 @@ fdio_pkgs=( 'vpp-python-api-16.09-release.x86_64.rpm' ) honeycomb_pkg='honeycomb-1.16.9-FINAL.noarch.rpm' - - -ovs_rpm_name=openvswitch-2.5.90-1.el7.centos.x86_64.rpm -ovs_kmod_rpm_name=openvswitch-kmod-2.5.90-1.el7.centos.x86_64.rpm - -virt_uri_base=https://people.redhat.com/~rjones/libguestfs-RHEL-7.3-preview -libguestfs_pkg='libguestfs-1.32.7-3.el7.x86_64.rpm' -virt_pkgs=( -'libguestfs-tools-1.32.7-3.el7.noarch.rpm' -'libguestfs-tools-c-1.32.7-3.el7.x86_64.rpm' -'supermin-5.1.16-4.el7.x86_64.rpm' -'supermin5-5.1.16-4.el7.x86_64.rpm' -'supermin-helper-5.1.16-4.el7.x86_64.rpm' -'perl-Sys-Guestfs-1.32.7-3.el7.x86_64.rpm' -'python-libguestfs-1.32.7-3.el7.x86_64.rpm' -) diff --git a/ci/PR_revision.log b/ci/PR_revision.log index 16cf08f8..4886ee8e 100644 --- a/ci/PR_revision.log +++ b/ci/PR_revision.log @@ -45,3 +45,6 @@ 86,Moves sdnvpn config to env file 87,Pass vlan flag to fdio module when vlan is used for tenant network 88,Default tenant_nic to its physical name +89,Add enic workaround for UCS with OVS DPDK +90,removing /%(tenantid)s from tacker heat_uri +94,Add defaults to vpp_main_core and vpp_corelist_workers
\ No newline at end of file diff --git a/ci/build.sh b/ci/build.sh index f3ab497d..f1333ce4 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -132,9 +132,6 @@ if [[ "$MAKE_TARGETS" == "images" ]]; then if [[ $commit_file_list == *build/rpm_specs/opnfv-apex-onos.spec* ]]; then MAKE_TARGETS+=" onos-rpm-check" fi - if [[ $commit_file_list == *build/rpm_specs/opnfv-apex-opendaylight-sfc.spec* ]]; then - MAKE_TARGETS+=" opendaylight-sfc-rpm-check" - fi fi fi diff --git a/ci/clean.sh b/ci/clean.sh index c00a4df2..1e5e320e 100755 --- a/ci/clean.sh +++ b/ci/clean.sh @@ -30,8 +30,8 @@ for lib in common-functions parse-functions; do done vm_index=4 -ovs_bridges="br-admin br-tenant br-public br-storage" -ovs_bridges+=" br-private br-external" # Legecy names, remove in E river +ovs_bridges="br-admin br-tenant br-external br-storage" +ovs_bridges+=" br-private br-public" # Legacy names, remove in E river #OPNFV_NETWORK_TYPES=$(python3 -c 'from apex.common.constants import OPNFV_NETWORK_TYPES; print(" ".join(OPNFV_NETWORK_TYPES))') OPNFV_NETWORK_TYPES+=" admin tenant external storage api" diff --git a/ci/deploy.sh b/ci/deploy.sh index edc6062a..6d3ded02 100755 --- a/ci/deploy.sh +++ b/ci/deploy.sh @@ -24,10 +24,12 @@ green=$(tput setaf 2 || echo "") interactive="FALSE" ping_site="8.8.8.8" -ntp_server="pool.ntp.org" post_config="TRUE" debug="FALSE" +ovs_rpm_name=openvswitch-2.5.90-1.el7.centos.x86_64.rpm +ovs_kmod_rpm_name=openvswitch-kmod-2.5.90-1.el7.centos.x86_64.rpm + declare -i CNT declare UNDERCLOUD declare -A deploy_options_array diff --git a/ci/dev_deploy_check.sh b/ci/dev_dep_check.sh index 0ce135ad..a15eb8b9 100755 --- a/ci/dev_deploy_check.sh +++ b/ci/dev_dep_check.sh @@ -51,3 +51,24 @@ easy_install-3.4 jinja2 # TODO(cgoncalves): remove once congress RPM is downloaded from upstream easy_install-3.4 tox + +# Required packages to redirect stdin with virt-customize +virt_uri_base=https://people.redhat.com/~rjones/libguestfs-RHEL-7.3-preview +virt_pkgs=( +'libguestfs-1.32.7-3.el7.x86_64.rpm' +'libguestfs-tools-1.32.7-3.el7.noarch.rpm' +'libguestfs-tools-c-1.32.7-3.el7.x86_64.rpm' +'supermin-5.1.16-4.el7.x86_64.rpm' +'supermin5-5.1.16-4.el7.x86_64.rpm' +'supermin-helper-5.1.16-4.el7.x86_64.rpm' +'perl-Sys-Guestfs-1.32.7-3.el7.x86_64.rpm' +'python-libguestfs-1.32.7-3.el7.x86_64.rpm' +) + +for pkg in ${virt_pkgs[@]}; do + if ! rpm -q ${pkg%-*-*}; then + if ! sudo yum -y install $virt_uri_base/$pkg; then + echo "ERROR: Failed to update $pkg" + fi + fi +done diff --git a/ci/run_smoke_tests.sh b/ci/run_smoke_tests.sh index b0599527..8985ed86 100755 --- a/ci/run_smoke_tests.sh +++ b/ci/run_smoke_tests.sh @@ -2,4 +2,7 @@ source ../lib/utility-functions.sh +export ANSIBLE_HOST_KEY_CHECKING=False + +echo 'See ~stack/smoke-tests.out on the undercloud for result log' ansible-playbook -i "$(get_undercloud_ip)," ../tests/smoke_tests/smoke_tests.yml diff --git a/config/deploy/os-nosdn-fdio-noha.yaml b/config/deploy/os-nosdn-fdio-noha.yaml index 4d27ae87..dd87803d 100644 --- a/config/deploy/os-nosdn-fdio-noha.yaml +++ b/config/deploy/os-nosdn-fdio-noha.yaml @@ -15,9 +15,21 @@ deploy_options: kernel: hugepages: 1024 hugepagesz: 2M + intel_iommu: 'on' + iommu: pt + isolcpus: 1,2 + vpp: + main-core: 1 + corelist-workers: 2 + uio-driver: uio_pci_generic Compute: kernel: hugepagesz: 2M hugepages: 2048 intel_iommu: 'on' iommu: pt + isolcpus: 1,2 + vpp: + main-core: 1 + corelist-workers: 2 + uio-driver: uio_pci_generic diff --git a/config/deploy/os-odl_l2-fdio-ha.yaml b/config/deploy/os-odl_l2-fdio-ha.yaml index f1297e82..82836573 100644 --- a/config/deploy/os-odl_l2-fdio-ha.yaml +++ b/config/deploy/os-odl_l2-fdio-ha.yaml @@ -16,9 +16,21 @@ deploy_options: kernel: hugepages: 1024 hugepagesz: 2M + intel_iommu: 'on' + iommu: pt + isolcpus: 1,2 + vpp: + main-core: 1 + corelist-workers: 2 + uio-driver: uio_pci_generic Compute: kernel: hugepagesz: 2M hugepages: 2048 intel_iommu: 'on' iommu: pt + isolcpus: 1,2 + vpp: + main-core: 1 + corelist-workers: 2 + uio-driver: uio_pci_generic diff --git a/config/deploy/os-odl_l2-fdio-noha.yaml b/config/deploy/os-odl_l2-fdio-noha.yaml index 207c6f34..53d6181a 100644 --- a/config/deploy/os-odl_l2-fdio-noha.yaml +++ b/config/deploy/os-odl_l2-fdio-noha.yaml @@ -18,9 +18,19 @@ deploy_options: hugepagesz: 2M intel_iommu: 'on' iommu: pt + isolcpus: 1,2 + vpp: + main-core: 1 + corelist-workers: 2 + uio-driver: uio_pci_generic Compute: kernel: hugepagesz: 2M hugepages: 2048 intel_iommu: 'on' iommu: pt + isolcpus: 1,2 + vpp: + main-core: 1 + corelist-workers: 2 + uio-driver: uio_pci_generic diff --git a/config/network/network_settings.yaml b/config/network/network_settings.yaml index ab9ed962..6cf9ae80 100644 --- a/config/network/network_settings.yaml +++ b/config/network/network_settings.yaml @@ -56,6 +56,7 @@ syslog: server: 10.128.1.24 transport: 'tcp' +# Common network settings networks: # Network configurations admin: # Admin configuration (pxe and jumpstart), enabled: true @@ -67,7 +68,9 @@ networks: # Network configurations ip: 192.0.2.1 # IP to assign to Installer VM on this network usable_ip_range: - 192.0.2.11 - - 192.0.2.99 # Usable ip range, if empty entire range is usable + - 192.0.2.99 # Usable ip range for the overcloud node IPs (including VIPs) and last IP will be + # used for host bridge (i.e. br-admin). If empty entire range is usable. + # Cannot overlap with dhcp_range or introspection_range. gateway: 192.0.2.1 # Gateway (only needed when public_network is disabled) cidr: 192.0.2.0/24 # Subnet in CIDR format 192.168.1.0/24 dhcp_range: @@ -79,14 +82,14 @@ networks: # Network configurations members: # Physical NIC members of this mapping (Single value allowed for interface phys_type) - nic1 controller: # Mapping for controller profile (nodes that will be used as Controller nodes) - phys_type: bond + phys_type: interface members: - nic1 # tenant: # Tenant network configuration enabled: true cidr: 11.0.0.0/24 # Subnet in CIDR format 192.168.1.0/24 - mtu: 64000 # Tenant network MTU + mtu: 1500 # Tenant network MTU overlay_id_range: 2,65535 # Tenant network Overlay segmentation ID range: # VNI, VLAN-ID, etc. segmentation_type: vxlan # Tenant network segmentation type: @@ -106,7 +109,7 @@ networks: # Network configurations external: # Can contain 1 or more external networks - public: # "public" network will be the network the installer VM attaches to enabled: true - mtu: 64000 # Public network MTU + mtu: 1500 # Public network MTU installer_vm: # Network settings for the Installer VM on admin network (note only valid on 'public' external network) nic_type: interface # Indicates if this VM will be bridged to an interface, or to a bond vlan: native @@ -117,10 +120,11 @@ networks: # Network configurations gateway: 192.168.37.1 floating_ip_range: - 192.168.37.200 - - 192.168.37.220 #Range to allocate to floating IPs for the public network with Neutron + - 192.168.37.220 # Range to allocate to floating IPs for the public network with Neutron usable_ip_range: - 192.168.37.10 - - 192.168.37.199 # Usable IP range on the public network, usually this is a shared subnet + - 192.168.37.199 # Usable ip range for the overcloud node IPs (including VIPs) and last IP will be used for host + # bridge (i.e. br-public). If empty entire range is usable. Cannot overlap with dhcp_range or introspection_range. nic_mapping: # Mapping of network configuration for Overcloud Nodes compute: # Mapping for compute profile (nodes that will be used as Compute nodes) phys_type: interface # Physical interface type (interface or bond) @@ -138,7 +142,7 @@ networks: # Network configurations gateway: 192.168.37.1 - private_cloud: # another external network enabled: false - mtu: 64000 + mtu: 1500 installer_vm: # Network settings for the Installer VM on admin network (note only valid on 'public' external network) nic_type: interface # Indicates if this VM will be bridged to an interface, or to a bond vlan: 101 @@ -149,10 +153,11 @@ networks: # Network configurations gateway: 192.168.38.1 floating_ip_range: - 192.168.38.200 - - 192.168.38.220 #Range to allocate to floating IPs for the public network with Neutron + - 192.168.38.220 # Range to allocate to floating IPs for the public network with Neutron usable_ip_range: - 192.168.38.10 - - 192.168.38.199 # Usable IP range on the public network, usually this is a shared subnet + - 192.168.38.199 # Usable IP range for overcloud nodes (including VIPs), usually this is a shared subnet. + # Cannot overlap with dhcp_range or introspection_range. nic_mapping: # Mapping of network configuration for Overcloud Nodes compute: # Mapping for compute profile (nodes that will be used as Compute nodes) phys_type: interface # Physical interface type (interface or bond) @@ -173,15 +178,15 @@ networks: # Network configurations storage: # Storage network configuration enabled: true cidr: 12.0.0.0/24 # Subnet in CIDR format - mtu: 64000 # Tenant network MTU + mtu: 1500 # Storage network MTU nic_mapping: # Mapping of network configuration for Overcloud Nodes compute: # Mapping for compute profile (nodes that will be used as Compute nodes) - phys_type: bond # Physical interface type (interface or bond) + phys_type: interface # Physical interface type (interface or bond) vlan: native # VLAN tag to use with this NIC members: # Physical NIC members of this mapping (Single value allowed for interface phys_type) - nic4 # Note, for Apex you may also use the logical nic name (found by nic order), such as "nic1" controller: # Mapping for controller profile (nodes that will be used as Controller nodes) - phys_type: bond + phys_type: interface vlan: native members: - nic4 @@ -190,31 +195,23 @@ networks: # Network configurations enabled: false cidr: fd00:fd00:fd00:4000::/64 # Subnet in CIDR format vlan: 13 # VLAN tag to use for Overcloud hosts on this network - mtu: 64000 # Tenant network MTU + mtu: 1500 # Api network MTU nic_mapping: # Mapping of network configuration for Overcloud Nodes compute: # Mapping for compute profile (nodes that will be used as Compute nodes) - phys_type: bond # Physical interface type (interface or bond) + phys_type: interface # Physical interface type (interface or bond) vlan: native # VLAN tag to use with this NIC members: # Physical NIC members of this mapping (Single value allowed for interface phys_type) - nic5 # Note, for Apex you may also use the logical nic name (found by nic order), such as "nic1" controller: # Mapping for controller profile (nodes that will be used as Controller nodes) - phys_type: bond + phys_type: interface vlan: native members: - nic5 -# JOID specific settings -joid: - -# Compass specific settings -compass: - # Apex specific settings apex: networks: admin: introspection_range: - 192.0.2.100 - - 192.0.2.120 # Range used for introspection phase (examining nodes) -# Fuel specific settings -fuel: + - 192.0.2.120 # Range used for introspection phase (examining nodes). This cannot overlap with dhcp_range or usable_ip_range. diff --git a/config/network/network_settings_v6.yaml b/config/network/network_settings_v6.yaml index bfce3ab4..b12614f1 100644 --- a/config/network/network_settings_v6.yaml +++ b/config/network/network_settings_v6.yaml @@ -56,6 +56,7 @@ syslog: server: 10.128.1.24 transport: 'tcp' +# Common network settings networks: # Network configurations admin: # Admin configuration (pxe and jumpstart), enabled: true @@ -67,26 +68,29 @@ networks: # Network configurations ip: 192.0.2.1 # IP to assign to Installer VM on this network usable_ip_range: - 192.0.2.11 - - 192.0.2.99 # Usable ip range, if empty entire range is usable + - 192.0.2.99 # Usable ip range for the overcloud node IPs (including VIPs) and last IP will be + # used for host bridge (i.e. br-admin). + # If empty entire range is usable. Cannot overlap with dhcp_range or introspection_range. gateway: 192.0.2.1 # Gateway (only needed when public_network is disabled) cidr: 192.0.2.0/24 # Subnet in CIDR format 192.168.1.0/24 dhcp_range: - 192.0.2.2 - - 192.0.2.10 # DHCP range for the admin network, if empty it will be automatically provisioned + - 192.0.2.10 # DHCP range for the admin network, if empty it will be automatically provisioned. + # Cannot overlap with usable_ip_range or introspection_range. nic_mapping: # Mapping of network configuration for Overcloud Nodes compute: # Mapping for compute profile (nodes that will be used as Compute nodes) phys_type: interface # Physical interface type (interface or bond) members: # Physical NIC members of this mapping (Single value allowed for interface phys_type) - nic1 controller: # Mapping for controller profile (nodes that will be used as Controller nodes) - phys_type: bond + phys_type: interface members: - nic1 # tenant: # Tenant network configuration enabled: true cidr: 11.0.0.0/24 # Subnet in CIDR format 192.168.1.0/24 - mtu: 64000 # Tenant network MTU + mtu: 1500 # Tenant network MTU overlay_id_range: 2,65535 # Tenant network Overlay segmentation ID range: # VNI, VLAN-ID, etc. segmentation_type: vxlan # Tenant network segmentation type: @@ -106,7 +110,7 @@ networks: # Network configurations external: # Can contain 1 or more external networks - public: # "public" network will be the network the installer VM attaches to enabled: true - mtu: 64000 # Public network MTU + mtu: 1500 # Public network MTU installer_vm: # Network settings for the Installer VM on admin network (note only valid on 'public' external network) nic_type: interface # Indicates if this VM will be bridged to an interface, or to a bond vlan: native @@ -117,7 +121,7 @@ networks: # Network configurations gateway: 2001:db8::1 floating_ip_range: - 2001:db8:0:0:0:0:0:2 - - 2001:db8:0:0:ffff:ffff:ffff:ffff + - 2001:db8:0:0:ffff:ffff:ffff:ffff # Floating IPs range to assign to the overcloud (External IPs to be NAT'ed to Tenant IP) nic_mapping: # Mapping of network configuration for Overcloud Nodes compute: # Mapping for compute profile (nodes that will be used as Compute nodes) phys_type: interface # Physical interface type (interface or bond) @@ -137,15 +141,15 @@ networks: # Network configurations storage: # Storage network configuration enabled: true cidr: fd00:fd00:fd00:2000::/64 # Subnet in CIDR format - mtu: 64000 # Tenant network MTU + mtu: 1500 # Storage network MTU nic_mapping: # Mapping of network configuration for Overcloud Nodes compute: # Mapping for compute profile (nodes that will be used as Compute nodes) - phys_type: bond # Physical interface type (interface or bond) + phys_type: interface # Physical interface type (interface or bond) vlan: native # VLAN tag to use with this NIC members: # Physical NIC members of this mapping (Single value allowed for interface phys_type) - nic4 # Note, for Apex you may also use the logical nic name (found by nic order), such as "nic1" controller: # Mapping for controller profile (nodes that will be used as Controller nodes) - phys_type: bond + phys_type: interface vlan: native members: - nic4 @@ -154,31 +158,23 @@ networks: # Network configurations enabled: true cidr: fd00:fd00:fd00:4000::/64 # Subnet in CIDR format vlan: 13 # VLAN tag to use for Overcloud hosts on this network - mtu: 64000 # Tenant network MTU + mtu: 1500 # Api network MTU nic_mapping: # Mapping of network configuration for Overcloud Nodes compute: # Mapping for compute profile (nodes that will be used as Compute nodes) - phys_type: bond # Physical interface type (interface or bond) - vlan: native # VLAN tag to use with this NIC + phys_type: interface # Physical interface type (interface or bond) + vlan: native # VLAN tag to use with this NIC members: # Physical NIC members of this mapping (Single value allowed for interface phys_type) - nic5 # Note, for Apex you may also use the logical nic name (found by nic order), such as "nic1" controller: # Mapping for controller profile (nodes that will be used as Controller nodes) - phys_type: bond + phys_type: interface vlan: native members: - nic5 -# JOID specific settings -joid: - -# Compass specific settings -compass: - # Apex specific settings apex: networks: admin: introspection_range: - 192.0.2.100 - - 192.0.2.120 # Range used for introspection phase (examining nodes) -# Fuel specific settings -fuel: + - 192.0.2.120 # Range used for introspection phase (examining nodes). This cannot overlap with dhcp_range or usable_ip_range. diff --git a/config/network/network_settings_vlans.yaml b/config/network/network_settings_vlans.yaml index beeae477..c5143641 100644 --- a/config/network/network_settings_vlans.yaml +++ b/config/network/network_settings_vlans.yaml @@ -56,6 +56,7 @@ syslog: server: 10.128.1.24 transport: 'tcp' +# Common network settings networks: # Network configurations admin: # Admin configuration (pxe and jumpstart), enabled: true @@ -67,26 +68,29 @@ networks: # Network configurations ip: 192.0.2.1 # IP to assign to Installer VM on this network usable_ip_range: - 192.0.2.11 - - 192.0.2.99 # Usable ip range, if empty entire range is usable + - 192.0.2.99 # Usable ip range for the overcloud node IPs (including VIPs) and last IP will be + # used for host bridge (i.e. br-admin). If empty entire range is usable. + # Cannot overlap with dhcp_range. gateway: 192.0.2.1 # Gateway (only needed when public_network is disabled) cidr: 192.0.2.0/24 # Subnet in CIDR format 192.168.1.0/24 dhcp_range: - 192.0.2.2 - - 192.0.2.10 # DHCP range for the admin network, if empty it will be automatically provisioned + - 192.0.2.10 # DHCP range for the admin network, if empty it will be automatically provisioned. + # Cannot overlap with usable_ip_range or introspection_range. nic_mapping: # Mapping of network configuration for Overcloud Nodes compute: # Mapping for compute profile (nodes that will be used as Compute nodes) phys_type: interface # Physical interface type (interface or bond) members: # Physical NIC members of this mapping (Single value allowed for interface phys_type) - nic1 controller: # Mapping for controller profile (nodes that will be used as Controller nodes) - phys_type: bond + phys_type: interface members: - nic1 # tenant: # Tenant network configuration enabled: true cidr: 11.0.0.0/24 # Subnet in CIDR format 192.168.1.0/24 - mtu: 64000 # Tenant network MTU + mtu: 1500 # Tenant network MTU overlay_id_range: 2,65535 # Tenant network Overlay segmentation ID range: # VNI, VLAN-ID, etc. segmentation_type: vxlan # Tenant network segmentation type: @@ -106,7 +110,7 @@ networks: # Network configurations external: # Can contain 1 or more external networks - public: # "public" network will be the network the installer VM attaches to enabled: true - mtu: 64000 # Public network MTU + mtu: 1500 # Public network MTU installer_vm: # Network settings for the Installer VM on admin network (note only valid on 'public' external network) nic_type: interface # Indicates if this VM will be bridged to an interface, or to a bond vlan: 501 @@ -138,7 +142,7 @@ networks: # Network configurations gateway: 192.168.37.1 - private_cloud: # another external network enabled: false - mtu: 64000 + mtu: 1500 installer_vm: # Network settings for the Installer VM on admin network (note only valid on 'public' external network) nic_type: interface # Indicates if this VM will be bridged to an interface, or to a bond vlan: 501 @@ -152,7 +156,9 @@ networks: # Network configurations - 192.168.38.220 # Range to allocate to floating IPs for the public network with Neutron usable_ip_range: - 192.168.38.10 - - 192.168.38.199 # Usable IP range on the public network, usually this is a shared subnet + - 192.168.38.199 # Usable ip range for the overcloud node IPs (including VIPs) and last IP will be used for host + # bridge (i.e. br-public). If empty entire range is usable. + # Cannot overlap with dhcp_range or introspection_range. nic_mapping: # Mapping of network configuration for Overcloud Nodes compute: # Mapping for compute profile (nodes that will be used as Compute nodes) phys_type: interface # Physical interface type (interface or bond) @@ -173,15 +179,15 @@ networks: # Network configurations storage: # Storage network configuration enabled: true cidr: 12.0.0.0/24 # Subnet in CIDR format - mtu: 64000 # Tenant network MTU + mtu: 1500 # Storage network MTU nic_mapping: # Mapping of network configuration for Overcloud Nodes compute: # Mapping for compute profile (nodes that will be used as Compute nodes) - phys_type: bond # Physical interface type (interface or bond) + phys_type: interface # Physical interface type (interface or bond) vlan: 201 # VLAN tag to use with this NIC members: # Physical NIC members of this mapping (Single value allowed for interface phys_type) - nic4 # Note, for Apex you may also use the logical nic name (found by nic order), such as "nic1" controller: # Mapping for controller profile (nodes that will be used as Controller nodes) - phys_type: bond + phys_type: interface vlan: 201 members: - nic4 @@ -189,31 +195,23 @@ networks: # Network configurations api: # API network configuration enabled: false cidr: fd00:fd00:fd00:4000::/64 # Subnet in CIDR format - mtu: 64000 # Tenant network MTU + mtu: 1500 # Api network MTU nic_mapping: # Mapping of network configuration for Overcloud Nodes compute: # Mapping for compute profile (nodes that will be used as Compute nodes) - phys_type: bond # Physical interface type (interface or bond) + phys_type: interface # Physical interface type (interface or bond) vlan: 101 # VLAN tag to use with this NIC members: # Physical NIC members of this mapping (Single value allowed for interface phys_type) - nic5 # Note, for Apex you may also use the logical nic name (found by nic order), such as "nic1" controller: # Mapping for controller profile (nodes that will be used as Controller nodes) - phys_type: bond + phys_type: interface vlan: 101 members: - nic5 -# JOID specific settings -joid: - -# Compass specific settings -compass: - # Apex specific settings apex: networks: admin: introspection_range: - 192.0.2.100 - - 192.0.2.120 # Range used for introspection phase (examining nodes) -# Fuel specific settings -fuel: + - 192.0.2.120 # Range used for introspection phase (examining nodes). This cannot overlap with dhcp_range or usable_ip_range. diff --git a/docs/installationprocedure/baremetal.rst b/docs/installationprocedure/baremetal.rst index 2de6e8a8..878a49d7 100644 --- a/docs/installationprocedure/baremetal.rst +++ b/docs/installationprocedure/baremetal.rst @@ -119,7 +119,6 @@ Install Bare Metal Jumphost - opnfv-apex - OpenDaylight L2 / L3 and ONOS support * - opnfv-apex-onos - ONOS support * - - opnfv-apex-opendaylight-sfc - OpenDaylight SFC support * - opnfv-apex-undercloud - (reqed) Undercloud Image - opnfv-apex-common - (reqed) Supporting config files and scripts - python34-markupsafe - (reqed) Dependency of opnfv-apex-common ** @@ -127,9 +126,9 @@ Install Bare Metal Jumphost - python3-ipmi - (reqed) Dependency of opnfv-apex-common ** \* One or more of these RPMs is required - Only one of opnfv-apex, opnfv-apex-onos and opnfv-apex-opendaylight-sfc is - required. It is safe to leave the unneeded SDN controller's RPMs - uninstalled if you do not intend to use them. + Only one of opnfv-apex or opnfv-apex-onos is required. It is safe to leave + the unneeded SDN controller's RPMs uninstalled if you do not intend to use + them. ** These RPMs are not yet distributed by CentOS or EPEL. Apex has built these for distribution with Apex while CentOS and EPEL do @@ -185,18 +184,20 @@ IPMI configuration information gathered in section - ``ipmi_user``: IPMI username - ``ipmi_password``: IPMI password - ``pm_type``: Power Management driver to use for the node + values: pxe_ipmitool (tested) or pxe_wol (untested) or pxe_amt (untested) - ``cpus``: (Introspected*) CPU cores available - ``memory``: (Introspected*) Memory available in Mib - ``disk``: (Introspected*) Disk space available in Gb - ``arch``: (Introspected*) System architecture - - ``capabilities``: (Opt**) Node role (profile:control or profile:compute) + - ``capabilities``: (Opt**) Node's role in deployment + values: profile:control or profile:compute -\* *Introspection looks up the overcloud node's resources and overrides these + \* Introspection looks up the overcloud node's resources and overrides these value. You can leave default values and Apex will get the correct values when - it runs introspection on the nodes.* + it runs introspection on the nodes. -** *If capabilities profile is not specified then Apex will select node's roles - in the OPNFV cluster in a non-deterministic fashion.* + ** If capabilities profile is not specified then Apex will select node's roles + in the OPNFV cluster in a non-deterministic fashion. Creating the Settings Files --------------------------- @@ -245,5 +246,5 @@ Follow the steps below to execute: 3. When the deployment is complete the undercloud IP and ovecloud dashboard url will be printed. OPNFV has now been deployed using Apex. -.. _`Execution Requirements (Bare Metal Only)`: requirements.html#execution-requirements-bare-metal-only -.. _`Network Requirements`: requirements.html#network-requirements +.. _`Execution Requirements (Bare Metal Only)`: index.html#execution-requirements-bare-metal-only +.. _`Network Requirements`: index.html#network-requirements diff --git a/docs/installationprocedure/virtualinstall.rst b/docs/installationprocedure/virtualinstall.rst index d2c81abe..db52601e 100644 --- a/docs/installationprocedure/virtualinstall.rst +++ b/docs/installationprocedure/virtualinstall.rst @@ -65,5 +65,5 @@ Verifying the Setup - VMs To verify the set you can follow the instructions in the `Verifying the Setup`_ section. -.. _`Install Bare Metal Jumphost`: baremetal.html -.. _`Verifying the Setup`: verification.html +.. _`Install Bare Metal Jumphost`: index.html#install-bare-metal-jumphost +.. _`Verifying the Setup`: index.html#verifying-the-setup diff --git a/docs/releasenotes/release-notes.rst b/docs/releasenotes/release-notes.rst index 52b676ec..927c07c9 100644 --- a/docs/releasenotes/release-notes.rst +++ b/docs/releasenotes/release-notes.rst @@ -224,7 +224,6 @@ Software Deliverables - Apex .iso file - Apex overcloud .rpm (opnfv-apex) - For nosdn and OpenDaylight Scenarios - Apex overcloud onos .rpm (opnfv-apex-onos) - ONOS Scenarios -- Apex overcloud ODL SFC .rpm (opnfv-apex-opendaylight-sfc) - ODL SFC Scenario - Apex undercloud .rpm (opnfv-apex-undercloud) - Apex common .rpm (opnfv-apex-common) - build.sh - Builds the above artifacts diff --git a/lib/installer/onos/onos_gw_mac_update.sh b/lib/installer/onos/onos_gw_mac_update.sh index 93e63c8e..3b3b0724 100644 --- a/lib/installer/onos/onos_gw_mac_update.sh +++ b/lib/installer/onos/onos_gw_mac_update.sh @@ -38,7 +38,7 @@ EOI fi # get gateway mac - GW_MAC=$(arping ${GW_IP} -c 1 -I br-public | grep -Eo '([0-9a-fA-F]{2})(([/\s:-][0-9a-fA-F]{2}){5})') + GW_MAC=$(arping ${GW_IP} -c 1 -I br-external | grep -Eo '([0-9a-fA-F]{2})(([/\s:-][0-9a-fA-F]{2}){5})') if [ -z "$GW_MAC" ]; then echo "ERROR: Failed to find gateway mac for ${GW_IP}" diff --git a/lib/overcloud-deploy-functions.sh b/lib/overcloud-deploy-functions.sh index 1a363e69..516dac97 100755 --- a/lib/overcloud-deploy-functions.sh +++ b/lib/overcloud-deploy-functions.sh @@ -27,14 +27,6 @@ function overcloud_deploy { DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/neutron-opendaylight-l3.yaml" fi SDN_IMAGE=opendaylight - if [ "${deploy_options_array['sfc']}" == 'True' ]; then - SDN_IMAGE+=-sfc - if [ ! -f $RESOURCES/overcloud-full-${SDN_IMAGE}.qcow2 ]; then - echo "${red} $RESOURCES/overcloud-full-${SDN_IMAGE}.qcow2 is required to execute an SFC deployment." - echo "Please install the opnfv-apex-opendaylight-sfc package to provide this overcloud image for deployment.${reset}" - exit 1 - fi - fi elif [ "${deploy_options_array['sdn_controller']}" == 'opendaylight-external' ]; then DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/opendaylight-external.yaml" SDN_IMAGE=opendaylight @@ -65,7 +57,6 @@ function overcloud_deploy { # Make sure the correct overcloud image is available if [ ! -f $RESOURCES/overcloud-full-${SDN_IMAGE}.qcow2 ]; then echo "${red} $RESOURCES/overcloud-full-${SDN_IMAGE}.qcow2 is required to execute your deployment." - echo "Both ONOS and OpenDaylight are currently deployed from this image." echo "Please install the opnfv-apex package to provide this overcloud image for deployment.${reset}" exit 1 fi @@ -115,6 +106,7 @@ EOF --run-command "sed -i 's/\\(^\\s\\+\\)\\(start_daemon "$OVS_VSWITCHD_PRIORITY"\\)/\\1umask 0002 \\&\\& \\2/' /usr/share/openvswitch/scripts/ovs-ctl" \ -a overcloud-full.qcow2 fi + EOI elif [ "${deploy_options_array['dataplane']}" != 'ovs' ]; then @@ -126,6 +118,15 @@ EOI ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" "LIBGUESTFS_BACKEND=direct virt-customize -a overcloud-full.qcow2 --root-password password:opnfvapex" fi + # upgrade ovs into ovs 2.5.90 with NSH function if SFC is enabled + if [[ "${deploy_options_array['sfc']}" == 'True' && "${deploy_options_array['dataplane']}" == 'ovs' ]]; then + ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" <<EOI + LIBGUESTFS_BACKEND=direct virt-customize --run-command "yum install -y /root/ovs/rpm/rpmbuild/RPMS/x86_64/${ovs_kmod_rpm_name}" \ + --run-command "yum upgrade -y /root/ovs/rpm/rpmbuild/RPMS/x86_64/${ovs_rpm_name}" \ + -a overcloud-full.qcow2 +EOI + fi + # Set ODL version accordingly if [[ "${deploy_options_array['sdn_controller']}" == 'opendaylight' && "${deploy_options_array['odl_version']}" == 'boron' ]]; then ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" <<EOI @@ -196,6 +197,10 @@ if [ -n "${public_network_controller_interface}" ]; then fi EOI + echo -e "${blue}INFO: Including /usr/share/openstack-tripleo-heat-templates/environments/numa.yaml ${reset}" + if [ "$debug" == 'TRUE' ]; then + ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" "cat /usr/share/openstack-tripleo-heat-templates/environments/numa.yaml" + fi DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/numa.yaml" fi diff --git a/lib/python/apex/common/constants.py b/lib/python/apex/common/constants.py index db0a9fd1..741bb4f8 100644 --- a/lib/python/apex/common/constants.py +++ b/lib/python/apex/common/constants.py @@ -18,6 +18,7 @@ COMPUTE = 'compute' OPNFV_NETWORK_TYPES = [ADMIN_NETWORK, TENANT_NETWORK, EXTERNAL_NETWORK, STORAGE_NETWORK, API_NETWORK] DNS_SERVERS = ["8.8.8.8", "8.8.4.4"] +NTP_SERVER = ["pool.ntp.org"] COMPUTE = 'compute' CONTROLLER = 'controller' ROLES = [COMPUTE, CONTROLLER] diff --git a/lib/python/apex/deploy_settings.py b/lib/python/apex/deploy_settings.py index c27eecf9..5490c6e9 100644 --- a/lib/python/apex/deploy_settings.py +++ b/lib/python/apex/deploy_settings.py @@ -24,7 +24,7 @@ REQ_DEPLOY_SETTINGS = ['sdn_controller', OPT_DEPLOY_SETTINGS = ['performance', 'vsperf'] VALID_ROLES = ['Controller', 'Compute', 'ObjectStorage'] -VALID_PERF_OPTS = ['kernel', 'nova'] +VALID_PERF_OPTS = ['kernel', 'nova', 'vpp'] VALID_DATAPLANES = ['ovs', 'ovs_dpdk', 'fdio'] diff --git a/lib/python/apex/network_settings.py b/lib/python/apex/network_settings.py index ca40ba93..c9f7d450 100644 --- a/lib/python/apex/network_settings.py +++ b/lib/python/apex/network_settings.py @@ -21,6 +21,7 @@ from .common.constants import ( ROLES, DOMAIN_NAME, DNS_SERVERS, + NTP_SERVER, ADMIN_NETWORK, EXTERNAL_NETWORK, OPNFV_NETWORK_TYPES, @@ -113,6 +114,7 @@ class NetworkSettings(dict): if 'dns-domain' not in self: self['domain_name'] = DOMAIN_NAME self['dns_servers'] = self.get('dns_nameservers', DNS_SERVERS) + self['ntp_servers'] = self.get('ntp', NTP_SERVER) def _validate_overcloud_nic_order(self, network): """ @@ -333,6 +335,7 @@ class NetworkSettings(dict): bash_str += flatten('ip_addr_family', self.get_ip_addr_family()) bash_str += flatten('dns_servers', self['dns_servers'], ' ') bash_str += flatten('domain_name', self['dns-domain'], ' ') + bash_str += flatten('ntp_server', self['ntp_servers'][0], ' ') if path: with open(path, 'w') as file: file.write(bash_str) diff --git a/tests/smoke_tests/execute_smoke_tests.sh b/tests/smoke_tests/execute_smoke_tests.sh index 245ccc53..5ebbf3a4 100755 --- a/tests/smoke_tests/execute_smoke_tests.sh +++ b/tests/smoke_tests/execute_smoke_tests.sh @@ -1,6 +1,3 @@ #!/usr/bin/env bash -cd ~/provisioning/python -export PYTHONPATH=$PYTHONPATH:$(pwd) - -python unit_test_suite.py ~stack/overcloudrc
\ No newline at end of file +python ~/snaps/snaps/unit_test_suite.py -e ~stack/overcloudrc -n external -l INFO &> ~stack/snoke-tests.out
\ No newline at end of file diff --git a/tests/smoke_tests/execute_tests.yml b/tests/smoke_tests/execute_tests.yml index e2326560..5042d230 100644 --- a/tests/smoke_tests/execute_tests.yml +++ b/tests/smoke_tests/execute_tests.yml @@ -1,6 +1,8 @@ --- - hosts: all - sudo: yes + become: yes + become_method: sudo + become_user: root tasks: - name: Copy execute_smoke_tests.sh diff --git a/tests/smoke_tests/prepare_undercloud.yml b/tests/smoke_tests/prepare_undercloud.yml index 8f0cb709..69343ffa 100644 --- a/tests/smoke_tests/prepare_undercloud.yml +++ b/tests/smoke_tests/prepare_undercloud.yml @@ -1,16 +1,9 @@ --- - hosts: all - sudo: yes + become: yes + become_method: sudo + become_user: root tasks: - - yum: name=libffi - - yum: name=libffi-devel - - pip: name=python-keystoneclient - - pip: name=python-glanceclient - - pip: name=python-neutronclient - - pip: name=python-novaclient - - pip: name=scp - - pip: name=PyYAML - - pip: name=ansible==2.1.0 - - - git: repo=https://nougat.cablelabs.com/SNAPS/provisioning.git dest=~/provisioning + - git: repo=https://gerrit.cablelabs.com/snaps-provisioning dest=~/snaps + - command: pip install -e ~/snaps/ |