diff --git a/tests/suite/test_virtual_server_grpc.py b/tests/suite/test_virtual_server_grpc.py
index e231d765b7..667d24cc55 100644
--- a/tests/suite/test_virtual_server_grpc.py
+++ b/tests/suite/test_virtual_server_grpc.py
@@ -113,6 +113,7 @@ def test_validation_flow(self, kube_apis, ingress_controller_prerequisites,
         self.patch_valid_vs(kube_apis, virtual_server_setup)
         wait_before_test()
 
+    @pytest.mark.flaky(max_runs=3)
     @pytest.mark.parametrize("backend_setup", [{"app_type": "grpc-vs"}], indirect=True)
     def test_connect_grpc_backend(self, kube_apis, ingress_controller_prerequisites, crd_ingress_controller, 
                                   backend_setup, virtual_server_setup) -> None:
diff --git a/tests/suite/test_virtual_server_mixed_grpc.py b/tests/suite/test_virtual_server_mixed_grpc.py
index 2f5db542a6..68fddd128a 100644
--- a/tests/suite/test_virtual_server_mixed_grpc.py
+++ b/tests/suite/test_virtual_server_mixed_grpc.py
@@ -60,6 +60,7 @@ def fin():
 
 @pytest.mark.vs
 @pytest.mark.smoke
+@pytest.mark.flaky(max_runs=3)
 @pytest.mark.parametrize('crd_ingress_controller, virtual_server_setup',
                          [({"type": "complete", "extra_args": [f"-enable-custom-resources"]},
                            {"example": "virtual-server-grpc-mixed"})],
diff --git a/tests/suite/test_virtual_server_upstream_tls.py b/tests/suite/test_virtual_server_upstream_tls.py
index bb05adaab8..140d049a57 100644
--- a/tests/suite/test_virtual_server_upstream_tls.py
+++ b/tests/suite/test_virtual_server_upstream_tls.py
@@ -9,6 +9,7 @@
 from suite.resources_utils import get_first_pod_name, wait_before_test, get_events
 
 
+@pytest.mark.flaky(max_runs=3)
 @pytest.mark.vs
 @pytest.mark.parametrize('crd_ingress_controller, virtual_server_setup',
                          [({"type": "complete", "extra_args": [f"-enable-custom-resources"]},