diff --git a/jobs/pipelines/swarm-bootstrap-salt-cluster-heat.groovy b/jobs/pipelines/swarm-bootstrap-salt-cluster-heat.groovy
index 1ea4d5c..a4903c8 100644
--- a/jobs/pipelines/swarm-bootstrap-salt-cluster-heat.groovy
+++ b/jobs/pipelines/swarm-bootstrap-salt-cluster-heat.groovy
@@ -82,7 +82,7 @@
                     # export OS_PASSWORD=${OS_PASSWORD}
                     # export OS_PROJECT_NAME=${OS_PROJECT_NAME}
                     openstack --insecure stack delete -y ${ENV_NAME} || true
-                    while openstack --insecure stack show ${ENV_NAME} -f value -c stack_status; do sleep 10; done
+                    timeout 20m /bin/bash -c "while openstack --insecure stack show ${ENV_NAME} -f value -c stack_status; do sleep 10; done"
                 """)
 
                 println "Remove config drive ISO"
diff --git a/jobs/pipelines/swarm-testrail-report.groovy b/jobs/pipelines/swarm-testrail-report.groovy
index 1967016..a8af4e5 100644
--- a/jobs/pipelines/swarm-testrail-report.groovy
+++ b/jobs/pipelines/swarm-testrail-report.groovy
@@ -80,9 +80,6 @@
                     testrail_name_template = '{title}'
                     reporter_extra_options = [
                       "--testrail-add-missing-cases",
-                      "--testrail-case-custom-fields {\\\"custom_qa_team\\\":\\\"9\\\"}",
-                      "--testrail-case-section-name \'All\'",
-                      "--testrail_configuration_name \'tcp-qa\'",
                     ]
                     ret = shared.upload_results_to_testrail(deployment_report_name, testSuiteName, methodname, testrail_name_template, reporter_extra_options)
                     common.printMsg(ret.stdout, "blue")
@@ -103,9 +100,7 @@
                     testrail_name_template = "{title}"
                     reporter_extra_options = [
                       "--testrail-add-missing-cases",
-                      "--testrail-case-custom-fields {\\\"custom_qa_team\\\":\\\"9\\\"}",
-                      "--testrail-case-section-name \'All\'",
-                      "--testrail_configuration_name \'tcp-qa\'",
+                      "--testrail_configuration_name tcp-qa",
                     ]
                     ret = shared.upload_results_to_testrail(tcpqa_report_name, testSuiteName, methodname, testrail_name_template, reporter_extra_options)
                     common.printMsg(ret.stdout, "blue")
@@ -127,7 +122,7 @@
                     reporter_extra_options = [
                       "--send-duplicates",
                       "--testrail-add-missing-cases",
-                      "--testrail_configuration_name \'tcp-qa\'",
+                      "--testrail_configuration_name tcp-qa",
                     ]
                     ret = shared.upload_results_to_testrail(tempest_report_name,
                                                             testSuiteName,
@@ -200,7 +195,11 @@
                     testSuiteName = "LMA2.0_Automated"
                     methodname = "{methodname}"
                     testrail_name_template = "{title}"
-                    ret = shared.upload_results_to_testrail(stacklight_report_name, testSuiteName, methodname, testrail_name_template)
+                    reporter_extra_options = [
+                      "--testrail-add-missing-cases",
+                      "--testrail-case-custom-fields {\\\"custom_qa_team\\\":\\\"9\\\"}",
+                    ]
+                    ret = shared.upload_results_to_testrail(stacklight_report_name, testSuiteName, methodname, testrail_name_template, reporter_extra_options)
                     common.printMsg(ret.stdout, "blue")
                     report_url = ret.stdout.split("\n").each {
                         if (it.contains("[TestRun URL]")) {
@@ -220,9 +219,7 @@
                     reporter_extra_options = [
                       "--send-duplicates",
                       "--testrail-add-missing-cases",
-                      "--testrail-case-custom-fields {\\\"custom_qa_team\\\":\\\"9\\\"}",
-                      "--testrail-case-section-name \'All\'",
-                      "--testrail_configuration_name \'tcp-qa\'",
+                      "--testrail_configuration_name tcp-qa",
                     ]
                     ret = shared.upload_results_to_testrail(cvp_sanity_report_name, testSuiteName, methodname, testrail_name_template, reporter_extra_options)
                     common.printMsg(ret.stdout, "blue")
diff --git a/src/com/mirantis/system_qa/SharedPipeline.groovy b/src/com/mirantis/system_qa/SharedPipeline.groovy
index ddb82bb..34049e7 100644
--- a/src/com/mirantis/system_qa/SharedPipeline.groovy
+++ b/src/com/mirantis/system_qa/SharedPipeline.groovy
@@ -701,7 +701,7 @@
   def script = """
     . ${venvPath}/bin/activate
     set -ex
