Remove neutron_trunk from all Hunter jobs
[releng.git] / jjb / functest / functest.yaml
index 3da6249..6bf20ef 100644 (file)
           branch: master
           slave: lf-virtual9
           dashboard_url: http://172.30.13.94
+      - kali:
+          branch: stable/kali
+          slave: lf-pod4-3
+          dashboard_url: http://172.30.12.88
       - jerma:
           branch: stable/jerma
-          slave: lf-virtual4
-          dashboard_url: http://172.30.13.89
+          slave: lf-pod4
+          dashboard_url: http://172.30.12.83
       - iruya:
           branch: stable/iruya
           slave: lf-virtual4
           branch: stable/hunter
           slave: lf-virtual6
           dashboard_url: http://172.30.13.91
+      - arm64-latest:
+          branch: master
+          slave: lf-virtual9
+          dashboard_url: http://172.30.13.94
+      - arm64-kali:
+          branch: stable/kali
+          slave: lf-pod4-3
+          dashboard_url: http://172.30.12.88
+      - arm64-jerma:
+          branch: stable/jerma
+          slave: lf-pod4
+          dashboard_url: http://172.30.12.83
+      - arm64-iruya:
+          branch: stable/iruya
+          slave: lf-virtual4
+          dashboard_url: http://172.30.13.89
+      - arm64-hunter:
+          branch: stable/hunter
+          slave: lf-virtual6
+          dashboard_url: http://172.30.13.91
 
 - parameter:
     name: functest-slave
           name: slave
           default: '{slave}'
 
+- parameter:
+    name: functest-build_tag
+    parameters:
+      - random-string:
+          name: build_tag
+
 - parameter:
     name: functest-branch
     parameters:
           name: EXTERNAL_NETWORK
           default: public
 
+- parameter:
+    name: functest-VOLUME_DEVICE_NAME
+    parameters:
+      - string:
+          name: VOLUME_DEVICE_NAME
+          default: sdb
+
+- parameter:
+    name: functest-IMAGE_PROPERTIES
+    parameters:
+      - string:
+          name: IMAGE_PROPERTIES
+          default: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
+
 - functest-containers: &functest-containers
     name: 'functest-containers'
     repo: '{repo}'
     <<: *functest-containers
     test: '{test}'
     dashboard_url: '{dashboard_url}'
-
-- functest-build-containers: &functest-build-containers
-    name: 'functest-build-containers'
-    <<: *functest-containers
-    ref_arg: '{ref_arg}'
-    path: '{path}'
+    privileged: '{privileged}'
+    network: '{network}'
 
 - builder:
     name: functest-pull-containers
           fi
           sudo docker pull $image
 
-- builder:
-    name: functest-build-containers
-    builders:
-      - shell: |
-          set +x
-          if [ "{repo}" = "_" ]; then
-            image={container}:{tag}
-          elif [ "{port}" = "None" ]; then
-            image={repo}/{container}:{tag}
-          else
-            image={repo}:{port}/{container}:{tag}
-          fi
-          if [ "{ref_arg}" = "None" ]; then
-            build_arg=""
-          else
-            build_arg="--build-arg {ref_arg}={ref}"
-          fi
-          cd {path}
-          sudo docker build $build_arg \
-            --pull=false --no-cache --force-rm=true \
-            -t $image .
-
 - builder:
     name: functest-run-containers
     builders:
           else
             image={repo}:{port}/{container}:{tag}
           fi
-          if [ "{tag}" = "latest" ]; then
-            py=3.7
-          elif [ "{tag}" = "jerma" ]; then
-            py=3.7
-          elif [ "{tag}" = "iruya" ]; then
-            py=3.6
-          else
-            py=2.7
-          fi
+          volumes=""
+          case "{tag}" in
+            arm-hunter)
+              volumes="-v /usr/bin/qemu-arm-static:/usr/bin/qemu-arm-static" ;;
+            arm64-hunter)
+              volumes="-v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static" ;;
+          esac
           sudo docker run --rm \
