diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 1ff07eed9f..f3873ce617 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -145,3 +145,9 @@ jobs:
         with:
           name: ocp-artifact
           path: ./ocp-artifacts
+
+      - name: remove virtual cluster
+        if: always()
+        run: |
+          kcli delete cluster $CLUSTER_NAME -y
+          kcli delete network $CLUSTER_NAME -y
diff --git a/hack/run-e2e-conformance-virtual-ocp.sh b/hack/run-e2e-conformance-virtual-ocp.sh
index a23410b040..4fa4ed4df2 100755
--- a/hack/run-e2e-conformance-virtual-ocp.sh
+++ b/hack/run-e2e-conformance-virtual-ocp.sh
@@ -41,7 +41,7 @@ kcli create network -c 192.168.123.0/24 ocp
 kcli create network -c 192.168.${virtual_router_id}.0/24 --nodhcp -i $cluster_name
 
 cat <<EOF > ./${cluster_name}-plan.yaml
-tag: 4.14.0-rc.1
+tag: 4.14.0-rc.6
 ctlplane_memory: 24576
 worker_memory: 8192
 pool: default
diff --git a/test/conformance/tests/test_sriov_operator.go b/test/conformance/tests/test_sriov_operator.go
index ac120e5251..41c1282377 100644
--- a/test/conformance/tests/test_sriov_operator.go
+++ b/test/conformance/tests/test_sriov_operator.go
@@ -2316,8 +2316,9 @@ func createVanillaNetworkPolicy(node string, sriovInfos *cluster.EnabledNodes, n
 			DeviceType: "netdevice",
 		},
 	}
-	err = clients.Create(context.Background(), config)
-	Expect(err).ToNot(HaveOccurred())
+	Eventually(func() error {
+		return clients.Create(context.Background(), config)
+	}, 1*time.Minute, 5*time.Second).ShouldNot(HaveOccurred())
 
 	Eventually(func() sriovv1.Interfaces {
 		nodeState, err := clients.SriovNetworkNodeStates(operatorNamespace).Get(context.Background(), node, metav1.GetOptions{})