diff options
-rw-r--r-- | build/network-environment.yaml | 2 | ||||
-rw-r--r-- | build/nics-template.yaml.jinja2 | 2 | ||||
-rwxr-xr-x | build/overcloud-full.sh | 31 | ||||
-rw-r--r-- | ci/PR_revision.log | 2 | ||||
-rwxr-xr-x | ci/run_smoke_tests.sh | 5 | ||||
-rw-r--r-- | config/deploy/os-nosdn-performance-ha.yaml | 1 | ||||
-rw-r--r-- | docs/release-notes/release-notes.rst | 3 | ||||
-rwxr-xr-x | lib/post-install-functions.sh | 12 | ||||
-rw-r--r-- | lib/python/apex/deploy_env.py | 2 | ||||
-rw-r--r-- | lib/python/apex/network_environment.py | 1 | ||||
-rw-r--r-- | lib/utility-functions.sh | 13 | ||||
-rwxr-xr-x | tests/smoke_tests/execute_smoke_tests.sh | 6 | ||||
-rw-r--r-- | tests/smoke_tests/execute_tests.yml | 9 | ||||
-rw-r--r-- | tests/smoke_tests/prepare_undercloud.yml | 16 | ||||
-rw-r--r-- | tests/smoke_tests/smoke_tests.yml | 3 |
15 files changed, 100 insertions, 8 deletions
diff --git a/build/network-environment.yaml b/build/network-environment.yaml index baf8b187..f1503feb 100644 --- a/build/network-environment.yaml +++ b/build/network-environment.yaml @@ -41,7 +41,7 @@ resource_registry: parameter_defaults: - #NeutronExternalNetworkBridge: "''" + NeutronExternalNetworkBridge: 'br-ex' ControlPlaneSubnetCidr: "24" ControlPlaneDefaultRoute: 192.0.2.1 ExternalNetCidr: 192.168.37.0/24 diff --git a/build/nics-template.yaml.jinja2 b/build/nics-template.yaml.jinja2 index 53290e4f..0680a26f 100644 --- a/build/nics-template.yaml.jinja2 +++ b/build/nics-template.yaml.jinja2 @@ -85,7 +85,7 @@ resources: os_net_config: network_config: - - {%- if vlans['private_network'] is number or vlans['storage_network'] is number or vlans['api_network'] is number %} + {%- if vlans['private_network'] is number or vlans['storage_network'] is number or vlans['api_network'] is number or vlans['public_network'] is number %} type: ovs_bridge name: {get_input: bridge_name} members: diff --git a/build/overcloud-full.sh b/build/overcloud-full.sh index 01f40269..675343db 100755 --- a/build/overcloud-full.sh +++ b/build/overcloud-full.sh @@ -58,6 +58,27 @@ pushd puppet-congress > /dev/null git archive --format=tar.gz --prefix=congress/ origin/stable/mitaka > ../puppet-congress.tar.gz 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 + +# tar up the fd.io module +rm -rf puppet-fdio +git clone https://github.com/radez/puppet-fdio +pushd puppet-fdio > /dev/null +git archive --format=tar.gz --prefix=fdio/ HEAD > ../puppet-fdio.tar.gz +popd > /dev/null + +# tar up vsperf +rm -rf vsperf vsperf.tar.gz +git clone https://gerrit.opnfv.org/gerrit/vswitchperf vsperf +tar czf vsperf.tar.gz vsperf + # installing forked opnfv-puppet-tripleo # enable connection tracking for protocal sctp # upload dpdk rpms but do not install @@ -65,8 +86,12 @@ popd > /dev/null # install the congress rpms # upload and explode the congress puppet module # install doctor driver ## Can be removed in Newton +# install fd.io yum repo and packages +# upload puppet fdio +# git clone vsperf into the overcloud image LIBGUESTFS_BACKEND=direct virt-customize \ --upload ../opnfv-puppet-tripleo.tar.gz:/etc/puppet/modules \ + --run-command "if ! rpm -qa | grep python-redis; then yum install -y python-redis; fi" \ --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 "cd /etc/puppet/modules && rm -rf tripleo && tar xzf opnfv-puppet-tripleo.tar.gz" \ @@ -84,6 +109,12 @@ 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 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" \ -a overcloud-full_build.qcow2 mv -f overcloud-full_build.qcow2 overcloud-full.qcow2 diff --git a/ci/PR_revision.log b/ci/PR_revision.log index de62cb6b..73542c8c 100644 --- a/ci/PR_revision.log +++ b/ci/PR_revision.log @@ -12,3 +12,5 @@ 33,Removes QOS service plugin from Neutron 35,Use nic1 as control plane inteface name instead of default br-ex 38,Fixes nova default floating pool to be 'external' +39,removing extra whitespace from congress parameter +40,Move mongo to step 1 diff --git a/ci/run_smoke_tests.sh b/ci/run_smoke_tests.sh new file mode 100755 index 00000000..b0599527 --- /dev/null +++ b/ci/run_smoke_tests.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +source ../lib/utility-functions.sh + +ansible-playbook -i "$(get_undercloud_ip)," ../tests/smoke_tests/smoke_tests.yml diff --git a/config/deploy/os-nosdn-performance-ha.yaml b/config/deploy/os-nosdn-performance-ha.yaml index f7312ad6..9bbbdd2b 100644 --- a/config/deploy/os-nosdn-performance-ha.yaml +++ b/config/deploy/os-nosdn-performance-ha.yaml @@ -8,6 +8,7 @@ deploy_options: congress: false sfc: false vpn: false + vsperf: false performance: Controller: kernel: diff --git a/docs/release-notes/release-notes.rst b/docs/release-notes/release-notes.rst index 9f3ddb5e..a066e075 100644 --- a/docs/release-notes/release-notes.rst +++ b/docs/release-notes/release-notes.rst @@ -198,6 +198,9 @@ Known issues | JIRA: APEX-86 | Compute node count configurable | | | for virtual deployments | +--------------------------------------+--------------------------------------+ +| JIRA: APEX-141 | Adding VSPERF support | +| | | ++--------------------------------------+--------------------------------------+ Workarounds ----------- diff --git a/lib/post-install-functions.sh b/lib/post-install-functions.sh index 912a2a11..ec2ca89f 100755 --- a/lib/post-install-functions.sh +++ b/lib/post-install-functions.sh @@ -76,7 +76,11 @@ EOI source overcloudrc set -o errexit echo "Configuring Neutron external network" -neutron net-create external --router:external=True --tenant-id \$(openstack project show service | grep id | awk '{ print \$4 }') +if [[ -n "$public_network_vlan" && "$public_network_vlan" != 'native' ]]; then + neutron net-create external --router:external=True --tenant-id \$(openstack project show service | grep id | awk '{ print \$4 }') --provider:network_type vlan --provider:segmentation_id ${public_network_vlan} --provider:physical_network datacentre +else + neutron net-create external --router:external=True --tenant-id \$(openstack project show service | grep id | awk '{ print \$4 }') +fi neutron subnet-create --name external-net --tenant-id \$(openstack project show service | grep id | awk '{ print \$4 }') --disable-dhcp external --gateway ${public_network_gateway} --allocation-pool start=${public_network_floating_ip_range%%,*},end=${public_network_floating_ip_range##*,} ${public_network_cidr} echo "Removing sahara endpoint and service" @@ -127,6 +131,12 @@ done EOI fi + ### VSPERF ### + if [[ "${deploy_options_array['vsperf']}" == 'True' ]]; then + echo "${blue}\nVSPERF enabled, running build_base_machine.sh\n${reset}" + overcloud_connect "compute0" "sudo sh -c 'cd /var/opt/vsperf/systems/ && ./build_base_machine.sh 2>&1 > /var/log/vsperf.log'" + fi + # Collect deployment logs ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" <<EOI mkdir -p ~/deploy_logs diff --git a/lib/python/apex/deploy_env.py b/lib/python/apex/deploy_env.py index 1fe137e4..816dc114 100644 --- a/lib/python/apex/deploy_env.py +++ b/lib/python/apex/deploy_env.py @@ -21,7 +21,7 @@ REQ_DEPLOY_SETTINGS = ['sdn_controller', 'vpn', 'vpp'] -OPT_DEPLOY_SETTINGS = ['performance'] +OPT_DEPLOY_SETTINGS = ['performance', 'vsperf'] VALID_ROLES = ['Controller', 'Compute', 'ObjectStorage'] VALID_PERF_OPTS = ['kernel', 'nova'] diff --git a/lib/python/apex/network_environment.py b/lib/python/apex/network_environment.py index bf4bdc79..981c8f1c 100644 --- a/lib/python/apex/network_environment.py +++ b/lib/python/apex/network_environment.py @@ -84,6 +84,7 @@ class NetworkEnvironment: public_cidr = net_settings[PUBLIC_NETWORK]['cidr'] self.netenv_obj[param_def]['ExternalNetCidr'] = str(public_cidr) if net_settings[PUBLIC_NETWORK]['vlan'] != 'native': + self.netenv_obj[param_def]['NeutronExternalNetworkBridge'] = '""' self.netenv_obj[param_def]['ExternalNetworkVlanID'] = \ net_settings[PUBLIC_NETWORK]['vlan'] public_range = \ diff --git a/lib/utility-functions.sh b/lib/utility-functions.sh index 93050701..f73a2d85 100644 --- a/lib/utility-functions.sh +++ b/lib/utility-functions.sh @@ -15,14 +15,19 @@ function undercloud_connect { fi if [ -z "$2" ]; then - ssh ${SSH_OPTIONS[@]} ${user}@$(arp -a | grep $(virsh domiflist undercloud | grep default |\ - awk '{print $5}') | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+") + ssh ${SSH_OPTIONS[@]} ${user}@$(get_undercloud_ip) else - ssh ${SSH_OPTIONS[@]} -T ${user}@$(arp -a | grep $(virsh domiflist undercloud | grep default \ - | awk '{print $5}') | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+") "$2" + ssh ${SSH_OPTIONS[@]} -T ${user}@$(get_undercloud_ip) "$2" fi } +##outputs the Undercloud's IP address +##params: none +function get_undercloud_ip { + echo $(arp -a | grep $(virsh domiflist undercloud | grep default |\ + awk '{print $5}') | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+") +} + ##connects to overcloud nodes ##params: node to login to, command to execute on overcloud (optional) function overcloud_connect { diff --git a/tests/smoke_tests/execute_smoke_tests.sh b/tests/smoke_tests/execute_smoke_tests.sh new file mode 100755 index 00000000..245ccc53 --- /dev/null +++ b/tests/smoke_tests/execute_smoke_tests.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +cd ~/provisioning/python +export PYTHONPATH=$PYTHONPATH:$(pwd) + +python unit_test_suite.py ~stack/overcloudrc
\ No newline at end of file diff --git a/tests/smoke_tests/execute_tests.yml b/tests/smoke_tests/execute_tests.yml new file mode 100644 index 00000000..e2326560 --- /dev/null +++ b/tests/smoke_tests/execute_tests.yml @@ -0,0 +1,9 @@ +--- +- hosts: all + sudo: yes + + tasks: + - name: Copy execute_smoke_tests.sh + copy: src=execute_smoke_tests.sh dest=~/execute_smoke_tests.sh mode=0755 + - name: Execute Tests + command: sh ~/execute_smoke_tests.sh | tee ~/unit_tests.out
\ No newline at end of file diff --git a/tests/smoke_tests/prepare_undercloud.yml b/tests/smoke_tests/prepare_undercloud.yml new file mode 100644 index 00000000..8f0cb709 --- /dev/null +++ b/tests/smoke_tests/prepare_undercloud.yml @@ -0,0 +1,16 @@ +--- +- hosts: all + sudo: yes + + tasks: + - yum: name=libffi + - yum: name=libffi-devel + - pip: name=python-keystoneclient + - pip: name=python-glanceclient + - pip: name=python-neutronclient + - pip: name=python-novaclient + - pip: name=scp + - pip: name=PyYAML + - pip: name=ansible==2.1.0 + + - git: repo=https://nougat.cablelabs.com/SNAPS/provisioning.git dest=~/provisioning diff --git a/tests/smoke_tests/smoke_tests.yml b/tests/smoke_tests/smoke_tests.yml new file mode 100644 index 00000000..b67c194f --- /dev/null +++ b/tests/smoke_tests/smoke_tests.yml @@ -0,0 +1,3 @@ +--- +- include: prepare_undercloud.yml +- include: execute_tests.yml
\ No newline at end of file |