diff --git a/tcp_tests/templates/virtual-mcp11-k8s-calico/sl.yaml b/tcp_tests/templates/virtual-mcp11-k8s-calico/sl.yaml
index 3369f63..4338149 100644
--- a/tcp_tests/templates/virtual-mcp11-k8s-calico/sl.yaml
+++ b/tcp_tests/templates/virtual-mcp11-k8s-calico/sl.yaml
@@ -1,4 +1,5 @@
 {% from 'virtual-mcp11-k8s-calico/underlay.yaml' import HOSTNAME_CFG01 with context %}
+{% import 'shared-sl-tests.yaml' as SHARED_SL_TESTS with context %}
 
 # Install docker swarm
 - description: Configure docker service
@@ -169,3 +170,5 @@
   retry: {count: 1, delay: 10}
   skip_fail: false
 
+{{  SHARED_SL_TESTS.MACRO_CLONE_SL_TESTS() }}
+{{  SHARED_SL_TESTS.MACRO_CONFIGURE_TESTS() }}
diff --git a/tcp_tests/templates/virtual-mcp11-k8s-contrail/sl.yaml b/tcp_tests/templates/virtual-mcp11-k8s-contrail/sl.yaml
index cddc3a6..9c4a4db 100644
--- a/tcp_tests/templates/virtual-mcp11-k8s-contrail/sl.yaml
+++ b/tcp_tests/templates/virtual-mcp11-k8s-contrail/sl.yaml
@@ -1,4 +1,5 @@
 {% from 'virtual-mcp11-k8s-contrail/underlay.yaml' import HOSTNAME_CFG01 with context %}
+{% import 'shared-sl-tests.yaml' as SHARED_SL_TESTS with context %}
 
 # Install docker swarm
 - description: sync time
@@ -178,3 +179,6 @@
   node_name: {{ HOSTNAME_CFG01 }}
   retry: {count: 1, delay: 10}
   skip_fail: false
+
+{{  SHARED_SL_TESTS.MACRO_CLONE_SL_TESTS() }}
+{{  SHARED_SL_TESTS.MACRO_CONFIGURE_TESTS() }}
diff --git a/tcp_tests/tests/system/test_install_k8s.py b/tcp_tests/tests/system/test_install_k8s.py
index fff3100..6c926d8 100644
--- a/tcp_tests/tests/system/test_install_k8s.py
+++ b/tcp_tests/tests/system/test_install_k8s.py
@@ -25,9 +25,11 @@
     """Test class for testing Kubernetes deploy"""
 
     @pytest.mark.fail_snapshot
-    def test_k8s_install(self, config, show_step,
-                         k8s_deployed, k8s_actions, sl_deployed, sl_actions):
-        """Test for deploying MCP environment with k8s+stacklight and check it
+    @pytest.mark.cz8116
+    def test_k8s_install_calico(self, config, show_step,
+                                k8s_deployed, k8s_actions,
+                                sl_deployed, sl_actions):
+        """Test for deploying MCP with k8s+stacklight_calico and check it
 
         Scenario:
             1. Prepare salt on hosts
@@ -39,6 +41,8 @@
             7. Check netchecker agent is running
             8. Check connectivity
             9. Get metrics from netchecker
+            10. Run LMA component tests
+            11. Optionally run k8s e2e tests
 
         """
         # STEP #5
@@ -104,8 +108,81 @@
             LOG.debug('Metric {} exists'.format(res))
             # todo (tleontovich) add asserts here and extend the tests
             # with acceptance criteria
+        show_step(10)
+        # Run SL component tests
+        sl_deployed.run_sl_functional_tests(
+            'cfg01',
+            '/root/stacklight-pytest/stacklight_tests/',
+            'tests/prometheus',
+            'test_alerts.py')
+
+        # Download report
+        sl_deployed.download_sl_test_report(
+            'cfg01',
+            '/root/stacklight-pytest/stacklight_tests/report.xml')
 
         if config.k8s.k8s_conformance_run:
+            show_step(11)
+            k8s_actions.run_conformance()
+        LOG.info("*************** DONE **************")
+
+    @pytest.mark.fail_snapshot
+    @pytest.mark.cz8115
+    def test_k8s_install_contrail(self, config, show_step,
+                                  k8s_deployed, k8s_actions,
+                                  sl_deployed, sl_actions):
+        """Test for deploying MCP with k8s+stacklight+contrail and check it
+
+        Scenario:
+            1. Prepare salt on hosts
+            2. Setup controller nodes
+            3. Setup compute nodes
+            4. Setup stack light nodes
+            5. Setup Kubernetes cluster and check it nodes
+            6. Run LMA2.0 component tests
+            7. Optionally run k8s e2e conformance
+
+        """
+        # STEP #5
+        show_step(5)
+        k8sclient = k8s_deployed.api
+        assert k8sclient.nodes.list() is not None, "Can not get nodes list"
+
+        prometheus_client = sl_deployed.api
+        try:
+            current_targets = prometheus_client.get_targets()
+            LOG.debug('Current targets after install {0}'
+                      .format(current_targets))
+        except:
+            LOG.warning('Restarting keepalived service on mon nodes...')
+            sl_actions._salt.local(tgt='mon*', fun='cmd.run',
+                                   args='systemctl restart keepalived')
+            LOG.warning(
+                'Ip states after forset restart {0}'.format(
+                    sl_actions._salt.local(tgt='mon*',
+                                           fun='cmd.run', args='ip a')))
+            current_targets = prometheus_client.get_targets()
+            LOG.debug('Current targets after install {0}'
+                      .format(current_targets))
+        mon_nodes = sl_deployed.get_monitoring_nodes()
+        LOG.debug('Mon nodes list {0}'.format(mon_nodes))
+
+        sl_deployed.check_prometheus_targets(mon_nodes)
+        show_step(6)
+        # Run SL component tests
+        sl_deployed.run_sl_functional_tests(
+            'cfg01',
+            '/root/stacklight-pytest/stacklight_tests/',
+            'tests/prometheus',
+            'test_alerts.py')
+
+        # Download report
+        sl_deployed.download_sl_test_report(
+            'cfg01',
+            '/root/stacklight-pytest/stacklight_tests/report.xml')
+
+        if config.k8s.k8s_conformance_run:
+            show_step(7)
             k8s_actions.run_conformance()
         LOG.info("*************** DONE **************")
 
