Update jjbs according to latest Xtesting updates 49/71949/1
authorCédric Ollivier <cedric.ollivier@orange.com>
Wed, 10 Feb 2021 10:28:05 +0000 (11:28 +0100)
committerCédric Ollivier <cedric.ollivier@orange.com>
Wed, 10 Feb 2021 10:29:16 +0000 (11:29 +0100)
Change-Id: I8c033aa8b20e15b58877f1e2939a63f3819fa297
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
jjb/functest/functest-kubernetes-docker.yaml [deleted file]
jjb/functest/functest-kubernetes-project-jobs.yaml [deleted file]
jjb/functest/functest-kubernetes.yaml

diff --git a/jjb/functest/functest-kubernetes-docker.yaml b/jjb/functest/functest-kubernetes-docker.yaml
deleted file mode 100644 (file)
index 444d1b1..0000000
+++ /dev/null
@@ -1,284 +0,0 @@
----
-##############################################
-# job configuration for docker build and push
-##############################################
-- project:
-
-    name: functest-kubernetes-docker
-
-    project: functest-kubernetes
-
-    stream:
-      - master:
-          branch: '{stream}'
-          disabled: false
-      - leguer:
-          branch: 'stable/{stream}'
-          disabled: false
-      - kali:
-          branch: 'stable/{stream}'
-          disabled: false
-      - jerma:
-          branch: 'stable/{stream}'
-          disabled: false
-      - iruya:
-          branch: 'stable/{stream}'
-          disabled: false
-      - hunter:
-          branch: 'stable/{stream}'
-          disabled: false
-
-    arch_tag:
-      - 'amd64':
-          slave_label: 'lf-build2'
-
-    # yamllint disable rule:key-duplicates
-    image:
-      - 'core'
-      - 'healthcheck'
-      - 'smoke'
-      - 'cnf'
-      - 'security'
-      - 'benchmarking'
-
-    # settings for jobs run in multijob phases
-    build-job-settings: &build-job-settings
-      current-parameters: false
-      git-revision: true
-      node-parameters: false
-      predefined-parameters: |
-        PUSH_IMAGE=$PUSH_IMAGE
-        COMMIT_ID=$COMMIT_ID
-        GERRIT_REFNAME=$GERRIT_REFNAME
-        DOCKERFILE=$DOCKERFILE
-      kill-phase-on: FAILURE
-      abort-all-jobs: false
-
-    manifest-job-settings: &manifest-job-settings
-      current-parameters: false
-      git-revision: true
-      node-parameters: false
-      predefined-parameters:
-        GERRIT_REFNAME=$GERRIT_REFNAME
-      kill-phase-on: FAILURE
-      abort-all-jobs: false
-
-    # yamllint enable rule:key-duplicates
-    jobs:
-      - "functest-kubernetes-docker-{stream}"
-      - "functest-kubernetes-{image}-docker-build-{arch_tag}-{stream}"
-      - "functest-kubernetes-{image}-docker-manifest-{stream}"
-
-########################
-# job templates
-########################
-- job-template:
-    name: 'functest-kubernetes-docker-{stream}'
-
-    project-type: multijob
-
-    disabled: '{obj:disabled}'
-
-    parameters:
-      - functest-kubernetes-job-parameters:
-          project: '{project}'
-          branch: '{branch}'
-          slave_label: 'lf-build2'
-          arch_tag: 'amd64'
-
-    properties:
-      - throttle:
-          max-per-node: 1
-          option: 'project'
-
-    scm:
-      - git-scm
-
-    triggers:
-      - pollscm:
-          cron: "*/30 * * * *"
-      - gerrit-trigger-tag-created:
-          project: '{project}'
-
-    builders:
-      - multijob:
-          name: 'build functest-kubernetes-core images'
-          execution-type: PARALLEL
-          projects:
-            - name: 'functest-kubernetes-core-docker-build-amd64-{stream}'
-              <<: *build-job-settings
-      - multijob:
-          name: 'publish functest-kubernetes-core manifests'
-          execution-type: PARALLEL
-          projects:
-            - name: 'functest-kubernetes-core-docker-manifest-{stream}'
-              <<: *manifest-job-settings
-      - multijob:
-          name: 'build functest-kubernetes-[healthcheck,cnf,security] images'
-          execution-type: PARALLEL
-          projects:
-            - name: 'functest-kubernetes-healthcheck-docker-build-amd64-{stream}'
-              <<: *build-job-settings
-            - name: 'functest-kubernetes-cnf-docker-build-amd64-{stream}'
-              <<: *build-job-settings
-            - name: 'functest-kubernetes-security-docker-build-amd64-{stream}'
-              <<: *build-job-settings
-      - multijob:
-          name: 'publish functest-kubernetes-[healthcheck,cnf,security] manifests'
-          execution-type: PARALLEL
-          projects:
-            - name: 'functest-kubernetes-healthcheck-docker-manifest-{stream}'
-              <<: *manifest-job-settings
-            - name: 'functest-kubernetes-cnf-docker-manifest-{stream}'
-              <<: *manifest-job-settings
-            - name: 'functest-kubernetes-security-docker-manifest-{stream}'
-              <<: *manifest-job-settings
-      - multijob:
-          name: 'build functest-kubernetes-smoke image'
-          condition: SUCCESSFUL
-          execution-type: PARALLEL
-          projects:
-            - name: 'functest-kubernetes-smoke-docker-build-amd64-{stream}'
-              <<: *build-job-settings
-      - multijob:
-          name: 'publish functest-kubernetes-smoke manifests'
-          condition: SUCCESSFUL
-          execution-type: PARALLEL
-          projects:
-            - name: 'functest-kubernetes-smoke-docker-manifest-{stream}'
-              <<: *manifest-job-settings
-      - multijob:
-          name: 'build functest-kubernetes-benchmarking image'
-          condition: SUCCESSFUL
-          execution-type: PARALLEL
-          projects:
-            - name: 'functest-kubernetes-benchmarking-docker-build-amd64-{stream}'
-              <<: *build-job-settings
-      - multijob:
-          name: 'publish functest-kubernetes-benchmarking manifests'
-          condition: SUCCESSFUL
-          execution-type: PARALLEL
-          projects:
-            - name: 'functest-kubernetes-benchmarking-docker-manifest-{stream}'
-              <<: *manifest-job-settings
-
-    publishers:
-      - 'functest-kubernetes-amd64-recipients'
-
-- job-template:
-    name: 'functest-kubernetes-{image}-docker-build-{arch_tag}-{stream}'
-    disabled: '{obj:disabled}'
-    parameters:
-      - functest-kubernetes-job-parameters:
-          project: '{project}'
-          branch: '{branch}'
-          slave_label: '{slave_label}'
-          arch_tag: '{arch_tag}'
-    scm:
-      - git-scm
-    builders:
-      - shell: |
-          #!/bin/bash -ex
-          sudo amd64_dirs=docker/{image} arm_dirs= arm64_dirs= bash ./build.sh
-          exit $?
-
-- job-template:
-    name: 'functest-kubernetes-{image}-docker-manifest-{stream}'
-
-    parameters:
-      - project-parameter:
-          project: '{project}'
-          branch: '{branch}'
-      - label:
-          name: SLAVE_LABEL
-          default: 'lf-build2'
-          description: 'Slave label on Jenkins'
-          all-nodes: false
-          node-eligibility: 'ignore-offline'
-      - string:
-          name: PROJECT
-          default: "{project}"
-          description: "Project name used to enable job conditions"
-      - string:
-          name: GIT_BASE
-          default: https://gerrit.opnfv.org/gerrit/$PROJECT
-          description: 'Git URL to use on this Jenkins Slave'
-      - string:
-          name: REPO
-          default: "opnfv"
-          description: "Repository name for functest-kubernetes images"
-
-
-    disabled: '{obj:disabled}'
-
-    builders:
-      - shell: |
-          #!/bin/bash -ex
-          case "{stream}" in
-          "master")
-              tag="latest" ;;
-          *)
-              tag="{stream}" ;;
-          esac
-          sudo manifest-tool push from-args \
-              --platforms linux/amd64 \
-              --template $REPO/functest-kubernetes-{image}:ARCH-$tag \
-              --target $REPO/functest-kubernetes-{image}:$tag
-          exit $?
-
-# parameter macro
-- parameter:
-    name: functest-kubernetes-job-parameters
-    parameters:
-      - project-parameter:
-          project: '{project}'
-          branch: '{branch}'
-      - label:
-          name: SLAVE_LABEL
-          default: '{slave_label}'
-          description: 'Slave label on Jenkins'
-          all-nodes: false
-          node-eligibility: 'ignore-offline'
-      - string:
-          name: GIT_BASE
-          default: https://gerrit.opnfv.org/gerrit/$PROJECT
-          description: 'Git URL to use on this Jenkins Slave'
-      - string:
-          name: PUSH_IMAGE
-          default: "true"
-          description: "To enable/disable pushing the image to Dockerhub."
-      - string:
-          name: COMMIT_ID
-          default: ""
-          description: "commit id to make a snapshot docker image"
-      - string:
-          name: GERRIT_REFNAME
-          default: ""
-          description: "Docker tag to be built, e.g. refs/tags/5.0.0, refs/tags/opnfv-5.0.0, refs/tags/5.0.RC1"
-      - string:
-          name: DOCKERFILE
-          default: "Dockerfile"
-          description: "Dockerfile to use for creating the image."
-      - string:
-          name: ARCH_TAG
-          default: "{arch_tag}"
-          description: "If set, this value will be added to the docker image tag as a prefix"
-      - string:
-          name: PROJECT
-          default: "{project}"
-          description: "Project name used to enable job conditions"
-      - string:
-          name: REPO
-          default: "opnfv"
-          description: "Repository name for functest-kubernetes images"
-
-# publisher macros
-- publisher:
-    name: 'functest-kubernetes-amd64-recipients'
-    publishers:
-      - email:
-          recipients: >
-            jalausuch@suse.com morgan.richomme@orange.com
-            cedric.ollivier@orange.com feng.xiaowei@zte.com.cn
-            juha.kosonen@nokia.com wangwulin@huawei.com
-            valentin.boucher@kontron.com
diff --git a/jjb/functest/functest-kubernetes-project-jobs.yaml b/jjb/functest/functest-kubernetes-project-jobs.yaml
deleted file mode 100644 (file)
index 9565276..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
----
-- functest-kubernetes-project-params: &functest-kubernetes-project-params
-    name: 'functest-kubernetes-project-params'
-    tag:
-      - latest:
-          branch: master
-          slave: lf-virtual1
-      - leguer:
-          branch: stable/leguer
-          slave: lf-virtual1
-      - kali:
-          branch: stable/kali
-          slave: lf-virtual1
-      - jerma:
-          branch: stable/jerma
-          slave: lf-virtual1
-      - iruya:
-          branch: stable/iruya
-          slave: lf-virtual1
-      - hunter:
-          branch: stable/hunter
-          slave: lf-virtual1
-
-- builder:
-    name: functest-kubernetes-run-tox
-    builders:
-      - shell: tox
-
-- trigger:
-    name: functest-kubernetes-project-patchset-created
-    triggers:
-      - gerrit:
-          server-name: 'gerrit.opnfv.org'
-          trigger-on:
-            - patchset-created-event
-            - comment-added-contains-event:
-                comment-contains-value: 'recheck'
-            - comment-added-contains-event:
-                comment-contains-value: 'reverify'
-          projects:
-            - project-compare-type: 'ANT'
-              project-pattern: 'functest-kubernetes'
-              branches:
-                - branch-compare-type: 'ANT'
-                  branch-pattern: '**/{branch}'
-          skip-vote:
-            successful: false
-            failed: false
-            unstable: false
-            notbuilt: false
-
-- parameter:
-    name: functest-kubernetes-project-slave
-    parameters:
-      - label:
-          name: slave
-          default: '{slave}'
-
-- scm:
-    name: functest-kubernetes-project-scm
-    scm:
-      - git:
-          url: https://gerrit.opnfv.org/gerrit/functest-kubernetes
-          refspec: '+refs/changes/*:refs/changes/*'
-          branches:
-            - '{ref}'
-
-- job-template:
-    name: 'functest-kubernetes-run-tox-{tag}'
-    triggers:
-      - functest-kubernetes-project-patchset-created:
-          branch: '{branch}'
-    scm:
-      - functest-kubernetes-project-scm:
-          ref: $GERRIT_REFSPEC
-    parameters:
-      - functest-kubernetes-project-slave:
-          slave: '{slave}'
-    builders:
-      - functest-kubernetes-run-tox
-
-- project:
-    name: 'functest-kubernetes-run-tox'
-    <<: *functest-kubernetes-project-params
-    jobs:
-      - 'functest-kubernetes-run-tox-{tag}'
index c83a601..7593dcb 100644 (file)
       - latest:
           branch: master
           slave: lf-virtual1-6