+            --privileged={privileged} \
+            --network={network} \
             -e S3_ENDPOINT_URL=https://storage.googleapis.com \
-            -e S3_DST_URL=s3://artifacts.opnfv.org/functest/$JOB_NAME-$BUILD_ID \
-            -e HTTP_DST_URL=http://artifacts.opnfv.org/functest/$JOB_NAME-$BUILD_ID \
+            -e S3_DST_URL=s3://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
+            -e HTTP_DST_URL=http://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
+            -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
+            -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
+            -e NODE_NAME=$slave \
+            -e BUILD_TAG=$BUILD_TAG \
             -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
             -e DEBUG=$DEBUG \
             -e EXTERNAL_NETWORK=$EXTERNAL_NETWORK \
             -e DASHBOARD_URL={dashboard_url} \
+            -e VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME \
+            -e IMAGE_PROPERTIES=$IMAGE_PROPERTIES \
+            -v /home/opnfv/functest/.boto:/root/.boto \
             -v /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file \
             -v /home/opnfv/functest/images:/home/opnfv/functest/images \
-            -v /home/opnfv/functest/tempest_blacklist.yaml:/usr/lib/python$py/\
-          site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/\
-          blacklist.yaml \
-            -v /home/opnfv/functest/blacklist.yaml:/usr/lib/python$py/\
-          site-packages/functest/opnfv_tests/openstack/rally/blacklist.yaml \
-            -v /home/opnfv/functest/.boto:/root/.boto \
-            $image run_tests -t {test} -p
+            $volumes $image run_tests -t {test} -r -p
 
 - builder:
     name: functest-remove-images
           fi
           sudo docker rmi $image || true
 
+- functest-build-containers: &functest-build-containers
+    name: 'functest-build-containers'
+    <<: *functest-containers
+    ref_arg: '{ref_arg}'
+    path: '{path}'
+
+- builder:
+    name: functest-build-containers
+    builders:
+      - shell: |
+          set +x
+          if [ "{repo}" = "_" ]; then
+            image={container}:{tag}
+          elif [ "{port}" = "None" ]; then
+            image={repo}/{container}:{tag}
+          else
+            image={repo}:{port}/{container}:{tag}
+          fi
+          if [ "{ref_arg}" = "None" ]; then
+            build_arg=""
+          else
+            build_arg="--build-arg {ref_arg}={ref}"
+          fi
+          cd {path}
+          sudo docker build $build_arg \
+            --pull=false --no-cache --force-rm=true \
+            -t $image .
+
 - scm:
     name: functest-scm
     scm:
     jobs:
       - 'functest-{repo}-{container}-{tag}-pull'
 
+- project:
+    name: 'functest-opnfv-functest-benchmarking-cntt-pull'
+    <<: *functest-params
+    container: 'functest-benchmarking-cntt'
+    jobs:
+      - 'functest-{repo}-{container}-{tag}-pull'
+
 - project:
     name: 'functest-opnfv-functest-vnf-pull'
     <<: *functest-params
     jobs:
       - 'functest-{repo}-{container}-{tag}-rmi'
 
+- project:
+    name: 'functest-opnfv-functest-benchmarking-cntt-rmi'
+    <<: *functest-params
+    container: 'functest-benchmarking-cntt'
+    jobs:
+      - 'functest-{repo}-{container}-{tag}-rmi'
+
 - project:
     name: 'functest-opnfv-functest-vnf-rmi'
     <<: *functest-params
     parameters:
       - functest-slave:
           slave: '{slave}'
+      - functest-build_tag:
+          build_tag: ''
       - functest-DEBUG:
           DEBUG: 'true'
       - functest-EXTERNAL_NETWORK:
           EXTERNAL_NETWORK: public
