summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbuild/build_quagga.sh5
-rw-r--r--build/first-boot.yaml2
-rwxr-xr-xbuild/honeycomb-jar-replace.sh19
-rwxr-xr-xbuild/overcloud-full.sh46
-rwxr-xr-xbuild/overcloud-opendaylight.sh22
-rw-r--r--build/ovs-dpdk-preconfig.yaml4
-rw-r--r--build/patches/disable_odl_clustering.patch46
-rw-r--r--build/rpm_specs/opnfv-apex-common.spec2
-rw-r--r--build/variables.sh32
-rw-r--r--config/deploy/os-odl_netvirt-fdio-noha.yaml38
-rwxr-xr-xlib/overcloud-deploy-functions.sh51
-rw-r--r--lib/python/apex/deploy_settings.py3
-rw-r--r--lib/python/apex/ip_utils.py7
-rwxr-xr-xtests/smoke_tests/execute_smoke_tests.sh2
14 files changed, 99 insertions, 180 deletions
diff --git a/build/build_quagga.sh b/build/build_quagga.sh
index 7d298e57..a682b54e 100755
--- a/build/build_quagga.sh
+++ b/build/build_quagga.sh
@@ -180,9 +180,10 @@ After=network.service
[Service]
ExecStart=/usr/sbin/zrpcd
-Type=forking
+Type=simple
+ExecStartPre=-/usr/bin/mkdir /var/run/quagga/
+ExecStartPre=/usr/bin/chown -R quagga:quagga /var/run/quagga/
PIDFile=/var/run/zrpcd.pid
-Restart=on-failure
[Install]
WantedBy=default.target
diff --git a/build/first-boot.yaml b/build/first-boot.yaml
index 6cd874cc..d4ac5df6 100644
--- a/build/first-boot.yaml
+++ b/build/first-boot.yaml
@@ -39,7 +39,7 @@ resources:
echo vm.hugetlb_shm_group=0 >> /usr/lib/sysctl.d/00-system.conf
echo vm.max_map_count=$(printf "%.0f" $(echo 2.2*$hugepage_count | bc)) >> /usr/lib/sysctl.d/00-system.conf
echo kernel.shmmax=$(($hugepage_count * 2 * 1024 * 1024)) >> /usr/lib/sysctl.d/00-system.conf
-
+ rm -f /etc/sysconfig/network-scripts/ifcfg-*
reboot
params:
$KERNEL_ARGS: {get_param: ComputeKernelArgs}
diff --git a/build/honeycomb-jar-replace.sh b/build/honeycomb-jar-replace.sh
deleted file mode 100755
index f89ddda7..00000000
--- a/build/honeycomb-jar-replace.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/usr/bin/env bash
-JARS=$(find /usr/share/java/ -type f -iname 'jvpp-*.jar')
-if [ -z "$JARS" ]; then
- echo "ERROR: JARS to replace from vpp-api-java are empty!"
- exit 1
-fi
-
-for JAR in $JARS; do
- JAR_PREFIX=$(basename $JAR | sed -n 's/-[0-9]\+\.[0-9]\+\.jar$//p')
- JAR_VERSION=$(basename $JAR | grep -Eo '[0-9]+.[0-9]+')
- HC_JAR_DIR=/opt/honeycomb/lib/io/fd/vpp/${JAR_PREFIX}/${JAR_VERSION}-SNAPSHOT
- if [ ! -d "$HC_JAR_DIR" ]; then
- echo "ERROR: Honeycomb JAR destination directory does not exist!"
- exit 1
- else
- cp -f ${JAR} ${HC_JAR_DIR}/${JAR_PREFIX}-${JAR_VERSION}-SNAPSHOT.jar
- echo "INFO: VPP API JAR: ${JAR} copied to ${HC_JAR_DIR}"
- fi
-done
diff --git a/build/overcloud-full.sh b/build/overcloud-full.sh
index c6a53e3d..9ecb1c32 100755
--- a/build/overcloud-full.sh
+++ b/build/overcloud-full.sh
@@ -68,37 +68,14 @@ pushd puppet-tacker > /dev/null
git archive --format=tar.gz --prefix=tacker/ origin/stable/ocata > ${BUILD_DIR}/puppet-tacker.tar.gz
popd > /dev/null
-# Master FD.IO Repo
-cat > ${BUILD_DIR}/fdio.repo << EOF
-[fdio-master]
-name=fd.io master branch latest merge
-baseurl=https://nexus.fd.io/content/repositories/fd.io.master.centos7/
-enabled=1
-gpgcheck=0
-EOF
-
# Get Real Time Kernel from kvm4nfv
populate_cache $kvmfornfv_uri_base/$kvmfornfv_kernel_rpm
-# ODL/FDIO packages frozen for L3 scenarios
-fdio_l3_pkg_str=''
-for package in ${fdio_l3_pkgs[@]}; do
- wget "$fdio_l3_uri_base/$package"
- fdio_l3_pkg_str+=" --upload ${BUILD_DIR}/${package}:/root/fdio_l3/"
-done
-
-# ODL/FDIO packages frozen for L2 scenarios
-fdio_l2_pkg_str=''
-for package in ${fdio_l2_pkgs[@]}; do
- wget "$fdio_l2_uri_base/$package"
- fdio_l2_pkg_str+=" --upload ${BUILD_DIR}/${package}:/root/fdio_l2/"
-done
-
-# FDIO packages frozen for nosdn scenarios
-fdio_nosdn_pkg_str=''
-for package in ${fdio_nosdn_pkgs[@]}; do
- wget "$fdio_nosdn_uri_base/$package"
- fdio_nosdn_pkg_str+=" --upload ${BUILD_DIR}/${package}:/root/fdio_nosdn/"
+# packages frozen for fdio scenarios
+fdio_pkg_str=''
+for package in ${fdio_pkgs[@]}; do
+ wget "$package"
+ fdio_pkg_str+=" --upload ${BUILD_DIR}/${package##*/}:/root/fdio/"
done
# Increase disk size by 900MB to accommodate more packages
@@ -124,16 +101,11 @@ LIBGUESTFS_BACKEND=direct virt-customize \
--run-command "sed -i 's/^#UseDNS.*$/UseDNS no/' /etc/ssh/sshd_config" \
--run-command "sed -i 's/^GSSAPIAuthentication.*$/GSSAPIAuthentication no/' /etc/ssh/sshd_config" \
--run-command "mkdir /root/dpdk_rpms" \
- --upload ${BUILD_DIR}/fdio.repo:/etc/yum.repos.d/fdio.repo \
$dpdk_pkg_str \
- --run-command "mkdir /root/fdio_l3" \
- --run-command "mkdir /root/fdio_l2" \
- --run-command "mkdir /root/fdio_nosdn" \
- --upload ${BUILD_DIR}/noarch/$netvpp_pkg:/root/fdio_nosdn \
- $fdio_l3_pkg_str \
- $fdio_l2_pkg_str \
- $fdio_nosdn_pkg_str \
- --run-command "yum install -y /root/fdio_l2/*.rpm" \
+ --run-command "mkdir /root/fdio" \
+ --upload ${BUILD_DIR}/noarch/$netvpp_pkg:/root/fdio \
+ $fdio_pkg_str \
+ --run-command "yum install -y /root/fdio/*.rpm" \
--run-command "yum install -y etcd" \
--install python-etcd \
--run-command "puppet module install cristifalcas/etcd" \
diff --git a/build/overcloud-opendaylight.sh b/build/overcloud-opendaylight.sh
index f8682f6c..d61c1f2e 100755
--- a/build/overcloud-opendaylight.sh
+++ b/build/overcloud-opendaylight.sh
@@ -74,7 +74,10 @@ git archive --format=tar.gz HEAD:deploy/puppet/ > ${BUILD_DIR}/puppet-gluon.tar.
popd > /dev/null
# Download quagga/zrpc rpms
-populate_cache http://artifacts.opnfv.org/apex/danube/quagga/quagga.tar.gz
+populate_cache http://artifacts.opnfv.org/apex/danube/quagga/quagga-3.tar.gz
+
+# Download ODL netvirt for VPP
+populate_cache http://artifacts.opnfv.org/apex/danube/fdio_netvirt/odl-netvirt-vpp-distribution.tar.gz
# install ODL packages
# Patch in OPNFV custom puppet-tripleO
@@ -87,10 +90,9 @@ LIBGUESTFS_BACKEND=direct virt-customize \
--upload ${BUILD_DIR}/opendaylight_master.repo:/etc/yum.repos.d/opendaylight.repo \
--run-command "yum install --downloadonly --downloaddir=/root/master/ opendaylight" \
--upload ${BUILD_DIR}/opendaylight.repo:/etc/yum.repos.d/opendaylight.repo \
- --run-command "wget ${fdio_l2_uri_base}/honeycomb-1.17.04-2439.noarch.rpm -O /root/fdio_l2/honeycomb-1.17.04-2439.noarch.rpm" \
- --run-command "wget ${fdio_l2_uri_base}/opendaylight-6.0.0-0.1.20170228snap4111.el7.noarch.rpm -O /root/fdio_l2/opendaylight-6.0.0-0.1.20170228snap4111.el7.noarch.rpm" \
+ --run-command "wget https://nexus.fd.io/content/repositories/fd.io.stable.1704.centos7/io/fd/hc2vpp/honeycomb/1.17.04-2048.noarch/honeycomb-1.17.04-2048.noarch.rpm -O /root/fdio/honeycomb-1.17.04-2048.noarch.rpm" \
--install opendaylight,python-networking-odl \
- --run-command "yum install -y /root/fdio_l2/honeycomb-1.17.04-2439.noarch.rpm" \
+ --run-command "yum install -y /root/fdio/honeycomb-1.17.04-2048.noarch.rpm" \
--upload ${BUILD_DIR}/puppet-opendaylight.tar.gz:/etc/puppet/modules/ \
--run-command "cd /etc/puppet/modules/ && tar xzf puppet-opendaylight.tar.gz" \
--upload ${BUILD_DIR}/networking-bgpvpn.tar.gz:/root/ \
@@ -103,13 +105,15 @@ LIBGUESTFS_BACKEND=direct virt-customize \
--install python-click \
--upload ${CACHE_DIR}/$gluon_rpm:/root/\
--install /root/$gluon_rpm \
- --upload ${CACHE_DIR}/quagga.tar.gz:/root/ \
- --run-command "cd /root/ && tar xzf quagga.tar.gz" \
+ --upload ${CACHE_DIR}/quagga-3.tar.gz:/root/ \
+ --run-command "cd /root/ && tar xzf quagga-3.tar.gz" \
--run-command "yum downgrade -y python-zmq-14.3.1" \
- --install zeromq-4.1.4,zeromq-devel-4.1.4 \
- --install capnproto-devel,capnproto-libs,capnproto \
+ --install zeromq-4.1.4 \
+ --install capnproto-libs,capnproto \
+ --run-command "cd /root/quagga; packages=\$(ls |grep -vE 'debuginfo|devel|contrib'); yum -y install \$packages" \
+ --run-command "sudo usermod -a -G quaggavt quagga" \
--upload ${BUILD_ROOT}/patches/neutron-patch-NSDriver.patch:/usr/lib/python2.7/site-packages/ \
- --upload ${BUILD_ROOT}/patches/disable_odl_clustering.patch:/etc/puppet/modules/tripleo/ \
+ --upload ${CACHE_DIR}/odl-netvirt-vpp-distribution.tar.gz:/root/ \
-a overcloud-full-opendaylight_build.qcow2
LIBGUESTFS_BACKEND=direct virt-sparsify --compress overcloud-full-opendaylight_build.qcow2 overcloud-full-opendaylight.qcow2
diff --git a/build/ovs-dpdk-preconfig.yaml b/build/ovs-dpdk-preconfig.yaml
index d57b0b7a..a4663ff3 100644
--- a/build/ovs-dpdk-preconfig.yaml
+++ b/build/ovs-dpdk-preconfig.yaml
@@ -83,10 +83,10 @@ resources:
if [ -n "$SOCKET_MEMORY" ]; then
ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem=$SOCKET_MEMORY
fi
- if [ -n "$pmd_cpu_mask" ]; then
+ if [[ -n "$pmd_cpu_mask" && -n "$PMD_CORES" ]]; then
ovs-vsctl --no-wait set Open_vSwitch . other_config:pmd-cpu-mask=$pmd_cpu_mask
fi
- if [ -n "$dpdk_lcore_mask" ]; then
+ if [ -n "$dpdk_lcore_mask" && -n "$DPDK_CORES" ]]; then
ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-lcore-mask=$dpdk_lcore_mask
fi
systemctl restart openvswitch
diff --git a/build/patches/disable_odl_clustering.patch b/build/patches/disable_odl_clustering.patch
deleted file mode 100644
index 151481fc..00000000
--- a/build/patches/disable_odl_clustering.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-diff --git a/manifests/profile/base/neutron/opendaylight.pp b/manifests/profile/base/neutron/opendaylight.pp
-index 3269f3e..556fe63 100644
---- a/manifests/profile/base/neutron/opendaylight.pp
-+++ b/manifests/profile/base/neutron/opendaylight.pp
-@@ -22,34 +22,19 @@
- # (Optional) The current step of the deployment
- # Defaults to hiera('step')
- #
--# [*odl_api_ips*]
--# (Optional) List of OpenStack Controller IPs for ODL API
--# Defaults to hiera('opendaylight_api_node_ips')
--#
--# [*node_name*]
--# (Optional) The short hostname of node
--# Defaults to hiera('bootstack_nodeid')
-+# [*primary_node*]
-+# (Optional) The hostname of the first node of this role type
-+# Defaults to hiera('bootstrap_nodeid', undef)
- #
- class tripleo::profile::base::neutron::opendaylight (
- $step = hiera('step'),
-- $odl_api_ips = hiera('opendaylight_api_node_ips'),
-- $node_name = hiera('bootstack_nodeid')
-+ $primary_node = hiera('bootstrap_nodeid', undef),
- ) {
-
- if $step >= 1 {
-- if empty($odl_api_ips) {
-- fail('No IPs assigned to OpenDaylight Api Service')
-- } elsif size($odl_api_ips) == 2 {
-- fail('2 node OpenDaylight deployments are unsupported. Use 1 or greater than 2')
-- } elsif size($odl_api_ips) > 2 {
-- $node_string = split($node_name, '-')
-- $ha_node_index = $node_string[-1] + 1
-- class { '::opendaylight':
-- enable_ha => true,
-- ha_node_ips => $odl_api_ips,
-- ha_node_index => $ha_node_index,
-- }
-- } else {
-+ # Configure ODL only on first node of the role where this service is
-+ # applied
-+ if $primary_node == downcase($::hostname) {
- include ::opendaylight
- }
- }
diff --git a/build/rpm_specs/opnfv-apex-common.spec b/build/rpm_specs/opnfv-apex-common.spec
index 431bd561..13a04817 100644
--- a/build/rpm_specs/opnfv-apex-common.spec
+++ b/build/rpm_specs/opnfv-apex-common.spec
@@ -52,6 +52,7 @@ install config/deploy/os-odl-bgpvpn-noha.yaml %{buildroot}%{_sysconfdir}/opnfv-a
install config/deploy/os-odl_l2-fdio-ha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-odl_l2-fdio-ha.yaml
install config/deploy/os-odl_l2-fdio-noha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-odl_l2-fdio-noha.yaml
install config/deploy/os-odl-fdio-noha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-odl-fdio-noha.yaml
+install config/deploy/os-odl_netvirt-fdio-noha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-odl_netvirt-fdio-noha.yaml
install config/deploy/os-odl-fdio-ha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-odl-fdio-ha.yaml
install config/deploy/os-odl-nofeature-ha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-odl-nofeature-ha.yaml
install config/deploy/os-odl-nofeature-noha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-odl-nofeature-noha.yaml
@@ -135,6 +136,7 @@ install config/inventory/pod_example_settings.yaml %{buildroot}%{_docdir}/opnfv/
%{_sysconfdir}/opnfv-apex/os-odl_l2-fdio-noha.yaml
%{_sysconfdir}/opnfv-apex/os-odl_l2-fdio-ha.yaml
%{_sysconfdir}/opnfv-apex/os-odl-fdio-noha.yaml
+%{_sysconfdir}/opnfv-apex/os-odl_netvirt-fdio-noha.yaml
%{_sysconfdir}/opnfv-apex/os-odl-fdio-ha.yaml
%{_sysconfdir}/opnfv-apex/os-odl-ovs_dpdk-noha.yaml
%{_sysconfdir}/opnfv-apex/os-odl-ovs_dpdk-ha.yaml
diff --git a/build/variables.sh b/build/variables.sh
index e5e37b27..fe375327 100644
--- a/build/variables.sh
+++ b/build/variables.sh
@@ -32,8 +32,8 @@ dpdk_rpms=(
'ovs4opnfv-e8acab14-dpdk-tools-16.11-5.el7.centos.x86_64.rpm'
)
-kvmfornfv_uri_base="http://artifacts.opnfv.org/kvmfornfv"
-kvmfornfv_kernel_rpm="kernel-4.4.6_rt14_1703030237nfv-1.x86_64.rpm"
+kvmfornfv_uri_base="http://artifacts.opnfv.org/kvmfornfv/danube"
+kvmfornfv_kernel_rpm="kvmfornfv-8e1bfc88-apex-kernel-4.4.50_rt62_centos.x86_64.rpm"
tacker_repo="http://github.com/openstack/tacker"
tacker_branch="stable/newton"
@@ -57,27 +57,11 @@ netvpp_pkg=python-networking-vpp-0.0.1-1.git${NETVPP_COMMIT}$(rpm -E %dist).noar
gluon_rpm=gluon-0.0.1-1_20170302.noarch.rpm
-fdio_l3_uri_base=http://artifacts.opnfv.org/apex/danube/fdio_l3_rpms
-fdio_l3_pkgs=(
-'vpp-17.04-rc0~399_g17a75cb~b2022.x86_64.rpm'
-'vpp-api-python-17.04-rc0~399_g17a75cb~b2022.x86_64.rpm'
-'vpp-lib-17.04-rc0~399_g17a75cb~b2022.x86_64.rpm'
-'vpp-plugins-17.04-rc0~399_g17a75cb~b2022.x86_64.rpm'
-'honeycomb-1.17.04-2503.noarch.rpm'
+fdio_pkgs=(
+'https://nexus.fd.io/content/repositories/fd.io.centos7/io/fd/vpp/vpp/17.04-release.x86_64/vpp-17.04-release.x86_64.rpm'
+'https://nexus.fd.io/content/repositories/fd.io.centos7/io/fd/vpp/vpp-api-python/17.04-release.x86_64/vpp-api-python-17.04-release.x86_64.rpm'
+'https://nexus.fd.io/content/repositories/fd.io.centos7/io/fd/vpp/vpp-lib/17.04-release.x86_64/vpp-lib-17.04-release.x86_64.rpm'
+'https://nexus.fd.io/content/repositories/fd.io.centos7/io/fd/vpp/vpp-plugins/17.04-release.x86_64/vpp-plugins-17.04-release.x86_64.rpm'
)
-fdio_l2_uri_base=http://artifacts.opnfv.org/apex/danube/fdio_l2_rpms
-fdio_l2_pkgs=(
-'vpp-17.04-rc0~300_gdef19da~b1923.x86_64.rpm'
-'vpp-api-python-17.04-rc0~300_gdef19da~b1923.x86_64.rpm'
-'vpp-lib-17.04-rc0~300_gdef19da~b1923.x86_64.rpm'
-'vpp-plugins-17.04-rc0~300_gdef19da~b1923.x86_64.rpm'
-)
-
-fdio_nosdn_uri_base=http://artifacts.opnfv.org/apex/danube/fdio_nosdn_rpms
-fdio_nosdn_pkgs=(
-'vpp-17.04-rc0~476_geaabe07~b2100.x86_64.rpm'
-'vpp-api-python-17.04-rc0~476_geaabe07~b2100.x86_64.rpm'
-'vpp-lib-17.04-rc0~476_geaabe07~b2100.x86_64.rpm'
-'vpp-plugins-17.04-rc0~476_geaabe07~b2100.x86_64.rpm'
-)
+honeycomb_pkg='http://artifacts.opnfv.org/apex/danube/fdio_common_rpms/honeycomb-1.17.04-2048.noarch.rpm' \ No newline at end of file
diff --git a/config/deploy/os-odl_netvirt-fdio-noha.yaml b/config/deploy/os-odl_netvirt-fdio-noha.yaml
new file mode 100644
index 00000000..fa6ba800
--- /dev/null
+++ b/config/deploy/os-odl_netvirt-fdio-noha.yaml
@@ -0,0 +1,38 @@
+global_params:
+ ha_enabled: false
+
+deploy_options:
+ sdn_controller: opendaylight
+ sdn_l3: true
+ odl_version: carbon
+ odl_vpp_netvirt: true
+ odl_vpp_routing_node: overcloud-novacompute-0
+ tacker: true
+ congress: true
+ sfc: false
+ vpn: false
+ vpp: true
+ dataplane: fdio
+ performance:
+ Controller:
+ 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/lib/overcloud-deploy-functions.sh b/lib/overcloud-deploy-functions.sh
index f30e875f..e5f9134b 100755
--- a/lib/overcloud-deploy-functions.sh
+++ b/lib/overcloud-deploy-functions.sh
@@ -34,7 +34,9 @@ function overcloud_deploy {
DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/services/gluon.yaml"
fi
elif [ "${deploy_options_array['vpp']}" == 'True' ]; then
- if [ "${deploy_options_array['sdn_l3']}" == "True" ]; then
+ if [ "${deploy_options_array['odl_vpp_netvirt']}" == "True" ]; then
+ DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/neutron-opendaylight-netvirt-vpp.yaml"
+ elif [ "${deploy_options_array['sdn_l3']}" == "True" ]; then
DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/neutron-opendaylight-honeycomb.yaml"
else
DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/neutron-opendaylight-honeycomb-l2.yaml"
@@ -118,12 +120,10 @@ EOI
if [ "${deploy_options_array['vpn']}" == 'True' ]; then
echo -e "${blue}INFO: Enabling ZRPC and Quagga${reset}"
ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" <<EOI
- LIBGUESTFS_BACKEND=direct virt-customize --run-command "yum -y install /root/quagga/*.rpm" \
- --run-command "sudo usermod -a -G quaggavt quagga" \
- --run-command "sudo mkdir -p /var/run/quagga/" \
- --run-command "sudo chown quagga:quagga -R /var/run/quagga/" \
- --run-command "systemctl enable zrpcd" \
- -a overcloud-full.qcow2
+ LIBGUESTFS_BACKEND=direct virt-customize \
+ --run-command "systemctl enable zrpcd" \
+ --run-command "systemctl enable bgpd" \
+ -a overcloud-full.qcow2
EOI
fi
@@ -182,18 +182,12 @@ EOI
-a overcloud-full.qcow2
EOI
- # Disable clustering for ODL FDIO HA scenarios
- if [[ "${deploy_options_array['sdn_controller']}" == 'opendaylight' ]]; then
- ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" <<EOI
- LIBGUESTFS_BACKEND=direct virt-customize --run-command "cd /etc/puppet/modules/tripleo/ && patch -p1 < disable_odl_clustering.patch" \
- -a overcloud-full.qcow2
-EOI
- fi
-
- # Configure routing node for odl-fdio
+ # Configure routing node and interface role mapping for odl-fdio
if [[ "${deploy_options_array['sdn_l3']}" == 'True' ]]; then
ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" <<EOI
sed -i "/opendaylight::vpp_routing_node:/c\ opendaylight::vpp_routing_node: ${deploy_options_array['odl_vpp_routing_node']}.${domain_name}" ${ENV_FILE}
+ sed -i "/ControllerExtraConfig:/ c\ ControllerExtraConfig:\n tripleo::profile::base::neutron::agents::honeycomb::interface_role_mapping: \"['${tenant_nic_mapping_controller_members}:tenant-interface']\"" ${ENV_FILE}
+ sed -i "/NovaComputeExtraConfig:/ c\ NovaComputeExtraConfig:\n tripleo::profile::base::neutron::agents::honeycomb::interface_role_mapping: \"['${tenant_nic_mapping_compute_members}:tenant-interface','${external_nic_mapping_compute_members}:public-interface']\"" ${ENV_FILE}
EOI
fi
fi
@@ -251,10 +245,6 @@ EOI
echo -e "${blue}INFO: nosdn fdio deployment...installing correct vpp packages...${reset}"
ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" <<EOI
sed -i "/NeutronVPPAgentPhysnets:/c\ NeutronVPPAgentPhysnets: 'datacentre:${tenant_nic_mapping_controller_members}'" ${ENV_FILE}
- LIBGUESTFS_BACKEND=direct virt-customize --run-command "yum remove -y vpp vpp-api-python vpp-lib vpp-plugins" \
- --run-command "yum install -y /root/fdio_nosdn/*.rpm" \
- --run-command "rm -f /etc/sysctl.d/80-vpp.conf" \
- -a overcloud-full.qcow2
EOI
else
echo -e "${red}Compute and Controller must use the same tenant nic name, please modify network setting file.${reset}"
@@ -284,22 +274,13 @@ EOI
EOI
fi
- # Override ODL if FDIO and ODL L2
- if [[ "${deploy_options_array['vpp']}" == 'True' && "${deploy_options_array['sdn_controller']}" == 'opendaylight' ]]; then
- if [ "${deploy_options_array['sdn_l3']}" == "False" ]; then
- ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" <<EOI
- LIBGUESTFS_BACKEND=direct virt-customize --run-command "yum -y remove opendaylight" \
- --run-command "yum -y install /root/fdio_l2/opendaylight*.rpm" \
- -a overcloud-full.qcow2
-EOI
- else
- ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" <<EOI
- LIBGUESTFS_BACKEND=direct virt-customize --run-command "yum remove -y vpp vpp-api-python vpp-lib vpp-plugins honeycomb" \
- --run-command "yum -y install /root/fdio_l3/*.rpm" \
- --run-command "rm -f /etc/sysctl.d/80-vpp.conf" \
- -a overcloud-full.qcow2
+ # Override ODL if we enable netvirt for fdio
+ if [[ "${deploy_options_array['odl_vpp_netvirt']}" == 'True' && "${deploy_options_array['sdn_controller']}" == 'opendaylight' ]]; then
+ ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" <<EOI
+ LIBGUESTFS_BACKEND=direct virt-customize --run-command "rm -rf /opt/opendaylight/*" \
+ --run-command "tar zxvf /root/odl-netvirt-vpp-distribution.tar.gz -C /opt/opendaylight/" \
+ -a overcloud-full.qcow2
EOI
- fi
fi
# check if ceph should be enabled
diff --git a/lib/python/apex/deploy_settings.py b/lib/python/apex/deploy_settings.py
index dc58d764..48ce340d 100644
--- a/lib/python/apex/deploy_settings.py
+++ b/lib/python/apex/deploy_settings.py
@@ -31,7 +31,8 @@ OPT_DEPLOY_SETTINGS = ['performance',
'ceph_device',
'yardstick',
'dovetail',
- 'odl_vpp_routing_node']
+ 'odl_vpp_routing_node',
+ 'odl_vpp_netvirt']
VALID_ROLES = ['Controller', 'Compute', 'ObjectStorage']
VALID_PERF_OPTS = ['kernel', 'nova', 'vpp', 'ovs']
diff --git a/lib/python/apex/ip_utils.py b/lib/python/apex/ip_utils.py
index b039e26b..ae60b705 100644
--- a/lib/python/apex/ip_utils.py
+++ b/lib/python/apex/ip_utils.py
@@ -147,7 +147,7 @@ def get_interface(nic, address_family=4):
if not nic.strip():
logging.error("empty nic name specified")
return None
- output = subprocess.getoutput("ip -{} addr show {} scope global"
+ output = subprocess.getoutput("/usr/sbin/ip -{} addr show {} scope global"
.format(address_family, nic))
if address_family == 4:
pattern = re.compile("\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/\d{1,2}")
@@ -178,14 +178,15 @@ def find_gateway(interface):
"""
address_family = interface.version
- output = subprocess.getoutput("ip -{} route".format(address_family))
+ output = subprocess.getoutput("/usr/sbin/ip -{} route".format(
+ address_family))
pattern = re.compile("default\s+via\s+(\S+)\s+")
match = re.search(pattern, output)
if match:
gateway_ip = match.group(1)
- reverse_route_output = subprocess.getoutput("ip route get {}"
+ reverse_route_output = subprocess.getoutput("/usr/sbin/ip route get {}"
.format(gateway_ip))
pattern = re.compile("{}.+src\s+{}".format(gateway_ip, interface.ip))
if not re.search(pattern, reverse_route_output):
diff --git a/tests/smoke_tests/execute_smoke_tests.sh b/tests/smoke_tests/execute_smoke_tests.sh
index a9a7b740..27f95251 100755
--- a/tests/smoke_tests/execute_smoke_tests.sh
+++ b/tests/smoke_tests/execute_smoke_tests.sh
@@ -1,3 +1,3 @@
#!/usr/bin/env bash
-python ~/snaps/snaps/unit_test_suite.py -e ~stack/overcloudrc -n external -k -l INFO &> ~stack/smoke-tests.out \ No newline at end of file
+python ~/snaps/snaps/test_runner.py -e ~stack/overcloudrc -n external -c -a -i -f -k -l INFO &> ~stack/smoke-tests.out \ No newline at end of file