+          dependency: 3.13
       - leguer:
           branch: stable/leguer
           slave: lf-virtual1-5
+          dependency: 3.12
       - kali:
           branch: stable/kali
           slave: lf-virtual1-4
+          dependency: 3.11
       - jerma:
           branch: stable/jerma
           slave: lf-virtual1-3
+          dependency: 3.10
       - iruya:
           branch: stable/iruya
           slave: lf-virtual1-2
+          dependency: 3.9
       - hunter:
           branch: stable/hunter
           slave: lf-virtual1-1
+          dependency: 3.9
 
 - parameter:
     name: functest-kubernetes-slave
       - random-string:
           name: build_tag
 
-- parameter:
-    name: functest-kubernetes-branch
-    parameters:
-      - string:
-          name: branch
-          default: '{branch}'
-
 - parameter:
     name: functest-kubernetes-DEPLOY_SCENARIO
     parameters:
@@ -93,7 +92,7 @@
     builders:
       - shell: |
           set +x
-          [ ! -z "$WORKSPACE" ] && rm -rf $WORKSPACE/* || true
+          [ ! -z "$WORKSPACE" ] && rm -rf $WORKSPACE/results || true
           if [ "{repo}" = "_" ]; then
             image={container}:{tag}
           elif [ "{port}" = "None" ]; then
             -e S3_ENDPOINT_URL=https://storage.googleapis.com \
             -e S3_DST_URL=s3://artifacts.opnfv.org/functest-kubernetes/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
             -e HTTP_DST_URL=http://artifacts.opnfv.org/functest-kubernetes/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
+            -v /home/opnfv/functest-kubernetes/.boto:/root/.boto \
             -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 \
             -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
             -e DEPLOY_SCENARIO=$DEPLOY_SCENARIO \
             -e DEBUG=$DEBUG \
-            -v /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config \
-            -v /home/opnfv/functest-kubernetes/.boto:/root/.boto \
+            -v /home/opnfv/functest-kubernetes/config:/root/.kube/config \
             $image run_tests -t {test} -p -r
 
 - builder:
     name: functest-kubernetes-scm
     scm:
       - git:
-          url: https://gerrit.opnfv.org/gerrit/functest-kubernetes
-          refspec: '+refs/changes/*:refs/changes/*'
+          url: 'https://gerrit.opnfv.org/gerrit/functest-kubernetes'
+          refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*'
           branches:
             - '{ref}'
 
       - sig_storage
     privileged: 'false'
     network: bridge
-    exclude:
-      - tag: leguer
-        test: sig_network
-      - tag: leguer
-        test: sig_network_features
-      - tag: leguer
-        test: sig_storage
-      - tag: kali
-        test: sig_network
-      - tag: kali
-        test: sig_network_features
-      - tag: kali
-        test: sig_storage
-      - tag: jerma
-        test: sig_network
-      - tag: jerma
-        test: sig_network_features
-      - tag: jerma
-        test: sig_storage
-      - tag: iruya
-        test: sig_network
-      - tag: iruya
-        test: sig_network_features
-      - tag: iruya
-        test: sig_storage
-      - tag: hunter
-        test: sig_network
-      - tag: hunter
-        test: sig_network_features
-      - tag: hunter
-        test: sig_storage
     jobs:
       - 'functest-kubernetes-{repo}-{container}-{tag}-{test}-run'
 
       - k8s_vims
       - helm_vims
       - cnf_conformance
-    exclude:
-      - tag: iruya
-        test: k8s_vims
-      - tag: iruya
-        test: helm_vims
     privileged: 'false'
     network: bridge
     jobs:
     builders:
       - shell: |
           set +x
-          [ ! -z "$WORKSPACE" ] && rm -rf $WORKSPACE/* || true
           if [ "{repo}" = "_" ]; then
             image={container}:{tag}
           elif [ "{port}" = "None" ]; then
             -e S3_ENDPOINT_URL=https://storage.googleapis.com \
             -e S3_DST_URL=s3://artifacts.opnfv.org/functest-kubernetes \
             -e HTTP_DST_URL=http://artifacts.opnfv.org/functest-kubernetes \
+            -v /home/opnfv/functest-kubernetes/.boto:/root/.boto \
             -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 DEPLOY_SCENARIO=$DEPLOY_SCENARIO \
             -e DEBUG=$DEBUG \
-            -v /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config \
-            -v /home/opnfv/functest-kubernetes/.boto:/root/.boto \
+            -v /home/opnfv/functest-kubernetes/config:/root/.kube/config \
             $image zip_campaign
 
 - job-template:
     name: 'functest-kubernetes-{tag}-daily'
     project-type: multijob
     triggers:
-      - timed: '@weekly'
+      - timed: '@daily'
     parameters:
       - functest-kubernetes-slave:
           slave: '{slave}'
     properties:
       - build-blocker:
           use-build-blocker: true
-          blocking-level: 'GLOBAL'
+          blocking-level: 'NODE'
           blocking-jobs:
-            - '^functest-kubernetes(-pi)?-(arm.*-|amd64-)*[a-z]+-(daily|gate|check)$'
+            - '^functest-kubernetes-{tag}-(daily|review)$'
     builders:
       - multijob:
           name: remove former images
               <<: *functest-kubernetes-jobs
             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-rmi'
               <<: *functest-kubernetes-jobs
-            - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-pull'
+            - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-rmi'
               <<: *functest-kubernetes-jobs
             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-rmi'
               <<: *functest-kubernetes-jobs
             - name: 'functest-kubernetes-{tag}-zip'
               <<: *functest-kubernetes-jobs
 
+- functest-kubernetes-dep: &functest-kubernetes-dep
+    name: 'functest-kubernetes-containers'
+    repo: '{repo}'
+    port: '{port}'
+    tag: '{tag}'
+    dependency: '{dependency}'
+
+- builder:
+    name: functest-kubernetes-pull-dep-images
+    builders:
+      - shell: |
+          set +x
+          if [ "_" = "_" ]; then
+            image=alpine:{dependency}
+          elif [ "_" = "None" ]; then
+            image=_/alpine:{dependency}
+          else
+            image=_:/alpine{dependency}
+          fi
+          docker pull $image || true
+
+- builder:
+    name: functest-kubernetes-remove-dep-images
+    builders:
+      - shell: |
+          set +x
+          if [ "_" = "_" ]; then
+            image=alpine:{dependency}
+          elif [ "_" = "None" ]; then
+            image=_/alpine:{dependency}
+          else
+            image=_:/alpine{dependency}
+          fi
+          docker rmi $image || true
+
 - job-template:
-    name: 'functest-kubernetes-{repo}-{container}-{tag}-gate'
+    name: 'functest-kubernetes-{repo}-{tag}-dep-pull'
     parameters:
       - functest-kubernetes-slave:
           slave: '{slave}'
-    scm:
-      - functest-kubernetes-scm:
-          ref: $GERRIT_REFSPEC
     builders:
-      - functest-kubernetes-build-containers:
-          <<: *functest-kubernetes-build-containers
-          ref: $GERRIT_REFSPEC
+      - functest-kubernetes-pull-dep-images:
+          <<: *functest-kubernetes-dep
+
+- project:
+    name: 'functest-kubernetes-{repo}-{tag}-dep-pull'
+    <<: *functest-kubernetes-params
+    jobs:
+      - 'functest-kubernetes-{repo}-{tag}-dep-pull'
 
 - job-template:
-    name: 'functest-kubernetes-{repo}-{container}-{tag}-check'
+    name: 'functest-kubernetes-{repo}-{tag}-dep-rmi'
     parameters:
       - functest-kubernetes-slave:
           slave: '{slave}'
-      - functest-kubernetes-branch:
-          branch: '{branch}'
-    scm:
-      - functest-kubernetes-scm:
-          ref: $branch
     builders:
-      - functest-kubernetes-build-containers:
-          <<: *functest-kubernetes-build-containers
-          ref: $branch
+      - functest-kubernetes-remove-dep-images:
+          <<: *functest-kubernetes-dep
 
 - project:
-    name: 'functest-kubernetes-_-golang-1.15-alpine3.13-rmi'
-    repo: _
-    port:
-    container: golang
-    tag: '1.15-alpine3.13'
-    slave: master
+    name: 'functest-kubernetes-{repo}-{tag}-dep-rmi'
+    <<: *functest-kubernetes-params
     jobs:
-      - 'functest-kubernetes-{repo}-{container}-{tag}-rmi'
+      - 'functest-kubernetes-{repo}-{tag}-dep-rmi'
 
-- project:
-    name: 'functest-kubernetes-_-golang-1.15-alpine3.13-pull'
-    repo: _
-    port:
-    container: golang
-    tag: '1.15-alpine3.13'
-    slave: master
-    jobs:
-      - 'functest-kubernetes-{repo}-{container}-{tag}-pull'
+- builder:
+    name: functest-kubernetes-tox
+    builders:
+      - shell: tox
 
-- project:
-    name: functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-build
-    <<: *functest-kubernetes-params
-    container: functest-kubernetes-core
-    ref_arg: BRANCH
-    path: docker/core
-    jobs:
-      - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
-      - 'functest-kubernetes-{repo}-{container}-{tag}-check'
+- job-template:
+    name: 'functest-kubernetes-{tag}-tox'
+    scm:
+      - functest-kubernetes-scm:
+          ref: $GERRIT_REFSPEC
+    triggers:
+      - functest-kubernetes-patchset-created:
+          branch: '{branch}'
+    parameters:
+      - functest-kubernetes-slave:
+          slave: '{slave}'
+    builders:
+      - functest-kubernetes-tox:
 
 - project:
-    name: functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-build
+    name: functest-kubernetes-tox
     <<: *functest-kubernetes-params
-    container: functest-kubernetes-healthcheck
-    ref_arg:
-    path: docker/healthcheck
     jobs:
-      - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
-      - 'functest-kubernetes-{repo}-{container}-{tag}-check'
+      - 'functest-kubernetes-{tag}-tox'
 
 - project:
-    name: functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-build
+    name: functest-kubernetes-opnfv-xtesting-{tag}-gate
     <<: *functest-kubernetes-params
-    container: functest-kubernetes-cnf
+    container: xtesting
     ref_arg: BRANCH
-    path: docker/cnf
+    path: docker/core
     jobs:
       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
-      - 'functest-kubernetes-{repo}-{container}-{tag}-check'
 
 - project:
-    name: functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-build
+    name: functest-kubernetes-opnfv-xtesting-mts-{tag}-gate
     <<: *functest-kubernetes-params
-    container: functest-kubernetes-security
+    container: xtesting-mts
     ref_arg: BRANCH
-    path: docker/security
-    jobs:
-      - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
-      - 'functest-kubernetes-{repo}-{container}-{tag}-check'
-
-- project:
-    name: functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-build
-    <<: *functest-kubernetes-params
-    container: functest-kubernetes-smoke
-    ref_arg:
-    path: docker/smoke
+    path: docker/mts
     jobs:
       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
-      - 'functest-kubernetes-{repo}-{container}-{tag}-check'
 
-- project:
-    name: functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-build
-    <<: *functest-kubernetes-params
-    container: functest-kubernetes-benchmarking
-    ref_arg:
-    path: docker/benchmarking
-    jobs:
-      - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
-      - 'functest-kubernetes-{repo}-{container}-{tag}-check'
 
 - job-template:
-    name: 'functest-kubernetes-{tag}-check'
-    project-type: multijob
+    name: 'functest-kubernetes-{repo}-{container}-{tag}-gate'
     parameters:
       - functest-kubernetes-slave:
           slave: '{slave}'
-      - functest-kubernetes-build_tag:
-          build_tag: ''
-      - functest-kubernetes-branch:
-          branch: '{branch}'
-      - functest-kubernetes-DEPLOY_SCENARIO:
-          DEPLOY_SCENARIO: k8-nosdn-nofeature-noha
-      - functest-kubernetes-DEBUG:
-          DEBUG: 'true'
-    properties:
-      - build-blocker:
-          use-build-blocker: true
-          blocking-level: 'GLOBAL'
-          blocking-jobs:
-            - '^functest-kubernetes(-pi)?-(arm.*-|amd64-)*[a-z]+-(daily|gate|check)$'
+    scm:
+      - functest-kubernetes-scm:
+          ref: $GERRIT_REFSPEC
     builders:
-      - multijob:
-          name: remove former images
-          projects:
-            - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-rmi'
-              <<: *functest-kubernetes-jobs
-            - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-rmi'
-              <<: *functest-kubernetes-jobs
-            - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-rmi'
-              <<: *functest-kubernetes-jobs
-            - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-rmi'
-              <<: *functest-kubernetes-jobs
-            - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-rmi'
-              <<: *functest-kubernetes-jobs
-      - multijob:
-          name: remove dependencies
-          projects:
-            - name: 'functest-kubernetes-_-golang-1.15-alpine3.13-rmi'
-              <<: *functest-kubernetes-jobs
-      - multijob:
-          name: pull dependencies
-          projects:
-            - name: 'functest-kubernetes-_-golang-1.15-alpine3.13-pull'
-              <<: *functest-kubernetes-jobs
-      - multijob:
-          name: build opnfv/functest-kubernetes-core
-          projects:
-            - name: 'functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-check'
-              <<: *functest-kubernetes-jobs
-      - multijob:
-          name: build opnfv/functest-kubernetes-healthcheck
-          projects:
-            - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-check'
-              <<: *functest-kubernetes-jobs
-            - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-check'
-              <<: *functest-kubernetes-jobs
-            - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-check'
-              <<: *functest-kubernetes-jobs
-      - multijob:
-          name: build containers
-          projects:
-            - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-check'
-              <<: *functest-kubernetes-jobs
-      - multijob:
-          name: build opnfv/functest-kubernetes-benchmarking
-          projects:
-            - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-check'
-              <<: *functest-kubernetes-jobs
-      - multijob:
-          name: opnfv/functest-kubernetes-healthcheck:{tag}
-          projects:
-            - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-k8s_quick-run'
-              <<: *functest-kubernetes-jobs
-            - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-k8s_smoke-run'
-              <<: *functest-kubernetes-jobs
-      - multijob:
-          name: opnfv/functest-kubernetes-smoke:{tag}
-          projects:
-            - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-xrally_kubernetes-run'
-              <<: *functest-kubernetes-jobs
-            - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-k8s_conformance-run'
-              <<: *functest-kubernetes-jobs
-            - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_network-run'
-              <<: *functest-kubernetes-jobs
-            - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_network_features-run'
-              <<: *functest-kubernetes-jobs
-            - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_storage-run'
-              <<: *functest-kubernetes-jobs
-      - multijob:
-          name: opnfv/functest-kubernetes-benchmarking:{tag}
-          projects:
-            - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-xrally_kubernetes_full-run'
-              <<: *functest-kubernetes-jobs
-      - multijob:
-          name: opnfv/functest-kubernetes-security:{tag}
-          projects:
-            - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_hunter-run'
-              <<: *functest-kubernetes-jobs
-            - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_bench_master-run'
-              <<: *functest-kubernetes-jobs
-            - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_bench_node-run'
-              <<: *functest-kubernetes-jobs
-      - multijob:
-          name: opnfv/functest-kubernetes-cnf:{tag}
-          projects:
-            - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-k8s_vims-run'
-              <<: *functest-kubernetes-jobs
-            - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-helm_vims-run'
-              <<: *functest-kubernetes-jobs
-            - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-cnf_conformance-run'
-              <<: *functest-kubernetes-jobs
+      - functest-kubernetes-build-containers:
+          <<: *functest-kubernetes-build-containers
+          ref: $GERRIT_REFSPEC
 
 - trigger:
     name: functest-kubernetes-patchset-created
     triggers:
       - gerrit:
-          server-name: 'gerrit.opnfv.org'
           trigger-on:
             - patchset-created-event
             - comment-added-contains-event:
               branches:
                 - branch-compare-type: 'ANT'
                   branch-pattern: '**/{branch}'