-    report ${reporterOptions.join(' ')} '${report_name}'
+    report ${reporterOptions.join(' ')} ${report_name}
   """
 
   def testrail_cred_id = params.TESTRAIL_CRED ?: 'testrail_system_tests'
diff --git a/tcp_tests/templates/bm-cicd-queens-ovs-maas/salt-context-environment.yaml b/tcp_tests/templates/bm-cicd-queens-ovs-maas/salt-context-environment.yaml
index 7722eaa..50bb147 100644
--- a/tcp_tests/templates/bm-cicd-queens-ovs-maas/salt-context-environment.yaml
+++ b/tcp_tests/templates/bm-cicd-queens-ovs-maas/salt-context-environment.yaml
@@ -4,7 +4,7 @@
       roles:
       - infra_config
       - linux_system_codename_xenial
-      - features_runtest_cfg
+      - features_runtest
       interfaces:
         ens3:
           role: single_static_mgm
diff --git a/tcp_tests/templates/bm-cicd-queens-ovs-maas/salt-context-vcp-environment.yaml b/tcp_tests/templates/bm-cicd-queens-ovs-maas/salt-context-vcp-environment.yaml
index c274129..0083582 100644
--- a/tcp_tests/templates/bm-cicd-queens-ovs-maas/salt-context-vcp-environment.yaml
+++ b/tcp_tests/templates/bm-cicd-queens-ovs-maas/salt-context-vcp-environment.yaml
@@ -4,6 +4,7 @@
       roles:
       - openstack_control_leader
       - linux_system_codename_xenial
+      - features_ironic_baremetal_nodes
       interfaces:
         ens2:
           role: single_dhcp
diff --git a/tcp_tests/templates/cookied-model-generator/salt_bm-cicd-queens-ovs-maas.yaml b/tcp_tests/templates/cookied-model-generator/salt_bm-cicd-queens-ovs-maas.yaml
index f34cc38..65d1d18 100644
--- a/tcp_tests/templates/cookied-model-generator/salt_bm-cicd-queens-ovs-maas.yaml
+++ b/tcp_tests/templates/cookied-model-generator/salt_bm-cicd-queens-ovs-maas.yaml
@@ -35,8 +35,8 @@
   cmd: |
     sed -i 's/br\-ctl/br\_ctl/g' /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/infra/kvm.yml;
     sed -i 's/br\-mgm/br\_mgm/g' /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/infra/kvm.yml;
-    sed -i 's/br\-ctl/br\_ctl/g' /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/openstack/gateway.yml;
     sed -i 's/br\-baremetal/br\_baremetal/g' /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/infra/kvm.yml;
+    sed -i 's/br\-ctl/br\_ctl/g' /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/openstack/gateway.yml;
     salt '*' saltutil.refresh_pillar;
   node_name: {{ HOSTNAME_CFG01 }}
   retry: {count: 1, delay: 10}
diff --git a/tcp_tests/tests/system/test_cvp_pipelines.py b/tcp_tests/tests/system/test_cvp_pipelines.py
index c73bb88..d010664 100644
--- a/tcp_tests/tests/system/test_cvp_pipelines.py
+++ b/tcp_tests/tests/system/test_cvp_pipelines.py
@@ -294,10 +294,20 @@
             tgt=tgt, pillar="jenkins:client:master:username")
         jenkins_pass = salt.get_single_pillar(
             tgt=tgt, pillar="jenkins:client:master:password")
+        cirros_image = salt.get_single_pillar(
+            tgt="I@salt:master",
+            pillar="_param:glance_image_cirros_location")
         jenkins_start_timeout = 60
-        jenkins_build_timeout = 1800
+        jenkins_build_timeout = 50 * 60
 
         job_name = 'cvp-stacklight'
+        job_parameters = {
+            "EXTRA_PARAMS": """
+            envs:
+              - SL_AUTOCONF=True
+              - CIRROS_QCOW2_URL={image}
+            """.format(image=cirros_image)
+        }
 
         show_step(2)
         cvp_stacklight_result = run_jenkins_job.run_job(
@@ -308,7 +318,7 @@
             build_timeout=jenkins_build_timeout,
             verbose=True,
             job_name=job_name,
-            job_parameters={},
+            job_parameters=job_parameters,
             job_output_prefix='[cvp-stacklight/{build_number}:platform {time}]'
         )
 
diff --git a/tcp_tests/tests/system/test_mcp_update.py b/tcp_tests/tests/system/test_mcp_update.py
index 1ff7642..ab38698 100644
--- a/tcp_tests/tests/system/test_mcp_update.py
+++ b/tcp_tests/tests/system/test_mcp_update.py
@@ -32,25 +32,37 @@
     underlay = underlay_ssh_manager.UnderlaySSHManager(config)
     saltmanager = salt_manager.SaltManager(config, underlay)
     targets = list()
+    telemetry_exists = False
+    barbican_exists = False
     try:
         targets += saltmanager.run_state(
             "I@keystone:server", 'test.ping')[0]['return'][0].keys()
         targets += saltmanager.run_state(
             "I@nginx:server and not I@salt:master",
             "test.ping")[0]['return'][0].keys()
+        telemetry_exists = saltmanager.get_single_pillar(
+            "I@salt:master",
+            "_param:openstack_telemetry_hostname")
+        barbican_exists = saltmanager.get_single_pillar(
+            "I@salt:master",
+            "_param:barbican_enabled")
     except BaseException as err:
         LOG.warning("Can't retrieve data from Salt. \
             Maybe cluster is not deployed completely.\
             Err: {}".format(err))
 
-    # TODO: add check for Manila  existence
-    # # Commented to avoid fails during OpenStack updates.
-    # # Anyway we don't have deployments with Manila yet
-    # targets.append('share*')
-    # TODO: add check for Tenant Telemetry  existence
-    targets.append('mdb*')
-    # TODO: add check for Barbican existence
-    targets.append('kmn*')
+    # check for Manila  existence
+    # if saltmanager.get_single_pillar("I@salt:master",
+    #                                  "_param:manila_service_protocol"):
+    #     targets.append('share*')
+
+    # check for Tenant Telemetry  existence
+    if telemetry_exists:
+        targets.append('mdb*')
+
+    # check for Barbican existence
+    if barbican_exists:
+        targets.append('kmn*')
     return targets
 
 
@@ -79,6 +91,7 @@
     reclass.add_key(repo_param, proposed_repo, "cluster/*/ceph/init.yml")
 
     salt_actions.run_state("*", "saltutil.refresh_pillar")
+    salt_actions.enforce_state("*", "salt.minion")
     salt_actions.enforce_state("I@jenkins:client", "jenkins.client")
 
 
diff --git a/tcp_tests/tests/system/test_upgrade_pike_queens.py b/tcp_tests/tests/system/test_upgrade_pike_queens.py
index 6314364..9d3288e 100644
--- a/tcp_tests/tests/system/test_upgrade_pike_queens.py
+++ b/tcp_tests/tests/system/test_upgrade_pike_queens.py
@@ -25,18 +25,21 @@
     Created by https://mirantis.jira.com/browse/PROD-32683
     """
     def execute_pre_post_steps(self, underlay_actions,
-                               cfg_node, verbose, type):
+                               cfg_node, verbose, type, with_verify=False):
 
         # ### Get the list of all upgradable OpenStack components ############
         ret = underlay_actions.check_call(
             node_name=cfg_node, verbose=verbose,
             cmd="salt 'cfg01*' config.get"
-                " orchestration:upgrade:applications --out=json")
-        cfg_nodes_list = json.loads(ret['stdout_str'])
-        services_for_upgrade = []
-        for i in cfg_nodes_list:
-            for j in cfg_nodes_list[i]:
-                services_for_upgrade.append(j)
+                " orchestration:upgrade:applications --out=json")['stdout_str']
+        # It returns json like {"local": {"galera":{"priority":910},"heat":{..
+        all_formulas = json.loads(ret).get("local")
+        sorted_formulas = sorted(all_formulas.items(),
+                                 key=lambda x: x[1].get("priority"),
+                                 reverse=True)
+        # Because 'sorted' function returns list of tuples like
+        # [('aodh', {'priority': 2000}), ('ceilometer', {'priority': 1950}) ...
+        services_for_upgrade = [item[0] for item in sorted_formulas]
         LOG.info(services_for_upgrade)
 
         # ###### Get the list of all target node #############################
