Merge "[compass] use new pod to run compass jobs"
[releng.git] / jjb / yardstick / yardstick-ci-jobs.yml
index a907d34..fb2d8f1 100644 (file)
@@ -1,5 +1,5 @@
 ###################################
-# job configuration for functest
+# job configuration for yardstick
 ###################################
 - project:
     name: yardstick
         branch: '{stream}'
         gs-pathname: ''
         docker-tag: 'latest'
-    brahmaputra: &brahmaputra
-        stream: brahmaputra
+    colorado: &colorado
+        stream: colorado
         branch: 'stable/{stream}'
         gs-pathname: '{stream}'
-        docker-tag: 'brahmaputra.1.0'
+        docker-tag: 'stable'
 #--------------------------------
 # POD, INSTALLER, AND BRANCH MAPPING
 #--------------------------------
-#        brahmaputra
+#    Installers using labels
+#            CI PODs
+# This section should only contain the installers
+# that have been switched using labels for slaves
 #--------------------------------
     pod:
-        - lf-pod1:
-            installer: apex
-            suite: daily
-            auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
-            <<: *brahmaputra
-        - lf-pod2:
+# fuel CI PODs
+        - baremetal:
+            slave-label: fuel-baremetal
             installer: fuel
-            suite: daily
-            auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
-            <<: *brahmaputra
-        - intel-pod5:
-            installer: joid
-            suite: daily
-            auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
-            <<: *brahmaputra
-        - orange-pod2:
-            installer: joid
-            suite: daily
-            auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
-            <<: *brahmaputra
-        - huawei-pod1:
-            installer: compass
-            suite: daily
-            auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
-            <<: *brahmaputra
-        - ericsson-pod1:
+            auto-trigger-name: 'daily-trigger-disabled'
+            <<: *master
+        - virtual:
+            slave-label: fuel-virtual
             installer: fuel
-            suite: daily
-            auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
-            <<: *brahmaputra
-        - ericsson-pod2:
+            auto-trigger-name: 'daily-trigger-disabled'
+            <<: *master
+        - baremetal:
+            slave-label: fuel-baremetal
             installer: fuel
-            suite: daily
-            auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
-            <<: *brahmaputra
+            auto-trigger-name: 'daily-trigger-disabled'
+            <<: *colorado
         - virtual:
+            slave-label: fuel-virtual
             installer: fuel
-            suite: daily
-            auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
-            <<: *brahmaputra
-        - huawei-virtual:
-            installer: compass
-            suite: daily
-            auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
-            <<: *brahmaputra
+            auto-trigger-name: 'daily-trigger-disabled'
+            <<: *colorado
+# armband CI PODs
+        - armband-baremetal:
+            slave-label: armband-baremetal
+            installer: fuel
+            auto-trigger-name: 'daily-trigger-disabled'
+            <<: *master
+        - armband-virtual:
+            slave-label: armband-virtual
+            installer: fuel
+            auto-trigger-name: 'daily-trigger-disabled'
+            <<: *master
+        - armband-baremetal:
+            slave-label: armband-baremetal
+            installer: fuel
+            auto-trigger-name: 'daily-trigger-disabled'
+            <<: *colorado
+        - armband-virtual:
+            slave-label: armband-virtual
+            installer: fuel
+            auto-trigger-name: 'daily-trigger-disabled'
+            <<: *colorado
+# joid CI PODs
+        - baremetal:
+            slave-label: joid-baremetal
+            installer: joid
+            auto-trigger-name: 'daily-trigger-disabled'
+            <<: *master
+        - virtual:
+            slave-label: joid-virtual
+            installer: joid
+            auto-trigger-name: 'daily-trigger-disabled'
+            <<: *master
+        - baremetal:
+            slave-label: joid-baremetal
+            installer: joid
+            auto-trigger-name: 'daily-trigger-disabled'
+            <<: *colorado
         - virtual:
+            slave-label: joid-virtual
             installer: joid