-          skip-vote:
-            successful: false
-            failed: false
-            unstable: false
-            notbuilt: false
 
 - job-template:
-    name: 'functest-kubernetes-{tag}-gate'
+    name: 'functest-kubernetes-{tag}-review'
     project-type: multijob
     triggers:
       - functest-kubernetes-patchset-created:
     properties:
       - build-blocker:
           use-build-blocker: true
-          blocking-level: 'GLOBAL'
+          blocking-level: 'NODE'
           blocking-jobs:
-            - '^functest-kubernetes(-pi)?-(arm.*-|amd64-)*[a-z]+-(daily|gate|check)$'
+            - '^functest-kubernetes-{tag}-(daily|review)$'
     builders:
       - multijob:
           name: remove former images
             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-rmi'
               <<: *functest-kubernetes-jobs
       - multijob:
-          name: remove dependencies
-          projects:
-            - name: 'functest-kubernetes-_-golang-1.15-alpine3.13-rmi'
-              <<: *functest-kubernetes-jobs
-      - multijob:
-          name: pull dependencies
+          name: remove dependency
           projects:
-            - name: 'functest-kubernetes-_-golang-1.15-alpine3.13-pull'
+            - name: 'functest-kubernetes-{repo}-{tag}-dep-rmi'
               <<: *functest-kubernetes-jobs
       - multijob:
-          name: build opnfv/functest-kubernetes-core
+          name: pull dependency
           projects:
-            - name: 'functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-gate'
-              <<: *functest-kubernetes-jobs
-      - multijob:
-          name: build opnfv/functest-kubernetes-healthcheck
-          projects:
-            - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-gate'
-              <<: *functest-kubernetes-jobs
-            - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-gate'
-              <<: *functest-kubernetes-jobs
-            - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-gate'
+            - name: 'functest-kubernetes-{repo}-{tag}-dep-pull'
               <<: *functest-kubernetes-jobs
       - multijob:
-          name: build containers
+          name: opnfv/xtesting
           projects:
-            - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-gate'
+            - name: 'functest-kubernetes-opnfv-xtesting-{tag}-gate'
               <<: *functest-kubernetes-jobs
       - multijob:
-          name: build opnfv/functest-kubernetes-benchmarking
+          name: opnfv/xtesting-mts
           projects:
-            - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-gate'
+            - name: 'functest-kubernetes-opnfv-xtesting-mts-{tag}-gate'
               <<: *functest-kubernetes-jobs
       - multijob:
           name: opnfv/functest-kubernetes-healthcheck:{tag}
             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-cnf_conformance-run'
               <<: *functest-kubernetes-jobs
 
+- builder:
+    name: functest-kubernetes-push-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
+          docker push $image
+
+- trigger:
+    name: functest-kubernetes-commit
+    triggers:
+      - pollscm:
+          cron: "*/30 * * * *"
+
+- job-template:
+    name: 'functest-kubernetes-{repo}-{container}-{tag}-build'
+    parameters:
+      - functest-kubernetes-slave:
+          slave: '{slave}'
+    scm:
+      - functest-kubernetes-scm:
+          ref: '{branch}'
+    builders:
+      - functest-kubernetes-build-containers:
+          <<: *functest-kubernetes-build-containers
+          ref: '{branch}'
+      - functest-kubernetes-push-containers:
+          <<: *functest-kubernetes-build-containers
+          ref: '{branch}'
+
 - project:
-    name: 'functest-kubernetes'
+    name: functest-kubernetes-opnfv-xtesting-{tag}-build
     <<: *functest-kubernetes-params
+    container: xtesting
+    ref_arg: BRANCH
+    path: docker/core
     jobs:
-      - 'functest-kubernetes-{tag}-daily'
+      - 'functest-kubernetes-{repo}-{container}-{tag}-build'
+
+- project:
+    name: functest-kubernetes-opnfv-xtesting-mts-{tag}-build
+    <<: *functest-kubernetes-params
+    container: xtesting-mts
+    ref_arg: BRANCH
+    path: docker/mts
+    jobs:
+      - 'functest-kubernetes-{repo}-{container}-{tag}-build'
+
+
+- job-template:
+    name: 'functest-kubernetes-{tag}-docker'
+    project-type: multijob
+    triggers:
+      - functest-kubernetes-commit
+    scm:
+      - functest-kubernetes-scm:
+          ref: '{branch}'
+    parameters:
+      - functest-kubernetes-slave:
+          slave: '{slave}'
+      - functest-kubernetes-DEPLOY_SCENARIO:
+          DEPLOY_SCENARIO: k8-nosdn-nofeature-noha
+      - functest-kubernetes-DEBUG:
+          DEBUG: 'true'
+    builders:
+      - multijob:
+          name: remove dependency
+          projects:
+            - name: 'functest-kubernetes-{repo}-{tag}-dep-rmi'
+              <<: *functest-kubernetes-jobs
+      - multijob:
+          name: pull dependency
+          projects:
+            - name: 'functest-kubernetes-{repo}-{tag}-dep-pull'
+              <<: *functest-kubernetes-jobs
+      - multijob:
+          name: opnfv/xtesting
+          projects:
+            - name: 'functest-kubernetes-opnfv-xtesting-{tag}-build'
+              <<: *functest-kubernetes-jobs
+      - multijob:
+          name: opnfv/xtesting-mts
+          projects:
+            - name: 'functest-kubernetes-opnfv-xtesting-mts-{tag}-build'
+              <<: *functest-kubernetes-jobs
+
+- builder:
+    name: functest-kubernetes-trivy
+    builders:
+      - shell: |
+          curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b .
+          if [ "{repo}" = "_" ]; then
+            image={container}:{tag}
+          elif [ "{port}" = "None" ]; then
+            image={repo}/{container}:{tag}
+          else
+            image={repo}:{port}/{container}:{tag}
+          fi
+          ./trivy --exit-code 1 $image
+
+- job-template:
+    name: 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
+    parameters:
+      - functest-kubernetes-slave:
+          slave: '{slave}'
+    builders:
+      - functest-kubernetes-trivy:
+          <<: *functest-kubernetes-containers
+
+- project:
+    name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-trivy'
+    <<: *functest-kubernetes-params
+    container: 'functest-kubernetes-healthcheck'
+    jobs:
+      - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
+- project:
+    name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-trivy'
+    <<: *functest-kubernetes-params
+    container: 'functest-kubernetes-smoke'
+    jobs:
+      - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
+- project:
+    name: 'functest-kubernetes-opnfv-functest-kubernetes-security-trivy'
+    <<: *functest-kubernetes-params
+    container: 'functest-kubernetes-security'
+    jobs:
+      - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
+- project:
+    name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-trivy'
+    <<: *functest-kubernetes-params
+    container: 'functest-kubernetes-benchmarking'
+    jobs:
+      - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
+- project:
+    name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-trivy'
+    <<: *functest-kubernetes-params
+    container: 'functest-kubernetes-cnf'
+    jobs:
+      - 'functest-kubernetes-{repo}-{container}-{tag}-trivy'
 
 - project:
-    name: 'functest-kubernetes-gate'
+    name: 'functest-kubernetes'
     <<: *functest-kubernetes-params
     jobs:
-      - 'functest-kubernetes-{tag}-check'
-      - 'functest-kubernetes-{tag}-gate'
+      - 'functest-kubernetes-{tag}-daily'
+      - 'functest-kubernetes-{tag}-review'
+      - 'functest-kubernetes-{tag}-docker'
+
+
+- view:
+    name: functest-kubernetes-daily
+    view-type: list
+    columns:
+      - status
+      - weather
+      - job
+      - last-success
+      - last-failure
+      - last-duration
+    regex: ^functest-kubernetes-[a-z-]+-daily$
+
+- view:
+    name: functest-kubernetes-review
+    view-type: list
+    columns:
+      - status
+      - weather
+      - job
+      - last-success
+      - last-failure
+      - last-duration
+    regex: ^functest-kubernetes-[a-z-]+-review$
+
+- view:
+    name: functest-kubernetes-tox
+    view-type: list
+    columns:
+      - status
+      - weather
+      - job
+      - last-success
+      - last-failure
+      - last-duration
+    regex: ^functest-kubernetes-[a-z-]+-tox$
 
 - view:
-    name: functest-kubernetes
+    name: functest-kubernetes-docker
     view-type: list
     columns:
       - status
       - last-success
       - last-failure
       - last-duration
-    regex: ^functest-kubernetes-(amd64-)*[a-z]+-daily$
+    regex: ^functest-kubernetes-[a-z-]+-docker$
 
 - view:
-    name: functest-kubernetes-gate
+    name: functest-kubernetes-trivy
     view-type: list
     columns:
       - status
       - last-success
       - last-failure
       - last-duration
-    regex: ^functest-kubernetes-(amd64-)*[a-z]+-gate$
+    regex: ^functest-kubernetes-[a-z-]+-trivy$