+      - functest-VOLUME_DEVICE_NAME:
+          VOLUME_DEVICE_NAME: sdb
+      - functest-IMAGE_PROPERTIES:
+          IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
     builders:
       - functest-run-containers:
           <<: *functest-run-containers
       - odl
       - tempest_smoke
       - tempest_horizon
-    exclude:
-      - tag: hunter
-        test: tempest_horizon
+    privileged: 'false'
+    network: bridge
     jobs:
       - 'functest-{repo}-{container}-{tag}-{test}-run'
 
     <<: *functest-params
     container: 'functest-smoke'
     test:
-      - neutron-tempest-plugin-api
+      - tempest_neutron
       - tempest_cinder
       - tempest_keystone
+      - tempest_heat
+      - tempest_telemetry
       - rally_sanity
       - refstack_defcore
       - refstack_compute
       - tempest_scenario
       - tempest_slow
       - patrole
-      - neutron_trunk
+      - patrole_admin
+      - patrole_member
+      - patrole_reader
       - networking-bgpvpn
       - networking-sfc
-      - barbican
-      - octavia
+      - tempest_barbican
+      - tempest_octavia
+      - tempest_cyborg
     exclude:
       - tag: latest
         test: refstack_defcore
+      - tag: latest
+        test: networking-bgpvpn
+      - tag: latest
+        test: networking-sfc
+      - tag: latest
+        test: patrole
+      - tag: kali
+        test: refstack_defcore
+      - tag: kali
+        test: networking-bgpvpn
+      - tag: kali
+        test: networking-sfc
+      - tag: kali
+        test: patrole_admin
+      - tag: kali
+        test: patrole_member
+      - tag: kali
+        test: patrole_reader
       - tag: jerma
         test: refstack_defcore
+      - tag: jerma
+        test: networking-bgpvpn
+      - tag: jerma
+        test: networking-sfc
+      - tag: jerma
+        test: patrole_admin
+      - tag: jerma
+        test: patrole_member
+      - tag: jerma
+        test: patrole_reader
+      - tag: jerma
+        test: tempest_cyborg
       - tag: iruya
         test: refstack_defcore
       - tag: iruya
-        test: octavia
+        test: patrole_admin
+      - tag: iruya
+        test: patrole_member
+      - tag: iruya
+        test: patrole_reader
+      - tag: iruya
+        test: tempest_cyborg
       - tag: hunter
         test: refstack_compute
       - tag: hunter
       - tag: hunter
         test: refstack_platform
       - tag: hunter
-        test: tempest_slow
+        test: tempest_octavia
+      - tag: hunter
+        test: tempest_telemetry
+      - tag: hunter
+        test: patrole_admin
+      - tag: hunter
+        test: patrole_member
       - tag: hunter
-        test: octavia
+        test: patrole_reader
+      - tag: hunter
+        test: tempest_cyborg
+      - tag: arm64-latest
+        test: refstack_defcore
+      - tag: arm64-latest
+        test: networking-bgpvpn
+      - tag: arm64-latest
+        test: networking-sfc
+      - tag: arm64-latest
+        test: patrole
+      - tag: arm64-kali
+        test: refstack_defcore
+      - tag: arm64-kali
+        test: networking-bgpvpn
+      - tag: arm64-kali
+        test: networking-sfc
+      - tag: arm64-kali
+        test: patrole_admin
+      - tag: arm64-kali
+        test: patrole_member
+      - tag: arm64-kali
+        test: patrole_reader
+      - tag: arm64-jerma
+        test: refstack_defcore
+      - tag: arm64-jerma
+        test: networking-bgpvpn
+      - tag: arm64-jerma
+        test: networking-sfc
+      - tag: arm64-jerma
+        test: patrole_admin
+      - tag: arm64-jerma
+        test: patrole_member
+      - tag: arm64-jerma
+        test: patrole_reader
+      - tag: arm64-jerma
+        test: tempest_cyborg
+      - tag: arm64-iruya
+        test: refstack_defcore
+      - tag: arm64-iruya
+        test: patrole_admin
+      - tag: arm64-iruya
+        test: patrole_member
+      - tag: arm64-iruya
+        test: patrole_reader
+      - tag: arm64-iruya
+        test: tempest_cyborg
+      - tag: arm64-hunter
+        test: refstack_compute
+      - tag: arm64-hunter
+        test: refstack_object
+      - tag: arm64-hunter
+        test: refstack_platform
+      - tag: arm64-hunter
+        test: tempest_octavia
+      - tag: arm64-hunter
+        test: tempest_telemetry
+      - tag: arm64-hunter
+        test: patrole_admin
+      - tag: arm64-hunter
+        test: patrole_member
+      - tag: arm64-hunter
+        test: patrole_reader
+      - tag: arm64-hunter
+        test: tempest_cyborg
+    privileged: 'false'
+    network: bridge
     jobs:
       - 'functest-{repo}-{container}-{tag}-{test}-run'
 
     <<: *functest-params
     container: 'functest-smoke-cntt'
     test:
-      - neutron-tempest-plugin-api
-      - tempest_cinder
-      - tempest_keystone
-      - rally_sanity
+      - tempest_neutron_cntt
+      - tempest_cinder_cntt
+      - tempest_keystone_cntt
+      - tempest_heat_cntt
+      - rally_sanity_cntt
+      - tempest_full_cntt
+      - tempest_scenario_cntt
+      - tempest_slow_cntt
+    privileged: 'false'
+    network: bridge
     jobs:
       - 'functest-{repo}-{container}-{tag}-{test}-run'
 
       - rally_jobs
       - vmtp
       - shaker
+    privileged: 'false'
+    network: bridge
+    jobs:
+      - 'functest-{repo}-{container}-{tag}-{test}-run'
+
+- project:
+    name: 'functest-opnfv-functest-benchmarking-cntt'
+    <<: *functest-params
+    container: 'functest-benchmarking-cntt'
+    test:
+      - rally_full_cntt
+      - rally_jobs_cntt
+    privileged: 'false'
+    network: bridge
     jobs:
       - 'functest-{repo}-{container}-{tag}-{test}-run'
 
       - heat_ims
       - vyos_vrouter
       - juju_epc
+    privileged: 'false'
+    network: bridge
     jobs:
       - 'functest-{repo}-{container}-{tag}-{test}-run'
 
+
+- builder:
+    name: functest-zip
+    builders:
+      - shell: |
+          set +x
+          [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true
+          if [ "{repo}" = "_" ]; then
+            image={container}:{tag}
+          elif [ "{port}" = "None" ]; then
+            image={repo}/{container}:{tag}
+          else
+            image={repo}:{port}/{container}:{tag}
+          fi
+          volumes=""
+          case "{tag}" in
+            arm-hunter)
+              volumes="-v /usr/bin/qemu-arm-static:/usr/bin/qemu-arm-static" ;;
+            arm64-hunter)
+              volumes="-v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static" ;;
+          esac
+          sudo docker run --rm \
+            -e S3_ENDPOINT_URL=https://storage.googleapis.com \
+            -e S3_DST_URL=s3://artifacts.opnfv.org/functest \
+            -e HTTP_DST_URL=http://artifacts.opnfv.org/functest \
+            -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
+            -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
+            -e BUILD_TAG=$BUILD_TAG \
+            -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
+            -e DEBUG=$DEBUG \
+            -e EXTERNAL_NETWORK=$EXTERNAL_NETWORK \
+            -e VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME \
+            -e IMAGE_PROPERTIES=$IMAGE_PROPERTIES \
+            -v /home/opnfv/functest/.boto:/root/.boto \
+            -v /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file \
+            -v /home/opnfv/functest/images:/home/opnfv/functest/images \
+            $volumes $image zip_campaign
+
+- job-template:
+    name: 'functest-{tag}-zip'
+    parameters:
+      - functest-slave:
+          slave: '{slave}'
+      - functest-build_tag:
+          build_tag: ''
+      - functest-DEBUG:
+          DEBUG: 'true'
+      - functest-EXTERNAL_NETWORK:
+          EXTERNAL_NETWORK: public
+      - functest-VOLUME_DEVICE_NAME:
+          VOLUME_DEVICE_NAME: sdb
+      - functest-IMAGE_PROPERTIES:
+          IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
+    builders:
+      - functest-zip:
+          <<: *functest-containers
+
+- project:
+    name: 'functest-{tag}-zip'
+    <<: *functest-params
+    container: 'functest-healthcheck'
+    jobs:
+      - 'functest-{tag}-zip'
+
 - job-template:
     name: 'functest-{tag}-daily'
     project-type: multijob
     triggers:
-      - timed: '@daily'
+      - timed: '@weekly'
     parameters:
       - functest-slave:
           slave: '{slave}'
+      - functest-build_tag:
+          build_tag: ''
       - functest-DEBUG:
           DEBUG: 'true'
       - functest-EXTERNAL_NETWORK:
           EXTERNAL_NETWORK: public
+      - functest-VOLUME_DEVICE_NAME:
+          VOLUME_DEVICE_NAME: sdb
+      - functest-IMAGE_PROPERTIES:
+          IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
     properties:
       - build-blocker:
           use-build-blocker: true
           blocking-level: 'NODE'
           blocking-jobs:
-            - '^functest-{tag}-(daily|check|gate)$'
+            - '^functest(-pi)?(-ovn)?-(arm.*-|amd64-)*[a-z]+-(daily|gate|check)$'
     builders:
       - multijob:
           name: remove former images
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
               <<: *functest-jobs
+            - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
+              <<: *functest-jobs
             - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
               <<: *functest-jobs
       - multijob:
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-benchmarking-{tag}-pull'
               <<: *functest-jobs
+            - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-pull'
+              <<: *functest-jobs
             - name: 'functest-opnfv-functest-vnf-{tag}-pull'
               <<: *functest-jobs
       - multijob:
       - multijob:
           name: opnfv/functest-smoke:{tag}
           projects:
-            - name: 'functest-opnfv-functest-smoke-{tag}-neutron-tempest-plugin-api-run'
+            - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
               <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
+              <<: *functest-jobs
             - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
               <<: *functest-jobs
-            - name: 'functest-opnfv-functest-smoke-{tag}-neutron_trunk-run'
+            - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
               <<: *functest-jobs
-            - name: 'functest-opnfv-functest-smoke-{tag}-barbican-run'
+            - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
               <<: *functest-jobs
-            - name: 'functest-opnfv-functest-smoke-{tag}-octavia-run'
+            - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
               <<: *functest-jobs
       - multijob:
           name: opnfv/functest-smoke-cntt:{tag}
           projects:
-            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-neutron-tempest-plugin-api-run'
+            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
               <<: *functest-jobs
-            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder-run'
+            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
               <<: *functest-jobs
-            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone-run'
+            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
               <<: *functest-jobs
-            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity-run'
+            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
               <<: *functest-jobs
       - multijob:
           name: opnfv/functest-benchmarking:{tag}
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
               <<: *functest-jobs
+      - multijob:
+          name: opnfv/functest-benchmarking-cntt:{tag}
+          projects:
+            - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
+              <<: *functest-jobs
       - multijob:
           name: opnfv/functest-vnf:{tag}
-          execution-type: SEQUENTIALLY
           projects:
             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
               <<: *functest-jobs
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
               <<: *functest-jobs
+      - multijob:
+          name: dump all campaign data
+          projects:
+            - name: 'functest-{tag}-zip'
+              <<: *functest-jobs
 
 - job-template:
     name: 'functest-{repo}-{container}-{tag}-gate'
           ref: $branch
 
 - project:
-    name: 'functest-_-alpine-3.10-rmi'
+    name: 'functest-_-alpine-3.12-rmi'
     repo: _
     port:
     container: alpine
-    tag: '3.10'
+    tag: '3.12'
     slave: master
     jobs:
       - 'functest-{repo}-{container}-{tag}-rmi'
 
 - project:
-    name: 'functest-_-alpine-3.10-pull'
+    name: 'functest-_-alpine-3.12-pull'
     repo: _
     port:
     container: alpine
-    tag: '3.10'
+    tag: '3.12'
     slave: master
     jobs:
       - 'functest-{repo}-{container}-{tag}-pull'
     container: functest-core
     ref_arg: BRANCH
     path: docker/core
+    exclude:
+      - tag: arm64-latest
+      - tag: arm64-kali
+      - tag: arm64-jerma
+      - tag: arm64-iruya
+      - tag: arm64-hunter
     jobs:
       - 'functest-{repo}-{container}-{tag}-gate'
       - 'functest-{repo}-{container}-{tag}-check'
       - 'functest-{repo}-{container}-{tag}-check'
     exclude:
       - tag: latest
+      - tag: kali
       - tag: jerma
+      - tag: arm64-latest
+      - tag: arm64-kali
+      - tag: arm64-jerma
+      - tag: arm64-iruya
+      - tag: arm64-hunter
 
 - project:
     name: functest-opnfv-functest-healthcheck-{tag}-build
     container: functest-healthcheck
     ref_arg: BRANCH
     path: docker/healthcheck
+    exclude:
+      - tag: arm64-latest
+      - tag: arm64-kali
+      - tag: arm64-jerma
+      - tag: arm64-iruya
+      - tag: arm64-hunter
     jobs:
       - 'functest-{repo}-{container}-{tag}-gate'
       - 'functest-{repo}-{container}-{tag}-check'
     container: functest-smoke
     ref_arg: BRANCH
     path: docker/smoke
+    exclude:
+      - tag: arm64-latest
+      - tag: arm64-kali
+      - tag: arm64-jerma
+      - tag: arm64-iruya
+      - tag: arm64-hunter
     jobs:
       - 'functest-{repo}-{container}-{tag}-gate'
       - 'functest-{repo}-{container}-{tag}-check'
     container: functest-benchmarking
     ref_arg: BRANCH
     path: docker/benchmarking
+    exclude:
+      - tag: arm64-latest
+      - tag: arm64-kali
+      - tag: arm64-jerma
+      - tag: arm64-iruya
+      - tag: arm64-hunter
+    jobs:
+      - 'functest-{repo}-{container}-{tag}-gate'
+      - 'functest-{repo}-{container}-{tag}-check'
+
+- project:
+    name: functest-opnfv-functest-benchmarking-cntt-{tag}-build
+    <<: *functest-params
+    container: functest-benchmarking-cntt
+    ref_arg: BRANCH
+    path: docker/benchmarking-cntt
+    exclude:
+      - tag: arm64-latest
+      - tag: arm64-kali
+      - tag: arm64-jerma
+      - tag: arm64-iruya
+      - tag: arm64-hunter
     jobs:
       - 'functest-{repo}-{container}-{tag}-gate'
       - 'functest-{repo}-{container}-{tag}-check'
     container: functest-vnf
     ref_arg:
     path: docker/vnf
+    exclude:
+      - tag: arm64-latest
+      - tag: arm64-kali
+      - tag: arm64-jerma
+      - tag: arm64-iruya
+      - tag: arm64-hunter
     jobs:
       - 'functest-{repo}-{container}-{tag}-gate'
       - 'functest-{repo}-{container}-{tag}-check'
     container: functest-smoke-cntt
     ref_arg: BRANCH
     path: docker/smoke-cntt
