diff options
-rw-r--r-- | build/Makefile | 9 | ||||
-rw-r--r-- | build/c7-opnfv-x86_64-comps.xml | 4 | ||||
-rw-r--r-- | build/enable_rt_kvm.yaml | 4 | ||||
-rw-r--r-- | build/kvm4nfv-1st-boot.yaml | 60 | ||||
-rwxr-xr-x | build/overcloud-full.sh | 5 | ||||
-rwxr-xr-x | build/overcloud-opendaylight.sh | 30 | ||||
-rw-r--r-- | build/rpm_specs/opnfv-apex-common.spec | 15 | ||||
-rwxr-xr-x | build/undercloud.sh | 5 | ||||
-rw-r--r-- | build/variables.sh | 5 | ||||
-rw-r--r-- | ci/PR_revision.log | 4 | ||||
-rw-r--r-- | config/deploy/deploy_settings.yaml | 4 | ||||
-rw-r--r-- | config/deploy/os-nosdn-kvm-ha.yaml | 11 | ||||
-rw-r--r-- | config/deploy/os-nosdn-kvm-noha.yaml | 11 | ||||
-rw-r--r-- | config/network/network_settings.yaml | 10 | ||||
-rw-r--r-- | contrib/simple_deploy.sh | 2 | ||||
-rwxr-xr-x | lib/overcloud-deploy-functions.sh | 30 | ||||
-rw-r--r-- | lib/python/apex/deploy_settings.py | 3 | ||||
-rw-r--r-- | lib/python/apex/network_settings.py | 2 | ||||
-rw-r--r-- | tests/test_apex_network_settings.py | 9 |
19 files changed, 176 insertions, 47 deletions
diff --git a/build/Makefile b/build/Makefile index dc63bd3e..0bedd9d6 100644 --- a/build/Makefile +++ b/build/Makefile @@ -60,14 +60,17 @@ clean: clean-cache: rm -rf $(CACHE_DIR) +# ONOS integration did not get updated for Danube, +# removing it from the default builds + .PHONY: images -images: undercloud overcloud-full overcloud-opendaylight overcloud-onos +images: undercloud overcloud-full overcloud-opendaylight # overcloud-onos .PHONY: rpms -rpms: common-rpm undercloud-rpm opendaylight-rpm onos-rpm +rpms: common-rpm undercloud-rpm opendaylight-rpm # onos-rpm .PHONY: rpms-check -rpms-check: release-rpm-check common-rpm-check undercloud-rpm-check opendaylight-rpm-check onos-rpm-check +rpms-check: release-rpm-check common-rpm-check undercloud-rpm-check opendaylight-rpm-check # onos-rpm-check .PHONY: rpms-clean rpms-clean: diff --git a/build/c7-opnfv-x86_64-comps.xml b/build/c7-opnfv-x86_64-comps.xml index 67a0e511..6387cfb4 100644 --- a/build/c7-opnfv-x86_64-comps.xml +++ b/build/c7-opnfv-x86_64-comps.xml @@ -7839,7 +7839,7 @@ <groupid>virtualization-hypervisor</groupid> <groupid>virtualization-tools</groupid> <groupid>apex-opendaylight</groupid> - <groupid>apex-onos</groupid> + <!--groupid>apex-onos</groupid--> </grouplist> <optionlist> <groupid>virtualization-platform</groupid> @@ -7865,7 +7865,7 @@ <groupid>virtualization-hypervisor</groupid> <groupid>virtualization-tools</groupid> <groupid>apex-opendaylight</groupid> - <groupid>apex-onos</groupid> + <!--groupid>apex-onos</groupid--> </grouplist> <optionlist> <groupid>kde-desktop</groupid> diff --git a/build/enable_rt_kvm.yaml b/build/enable_rt_kvm.yaml new file mode 100644 index 00000000..0059021c --- /dev/null +++ b/build/enable_rt_kvm.yaml @@ -0,0 +1,4 @@ +parameter_defaults: + ComputeKernelArgs: 'kvmfornfv_kernel.rpm' +resource_registry: + OS::TripleO::NodeUserData: kvm4nfv-1st-boot.yaml diff --git a/build/kvm4nfv-1st-boot.yaml b/build/kvm4nfv-1st-boot.yaml new file mode 100644 index 00000000..0dad3e3b --- /dev/null +++ b/build/kvm4nfv-1st-boot.yaml @@ -0,0 +1,60 @@ +heat_template_version: 2014-10-16 + +description: > + This is the firstboot configuration for kvmfornfv kernel of the compute nodes + via cloud-init. To enable this, replace the default + mapping of OS::TripleO::NodeUserData in ../overcloud_resource_registry* + +parameters: + ComputeKernelArgs: + description: > + Name of the kvmfornfv kernel rpm. + Example: "kvmfornfv_kernel.rpm" + type: string + default: "" + ComputeHostnameFormat: + type: string + default: "" + +resources: + userdata: + type: OS::Heat::MultipartMime + properties: + parts: + - config: {get_resource: compute_kernel_args} + + # Verify the logs on /var/log/cloud-init.log on the overcloud node + compute_kernel_args: + type: OS::Heat::SoftwareConfig + properties: + config: + str_replace: + template: | + #!/bin/bash + set -x + FORMAT=$COMPUTE_HOSTNAME_FORMAT + if [[ -z $FORMAT ]] ; then + FORMAT="compute" ; + else + # Assumption: only %index% and %stackname% are the variables in Host name format + FORMAT=$(echo $FORMAT | sed 's/\%index\%//g' | sed 's/\%stackname\%//g') ; + fi + if [[ $(hostname) == *$FORMAT* ]] ; then + yum install -y /root/$KVMFORNFV_KERNEL_RPM + grub2-mkconfig -o /etc/grub2.cfg + sleep 5 + reboot + fi + params: + $KVMFORNFV_KERNEL_RPM: {get_param: ComputeKernelArgs} + $COMPUTE_HOSTNAME_FORMAT: {get_param: ComputeHostnameFormat} + +outputs: + # This means get_resource from the parent template will get the userdata, see: + # http://docs.openstack.org/developer/heat/template_guide/composition.html#making-your-template-resource-more-transparent + # Note this is new-for-kilo, an alternative is returning a value then using + # get_attr in the parent template instead. + OS::stack_id: + value: {get_resource: userdata} + + diff --git a/build/overcloud-full.sh b/build/overcloud-full.sh index c4c31c8a..b94c0cb0 100755 --- a/build/overcloud-full.sh +++ b/build/overcloud-full.sh @@ -77,6 +77,9 @@ enabled=1 gpgcheck=0 EOF +# Get Real Time Kernel from kvm4nfv +populate_cache $kvmfornfv_uri_base/$kvmfornfv_kernel_rpm + # Increase disk size by 500MB to accommodate more packages qemu-img resize overcloud-full_build.qcow2 +500MB @@ -90,6 +93,7 @@ qemu-img resize overcloud-full_build.qcow2 +500MB # git clone vsperf into the overcloud image # upload the tacker puppet module and untar it # install tacker +# upload the rt_kvm kernel LIBGUESTFS_BACKEND=direct virt-customize \ --run-command "xfs_growfs /dev/sda" \ --upload ${BUILD_DIR}/opnfv-puppet-tripleo.tar.gz:/etc/puppet/modules \ @@ -136,6 +140,7 @@ LIBGUESTFS_BACKEND=direct virt-customize \ --run-command "cd /usr/lib/python2.7/site-packages/ && patch -p1 < neutron-patch-NSDriver.patch" \ --upload ${BUILD_ROOT}/patches/puppet-neutron-add-odl-settings.patch:/usr/share/openstack-puppet/modules/neutron/ \ --run-command "cd /usr/share/openstack-puppet/modules/neutron && patch -p1 < puppet-neutron-add-odl-settings.patch" \ + --upload ${CACHE_DIR}/$kvmfornfv_kernel_rpm:/root/ \ -a overcloud-full_build.qcow2 mv -f overcloud-full_build.qcow2 overcloud-full.qcow2 diff --git a/build/overcloud-opendaylight.sh b/build/overcloud-opendaylight.sh index edca9e35..cbb2178e 100755 --- a/build/overcloud-opendaylight.sh +++ b/build/overcloud-opendaylight.sh @@ -8,6 +8,7 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## set -e +source ./cache.sh source ./variables.sh pushd ${BUILD_DIR} > /dev/null @@ -52,17 +53,18 @@ pushd puppet-opendaylight > /dev/null git archive --format=tar.gz --prefix=opendaylight/ HEAD > ${BUILD_DIR}/puppet-opendaylight.tar.gz popd > /dev/null -# networking-BGPVPN -rm -rf networking-bgpvpn -mkdir networking-bgpvpn -pushd networking-bgpvpn > /dev/null -wget https://github.com/oglok/networking-bgpvpn-rpm/raw/stable/newton/python2-networking-bgpvpn-5.0.1-dev6.noarch.rpm -wget https://github.com/oglok/networking-bgpvpn-rpm/raw/stable/newton/python-networking-bgpvpn-heat-5.0.1-dev6.noarch.rpm -wget https://github.com/oglok/networking-bgpvpn-rpm/raw/stable/newton/python-networking-bgpvpn-dashboard-5.0.1-dev6.noarch.rpm -wget https://github.com/oglok/networking-bgpvpn-rpm/raw/stable/newton/python-networking-bgpvpn-doc-5.0.1-dev6.noarch.rpm -wget https://github.com/oglok/networking-bgpvpn-rpm/raw/stable/newton/python-networking-bgpvpn-tests-5.0.1-dev6.noarch.rpm +# cache networking-BGPVPN +populate_cache https://github.com/oglok/networking-bgpvpn-rpm/raw/stable/newton/python2-networking-bgpvpn-5.0.1-dev6.noarch.rpm +populate_cache https://github.com/oglok/networking-bgpvpn-rpm/raw/stable/newton/python-networking-bgpvpn-heat-5.0.1-dev6.noarch.rpm +populate_cache https://github.com/oglok/networking-bgpvpn-rpm/raw/stable/newton/python-networking-bgpvpn-dashboard-5.0.1-dev6.noarch.rpm +populate_cache https://github.com/oglok/networking-bgpvpn-rpm/raw/stable/newton/python-networking-bgpvpn-doc-5.0.1-dev6.noarch.rpm +populate_cache https://github.com/oglok/networking-bgpvpn-rpm/raw/stable/newton/python-networking-bgpvpn-tests-5.0.1-dev6.noarch.rpm +pushd ${CACHE_DIR}/ > /dev/null +tar czf ${BUILD_DIR}/networking-bgpvpn.tar.gz *networking-bgpvpn* popd > /dev/null -tar czf networking-bgpvpn.tar.gz networking-bgpvpn/ + +# cache gluon +populate_cache http://artifacts.opnfv.org/netready/$gluon_rpm #Gluon puppet module rm -rf netready @@ -77,7 +79,6 @@ tar --transform "s/^x86_64/quagga/" -czvf ${BUILD_DIR}/quagga.tar.gz x86_64/ popd > /dev/null # install ODL packages -# install Jolokia for ODL HA # Patch in OPNFV custom puppet-tripleO # install Honeycomb # install quagga/zrpc @@ -88,20 +89,19 @@ LIBGUESTFS_BACKEND=direct virt-customize \ --run-command "yum install --downloadonly --downloaddir=/root/master/ opendaylight" \ --upload ${BUILD_DIR}/opendaylight.repo:/etc/yum.repos.d/opendaylight.repo \ --install opendaylight,python-networking-odl \ - --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" \ --install honeycomb \ --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/ \ - --run-command "cd /root/ && tar xzf networking-bgpvpn.tar.gz && cd networking-bgpvpn/ && yum localinstall -y *.rpm && rm -rf /root/networking-bgpvpn*" \ + --run-command "cd /root/ && tar xzf networking-bgpvpn.tar.gz && yum localinstall -y *networking-bgvpn*.rpm" \ --run-command "rm -f /etc/neutron/networking_bgpvpn.conf" \ --run-command "touch /etc/neutron/networking_bgpvpn.conf" \ --upload ${BUILD_DIR}/puppet-gluon.tar.gz:/etc/puppet/modules/ \ --run-command "cd /etc/puppet/modules/ && tar xzf puppet-gluon.tar.gz" \ --install epel-release \ --install python-click \ - --install http://artifacts.opnfv.org/netready/gluon-0.0.1-1_20170216.noarch.rpm \ + --upload ${CACHE_DIR}/$gluon_rpm:/root/\ + --install /root/$gluon_rpm \ --upload ${BUILD_DIR}/quagga.tar.gz:/root/ \ --run-command "cd /root/ && tar xzf quagga.tar.gz" \ --run-command "yum downgrade -y python-zmq-14.3.1" \ diff --git a/build/rpm_specs/opnfv-apex-common.spec b/build/rpm_specs/opnfv-apex-common.spec index ec0735fc..a004542b 100644 --- a/build/rpm_specs/opnfv-apex-common.spec +++ b/build/rpm_specs/opnfv-apex-common.spec @@ -43,6 +43,8 @@ install config/deploy/os-nosdn-ovs-noha.yaml %{buildroot}%{_sysconfdir}/opnfv-ap install config/deploy/os-nosdn-nofeature-ha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-nosdn-nofeature-ha.yaml install config/deploy/os-nosdn-performance-ha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-nosdn-performance-ha.yaml install config/deploy/os-nosdn-ovs-ha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-nosdn-ovs-ha.yaml +install config/deploy/os-nosdn-kvm-ha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-nosdn-kvm-ha.yaml +install config/deploy/os-nosdn-kvm-noha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-nosdn-kvm-noha.yaml install config/deploy/os-odl_l2-nofeature-ha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-odl_l2-nofeature-ha.yaml install config/deploy/os-odl_l2-sfc-noha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-odl_l2-sfc-noha.yaml install config/deploy/os-odl-bgpvpn-ha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-odl-bgpvpn-ha.yaml @@ -51,8 +53,8 @@ install config/deploy/os-odl_l2-fdio-ha.yaml %{buildroot}%{_sysconfdir}/opnfv-ap install config/deploy/os-odl_l2-fdio-noha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-odl_l2-fdio-noha.yaml install config/deploy/os-odl_l3-nofeature-ha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-odl_l3-nofeature-ha.yaml install config/deploy/os-odl-gluon-noha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-odl-gluon-noha.yaml -install config/deploy/os-onos-nofeature-ha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-onos-nofeature-ha.yaml -install config/deploy/os-onos-sfc-ha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-onos-sfc-ha.yaml +#install config/deploy/os-onos-nofeature-ha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-onos-nofeature-ha.yaml +#install config/deploy/os-onos-sfc-ha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-onos-sfc-ha.yaml install config/deploy/os-ocl-nofeature-ha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-ocl-nofeature-ha.yaml install config/network/network_settings.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/network_settings.yaml install config/network/network_settings_v6.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/network_settings_v6.yaml @@ -120,6 +122,8 @@ install config/inventory/pod_example_settings.yaml %{buildroot}%{_docdir}/opnfv/ %{_sysconfdir}/opnfv-apex/os-nosdn-nofeature-ha.yaml %{_sysconfdir}/opnfv-apex/os-nosdn-performance-ha.yaml %{_sysconfdir}/opnfv-apex/os-nosdn-ovs-ha.yaml +%{_sysconfdir}/opnfv-apex/os-nosdn-kvm-ha.yaml +%{_sysconfdir}/opnfv-apex/os-nosdn-kvm-noha.yaml %{_sysconfdir}/opnfv-apex/os-odl_l2-nofeature-ha.yaml %{_sysconfdir}/opnfv-apex/os-odl_l2-sfc-noha.yaml %{_sysconfdir}/opnfv-apex/os-odl-bgpvpn-ha.yaml @@ -128,8 +132,8 @@ install config/inventory/pod_example_settings.yaml %{buildroot}%{_docdir}/opnfv/ %{_sysconfdir}/opnfv-apex/os-odl_l2-fdio-ha.yaml %{_sysconfdir}/opnfv-apex/os-odl_l3-nofeature-ha.yaml %{_sysconfdir}/opnfv-apex/os-odl-gluon-noha.yaml -%{_sysconfdir}/opnfv-apex/os-onos-nofeature-ha.yaml -%{_sysconfdir}/opnfv-apex/os-onos-sfc-ha.yaml +#%{_sysconfdir}/opnfv-apex/os-onos-nofeature-ha.yaml +#%{_sysconfdir}/opnfv-apex/os-onos-sfc-ha.yaml %{_sysconfdir}/opnfv-apex/os-ocl-nofeature-ha.yaml %{_sysconfdir}/opnfv-apex/network_settings.yaml %{_sysconfdir}/opnfv-apex/network_settings_v6.yaml @@ -145,6 +149,9 @@ install config/inventory/pod_example_settings.yaml %{buildroot}%{_docdir}/opnfv/ %doc %{_docdir}/opnfv/inventory.yaml.example %changelog +* Wed Mar 08 2017 Dan Radez <dradez@redhat.com> - 4.0-5 +- Commenting out ONOS, unsupported in Danube +- Adding kvm4nfv files * Tue Feb 14 2017 Feng Pan <fpan@redhat.com> - 4.0-4 - Add network_settings_vpp.yaml * Fri Feb 3 2017 Nikolas Hermanns <nikolas.hermanns@ericsson.com> - 4.0-3 diff --git a/build/undercloud.sh b/build/undercloud.sh index 1101da87..4e1b963a 100755 --- a/build/undercloud.sh +++ b/build/undercloud.sh @@ -24,6 +24,9 @@ pushd opnfv-tht > /dev/null git archive --format=tar.gz --prefix=openstack-tripleo-heat-templates/ HEAD > ${BUILD_DIR}/opnfv-tht.tar.gz popd > /dev/null +# inject rt_kvm kernel rpm name into the enable file +sed -i "s/kvmfornfv_kernel.rpm/$kvmfornfv_kernel_rpm/" ${BUILD_ROOT}/enable_rt_kvm.yaml + # installing forked opnfv-tht # enabling ceph OSDs to live on the controller # OpenWSMan package update supports the AMT Ironic driver for the TealBox @@ -48,6 +51,8 @@ LIBGUESTFS_BACKEND=direct virt-customize \ --run-command "cp /usr/share/instack-undercloud/undercloud.conf.sample /home/stack/undercloud.conf && chown stack:stack /home/stack/undercloud.conf" \ --upload ${BUILD_ROOT}/opnfv-environment.yaml:/home/stack/ \ --upload ${BUILD_ROOT}/first-boot.yaml:/home/stack/ \ + --upload ${BUILD_ROOT}/kvm4nfv-1st-boot.yaml:/home/stack/ \ + --upload ${BUILD_ROOT}/enable_rt_kvm.yaml:/home/stack/ \ --upload ${BUILD_ROOT}/csit-environment.yaml:/home/stack/ \ --upload ${BUILD_ROOT}/virtual-environment.yaml:/home/stack/ \ --install "python2-congressclient" \ diff --git a/build/variables.sh b/build/variables.sh index 0fc3824b..4ba591c4 100644 --- a/build/variables.sh +++ b/build/variables.sh @@ -33,6 +33,9 @@ dpdk_rpms=( 'ovs4opnfv-e8acab14-openvswitch-2.5.90-0.12032.gitc61e93d6.1.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" + tacker_repo="http://github.com/openstack/tacker" tacker_branch="stable/newton" tacker_commit=$(git ls-remote ${tacker_repo} ${tacker_branch} | awk '{print substr($1,1,7)}') @@ -52,3 +55,5 @@ netvpp_repo="https://github.com/openstack/networking-vpp" netvpp_branch="master" netvpp_commit=$(git ls-remote ${netvpp_repo} ${netvpp_branch} | awk '{print substr($1,1,7)}') netvpp_pkg=python-networking-vpp-0.0.1-1.git${NETVPP_COMMIT}$(rpm -E %dist).noarch.rpm + +gluon_rpm=gluon-0.0.1-1_20170216.noarch.rpm diff --git a/ci/PR_revision.log b/ci/PR_revision.log index 20c5e49e..6bb3f76c 100644 --- a/ci/PR_revision.log +++ b/ci/PR_revision.log @@ -9,3 +9,7 @@ 109,Adding endpoint url definitions to congress 115,Increases mariadb open files limit for noha deployments 116,Adding notifier topic to ceilometer +114,Use networking-odl v1 driver in bgpvpn +119,Fixes missing ':' with setting hieradata for mariadb limit +19,opnfv-puppet-tripleo, Only increases mariadb limit with noha deployments +120,Add old openflow port (6633) and karaf ssh port (8101) diff --git a/config/deploy/deploy_settings.yaml b/config/deploy/deploy_settings.yaml index b3d3ac2b..73535795 100644 --- a/config/deploy/deploy_settings.yaml +++ b/config/deploy/deploy_settings.yaml @@ -41,6 +41,10 @@ deploy_options: # 'ovs', 'ovs_dpdk' and 'fdio'. dataplane : ovs + # Whether to run the kvm real time kernel (rt_kvm) in the compute node(s) to + # reduce the network latencies caused by network function virtualization + rt_kvm: false + # Whether to install and configure fdio functionality in the overcloud # The dataplane should be specified as fdio if this is set to true vpp: false diff --git a/config/deploy/os-nosdn-kvm-ha.yaml b/config/deploy/os-nosdn-kvm-ha.yaml new file mode 100644 index 00000000..cb68a313 --- /dev/null +++ b/config/deploy/os-nosdn-kvm-ha.yaml @@ -0,0 +1,11 @@ +global_params: + ha_enabled: true + +deploy_options: + sdn_controller: false + sdn_l3: false + tacker: true + congress: true + sfc: false + vpn: false + rt_kvm: true diff --git a/config/deploy/os-nosdn-kvm-noha.yaml b/config/deploy/os-nosdn-kvm-noha.yaml new file mode 100644 index 00000000..bf737d71 --- /dev/null +++ b/config/deploy/os-nosdn-kvm-noha.yaml @@ -0,0 +1,11 @@ +global_params: + ha_enabled: false + +deploy_options: + sdn_controller: false + sdn_l3: false + tacker: true + congress: true + sfc: false + vpn: false + rt_kvm: true diff --git a/config/network/network_settings.yaml b/config/network/network_settings.yaml index 1cba64bb..be0b6836 100644 --- a/config/network/network_settings.yaml +++ b/config/network/network_settings.yaml @@ -80,7 +80,7 @@ networks: # Network configurations compute: # Mapping for compute profile (nodes that will be used as Compute nodes) phys_type: interface # Physical interface type (interface or bond) members: # Physical NIC members of this mapping (Single value allowed for interface phys_type) - - nic1 + - eth0 controller: # Mapping for controller profile (nodes that will be used as Controller nodes) phys_type: interface members: @@ -99,7 +99,7 @@ networks: # Network configurations phys_type: interface # Physical interface type (interface or bond) vlan: native # VLAN tag to use with this NIC members: # Physical NIC members of this mapping (Single value allowed for interface phys_type) - - nic2 # Note, for Apex you may also use the logical nic name (found by nic order), such as "nic1" + - eth1 # Note, for Apex you may also use the logical nic name (found by nic order), such as "nic1" controller: # Mapping for controller profile (nodes that will be used as Controller nodes) phys_type: interface vlan: native @@ -130,7 +130,7 @@ networks: # Network configurations phys_type: interface # Physical interface type (interface or bond) vlan: native # VLAN tag to use with this NIC members: # Physical NIC members of this mapping (Single value allowed for interface phys_type) - - nic3 + - eth2 controller: # Mapping for controller profile (nodes that will be used as Controller nodes) phys_type: interface vlan: native @@ -163,7 +163,7 @@ networks: # Network configurations phys_type: interface # Physical interface type (interface or bond) vlan: 101 # VLAN tag to use with this NIC members: # Physical NIC members of this mapping (Single value allowed for interface phys_type) - - nic3 # Note, for Apex you may also use the logical nic name (found by nic order), such as "nic1" + - eth2 # Note, for Apex you may also use the logical nic name (found by nic order), such as "nic1" controller: # Mapping for controller profile (nodes that will be used as Controller nodes) phys_type: interface vlan: 101 @@ -184,7 +184,7 @@ networks: # Network configurations phys_type: interface # Physical interface type (interface or bond) vlan: native # VLAN tag to use with this NIC members: # Physical NIC members of this mapping (Single value allowed for interface phys_type) - - nic4 # Note, for Apex you may also use the logical nic name (found by nic order), such as "nic1" + - eth3 # Note, for Apex you may also use the logical nic name (found by nic order), such as "nic1" controller: # Mapping for controller profile (nodes that will be used as Controller nodes) phys_type: interface vlan: native diff --git a/contrib/simple_deploy.sh b/contrib/simple_deploy.sh index 6ad727d5..a9d1473a 100644 --- a/contrib/simple_deploy.sh +++ b/contrib/simple_deploy.sh @@ -3,7 +3,7 @@ set -e apex_home=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/../ export CONFIG=$apex_home/build export LIB=$apex_home/lib -export RESOURCES=$apex_home/.build/images/ +export RESOURCES=$apex_home/.build/ export PYTHONPATH=$PYTHONPATH:$apex_home/lib/python $apex_home/ci/dev_dep_check.sh || true $apex_home/ci/clean.sh diff --git a/lib/overcloud-deploy-functions.sh b/lib/overcloud-deploy-functions.sh index 60aadd6c..d7e9b7e0 100755 --- a/lib/overcloud-deploy-functions.sh +++ b/lib/overcloud-deploy-functions.sh @@ -14,6 +14,11 @@ function overcloud_deploy { local num_compute_nodes local num_control_nodes + # OPNFV Default Environment and Network settings + DEPLOY_OPTIONS+=" -e ${ENV_FILE}" + DEPLOY_OPTIONS+=" -e network-environment.yaml" + + # Custom Deploy Environment Templates if [[ "${#deploy_options_array[@]}" -eq 0 || "${deploy_options_array['sdn_controller']}" == 'opendaylight' ]]; then if [ "${deploy_options_array['sfc']}" == 'True' ]; then DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/opendaylight_sfc.yaml" @@ -32,12 +37,14 @@ function overcloud_deploy { DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/opendaylight-external.yaml" SDN_IMAGE=opendaylight elif [ "${deploy_options_array['sdn_controller']}" == 'onos' ]; then - if [ "${deploy_options_array['sfc']}" == 'True' ]; then - DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/onos_sfc.yaml" - else - DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/onos.yaml" - fi - SDN_IMAGE=onos + echo -e "${red}ERROR: ONOS is unsupported in Danube...exiting${reset}" + exit 1 + #if [ "${deploy_options_array['sfc']}" == 'True' ]; then + # DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/onos_sfc.yaml" + #else + # DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/onos.yaml" + #fi + #SDN_IMAGE=onos elif [ "${deploy_options_array['sdn_controller']}" == 'opencontrail' ]; then echo -e "${red}ERROR: OpenContrail is currently unsupported...exiting${reset}" exit 1 @@ -63,6 +70,11 @@ function overcloud_deploy { DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/enable_congress.yaml" fi + # Enable Real Time Kernel (kvm4nfv) + if [ "${deploy_options_array['rt_kvm']}" == 'True' ]; then + DEPLOY_OPTIONS+=" -e /home/stack/enable_rt_kvm.yaml" + fi + # Make sure the correct overcloud image is available if [ ! -f $IMAGES/overcloud-full-${SDN_IMAGE}.qcow2 ]; then echo "${red} $IMAGES/overcloud-full-${SDN_IMAGE}.qcow2 is required to execute your deployment." @@ -183,10 +195,6 @@ EOI DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yaml" fi - #DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml" - DEPLOY_OPTIONS+=" -e network-environment.yaml" - - # get number of nodes available in inventory num_control_nodes=$(ssh -T ${SSH_OPTIONS[@]} "root@$UNDERCLOUD" "grep -c profile:control /home/stack/instackenv.json") num_compute_nodes=$(ssh -T ${SSH_OPTIONS[@]} "root@$UNDERCLOUD" "grep -c profile:compute /home/stack/instackenv.json") @@ -223,8 +231,6 @@ EOI DEPLOY_OPTIONS+=" -e virtual-environment.yaml" fi - DEPLOY_OPTIONS+=" -e ${ENV_FILE}" - echo -e "${blue}INFO: Deploy options set:\n${DEPLOY_OPTIONS}${reset}" ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" <<EOI diff --git a/lib/python/apex/deploy_settings.py b/lib/python/apex/deploy_settings.py index 0d1939a4..566e8bea 100644 --- a/lib/python/apex/deploy_settings.py +++ b/lib/python/apex/deploy_settings.py @@ -23,7 +23,8 @@ REQ_DEPLOY_SETTINGS = ['sdn_controller', 'vpn', 'vpp', 'ceph', - 'gluon'] + 'gluon', + 'rt_kvm'] OPT_DEPLOY_SETTINGS = ['performance', 'vsperf', diff --git a/lib/python/apex/network_settings.py b/lib/python/apex/network_settings.py index b04f141a..79b0a9d1 100644 --- a/lib/python/apex/network_settings.py +++ b/lib/python/apex/network_settings.py @@ -99,13 +99,13 @@ class NetworkSettings(dict): logging.info("{} enabled".format(network)) self._config_required_settings(network) nicmap = _network['nic_mapping'] + self._validate_overcloud_nic_order(network) iface = nicmap[CONTROLLER]['members'][0] self._config_ip_range(network=network, interface=iface, ip_range='overcloud_ip_range', start_offset=21, end_offset=21) self.enabled_network_list.append(network) - self._validate_overcloud_nic_order(network) # TODO self._config_optional_settings(network) else: logging.info("{} disabled, will collapse with " diff --git a/tests/test_apex_network_settings.py b/tests/test_apex_network_settings.py index 955c0cf7..8f994352 100644 --- a/tests/test_apex_network_settings.py +++ b/tests/test_apex_network_settings.py @@ -92,7 +92,10 @@ class TestNetworkSettings(object): nic_index = 1 print(ns.nics) for network in ns.enabled_network_list: - nic = 'nic' + str(nic_index) + if role == 'compute': + nic = 'eth' + str(nic_index - 1) + else: + nic = 'nic' + str(nic_index) assert_equal(ns.nics[role][network], nic) nic_index += 1 @@ -104,10 +107,10 @@ class TestNetworkSettings(object): ns = NetworkSettings(files_dir+'network_settings.yaml') storage_net_nicmap = ns['networks'][STORAGE_NETWORK]['nic_mapping'] # set duplicate nic - storage_net_nicmap['compute']['members'][0] = 'nic1' + storage_net_nicmap['controller']['members'][0] = 'nic1' assert_raises(NetworkSettingsException, NetworkSettings, ns) # remove nic members - storage_net_nicmap['compute']['members'] = [] + storage_net_nicmap['controller']['members'] = [] assert_raises(NetworkSettingsException, NetworkSettings, ns) def test_missing_vlan(self): |