@@ -46,12 +49,6 @@
                 "grep -v Accepted")['stdout_str'].splitlines()
         LOG.info(list_nodes)
 
-        # #### guarantee that the KeystoneRC metadata is exported to mine ####
-        ret = underlay_actions.check_call(
-            node_name=cfg_node, verbose=verbose,
-            cmd="salt -C 'I@keystone:client:enabled' state.sls"
-                " keystone.upgrade.pre")
-
         # ## For each target node, get the list of the installed applications
         for node in list_nodes:
             salt_pillars = underlay_actions.check_call(
@@ -66,11 +63,22 @@
                 node_applications = node_app_output[node][need_output]
                 LOG.info(node_applications)
                 for service in services_for_upgrade:
-                    if service in node_applications:
-                        underlay_actions.check_call(
-                            node_name=cfg_node, verbose=verbose,
-                            cmd="salt {} state.apply "
-                                "{}.upgrade.{}".format(node, service, type))
+                    if service not in node_applications:
+                        continue
+                    cmd = "salt {} state.apply {}.upgrade.{}".\
+                        format(node, service, type)
+                    LOG.info("Apply: {}".format(cmd))
+                    underlay_actions.check_call(
+                        node_name=cfg_node, verbose=verbose, cmd=cmd)
+
+                    # Run upgrade.verify if needed
+                    if not with_verify:
+                        continue
+                    cmd = "salt {} state.apply {}.upgrade.verify".\
+                        format(node, service)
+                    LOG.info("Apply: {}".format(cmd))
+                    underlay_actions.check_call(
+                        node_name=cfg_node, verbose=verbose, cmd=cmd)
 
     @pytest.mark.day1_underlay
     def test_upgrade_pike_queens(self,
@@ -97,7 +105,18 @@
         infra_init_yaml = "cluster/*/infra/init.yml"
         # ########## Perform the pre-upgrade activities ##########
         show_step(1)
+        salt_actions.enforce_state("I@keystone:client:os_client_config",
+                                   "keystone.client.os_client_config")
+        # #### guarantee that the KeystoneRC metadata is exported to mine ####
+        underlay_actions.check_call(
+            node_name=cfg_node, verbose=verbose,
+            cmd="salt -C 'I@keystone:client:enabled' state.sls"
+                " keystone.upgrade.pre")
+        # ### Run upgrade.pre and upgrade.verify
+        self.execute_pre_post_steps(underlay_actions, cfg_node,
+                                    verbose, 'pre', with_verify=True)
         LOG.info('Add parameters to {}'.format(infra_init_yaml))
+        # ### Edit Infra INIT #####
         reclass_actions.add_bool_key(
             'parameters._param.openstack_upgrade_enabled',
             'true',
@@ -112,6 +131,18 @@
             'parameters._param.openstack_old_version',
             'pike',
             infra_init_yaml)
+
+        # ### Edit Openstack INIT #####
+        openstack_init_yaml = "cluster/*/openstack/init.yml"
+        LOG.info('Add parameters to {}'.format(openstack_init_yaml))
+        reclass_actions.add_key('parameters._param.gnocchi_version',
+                                4.2,
+                                openstack_init_yaml)
+        reclass_actions.add_key('parameters._param.gnocchi_old_version',
+                                4.0,
+                                openstack_init_yaml)
+
+        # ### Edit Openstack control #####
         reclass_actions.add_class(
             'system.keystone.client.v3',
             'cluster/*/openstack/control_init.yml'
@@ -120,14 +151,38 @@
             node_name=cfg_node, verbose=verbose,
             cmd="cd /srv/salt/reclass; git add -u && "
                 "git commit --allow-empty -m 'Cluster model update'")
+
+        # ### Apply state to enable changes in reclass
         LOG.info('Perform refresh_pillar')
         salt_actions.run_state("*", "saltutil.refresh_pillar")
+
         self.execute_pre_post_steps(underlay_actions, cfg_node,
                                     verbose, 'pre')
         LOG.info('Perform refresh_pillar')
         salt_actions.run_state("*", "saltutil.refresh_pillar")
         # ########## Upgrade control VMs #########
         show_step(2)
+        LOG.info("Enable upgrade jobs in cluster Jenkins")
+        cicd_leader = "cluster/*/cicd/control/leader.yml"
+        reclass_actions.add_class(
+            "system.jenkins.client.job.deploy.update.upgrade",
+            cicd_leader
+        )
+        reclass_actions.add_class(
+            "system.jenkins.client.job.deploy.update.upgrade_ovs_gateway",
+            cicd_leader
+        )
+        reclass_actions.add_class(
+            "system.jenkins.client.job.deploy.update.upgrade_compute",
+            cicd_leader
+        )
+        salt_actions.enforce_state("I@jenkins:client",
+                                   "jenkins.client")
+        # #### Add QUEENS's repos
+        salt_actions.enforce_state("*", "linux.system.repo")
+        salt_actions.enforce_state("*", "salt.minion")
+
+        # ########## Upgrade control nodes  ###########
         LOG.info('Upgrade control VMs')
         job_name = 'deploy-upgrade-control'
         job_parameters = {
@@ -135,18 +190,43 @@
             'OS_DIST_UPGRADE': False,
             'OS_UPGRADE': False
         }
+        # ####### Run job for ctl* ###
+        job_parameters["TARGET_SERVERS"] = "ctl*"
         update_control_vms = dt.start_job_on_cid_jenkins(
             job_name=job_name,
             job_parameters=job_parameters)
         assert update_control_vms == 'SUCCESS'
-        # ########## Upgrade gatewey nodes  ###########
+
+        # ####### Run job for mdb* ###
+        job_parameters["TARGET_SERVERS"] = "mdb*"
+        update_control_vms = dt.start_job_on_cid_jenkins(
+            job_name=job_name,
+            job_parameters=job_parameters)
+        assert update_control_vms == 'SUCCESS'
+
+        # ####### Run job for kmn* ###
+        job_parameters["TARGET_SERVERS"] = "kmn*"
+        update_control_vms = dt.start_job_on_cid_jenkins(
+            job_name=job_name,
+            job_parameters=job_parameters)
+        assert update_control_vms == 'SUCCESS'
+
+        # ####### Run job for prx* ###
+        job_parameters["TARGET_SERVERS"] = "prx*"
+        update_control_vms = dt.start_job_on_cid_jenkins(
+            job_name=job_name,
+            job_parameters=job_parameters)
+        assert update_control_vms == 'SUCCESS'
+
+        # ########## Upgrade gateway nodes  ###########
         show_step(3)
         LOG.info('Upgrade gateway')
         job_name = 'deploy-upgrade-ovs-gateway'
         job_parameters = {
             'INTERACTIVE': False,
             'OS_DIST_UPGRADE': False,
-            'OS_UPGRADE': False
+            'OS_UPGRADE': False,
+            'TARGET_SERVERS': "gtw*"
         }
         update_gateway = dt.start_job_on_cid_jenkins(
             job_name=job_name,
@@ -159,12 +239,14 @@
         job_parameters = {
             'INTERACTIVE': False,
             'OS_DIST_UPGRADE': False,
-            'OS_UPGRADE': False
+            'OS_UPGRADE': False,
+            'TARGET_SERVERS': "cmp*"
         }
         update_computes = dt.start_job_on_cid_jenkins(
             job_name=job_name,
             job_parameters=job_parameters)
         assert update_computes == 'SUCCESS'
+
         # ############ Perform the post-upgrade activities ##########
         show_step(5)
         LOG.info('Add parameters._param.openstack_upgrade_enabled false'
