diff --git a/jobs/pipelines/run-test-scenarios.groovy b/jobs/pipelines/run-test-scenarios.groovy
new file mode 100644
index 0000000..877c0c8
--- /dev/null
+++ b/jobs/pipelines/run-test-scenarios.groovy
@@ -0,0 +1,83 @@
+/**
+ *
+ * Deploy the product cluster using Jenkins master on CICD cluster
+ *
+ * Expected parameters:
+
+ *   ENV_NAME                      Fuel-devops environment name
+ *   PASSED_STEPS                  Steps passed to install components using Jenkins on CICD cluster: "salt,core,cicd,openstack:3200,stacklight:2400",
+                                   where 3200 and 2400 might be timeouts (not used in the testing pipeline)
+ *   RUN_TEST_OPTS                 Pytest option -k or -m, with expression to select necessary tests. Additional pytest options are allowed.
+ *   PARENT_NODE_NAME              Name of the jenkins slave to create the environment
+ *   PARENT_WORKSPACE              Path to the workspace of the parent job to use tcp-qa repo
+ *   TCP_QA_REFS                   Reference to the tcp-qa change on Gerrit, like refs/changes/46/418546/41
+ *   SHUTDOWN_ENV_ON_TEARDOWN      optional, shutdown fuel-devops environment at the end of the job
+ *   TEMPEST_IMAGE_VERSION         Tempest image version: pike by default, can be queens.
+ *   TEMPEST_TARGET                Node where tempest will be run
+ *   MAKE_SNAPSHOT_STAGES          optional, use "dos.py snapshot" to snapshot stages
+ */
+
+@Library('tcp-qa')_
+
+def common = new com.mirantis.mk.Common()
+def shared = new com.mirantis.system_qa.SharedPipeline()
+
+def steps = env.PASSED_STEPS
+def make_snapshot_stages = false
+
+timeout(time: 23, unit: 'HOURS') {
+    node ("${PARENT_NODE_NAME}") {
+            if (! fileExists("${PARENT_WORKSPACE}")) {
+            error "'PARENT_WORKSPACE' contains path to non-existing directory ${PARENT_WORKSPACE} on the node '${PARENT_NODE_NAME}'."
+        }
+        dir("${PARENT_WORKSPACE}") {
+            env.slave_workdir = pwd()
+            if (env.TCP_QA_REFS) {
+                stage("Update working dir to patch ${TCP_QA_REFS}") {
+                    shared.update_working_dir()
+                }
+            }
+
+            stage("Run tests") {
+                try {
+                    if (env.RUN_TEST_OPTS) {
+                        shared.swarm_run_pytest(steps, "${PARENT_NODE_NAME}", make_snapshot_stages)
+                    } else {
+                        common.printMsg("RUN_TEST_OPTS is empty, skipping 'swarm-run-pytest' job", "green")
+                    }
+                } catch (e) {
+                    common.printMsg("Tests are failed: " + e.message, "purple")
+                }
+            } // stage("Run tests")
+
+            stage("Archive all xml reports") {
+                dir("${env.slave_workdir }") {
+                    archiveArtifacts artifacts: "**/*.xml,**/*.ini,**/*.log,**/*.tar.gz"
+                    }
+            }
+
+            stage("report results to testrail from jenkins master") {
+                if ("${env.REPORT_TO_TESTRAIL}" != "false") {
+                    common.printMsg("Running on: " + env.PARENT_NODE_NAME, "blue")
+                    shared.verbose_sh("""\
+                           [ -d /home/jenkins/venv_testrail_reporter ] || virtualenv --python=python3.7 /home/jenkins/venv_testrail_reporter""", true, false, true)
+                    shared.run_cmd("""\
+                            . /home/jenkins/venv_testrail_reporter/bin/activate; pip install git+https://github.com/dis-xcom/testrail_reporter -U""")
+                    shared.swarm_testrail_report(steps, env.PARENT_NODE_NAME)
+                } else {
+                    common.printMsg("REPORT_TO_TESTRAIL is set to FALSE. Skipped this step ")
+                }
+            } // stage("report results to testrail from jenkins master")
+            stage("Store TestRail reports to job description") {
+                if ("${env.REPORT_TO_TESTRAIL}" != "false") {
+                    if (fileExists("description.txt")) {
+                        def String description  = readFile("description.txt")
+                        currentBuild.description += "${description}"
+                    }
+                } else {
+                    common.printMsg("REPORT_TO_TESTRAIL is set to FALSE. Skipped this step ")
+                }
+            } // stage("Store TestRail reports to job description")
+        } // dir
+    } // node
+} // timeout
\ No newline at end of file
diff --git a/jobs/pipelines/self-deploy-jobs.groovy b/jobs/pipelines/self-deploy-jobs.groovy
index 5815cd3..7707a8e 100644
--- a/jobs/pipelines/self-deploy-jobs.groovy
+++ b/jobs/pipelines/self-deploy-jobs.groovy
@@ -8,7 +8,7 @@
             stage('Prepre venv'){
                 sh """
                 if [ ! -d .venv ]; then
-                  echo "Can't find python virtal env, installing"
+                  echo "Can't find python virtual env, installing"
                   virtualenv -p python3 .venv
                 fi
                 if [ -z "\$(./.venv/bin/pip freeze | grep  jenkins-job-builder)" ]; then
diff --git a/jobs/templates/test-scenarios.yml b/jobs/templates/test-scenarios.yml
new file mode 100644
index 0000000..10388e0
--- /dev/null
+++ b/jobs/templates/test-scenarios.yml
@@ -0,0 +1,237 @@
+---
+
+- project:
+    name: test-scenarios
+    views:
+      - Test Backups
+      - Test Ceph
+      - Test MCP updates
+    jobs:
+      - backup-tests
+      - ceph-tests
+      - update-tests
+
+################### VIEWS #######################
+- view:
+    name: Test Backups
+    view-type: list
+    filter-executors: true
+    filter-queue: true
+    regex: 'backup-.*'
+    columns:
+      - status
+      - weather
+      - job
+      - last-success
+      - last-failure
+      - last-duration
+      - build-button
+
+- view:
+    name: Test Ceph
+    view-type: list
+    filter-executors: true
+    filter-queue: true
+    regex: 'ceph_.*'
+    columns:
+      - status
+      - weather
+      - job
+      - last-success
+      - last-failure
+      - last-duration
+      - build-button
+
+- view:
+    name: Test MCP updates
+    view-type: list
+    filter-executors: true
+    filter-queue: true
+    regex: '.*-update-.*'
+    columns:
+      - status
+      - weather
+      - job
+      - last-success
+      - last-failure
+      - last-duration
+      - build-button
+
+######################## JOB GROUP ####################
+- job-group:
+    name: 'backup-tests'
+    test_scenario:
+
+      - backup-saltmaster-queens-dvr-sl:
+          run-test-opts: '-k TestBackupRestoreMaster'
+          deployment: heat-cicd-queens-dvr-sl
+
+      - backup-saltmaster-pike-dvr-sl:
+         run-test-opts: '-k TestBackupRestoreMaster'
+         deployment: heat-cicd-pike-dvr-sl
+
+      - backup-cassandra-queens-contrail-sl:
+         run-test-opts: '-k TestBackupRestoreCassandra'
+         deployment: heat-cicd-queens-contrail-sl
+
+    jobs:
+      - '{test_scenario}'
+
+- job-group:
+    name: 'ceph-tests'
+    test_scenario:
+      - ceph_osd-queens-dvr-sl:
+         run-test-opts: '-k TestCephOsd'
+         deployment: heat-cicd-queens-dvr-sl
+    jobs:
+      - '{test_scenario}'
+
+- job-group:
+    name: 'update-tests'
+    test-opt: |-
+      --keep-duplicates --maxfail=1 \
+      tcp_tests/tests/system/test_mcp_update.py::TestUpdateMcpCluster::test_update_drivetrain \
+      tcp_tests/tests/system/test_mcp_update.py::TestOpenstackUpdate \
+      tcp_tests/tests/system/test_mcp_update.py::TestUpdateMcpCluster::test_update_galera
+      tcp_tests/tests/system/test_mcp_update.py::TestUpdateMcpCluster::test_update_rabbit \
+      tcp_tests/tests/system/test_mcp_update.py::TestUpdateMcpCluster::test_update_stacklight \
+      tcp_tests/tests/system/test_mcp_update.py::TestUpdateMcpCluster::test_update_ceph \
+      \
+      tcp_tests/tests/system/test_3rdparty_suites.py::Test3rdpartySuites::test_run_tempest \
+      tcp_tests/tests/system/test_cvp_pipelines.py::TestCvpPipelines::test_run_cvp_func_sanity \
+      tcp_tests/tests/system/test_cvp_pipelines.py::TestCvpPipelines::test_run_cvp_stacklight
+    test-opt-with-contrail: |-
+      --keep-duplicates --maxfail=1 \
+      tcp_tests/tests/system/test_mcp_update.py::TestUpdateMcpCluster::test_update_drivetrain \
+      tcp_tests/tests/system/test_upgrade_contrail.py::TestUpdateContrail \
+      tcp_tests/tests/system/test_mcp_update.py::TestOpenstackUpdate \
+      tcp_tests/tests/system/test_mcp_update.py::TestUpdateMcpCluster::test_update_galera
+      tcp_tests/tests/system/test_mcp_update.py::TestUpdateMcpCluster::test_update_rabbit \
+      tcp_tests/tests/system/test_mcp_update.py::TestUpdateMcpCluster::test_update_stacklight \
+      tcp_tests/tests/system/test_mcp_update.py::TestUpdateMcpCluster::test_update_ceph \
+      \
+      tcp_tests/tests/system/test_3rdparty_suites.py::Test3rdpartySuites::test_run_tempest \
+      tcp_tests/tests/system/test_cvp_pipelines.py::TestCvpPipelines::test_run_cvp_func_sanity \
+      tcp_tests/tests/system/test_cvp_pipelines.py::TestCvpPipelines::test_run_cvp_stacklight
+
+    test_scenario:
+      - mcp-update-pike-sl:
+          deployment: released-heat-cicd-pike-dvr-sl
+          disabled: true
+          run-test-opts: '{test-opt}'
+
+      - mcp-update-queens-dvr-sl:
+          deployment: released-heat-cicd-queens-dvr-sl
+          disabled: true
+          run-test-opts: '{test-opt}'
+
+      - mcp-update-pike-contrail-sl:
+          deployment: released-heat-cicd-pike-contrail41-sl
+          disabled: true
+          run-test-opts: '{test-opt-with-contrail}'
+
+      - mcp-update-queens-contrail-sl:
+          deployment: released-heat-cicd-queens-contrail41-sl
+          disabled: true
+          run-test-opts: '{test-opt-with-contrail}'
+
+      - os-update-pike-to-queens:
+          deployment: heat-cicd-pike-dvr-sl
+          run-test-opts: '-k TestUpdatePikeToQueens'
+
+      - ceph-update-luminous-to-nautilus:
+          deployment: heat-cicd-pike-dvr-sl
+          disabled: true
+          run-test-opts: '-k TestCephUpdate'
+
+    jobs:
+      - '{test_scenario}'
+
+###################### JOB TEMPLATE ###################
+- job-template:
+    name: '{test_scenario}'
+    project-type: pipeline
+    concurrent: false
+    disabled: '{disabled|false}'
+    quiet-period: 2
+    node: 'openstack_slave_{deployment}'
+    logrotate:
+      daysToKeep: 30
+      numToKeep: 60
+      artifactDaysToKeep: -1
+      artifactNumToKeep: -1
+    # Requires the Jenkins BuildResultTrigger Plugin
+    triggers:
+      - build-result:
+          cron: '* * * * *'
+          combine: true
+          groups:
+            - jobs:
+                - '{deployment}'
+              results:
+                - success
+
+    pipeline-scm:
+      lightweight-checkout: false
+      scm:
+        - git:
+            branches:
+              - FETCH_HEAD
+            refspec: ${{TCP_QA_REFS}}
+            url: https://gerrit.mcp.mirantis.com/mcp/tcp-qa.git
+      script-path: jobs/pipelines/run-test-scenarios.groovy
+
+    parameters:
+    - node:
+        name: NODE
+        allowed-slaves:
+          - 'openstack_slave_{deployment}'
+    - string:
+        default: '{deployment}'
+        description: 'Required: Fuel-devops environment name'
+        name: ENV_NAME
+        trim: 'false'
+    - string:
+        default: ''
+        description: 'Example: refs/changes/89/411189/36
+                       (for now - only one reference allowed)'
+        name: TCP_QA_REFS
+        trim: 'false'
+    - string:
+        default: 'openstack_slave_{deployment}'
+        description: 'Required: Name of the jenkins slave to create the environment
+                      To be set by the parent deployment job.'
+        name: PARENT_NODE_NAME
+        trim: 'false'
+    - string:
+        default: '/home/jenkins/workspace/workspace/{deployment}'
+        description: 'Required: Workspace on the jenkins slave to reuse for
+                      the job To be set by the parent deployment job'
+        name: PARENT_WORKSPACE
+        trim: 'false'
+    - string:
+        default: ''
+        description: 'Completed steps to install components on the environment.
+                      If tests require some additional components, it may be installed in
+                      appropriate fixtures, so set the PASSED_STEPS correctly for the
+                      testing environment.'
+        name: PASSED_STEPS
+        trim: 'false'
+    - string:
+        default: ''
+        description: 'Example: refs/changes/89/411189/36
+                       (for now - only one reference allowed)'
+        name: TCP_QA_REFS
+        trim: 'false'
+    - text:
+        default: '{run-test-opts}'
+        description: |-
+          Pytest option -k or -m, with expression to select necessary tests.
+          Additional pytest options are allowed.
+        name: RUN_TEST_OPTS
+        trim: 'false'
+    - bool:
+        default: true
+        name: REPORT_TO_TESTRAIL
+
+