-            suite: daily
-            auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
-            <<: *brahmaputra
+            auto-trigger-name: 'daily-trigger-disabled'
+            <<: *colorado
+
+# compass CI PODs
+        - baremetal:
+            slave-label: compass-baremetal
+            installer: compass
+            auto-trigger-name: 'daily-trigger-disabled'
+            <<: *master
+        - virtual:
+            slave-label: compass-virtual
+            installer: compass
+            auto-trigger-name: 'daily-trigger-disabled'
+            <<: *master
+        - baremetal:
+            slave-label: compass-baremetal
+            installer: compass
+            auto-trigger-name: 'daily-trigger-disabled'
+            <<: *colorado
+        - virtual:
+            slave-label: compass-virtual
+            installer: compass
+            auto-trigger-name: 'daily-trigger-disabled'
+            <<: *colorado
 #--------------------------------
-#        master
+#    Installers not using labels
+#            CI PODs
+# This section should only contain the installers
+# that have not been switched using labels for slaves
 #--------------------------------
         - lf-pod1:
+            slave-label: '{pod}'
             installer: apex
-            suite: daily
-            auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
+            auto-trigger-name: 'daily-trigger-disabled'
             <<: *master
-        - lf-pod2:
-            installer: fuel
-            suite: daily
-            auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
+        - lf-pod1:
+            slave-label: '{pod}'
+            installer: apex
+            auto-trigger-name: 'daily-trigger-disabled'
+            <<: *colorado
+#--------------------------------
+#        None-CI PODs
+#--------------------------------
+        - orange-pod1:
+            slave-label: '{pod}'
+            installer: joid
+            auto-trigger-name: 'daily-trigger-disabled'
             <<: *master
-        - ericsson-pod1:
+        - zte-pod1:
+            slave-label: '{pod}'
             installer: fuel
-            suite: daily
-            auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
+            auto-trigger-name: 'daily-trigger-disabled'
             <<: *master
-        - ericsson-pod1:
+        - zte-pod1:
+            slave-label: '{pod}'
             installer: fuel
-            suite: vtcdaily
-            auto-trigger-name: 'yardstick-vtcdaily-ericsson-pod1-trigger'
-            <<: *master
-        - ericsson-pod2:
+            auto-trigger-name: 'daily-trigger-disabled'
+            <<: *colorado
+        - zte-pod2:
+            slave-label: '{pod}'
             installer: fuel
-            suite: daily
-            auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
-            <<: *master
-        - intel-pod6:
-            installer: joid
-            suite: daily
-            auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
+            auto-trigger-name: 'daily-trigger-disabled'
             <<: *master
-        - intel-pod8:
-            installer: compass
-            suite: daily
-            auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
+        - zte-pod3:
+            slave-label: '{pod}'
+            installer: fuel
+            auto-trigger-name: 'daily-trigger-disabled'
             <<: *master
-        - zte-pod1:
+        - zte-pod3:
+            slave-label: '{pod}'
             installer: fuel
-            suite: daily
-            auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
+            auto-trigger-name: 'daily-trigger-disabled'
+            <<: *colorado
+        - arm-pod2:
+            slave-label: '{pod}'
+            installer: fuel
+            auto-trigger-name: 'daily-trigger-disabled'
             <<: *master
+        - arm-pod2:
+            slave-label: '{pod}'
+            installer: fuel
+            auto-trigger-name: 'daily-trigger-disabled'
+            <<: *colorado
         - orange-pod2:
+            slave-label: '{pod}'
             installer: joid
-            suite: daily
-            auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
+            auto-trigger-name: 'daily-trigger-disabled'
             <<: *master
         - huawei-pod2:
+            slave-label: '{pod}'
             installer: compass
-            suite: daily
-            auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
-            <<: *master
-        - virtual:
-            installer: fuel
-            suite: daily
-            auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
-            <<: *master
-        - huawei-virtual:
-            installer: compass
-            suite: daily
-            auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
+            auto-trigger-name: 'daily-trigger-disabled'
             <<: *master
         - huawei-pod3:
+            slave-label: '{pod}'
             installer: compass
-            suite: daily
             auto-trigger-name: 'yardstick-daily-huawei-pod3-trigger'
             <<: *master
         - huawei-pod4:
+            slave-label: '{pod}'
             installer: compass
-            suite: daily
             auto-trigger-name: 'yardstick-daily-huawei-pod4-trigger'
             <<: *master
-        - virtual:
-            installer: joid
-            suite: daily
-            auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
+        - huawei-pod5:
+            slave-label: '{pod}'
+            installer: compass
+            auto-trigger-name: 'daily-trigger-disabled'
             <<: *master
 #--------------------------------
+    testsuite:
+        - 'daily'
 
     jobs:
-        - 'yardstick-{installer}-{pod}-{suite}-{stream}'
+        - 'yardstick-{installer}-{pod}-{testsuite}-{stream}'
 
 ################################
 # job templates
 ################################
 - job-template:
-    name: 'yardstick-{installer}-{pod}-{suite}-{stream}'
+    name: 'yardstick-{installer}-{pod}-{testsuite}-{stream}'
 
     disabled: false
 
         - throttle:
             enabled: true
             max-per-node: 1
+            option: 'project'
 
     wrappers:
         - build-name:
     parameters:
         - project-parameter:
             project: '{project}'
-        - '{pod}-defaults'
         - '{installer}-defaults'
-        - 'yardstick-params-{pod}'
+        - '{slave-label}-defaults'
+        - 'yardstick-params-{slave-label}'
         - string:
             name: DEPLOY_SCENARIO
             default: 'os-odl_l2-nofeature-ha'
             default: '{docker-tag}'
             description: 'Tag to pull docker image'
         - string:
-            name: YARDSTICK_SUITE_NAME
-            default: opnfv_${{NODE_NAME}}_{suite}.yaml
-            description: 'Path to test suite'
+            name: YARDSTICK_SCENARIO_SUITE_NAME
+            default: opnfv_${{DEPLOY_SCENARIO}}_{testsuite}.yaml
+            description: 'Path to test scenario suite'
         - string:
             name: CI_DEBUG
             default: 'false'
             branch: '{branch}'
 
     builders:
+        - description-setter:
+            description: "POD: $NODE_NAME"
         - 'yardstick-cleanup'
         #- 'yardstick-fetch-os-creds'
-        - 'yardstick-{suite}'
+        - 'yardstick-{testsuite}'
 
     publishers:
         - email:
-            recipients: ana.cunha@ericsson.com
+            recipients: jean.gaoliang@huawei.com matthew.lijun@huawei.com
 
 ########################
 # builder macros
 - builder:
     name: yardstick-daily
     builders:
