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.sh40
-rw-r--r--build/python-tackerclient.spec40
-rwxr-xr-xbuild/undercloud.sh16
-rw-r--r--ci/PR_revision.log2
-rwxr-xr-xci/util.sh19
-rw-r--r--docs/installation-instructions/architecture.rst53
-rw-r--r--docs/installation-instructions/requirements.rst6
-rwxr-xr-xlib/parse-functions.sh16
-rwxr-xr-xlib/virtual-setup-functions.sh2
12 files changed, 208 insertions, 49 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 6a72705a..5814c5ca 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,19 +118,24 @@ 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 \
+ --run-command "yum -y install https://github.com/marosmars/files/raw/master/honeycomb-1.0.0-99.noarch.rpm" \
--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" \
+ --run-command "pip install python-senlinclient" \
-a overcloud-full_build.qcow2
mv -f overcloud-full_build.qcow2 overcloud-full.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 d6c6c414..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,12 @@ 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" \
+ --install "openstack-heat-api" \
-a undercloud_build.qcow2
# Add custom IPA to allow kernel params
diff --git a/ci/PR_revision.log b/ci/PR_revision.log
index 5ff84dfc..92692e59 100644
--- a/ci/PR_revision.log
+++ b/ci/PR_revision.log
@@ -22,3 +22,5 @@
52,Add notifier topic to ceilometer
53,Add numa to controller hiera hierarchy
54,fix network mtu
+56,fixes tacker config for heat_uri
+57,Remove trailing newline from dpdk pci address \ No newline at end of file
diff --git a/ci/util.sh b/ci/util.sh
index 6681ff56..8c09278a 100755
--- a/ci/util.sh
+++ b/ci/util.sh
@@ -91,13 +91,28 @@ parse_cmdline() {
;;
mock-detached)
if [ "$2" == "on" ]; then
- echo "Blocking output http and https traffic"
+ 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 FORWARD -p tcp --dport 53 -j REJECT
elif [ "$2" == "off" ]; then
- echo "Allowing output http and https traffic"
+ 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/architecture.rst b/docs/installation-instructions/architecture.rst
index bf2f9db4..c63da27c 100644
--- a/docs/installation-instructions/architecture.rst
+++ b/docs/installation-instructions/architecture.rst
@@ -22,3 +22,56 @@ of the Apex RPM.
The overcloud is OPNFV. Configuration will be passed into undercloud and
the undercloud will use OpenStack's orchestration component, named Heat, to
execute a deployment that will provision the target OPNFV nodes.
+
+OPNFV Scenario Architecture
+===========================
+
+OPNFV distinguishes different types of SDN controllers, deployment options, and
+features into "scenarios". These scenarios are universal across all OPNFV
+installers, although some may or may not be supported by each installer.
+
+The standard naming convention for a scenario is:
+<VIM platform>-<SDN type>-<feature>-<ha/noha>
+
+The only supported VIM type is "OS" (OpenStack), while SDN types can be any
+supported SDN controller. "feature" includes things like ovs_dpdk, sfc, etc.
+"ha" or "noha" determines if the deployment will be highly available. If "ha"
+is used at least 3 control nodes are required.
+
+OPNFV Scenarios in Apex
+=======================
+
+Apex provides pre-built scenario files in /etc/opnfv-apex which a user can
+select from to deploy the desired scenario. Simply pass the desired file to
+the installer as a (-d) deploy setting. Read further in the Apex documentation
+to learn more about invoking the deploy command. Below is quick reference
+matrix for OPNFV scenarios supported in Apex. Please refer to the respective
+OPNFV Docs documentation for each scenario in order to see a full scenario
+description. The following scenarios correspond to a supported <Scenario>.yaml
+deploy settings file:
+
++-------------------------+------------+-----------------+
+| **Scenario** | **Owner** | **Known Issues**|
++-------------------------+------------+-----------------+
+| os-nosdn-nofeature-ha | Apex | |
++-------------------------+------------+-----------------+
+| os-nosdn-nofeature-noha | Apex | |
++-------------------------+------------+-----------------+
+| os-nosdn-ovs-noha | OVS for NFV| |
++-------------------------+------------+-----------------+
+| os-nosdn-fdio-noha | FDS | |
++-------------------------+------------+-----------------+
+| os-odl_l2-nofeature-ha | Apex | |
++-------------------------+------------+-----------------+
+| os-odl_l3-nofeature-ha | Apex | APEX-112 |
++-------------------------+------------+-----------------+
+| os-odl_l2-sfc-noha | SFC | |
++-------------------------+------------+-----------------+
+| os-odl_l2-bgpvpn-noha | SDNVPN | |
++-------------------------+------------+-----------------+
+| os-odl_l2-fdio-noha | FDS | |
++-------------------------+------------+-----------------+
+| os-onos-nofeature-ha | ONOSFW | |
++-------------------------+------------+-----------------+
+| os-onos-sfc-ha | ONOSFW | |
++-------------------------+------------+-----------------+
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/parse-functions.sh b/lib/parse-functions.sh
index 9695405e..9c2ebff5 100755
--- a/lib/parse-functions.sh
+++ b/lib/parse-functions.sh
@@ -55,13 +55,15 @@ parse_network_settings() {
local output parse_ext
parse_ext=''
- for val in ${performance_roles[@]}; do
- if [ "$val" == "Compute" ]; then
- parse_ext="${parse_ext} --compute-pre-config "
- elif [ "$val" == "Controller" ]; then
- parse_ext="${parse_ext} --controller-pre-config "
- fi
- done
+ if [[ "${deploy_options_array['dataplane']}" == 'ovs_dpdk' || "${deploy_options_array['dataplane']}" == 'fdio' ]]; then
+ for val in ${performance_roles[@]}; do
+ if [ "$val" == "Compute" ]; then
+ parse_ext="${parse_ext} --compute-pre-config "
+ elif [ "$val" == "Controller" ]; then
+ parse_ext="${parse_ext} --controller-pre-config "
+ fi
+ done
+ fi
if output=$(python3.4 -B $LIB/python/apex_python_utils.py parse-net-settings -s $NETSETS $net_isolation_arg -e $CONFIG/network-environment.yaml $parse_ext); then
echo -e "${blue}${output}${reset}"
diff --git a/lib/virtual-setup-functions.sh b/lib/virtual-setup-functions.sh
index ed4d4dfd..abff25e4 100755
--- a/lib/virtual-setup-functions.sh
+++ b/lib/virtual-setup-functions.sh
@@ -45,7 +45,7 @@ EOF
VM_COMPUTES=$((VM_COMPUTES - 1))
else
capability="profile:control"
- if [[ "${deploy_options_array['sdn_controller']}" == 'opendaylight' && "$ha_enabled" == "True" && "$ramsize" -lt 10240 ]]; then
+ if [[ "${deploy_options_array['sdn_controller']}" == 'opendaylight' && "$ramsize" -lt 10240 ]]; then
echo "WARN: RAM per controller too low. OpenDaylight specified in HA deployment requires at least 10GB"
echo "INFO: Increasing RAM per controller to 10GB"
ramsize=10240