diff --git a/test_set/cvp-sanity/tests/test_drivetrain.py b/test_set/cvp-sanity/tests/test_drivetrain.py
index 640d6a7..94f45ff 100644
--- a/test_set/cvp-sanity/tests/test_drivetrain.py
+++ b/test_set/cvp-sanity/tests/test_drivetrain.py
@@ -54,7 +54,7 @@
     return password
 
 
-def test_drivetrain_gerrit(local_salt_client):
+def test_drivetrain_gerrit(local_salt_client, check_cicd):
     gerrit_password = get_password(local_salt_client,'gerrit:client')
     gerrit_error = ''
     current_date = time.strftime("%Y%m%d-%H.%M.%S", time.localtime())
@@ -103,7 +103,7 @@
         #Get change id from Gerrit. Set Code-Review +2 and submit this change
         changes = server.get("/changes/?q=project:{0}".format(test_proj_name))
         last_change = changes[0].get('change_id')
-        server.post("/changes/{0}/revisions/1/review".format(last_change),json={"message":"All is good","labels":{"Code-Review":"+2"}})
+        server.post("/changes/{0}/revisions/1/review".format(last_change),json={"message": "All is good","labels":{"Code-Review":"+2"}})
         server.post("/changes/{0}/submit".format(last_change))
     except HTTPError, e:
         gerrit_error = e
@@ -114,7 +114,7 @@
         'Something is wrong with Gerrit'.format(gerrit_error)
 
 
-def test_drivetrain_openldap(local_salt_client):
+def test_drivetrain_openldap(local_salt_client, check_cicd):
     """
          1. Create a test user 'DT_test_user' in openldap
          2. Add the user to admin group
@@ -249,7 +249,7 @@
     assert len(wrong_items) == 0
 
 
-def test_drivetrain_components_and_versions(local_salt_client):
+def test_drivetrain_components_and_versions(local_salt_client, check_cicd):
     """
         1. Execute command `docker service ls --format "{{.Image}}"'` on  the 'I@gerrit:client' target
         2. Execute  ` salt -C 'I@gerrit:client' pillar.get docker:client:images`
@@ -348,7 +348,7 @@
               {}'''.format(json.dumps(version_mismatch, indent=4))
 
 
-def test_drivetrain_jenkins_job(local_salt_client):
+def test_drivetrain_jenkins_job(local_salt_client, check_cicd):
     """
         # Login to Jenkins on jenkins:client
         # Read the name of jobs from configuration 'jenkins_test_job'
diff --git a/test_set/cvp-sanity/tests/test_k8s.py b/test_set/cvp-sanity/tests/test_k8s.py
index 2212025..5b905c9 100644
--- a/test_set/cvp-sanity/tests/test_k8s.py
+++ b/test_set/cvp-sanity/tests/test_k8s.py
@@ -143,6 +143,13 @@
 
 
 def test_k8s_dashboard_available(local_salt_client):
+    """
+        # Check is kubernetes enabled on the cluster with command  `salt -C 'etcd:server' cmd.run 'kubectl get svc -n kube-system'`
+        # If yes then check Dashboard addon with next command: `salt -C 'etcd:server' pillar.get kubernetes:common:addons:dashboard:enabled`
+        # If dashboard enabled get its IP from pillar `salt -C 'etcd:server' pillar.get kubernetes:common:addons:dashboard:public_ip`
+        # Check that public_ip exists
+        # Check that public_ip:8443 is accessible with curl
+    """
     result = local_salt_client.cmd(
         'etcd:server', 'cmd.run',
         ['kubectl get svc -n kube-system'],
@@ -166,6 +173,7 @@
         expr_form='pillar'
     ).values()[0]
 
+    assert external_ip.__len__() > 0, "Kubernetes dashboard is enabled but not defined in pillars"
     # dashboard port 8443 is hardcoded in kubernetes formula
     url = "https://{}:8443".format(external_ip)
     check = local_salt_client.cmd(
diff --git a/test_set/cvp-sanity/tests/test_ui_addresses.py b/test_set/cvp-sanity/tests/test_ui_addresses.py
index a2f0f2d..53bb03b 100644
--- a/test_set/cvp-sanity/tests/test_ui_addresses.py
+++ b/test_set/cvp-sanity/tests/test_ui_addresses.py
@@ -204,7 +204,7 @@
 
 
 @pytest.mark.usefixtures('check_drivetrain')
-def test_public_ui_jenkins(local_salt_client, ctl_nodes_pillar):
+def test_public_ui_jenkins(local_salt_client, ctl_nodes_pillar, check_cicd):
     IP = utils.get_monitoring_ip('cluster_public_host')
     protocol = 'https'
     port = '8081'
@@ -220,7 +220,7 @@
 
 
 @pytest.mark.usefixtures('check_drivetrain')
-def test_public_ui_gerrit(local_salt_client, ctl_nodes_pillar):
+def test_public_ui_gerrit(local_salt_client, ctl_nodes_pillar, check_cicd):
     IP = utils.get_monitoring_ip('cluster_public_host')
     protocol = 'https'
     port = '8070'
