diff options
-rwxr-xr-x | build/build_quagga.sh | 5 | ||||
-rw-r--r-- | build/first-boot.yaml | 2 | ||||
-rwxr-xr-x | build/honeycomb-jar-replace.sh | 19 | ||||
-rwxr-xr-x | build/overcloud-full.sh | 46 | ||||
-rwxr-xr-x | build/overcloud-opendaylight.sh | 22 | ||||
-rw-r--r-- | build/ovs-dpdk-preconfig.yaml | 4 | ||||
-rw-r--r-- | build/patches/disable_odl_clustering.patch | 46 | ||||
-rw-r--r-- | build/rpm_specs/opnfv-apex-common.spec | 2 | ||||
-rw-r--r-- | build/variables.sh | 32 | ||||
-rw-r--r-- | config/deploy/os-odl_netvirt-fdio-noha.yaml | 38 | ||||
-rwxr-xr-x | lib/overcloud-deploy-functions.sh | 51 | ||||
-rw-r--r-- | lib/python/apex/deploy_settings.py | 3 | ||||
-rw-r--r-- | lib/python/apex/ip_utils.py | 7 | ||||
-rwxr-xr-x | tests/smoke_tests/execute_smoke_tests.sh | 2 |
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 |