diff --git a/test_set/cvp-sanity/tests/test_packet_checker.py b/test_set/cvp-sanity/tests/test_packet_checker.py
index abdd04b..34cb5d8 100644
--- a/test_set/cvp-sanity/tests/test_packet_checker.py
+++ b/test_set/cvp-sanity/tests/test_packet_checker.py
@@ -13,6 +13,22 @@
     # Let's exclude cid01 and dbs01 nodes from this check
     exclude_nodes = local_salt_client.test_ping(tgt="I@galera:master or I@gerrit:client",
                                                 expr_form='compound').keys()
+
+    # PROD-30833
+    gtw01 = local_salt_client.pillar_get(
+        param='_param:openstack_gateway_node01_hostname') or 'gtw01'
+    cluster_domain = local_salt_client.pillar_get(
+        param='_param:cluster_domain') or '.local'
+    gtw01 += '.' + cluster_domain
+    if gtw01 in nodes_in_group:
+        os_octavia = local_salt_client.pillar_get(
+            param='_param:openstack_octavia_enabled')
+        octavia_man_cl = local_salt_client.pillar_get(
+            param='_param:octavia_manager_cluster')
+        if os_octavia and not octavia_man_cl:
+            exclude_nodes.append(gtw01)
+            logging.info("gtw01 node is skipped in test_check_package_versions")
+
     total_nodes = [i for i in packages_versions.keys() if i not in exclude_nodes]
     if len(total_nodes) < 2:
         pytest.skip("Nothing to compare - only 1 node")
@@ -85,6 +101,22 @@
 
     exclude_nodes = local_salt_client.test_ping(tgt="I@galera:master or I@gerrit:client",
                                                 expr_form='compound').keys()
+
+    # PROD-30833
+    gtw01 = local_salt_client.pillar_get(
+        param='_param:openstack_gateway_node01_hostname') or 'gtw01'
+    cluster_domain = local_salt_client.pillar_get(
+        param='_param:cluster_domain') or '.local'
+    gtw01 += '.' + cluster_domain
+    if gtw01 in nodes_in_group:
+        os_octavia = local_salt_client.pillar_get(
+            param='_param:openstack_octavia_enabled')
+        octavia_man_cl = local_salt_client.pillar_get(
+            param='_param:octavia_manager_cluster')
+        if os_octavia and not octavia_man_cl:
+            exclude_nodes.append(gtw01)
+            logging.info("gtw01 node is skipped in test_check_module_versions")
+
     total_nodes = [i for i in pre_check.keys() if i not in exclude_nodes]
 
     if len(total_nodes) < 2:
@@ -119,4 +151,4 @@
             pkts_data.append(row)
     assert len(pkts_data) <= 1, \
         "Several problems found: {0}".format(
-        json.dumps(pkts_data, indent=4))
\ No newline at end of file
+        json.dumps(pkts_data, indent=4))
diff --git a/test_set/cvp-sanity/tests/test_services.py b/test_set/cvp-sanity/tests/test_services.py
index fac31e5..ee621cc 100644
--- a/test_set/cvp-sanity/tests/test_services.py
+++ b/test_set/cvp-sanity/tests/test_services.py
@@ -24,6 +24,21 @@
     if len(services_by_nodes.keys()) < 2:
         pytest.skip("Nothing to compare - only 1 node")
 
+    # PROD-30833
+    gtw01 = local_salt_client.pillar_get(
+        param='_param:openstack_gateway_node01_hostname') or 'gtw01'
+    cluster_domain = local_salt_client.pillar_get(
+        param='_param:cluster_domain') or '.local'
+    gtw01 += '.' + cluster_domain
+    if gtw01 in nodes_in_group:
+        os_octavia = local_salt_client.pillar_get(
+            param='_param:openstack_octavia_enabled')
+        octavia_man_cl = local_salt_client.pillar_get(
+            param='_param:octavia_manager_cluster')
+        if os_octavia and not octavia_man_cl and gtw01 in services_by_nodes.keys():
+            services_by_nodes.pop(gtw01)
+            logging.info("gtw01 node is skipped in test_check_services")
+
     nodes = []
     pkts_data = []
     all_services = set()