+    exclude:
+      - tag: arm64-latest
+      - tag: arm64-kali
+      - tag: arm64-jerma
+      - tag: arm64-iruya
+      - tag: arm64-hunter
     jobs:
       - 'functest-{repo}-{container}-{tag}-gate'
       - 'functest-{repo}-{container}-{tag}-check'
     parameters:
       - functest-slave:
           slave: '{slave}'
+      - functest-build_tag:
+          build_tag: ''
       - functest-branch:
           branch: '{branch}'
       - functest-DEBUG:
           DEBUG: 'true'
       - functest-EXTERNAL_NETWORK:
           EXTERNAL_NETWORK: public
+      - functest-VOLUME_DEVICE_NAME:
+          VOLUME_DEVICE_NAME: sdb
+      - functest-IMAGE_PROPERTIES:
+          IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
     properties:
       - build-blocker:
           use-build-blocker: true
           blocking-level: 'NODE'
           blocking-jobs:
-            - '^functest-{tag}-(daily|check|gate)$'
+            - '^functest(-pi)?(-ovn)?-(arm.*-|amd64-)*[a-z]+-(daily|gate|check)$'
     builders:
       - multijob:
           name: remove former images
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
               <<: *functest-jobs
+            - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
+              <<: *functest-jobs
             - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
               <<: *functest-jobs
       - multijob:
           name: remove dependencies
           projects:
-            - name: 'functest-_-alpine-3.10-rmi'
+            - name: 'functest-_-alpine-3.12-rmi'
               <<: *functest-jobs
       - multijob:
           name: pull dependencies
           projects:
-            - name: 'functest-_-alpine-3.10-pull'
+            - name: 'functest-_-alpine-3.12-pull'
               <<: *functest-jobs
       - multijob:
           name: build opnfv/functest-core
             - name: 'functest-opnfv-functest-vnf-{tag}-check'
               <<: *functest-jobs
       - multijob:
-          name: build opnfv/functest-smoke-cntt
+          name: build cntt containers
           projects:
             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-check'
               <<: *functest-jobs
+            - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-check'
+              <<: *functest-jobs
       - multijob:
           name: opnfv/functest-healthcheck:{tag}
           projects:
       - multijob:
           name: opnfv/functest-smoke:{tag}
           projects:
-            - name: 'functest-opnfv-functest-smoke-{tag}-neutron-tempest-plugin-api-run'
+            - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
               <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
+              <<: *functest-jobs
             - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
               <<: *functest-jobs
-            - name: 'functest-opnfv-functest-smoke-{tag}-neutron_trunk-run'
+            - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
               <<: *functest-jobs
-            - name: 'functest-opnfv-functest-smoke-{tag}-barbican-run'
+            - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
               <<: *functest-jobs
-            - name: 'functest-opnfv-functest-smoke-{tag}-octavia-run'
+            - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
               <<: *functest-jobs
       - multijob:
           name: opnfv/functest-smoke-cntt:{tag}
           projects:
-            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-neutron-tempest-plugin-api-run'
+            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
               <<: *functest-jobs
-            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder-run'
+            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
               <<: *functest-jobs
-            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone-run'
+            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
               <<: *functest-jobs
-            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity-run'
+            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
               <<: *functest-jobs
       - multijob:
           name: opnfv/functest-benchmarking:{tag}
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
               <<: *functest-jobs
+      - multijob:
+          name: opnfv/functest-benchmarking-cntt:{tag}
+          projects:
+            - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
+              <<: *functest-jobs
       - multijob:
           name: opnfv/functest-vnf:{tag}
-          execution-type: SEQUENTIALLY
           projects:
             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
               <<: *functest-jobs
     parameters:
       - functest-slave:
           slave: '{slave}'
+      - functest-build_tag:
+          build_tag: ''
       - functest-DEBUG:
           DEBUG: 'true'
       - functest-EXTERNAL_NETWORK:
           EXTERNAL_NETWORK: public