-        - shell: |
-            #!/bin/bash
-            set -e
-            [[ $CI_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null"
-
-            # labconfig is used only for joid
-            labconfig=""
-            sshkey=""
-            if [[ ${INSTALLER_TYPE} == 'apex' ]]; then
-                instack_mac=$(sudo virsh domiflist instack | grep default | \
-                              grep -Eo "[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+")
-                INSTALLER_IP=$(/usr/sbin/arp -e | grep ${instack_mac} | awk {'print $1'})
-                sshkey="-v /root/.ssh/id_rsa:/root/.ssh/id_rsa"
-                if [[ -n $(sudo iptables -L FORWARD |grep "REJECT"|grep "reject-with icmp-port-unreachable") ]]; then
-                    #note: this happens only in opnfv-lf-pod1
-                    sudo iptables -D FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable
-                    sudo iptables -D FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable
-                fi
-            elif [[ ${INSTALLER_TYPE} == 'joid' ]]; then
-                # If production lab then creds may be retrieved dynamically
-                # creds are on the jumphost, always in the same folder
-                labconfig="-v $LAB_CONFIG/admin-openrc:/home/opnfv/openrc"
-                # If dev lab, credentials may not be the default ones, just provide a path to put them into docker
-                # replace the default one by the customized one provided by jenkins config
-            fi
-
-            opts="--privileged=true --rm"
-            envs="-e INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} \
-                -e NODE_NAME=${NODE_NAME} -e EXTERNAL_NETWORK=${EXTERNAL_NETWORK} \
-                -e YARDSTICK_BRANCH=${GIT_BRANCH##origin/} -e DEPLOY_SCENARIO=${DEPLOY_SCENARIO}"
-
-            # Pull the latest image
-            docker pull opnfv/yardstick:$DOCKER_TAG >$redirect
-
-            # Run docker
-            cmd="sudo docker run ${opts} ${envs} ${labconfig} ${sshkey} opnfv/yardstick \
-                run_tests.sh ${YARDSTICK_DB_BACKEND} ${YARDSTICK_SUITE_NAME}"
-            echo "Yardstick: Running docker cmd: ${cmd}"
-            ${cmd}
-
-            echo "Yardstick: done!"
+        - shell:
+            !include-raw: ./yardstick-daily.sh
 
 - builder:
     name: yardstick-vtcdaily
     builders:
-        - shell: |
-            #!/bin/bash
-            set -e
-            [[ $CI_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null"
-
-            cd $WORKSPACE
-            ./ci/apexlake-verify
+        - shell:
+            !include-raw: ./yardstick-vtcdaily.sh
 
 - builder:
     name: yardstick-fetch-os-creds
 - builder:
     name: yardstick-cleanup
     builders:
-        - shell: |
-            #!/bin/bash
-            [[ $CI_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null"
-
-            echo "Cleaning up docker containers/images..."
-            # Remove previous running containers if exist
-            if [[ ! -z $(docker ps -a | grep opnfv/yardstick) ]]; then
-                echo "Removing existing opnfv/yardstick containers..."
-                docker ps -a | grep opnfv/yardstick | awk '{print $1}' | xargs docker rm -f >$redirect
-
-            fi
-
-            # Remove existing images if exist
-            if [[ ! -z $(docker images | grep opnfv/yardstick) ]]; then
-                echo "Docker images to remove:"
-                docker images | head -1 && docker images | grep opnfv/yardstick
-                image_tags=($(docker images | grep opnfv/yardstick | awk '{print $2}'))
-                for tag in "${image_tags[@]}"; do
-                    echo "Removing docker image opnfv/yardstick:$tag..."
-                    docker rmi opnfv/yardstick:$tag >$redirect
-
-                done
-            fi
+        - shell:
+            !include-raw: ./yardstick-cleanup.sh
 ########################
 # parameter macros
 ########################
 - parameter:
-    name: 'yardstick-params-intel-pod5'
+    name: 'yardstick-params-fuel-baremetal'
     parameters:
         - string:
             name: YARDSTICK_DB_BACKEND
             default: '-i 104.197.68.199:8086'
             description: 'Arguments to use in order to choose the backend DB'
-
 - parameter:
-    name: 'yardstick-params-intel-pod6'
+    name: 'yardstick-params-fuel-virtual'
+    parameters:
+        - string:
+            name: YARDSTICK_DB_BACKEND
+            default: ''
+            description: 'Arguments to use in order to choose the backend DB'
+- parameter:
+    name: 'yardstick-params-armband-baremetal'
     parameters:
         - string:
             name: YARDSTICK_DB_BACKEND
             default: '-i 104.197.68.199:8086'
             description: 'Arguments to use in order to choose the backend DB'
-
+- parameter:
+    name: 'yardstick-params-armband-virtual'
+    parameters:
+        - string:
+            name: YARDSTICK_DB_BACKEND
+            default: ''
+            description: 'Arguments to use in order to choose the backend DB'
+- parameter:
+    name: 'yardstick-params-joid-baremetal'
+    parameters:
+        - string:
+            name: YARDSTICK_DB_BACKEND
+            default: '-i 104.197.68.199:8086'
+            description: 'Arguments to use in order to choose the backend DB'
+- parameter:
+    name: 'yardstick-params-joid-virtual'
+    parameters:
+        - string:
+            name: YARDSTICK_DB_BACKEND
+            default: ''
+            description: 'Arguments to use in order to choose the backend DB'
 - parameter:
     name: 'yardstick-params-intel-pod8'
     parameters:
             name: YARDSTICK_DB_BACKEND
             default: ''
             description: 'Arguments to use in order to choose the backend DB'
+- parameter:
+    name: 'yardstick-params-lf-pod1'
+    parameters:
+        - string:
+            name: YARDSTICK_DB_BACKEND
+            default: '-i 104.197.68.199:8086'
+            description: 'Arguments to use in order to choose the backend DB'
 
 - parameter:
-    name: 'yardstick-params-ericsson-pod1'
+    name: 'yardstick-params-lf-pod2'
     parameters:
         - string:
             name: YARDSTICK_DB_BACKEND
             description: 'Arguments to use in order to choose the backend DB'
 
 - parameter:
-    name: 'yardstick-params-ericsson-pod2'
+    name: 'yardstick-params-compass-baremetal'
     parameters:
         - string:
             name: YARDSTICK_DB_BACKEND
             description: 'Arguments to use in order to choose the backend DB'
 
 - parameter:
-    name: 'yardstick-params-lf-pod1'
+    name: 'yardstick-params-huawei-pod2'
     parameters:
         - string:
             name: YARDSTICK_DB_BACKEND
             description: 'Arguments to use in order to choose the backend DB'
 
 - parameter:
-    name: 'yardstick-params-lf-pod2'
+    name: 'yardstick-params-huawei-pod5'
     parameters:
         - string:
             name: YARDSTICK_DB_BACKEND
             description: 'Arguments to use in order to choose the backend DB'
 
 - parameter:
-    name: 'yardstick-params-huawei-pod1'
+    name: 'yardstick-params-zte-pod1'
     parameters:
         - string:
             name: YARDSTICK_DB_BACKEND
             description: 'Arguments to use in order to choose the backend DB'
 
 - parameter:
-    name: 'yardstick-params-huawei-pod2'
+    name: 'yardstick-params-zte-pod2'
     parameters:
         - string:
             name: YARDSTICK_DB_BACKEND
             description: 'Arguments to use in order to choose the backend DB'
 
 - parameter:
-    name: 'yardstick-params-zte-pod1'
+    name: 'yardstick-params-zte-pod3'
+    parameters:
+        - string:
+            name: YARDSTICK_DB_BACKEND
+            default: '-i 104.197.68.199:8086'
+            description: 'Arguments to use in order to choose the backend DB'
+
+- parameter:
+    name: 'yardstick-params-orange-pod1'
     parameters:
         - string:
             name: YARDSTICK_DB_BACKEND
             default: '-i 104.197.68.199:8086'
             description: 'Arguments to use in order to choose the backend DB'
 
+- parameter:
+    name: 'yardstick-params-arm-pod2'
+    parameters:
+        - string:
+            name: YARDSTICK_DB_BACKEND
+            default: '-i 104.197.68.199:8086'
+            description: 'Arguments to use in order to choose the backend DB'
+
 - parameter:
     name: 'yardstick-params-virtual'
     parameters:
             description: 'Arguments to use in order to choose the backend DB'
 
 - parameter:
-    name: 'yardstick-params-huawei-virtual'
+    name: 'yardstick-params-compass-virtual'
     parameters:
         - string:
             name: YARDSTICK_DB_BACKEND
 ## trigger macros
 #######################
 # trigger for PODs to only run yardstick test suites
-- trigger:
-    name: 'yardstick-vtcdaily-ericsson-pod1-trigger'
-    triggers:
-        - timed: '0 1 * * *'
-
 - trigger:
     name: 'yardstick-daily-huawei-pod3-trigger'
     triggers: