summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--build/Makefile59
-rw-r--r--build/openstack-tacker.spec2
-rw-r--r--build/opnfv-environment.yaml2
-rwxr-xr-xbuild/overcloud-full.sh38
-rwxr-xr-xbuild/overcloud-opendaylight.sh20
-rw-r--r--build/python-tackerclient.spec40
-rwxr-xr-xbuild/undercloud.sh12
-rwxr-xr-xci/util.sh11
-rw-r--r--docs/installation-instructions/requirements.rst6
-rwxr-xr-xlib/overcloud-deploy-functions.sh6
-rwxr-xr-xlib/parse-functions.sh21
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" \
diff --git a/ci/util.sh b/ci/util.sh
index bcb3a3a7..8c09278a 100755
--- a/ci/util.sh
+++ b/ci/util.sh
@@ -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