+      - functest-VOLUME_DEVICE_NAME:
+          VOLUME_DEVICE_NAME: sdb
+      - functest-IMAGE_PROPERTIES:
+          IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
     properties:
       - build-blocker:
           use-build-blocker: true
           blocking-level: 'NODE'
           blocking-jobs:
-            - '^functest-{tag}-(daily|check|gate)$'
+            - '^functest(-pi)?(-ovn)?-(arm.*-|amd64-)*[a-z]+-(daily|gate|check)$'
     builders:
       - multijob:
           name: remove former images
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
               <<: *functest-jobs
+            - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
+              <<: *functest-jobs
             - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
               <<: *functest-jobs
       - multijob:
           name: remove dependencies
           projects:
-            - name: 'functest-_-alpine-3.10-rmi'
+            - name: 'functest-_-alpine-3.12-rmi'
               <<: *functest-jobs
       - multijob:
           name: pull dependencies
           projects:
-            - name: 'functest-_-alpine-3.10-pull'
+            - name: 'functest-_-alpine-3.12-pull'
               <<: *functest-jobs
       - multijob:
           name: build opnfv/functest-core
             - name: 'functest-opnfv-functest-vnf-{tag}-gate'
               <<: *functest-jobs
       - multijob:
-          name: build opnfv/functest-smoke-cntt
+          name: build cntt containers
           projects:
             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-gate'
               <<: *functest-jobs
+            - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-gate'
+              <<: *functest-jobs
       - multijob:
           name: opnfv/functest-healthcheck:{tag}
           projects:
       - multijob:
           name: opnfv/functest-smoke:{tag}
           projects:
-            - name: 'functest-opnfv-functest-smoke-{tag}-neutron-tempest-plugin-api-run'
+            - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
               <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
+              <<: *functest-jobs
             - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
               <<: *functest-jobs
-            - name: 'functest-opnfv-functest-smoke-{tag}-neutron_trunk-run'
+            - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
               <<: *functest-jobs
-            - name: 'functest-opnfv-functest-smoke-{tag}-barbican-run'
+            - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
               <<: *functest-jobs
-            - name: 'functest-opnfv-functest-smoke-{tag}-octavia-run'
+            - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
               <<: *functest-jobs
       - multijob:
           name: opnfv/functest-smoke-cntt:{tag}
           projects:
-            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-neutron-tempest-plugin-api-run'
+            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
               <<: *functest-jobs
-            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder-run'
+            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
               <<: *functest-jobs
-            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone-run'
+            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
               <<: *functest-jobs
-            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity-run'
+            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
               <<: *functest-jobs
       - multijob:
           name: opnfv/functest-benchmarking:{tag}
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
               <<: *functest-jobs
+      - multijob:
+          name: opnfv/functest-benchmarking-cntt:{tag}
+          projects:
+            - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
+              <<: *functest-jobs
       - multijob:
           name: opnfv/functest-vnf:{tag}
-          execution-type: SEQUENTIALLY
           projects:
             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
               <<: *functest-jobs
     <<: *functest-params
     jobs:
       - 'functest-{tag}-daily'
+
+- project:
+    name: 'functest-gate'
+    <<: *functest-params
+    exclude:
+      - tag: arm64-latest
+      - tag: arm64-kali
+      - tag: arm64-jerma
+      - tag: arm64-iruya
+      - tag: arm64-hunter
+    jobs:
       - 'functest-{tag}-check'
       - 'functest-{tag}-gate'
 
       - last-success
       - last-failure
       - last-duration
-    regex: ^functest-[a-z]+-(daily|check|gate)$
+    regex: ^functest(-ovn)?-(arm.*-|amd64-)*[a-z]+-daily$
+
+- view:
+    name: functest-gate
+    view-type: list
+    columns:
+      - status
+      - weather
+      - job
+      - last-success
+      - last-failure
+      - last-duration
+    regex: ^functest(-ovn)?-(arm.*-|amd64-)*[a-z]+-gate$