diff options
-rw-r--r-- | build/Makefile | 59 | ||||
-rw-r--r-- | build/openstack-tacker.spec | 2 | ||||
-rw-r--r-- | build/opnfv-environment.yaml | 2 | ||||
-rwxr-xr-x | build/overcloud-full.sh | 38 | ||||
-rwxr-xr-x | build/overcloud-opendaylight.sh | 20 | ||||
-rw-r--r-- | build/python-tackerclient.spec | 40 | ||||
-rwxr-xr-x | build/undercloud.sh | 12 | ||||
-rwxr-xr-x | ci/util.sh | 11 | ||||
-rw-r--r-- | docs/installation-instructions/requirements.rst | 6 | ||||
-rwxr-xr-x | lib/overcloud-deploy-functions.sh | 6 | ||||
-rwxr-xr-x | lib/parse-functions.sh | 21 |
11 files changed, 167 insertions, 50 deletions
diff --git a/build/Makefile b/build/Makefile index 96711d23..0d7cba27 100644 --- a/build/Makefile +++ b/build/Makefile @@ -27,7 +27,7 @@ all_networks="admin_network private_network storage_network external_network api all: iso .PHONY: clean -clean: images-clean rpms-clean iso-clean tacker-clean congress-clean +clean: images-clean rpms-clean iso-clean tacker-clean congress-clean vpp-clean .PHONY: images images: undercloud overcloud-full overcloud-opendaylight overcloud-onos overcloud-opendaylight-sfc @@ -100,12 +100,34 @@ openstack-tacker.tar.gz: tar czf openstack-tacker.tar.gz openstack-tacker-2015.2 .PHONY: tacker-rpm -tacker-rpm: openstack-tacker.tar.gz openstack-tacker-2015.2-1.noarch.rpm +tacker-rpm: openstack-tacker.tar.gz openstack-tacker-2015.2-1.trozet.noarch.rpm -openstack-tacker-2015.2-1.noarch.rpm: +openstack-tacker-2015.2-1.trozet.noarch.rpm: @echo "Building the Tacker RPM" rpmbuild --clean -bb --target noarch openstack-tacker.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`)' +################# +# TACKERCLIENT # +################# + +.PHONY: tackerclient-clean + +tackerclient-clean: + @rm -rf python-tackerclient-2015.2 + @rm -f python-tackerclient.tar.gz + +python-tackerclient.tar.gz: + @echo "Preparing the TackerClient RPM prerequisites" + git clone http://github.com/trozet/python-tackerclient -b SFC_refactor python-tackerclient-2015.2 + tar czf python-tackerclient.tar.gz python-tackerclient-2015.2 + +.PHONY: tackerclient-rpm +tackerclient-rpm: python-tackerclient.tar.gz python-tackerclient-2015.2-1.trozet.noarch.rpm + +python-tackerclient-2015.2-1.trozet.noarch.rpm: + @echo "Building the TackerClient RPM" + rpmbuild --clean -bb --target noarch python-tackerclient.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`)' + ############### # CONGRESS # ############### @@ -130,6 +152,33 @@ openstack-congress-2016.1-1.noarch.rpm: rpmbuild --clean -bb --target noarch openstack-congress.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`)' ############### +# VPP # +############### + +VPP_DIR = vpp + +.PHONY: vpp-clean +vpp-clean: + @rm -f vpp-bin.tar.gz + @rm -rf vpp-bin vpp + +.PHONY: vpp-build +vpp-build: vpp-bin.tar.gz + +vpp-bin.tar.gz: vpp + $(MAKE) -C $(VPP_DIR) UNATTENDED=yes install-dep bootstrap build pkg-rpm + $(MAKE) -C $(VPP_DIR)/build-root PLATFORM=vpp TAG=vpp_debug vpp-api-install + pushd vpp/vpp-api/python && python setup.py bdist + mkdir vpp-bin + mv vpp/build-root/*.rpm vpp-bin/ + mv vpp/vpp-api/python/dist/*.tar.gz vpp-bin/ + tar czf vpp-bin.tar.gz vpp-bin + +vpp: + git clone https://gerrit.fd.io/r/vpp + + +############### # UNDERCLOUD # ############### @@ -140,7 +189,7 @@ undercloud-clean: .PHONY: undercloud undercloud: images/undercloud.qcow2 -images/undercloud.qcow2: +images/undercloud.qcow2: tackerclient-rpm @echo "Building the Apex Undercloud Image" @./undercloud.sh @@ -174,7 +223,7 @@ overcloud-full-clean: .PHONY: overcloud-full overcloud-full: images/overcloud-full.qcow2 -images/overcloud-full.qcow2: tacker-rpm congress-rpm +images/overcloud-full.qcow2: tacker-rpm tackerclient-rpm congress-rpm vpp-build @echo "Building the Apex Base Overcloud Image" @./overcloud-full.sh diff --git a/build/openstack-tacker.spec b/build/openstack-tacker.spec index ca5ccd9a..b4c9adaa 100644 --- a/build/openstack-tacker.spec +++ b/build/openstack-tacker.spec @@ -2,7 +2,7 @@ Name: openstack-tacker Version: 2015.2 -Release: 1 +Release: 1.trozet Summary: OpenStack servicevm/device manager Group: Applications/Internet diff --git a/build/opnfv-environment.yaml b/build/opnfv-environment.yaml index 4971ad76..11132948 100644 --- a/build/opnfv-environment.yaml +++ b/build/opnfv-environment.yaml @@ -6,6 +6,8 @@ parameters: OvercloudControlFlavor: control OvercloudComputeFlavor: compute ControllerEnableSwiftStorage: false + NeutronEnableForceMetadata: true + NeutronEnableDHCPMetadata: true # CloudDomain: EnableSahara: false EnableTacker: true diff --git a/build/overcloud-full.sh b/build/overcloud-full.sh index a7d04eeb..e7f1dd7d 100755 --- a/build/overcloud-full.sh +++ b/build/overcloud-full.sh @@ -58,21 +58,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 @@ -104,7 +96,6 @@ 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 \ @@ -127,16 +118,19 @@ LIBGUESTFS_BACKEND=direct virt-customize \ --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 \ + --upload ../vpp-bin.tar.gz:/root \ + --run-command "cd /root && tar zxvf vpp-bin.tar.gz" \ + --run-command "yum install -y /root/vpp-bin/*.rpm" \ + --run-command "tar zxvf /root/vpp-bin/vpp_papi*.tar.gz -C /" \ + --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 "python-tackerclient" \ - --upload ../noarch/openstack-tacker-2015.2-1.noarch.rpm:/root/ \ - --install /root/openstack-tacker-2015.2-1.noarch.rpm \ + --upload ../noarch/python-tackerclient-2015.2-1.trozet.noarch.rpm:/root/ \ + --install /root/python-tackerclient-2015.2-1.trozet.noarch.rpm \ + --upload ../noarch/openstack-tacker-2015.2-1.trozet.noarch.rpm:/root/ \ + --install /root/openstack-tacker-2015.2-1.trozet.noarch.rpm \ --upload puppet-tacker.tar.gz:/etc/puppet/modules/ \ --run-command "cd /etc/puppet/modules/ && tar xzf puppet-tacker.tar.gz" \ --run-command "yum install -y https://dl.dropboxusercontent.com/u/7079970/rabbitmq-server-3.6.3-5.el7ost.noarch.rpm" \ diff --git a/build/overcloud-opendaylight.sh b/build/overcloud-opendaylight.sh index 3e403bbc..9b63ebc5 100755 --- a/build/overcloud-opendaylight.sh +++ b/build/overcloud-opendaylight.sh @@ -18,6 +18,13 @@ cp -f overcloud-full.qcow2 overcloud-full-opendaylight_build.qcow2 ##### Adding OpenDaylight to overcloud ##### ############################################### +# tar up fdio networking-odl +rm -rf fds +git clone https://gerrit.opnfv.org/gerrit/fds +pushd fds > /dev/null +tar -czvf ../networking-odl.tar.gz networking-odl +popd > /dev/null + # Beryllium Repo cat > /tmp/opendaylight.repo << EOF [opendaylight-4-release] @@ -39,10 +46,20 @@ EOF # SDNVPN - Copy tunnel setup script wget https://raw.githubusercontent.com/openstack/fuel-plugin-opendaylight/brahmaputra-sr2/deployment_scripts/puppet/modules/opendaylight/templates/setup_TEPs.py +# tar up the honeycomb module +rm -rf puppet-honeycomb +git clone https://github.com/trozet/puppet-honeycomb +pushd puppet-honeycomb > /dev/null +git archive --format=tar.gz --prefix=honeycomb/ HEAD > ../puppet-honeycomb.tar.gz +popd > /dev/null + # install ODL packages # install Jolokia for ODL HA # Patch in OPNFV custom puppet-tripleO +# install Honeycomb +# install Honeycomb puppet module LIBGUESTFS_BACKEND=direct virt-customize \ + --upload networking-odl.tar.gz:/root/ \ --upload /tmp/opendaylight_boron.repo:/etc/yum.repos.d/opendaylight.repo \ --run-command "yum install --downloadonly --downloaddir=/root/boron/ opendaylight" \ --upload /tmp/opendaylight.repo:/etc/yum.repos.d/opendaylight.repo \ @@ -50,6 +67,9 @@ LIBGUESTFS_BACKEND=direct virt-customize \ --install https://github.com/michaeltchapman/networking_rpm/raw/master/openstack-neutron-bgpvpn-2015.2-1.el7.centos.noarch.rpm \ --run-command "wget https://github.com/rhuss/jolokia/releases/download/v1.3.3/jolokia-1.3.3-bin.tar.gz -O /tmp/jolokia-1.3.3-bin.tar.gz" \ --run-command "tar -xvf /tmp/jolokia-1.3.3-bin.tar.gz -C /opt/opendaylight/system/org" \ + --run-command "yum -y install https://github.com/marosmars/files/raw/master/honeycomb-1.0.0-99.noarch.rpm" \ + --upload puppet-honeycomb.tar.gz:/etc/puppet/modules \ + --run-command "cd /etc/puppet/modules && tar xzf puppet-honeycomb.tar.gz" \ --upload ./setup_TEPs.py:/tmp \ -a overcloud-full-opendaylight_build.qcow2 diff --git a/build/python-tackerclient.spec b/build/python-tackerclient.spec new file mode 100644 index 00000000..72cbf629 --- /dev/null +++ b/build/python-tackerclient.spec @@ -0,0 +1,40 @@ +%define debug_package %{nil} + +Name: python-tackerclient +Version: 2015.2 +Release: 1.trozet +Summary: CLI and Client Library for OpenStack Networking + +Group: Applications/Internet +License: Apache 2.0 +URL: https://wiki.openstack.org/wiki/Tacker/Installation +Source0: python-tackerclient.tar.gz + +BuildArch: noarch +BuildRequires: python-setuptools +#Requires: stevedore>=1.5.0 http oslo.config>=1.11.0 oslo.messaging!=1.17.0!=1.17.1>=1.16.0 oslo.rootwrap>=2.0.0 python-novaclient>=2.22.0 + +%description +CLI and Client Library for OpenStack Networking + +%prep +%setup -q + + +%build +rm requirements.txt +#/usr/bin/python setup.py build + + +%install +/usr/bin/python setup.py install --prefix=%{buildroot} --install-lib=%{buildroot}/usr/lib/python2.7/site-packages +#rm -rf %{buildroot}/usr/lib/python2.7/site-packages/tacker/tests + + +%files +/bin/tacker +/usr/lib/python2.7/site-packages/tackerclient/* +/usr/lib/python2.7/site-packages/python_tackerclient-* + +%changelog + diff --git a/build/undercloud.sh b/build/undercloud.sh index 43884b16..10c46e74 100755 --- a/build/undercloud.sh +++ b/build/undercloud.sh @@ -22,14 +22,6 @@ pushd opnfv-tht > /dev/null git archive --format=tar.gz --prefix=openstack-tripleo-heat-templates/ HEAD > ../opnfv-tht.tar.gz popd > /dev/null -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 - pushd images > /dev/null # installing forked opnfv-tht # enabling ceph OSDs to live on the controller @@ -60,8 +52,8 @@ LIBGUESTFS_BACKEND=direct virt-customize \ --run-command "sed -i '/PASSWORD_NAMES =/a\\ \"OVERCLOUD_TACKER_PASSWORD\",' /usr/lib/python2.7/site-packages/tripleoclient/utils.py" \ --run-command "sed -i '/AodhPassword/a\\ parameters\[\x27TackerPassword\x27\] = passwords\[\x27OVERCLOUD_TACKER_PASSWORD\x27\]' /usr/lib/python2.7/site-packages/tripleoclient/v1/overcloud_deploy.py" \ --run-command "sed -i '/^SERVICES/a\ \x27tacker\x27: {\x27description\x27: \x27Tacker Service\x27, \x27type\x27: \x27servicevm\x27, \x27path\x27: \x27/\x27, \x27port\x27: 1789 },' /usr/lib/python2.7/site-packages/os_cloud_config/keystone.py" \ - --upload /tmp/tacker.repo:/etc/yum.repos.d/ \ - --install "python-tackerclient" \ + --upload ../noarch/python-tackerclient-2015.2-1.trozet.noarch.rpm:/root/ \ + --install /root/python-tackerclient-2015.2-1.trozet.noarch.rpm \ --install "python2-aodhclient" \ --install "openstack-heat-engine" \ --install "openstack-heat-api-cfn" \ @@ -91,19 +91,28 @@ parse_cmdline() { ;; mock-detached) if [ "$2" == "on" ]; then + echo "Ensuring we can talk to gerrit.opnfv.org" + iptables -A OUTPUT -p tcp -d gerrit.opnfv.org --dport 443 -j ACCEPT echo "Blocking output http (80) traffic" iptables -A OUTPUT -p tcp --dport 80 -j REJECT + iptables -A FORWARD -p tcp --dport 80 -j REJECT echo "Blocking output https (443) traffic" iptables -A OUTPUT -p tcp --dport 443 -j REJECT + iptables -A FORWARD -p tcp --dport 443 -j REJECT echo "Blocking output dns (53) traffic" - iptables -A OUTPUT -p tcp --dport 53 -j REJECT + iptables -A FORWARD -p tcp --dport 53 -j REJECT elif [ "$2" == "off" ]; then + echo "Cleaning gerrit.opnfv.org specific rule" + iptables -D OUTPUT -p tcp -d gerrit.opnfv.org --dport 443 -j ACCEPT echo "Allowing output http (80) traffic" iptables -D OUTPUT -p tcp --dport 80 -j REJECT + iptables -D FORWARD -p tcp --dport 80 -j REJECT echo "Allowing output https (443) traffic" iptables -D OUTPUT -p tcp --dport 443 -j REJECT + iptables -D FORWARD -p tcp --dport 443 -j REJECT echo "Allowing output dns (53) traffic" iptables -D OUTPUT -p tcp --dport 53 -j REJECT + iptables -D FORWARD -p tcp --dport 53 -j REJECT else display_usage fi diff --git a/docs/installation-instructions/requirements.rst b/docs/installation-instructions/requirements.rst index bf0a5f3d..d54d584b 100644 --- a/docs/installation-instructions/requirements.rst +++ b/docs/installation-instructions/requirements.rst @@ -37,7 +37,7 @@ Network requirements include: - Storage Network* - - Internal API Network* + - Internal API Network* (required for IPv6 \*\*) 3. Lights out OOB network access from Jumphost with IPMI node enabled (bare metal deployment only). @@ -50,6 +50,10 @@ Network requirements include: Control Plane network.* \* *Non-External networks will be consolidated to the Control Plane network if not specifically configured.* +\*\* *Internal API network, by default, is collapsed with provisioning in IPv4 + deployments, this is not possible with the current lack of PXE boot + support and therefore the API network is required to be its own + network in an IPv6 deployment.* Bare Metal Node Requirements ---------------------------- diff --git a/lib/overcloud-deploy-functions.sh b/lib/overcloud-deploy-functions.sh index ef07ec0a..df17750b 100755 --- a/lib/overcloud-deploy-functions.sh +++ b/lib/overcloud-deploy-functions.sh @@ -94,6 +94,12 @@ EOF if [ "${deploy_options_array['dataplane']}" == 'fdio' ]; then sudo sed -i '/FdioEnabled:/c\ FdioEnabled: true' /usr/share/openstack-tripleo-heat-templates/environments/numa.yaml + if [ "${deploy_options_array['sdn_controller']}" == 'opendaylight' ]; then + LIBGUESTFS_BACKEND=direct virt-customize --run-command "cd /root/ && tar zxvf networking-odl.tar.gz" \ + --run-command "cd /root/networking-odl && git init && pip install -r requirements.txt" \ + --run-command "cd /root/networking-odl && python setup.py build && python setup.py install" \ + -a overcloud-full.qcow2 + fi else LIBGUESTFS_BACKEND=direct virt-customize --run-command "yum install -y /root/dpdk_rpms/*" \ -a overcloud-full.qcow2 diff --git a/lib/parse-functions.sh b/lib/parse-functions.sh index a582c28a..9c2ebff5 100755 --- a/lib/parse-functions.sh +++ b/lib/parse-functions.sh @@ -72,6 +72,17 @@ parse_network_settings() { echo -e "${red}ERROR: Failed to parse network settings file $NETSETS ${reset}" exit 1 fi + + if [ "${deploy_options_array['dataplane']}" == 'ovs_dpdk' ]; then + if [ "$net_isolation_enabled" == "FALSE" ]; then + echo -e "${red}ERROR: flat network is not supported with ovs-dpdk ${reset}" + exit 1 + fi + if [[ ! $enabled_network_list =~ "private_network" ]]; then + echo -e "${red}ERROR: tenant network is not enabled for ovs-dpdk ${reset}" + exit 1 + fi + fi } ##parses deploy settings yaml into globals @@ -85,16 +96,6 @@ parse_deploy_settings() { exit 1 fi - if [ "${deploy_options_array['dataplane']}" == 'ovs_dpdk' ]; then - if [ "$net_isolation_enabled" == "FALSE" ]; then - echo -e "${red}ERROR: flat network is not supported with ovs-dpdk ${reset}" - exit 1 - fi - if [[ ! $enabled_network_list =~ "private_network" ]]; then - echo -e "${red}ERROR: tenant network is not enabled for ovs-dpdk ${reset}" - exit 1 - fi - fi } ##parses baremetal yaml settings into compatible json |