Fix tag regex
[releng.git] / jjb / functest / functest.yaml
index 9b35e8a..5b87c59 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: branch
           default: '{branch}'
 
+- parameter:
+    name: functest-DEBUG
+    parameters:
+      - string:
+          name: DEBUG
+          default: 'true'
+
+- parameter:
+    name: functest-EXTERNAL_NETWORK
+    parameters:
+      - string:
+          name: EXTERNAL_NETWORK
+          default: public
+
 - functest-containers: &functest-containers
     name: 'functest-containers'
     repo: '{repo}'
@@ -47,7 +91,7 @@
     tag: '{tag}'
 
 - functest-run-containers: &functest-run-containers
-    name: 'functest-build-containers'
+    name: 'functest-run-containers'
     <<: *functest-containers
     test: '{test}'
     dashboard_url: '{dashboard_url}'
     name: functest-run-containers
     builders:
       - shell: |
-          set +ex
+          set +x
           [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true
           if [ "{repo}" = "_" ]; then
             image={container}:{tag}
           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
+          volumes=""
+          if [[ "{tag}" =~ "hunter" ]]; then
+            volumes=-v /usr/bin/qemu-arm-static:/usr/bin/qemu-arm-static \
+              -v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static
           fi
           sudo docker run --rm \
+            -e S3_ENDPOINT_URL=https://storage.googleapis.com \
+            -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 NODE_NAME=$slave \
+            -e BUILD_TAG=$BUILD_TAG \
             -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
-            -e DEBUG=True \
-            -e EXTERNAL_NETWORK=public \
+            -e DEBUG=$DEBUG \
+            -e EXTERNAL_NETWORK=$EXTERNAL_NETWORK \
             -e DASHBOARD_URL={dashboard_url} \
+            -e VOLUME_DEVICE_NAME=sdb \
+            -e IMAGE_PROPERTIES=hw_scsi_model:virtio-scsi,hw_disk_bus:scsi \
             -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 \
-            $image run_tests -t {test}
-          res=$?
-          gsutil -m cp -r $WORKSPACE/ \
-            gs://artifacts.opnfv.org/functest/$JOB_NAME-$BUILD_ID > /dev/null 2>&1
-          find $WORKSPACE -type f \
-            -printf \
-            "http://artifacts.opnfv.org/functest/$JOB_NAME-$BUILD_ID/%P\n"
-          exit $res
+            -v /home/opnfv/functest/.boto:/root/.boto \
+            $volumes $image run_tests -t {test} -r -p
 
 - builder:
     name: functest-remove-images
     jobs:
       - 'functest-{repo}-{container}-{tag}-pull'
 
+- project:
+    name: 'functest-opnfv-functest-smoke-cntt-pull'
+    <<: *functest-params
+    container: 'functest-smoke-cntt'
+    jobs:
+      - 'functest-{repo}-{container}-{tag}-pull'
+
 - project:
     name: 'functest-opnfv-functest-benchmarking-pull'
     <<: *functest-params
     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-smoke-cntt-rmi'
+    <<: *functest-params
+    container: 'functest-smoke-cntt'
+    jobs:
+      - 'functest-{repo}-{container}-{tag}-rmi'
+
 - project:
     name: 'functest-opnfv-functest-benchmarking-rmi'
     <<: *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
     builders:
       - functest-run-containers:
           <<: *functest-run-containers
       - odl
       - tempest_smoke
       - tempest_horizon
-    exclude:
-      - tag: jerma
-        test: tempest_horizon
-      - tag: iruya
-        test: tempest_horizon
-      - tag: hunter
-        test: tempest_horizon
     jobs:
       - 'functest-{repo}-{container}-{tag}-{test}-run'
 
     <<: *functest-params
     container: 'functest-smoke'
     test:
-      - neutron-tempest-plugin-api
-      - tempest_keystone
+      - tempest_neutron
       - tempest_cinder
+      - tempest_keystone
+      - tempest_heat
+      - tempest_telemetry
       - rally_sanity
       - refstack_defcore
       - refstack_compute
       - tempest_scenario
       - tempest_slow
       - patrole
+      - patrole_admin
+      - patrole_member
+      - patrole_reader
       - neutron_trunk
       - networking-bgpvpn
       - networking-sfc
-      - barbican
-      - octavia
+      - tempest_barbican
+      - tempest_octavia
+      - tempest_cyborg
     exclude:
       - tag: latest
         test: refstack_defcore
+      - tag: latest
+        test: neutron_trunk
+      - tag: latest
+        test: networking-bgpvpn
+      - tag: latest
+        test: networking-sfc
+      - tag: latest
+        test: patrole
+      - tag: kali
+        test: refstack_defcore
+      - tag: kali
+        test: neutron_trunk
+      - 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: tempest_keystone
+        test: neutron_trunk
+      - tag: jerma
+        test: networking-bgpvpn
       - tag: jerma
-        test: tempest_cinder
+        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: neutron_trunk
       - tag: iruya
-        test: tempest_keystone
+        test: patrole_admin
       - tag: iruya
-        test: tempest_cinder
+        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: neutron_trunk
+      - tag: hunter
+        test: tempest_telemetry
       - tag: hunter
-        test: octavia
+        test: patrole_admin
       - tag: hunter
-        test: tempest_keystone
+        test: patrole_member
       - tag: hunter
-        test: tempest_cinder
+        test: patrole_reader
+      - tag: hunter
+        test: tempest_cyborg
+      - tag: arm64-latest
+        test: refstack_defcore
+      - tag: arm64-latest
+        test: neutron_trunk
+      - 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: neutron_trunk
+      - 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: neutron_trunk
+      - 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: neutron_trunk
+      - 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: neutron_trunk
+      - 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
+    jobs:
+      - 'functest-{repo}-{container}-{tag}-{test}-run'
+
+- project:
+    name: 'functest-opnfv-functest-smoke-cntt'
+    <<: *functest-params
+    container: 'functest-smoke-cntt'
+    test:
+      - tempest_neutron_cntt
+      - tempest_cinder_cntt
+      - tempest_keystone_cntt
+      - tempest_heat_cntt
+      - rally_sanity_cntt
+      - tempest_full_cntt
+      - tempest_scenario_cntt
+      - tempest_slow_cntt
     jobs:
       - 'functest-{repo}-{container}-{tag}-{test}-run'
 
     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
+    jobs:
+      - 'functest-{repo}-{container}-{tag}-{test}-run'
+
 - project:
     name: 'functest-opnfv-functest-vnf'
     <<: *functest-params
     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
+          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 BUILD_TAG=$BUILD_TAG \
+            -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
+            -v /home/opnfv/functest/.boto:/root/.boto \
+            $image zip_campaign
+
+- job-template:
+    name: 'functest-{tag}-zip'
+    parameters:
+      - functest-build_tag:
+          build_tag: ''
+    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
     properties:
       - build-blocker:
           use-build-blocker: true
           blocking-level: 'NODE'
           blocking-jobs:
-            - '^functest-{tag}-(daily|check|gate)$'
+            - '^functest(-ovn)?-(arm.*-|amd64-)*[a-z]+-(daily|gate|check)$'
     builders:
       - multijob:
           name: remove former images
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
               <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
+              <<: *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-smoke-{tag}-pull'
               <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-pull'
+              <<: *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_cinder-run'
+            - 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
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
               <<: *functest-jobs
+            - 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}-neutron_trunk-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}-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}-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-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'
+
+- project:
+    name: functest-opnfv-functest-smoke-cntt-{tag}-build
+    <<: *functest-params
+    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
     properties:
       - build-blocker:
           use-build-blocker: true
           blocking-level: 'NODE'
           blocking-jobs:
-            - '^functest-{tag}-(daily|check|gate)$'
+            - '^functest(-ovn)?-(arm.*-|amd64-)*[a-z]+-(daily|gate|check)$'
     builders:
       - multijob:
           name: remove former images
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
               <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
+              <<: *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
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-vnf-{tag}-check'
               <<: *functest-jobs
+      - multijob:
+          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_cinder-run'
+            - 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
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
               <<: *functest-jobs
+            - 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}-neutron_trunk-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}-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}-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
     properties:
       - build-blocker:
           use-build-blocker: true
           blocking-level: 'NODE'
           blocking-jobs:
-            - '^functest-{tag}-(daily|check|gate)$'
+            - '^functest(-ovn)?-(arm.*-|amd64-)*[a-z]+-(daily|gate|check)$'
     builders:
       - multijob:
           name: remove former images
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
               <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
+              <<: *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
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-vnf-{tag}-gate'
               <<: *functest-jobs
+      - multijob:
+          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_cinder-run'
+            - 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
               <<: *functest-jobs
             - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
               <<: *functest-jobs
+            - 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}-neutron_trunk-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}-tempest_octavia-run'
               <<: *functest-jobs
-            - name: 'functest-opnfv-functest-smoke-{tag}-octavia-run'
+            - 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}-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}-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$