Skip to content

Commit cc6479d

Browse files
committed
Wait for egressfirewall rules to be applied successfully before sending traffic
1 parent e603cd9 commit cc6479d

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

test/extended/networking/egress_firewall.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import (
44
"context"
55
"fmt"
66
"net"
7+
"strings"
8+
"time"
79

810
configv1 "github.com/openshift/api/config/v1"
911
"github.com/openshift/origin/test/extended/kubevirt"
@@ -12,6 +14,7 @@ import (
1214

1315
kapiv1 "k8s.io/api/core/v1"
1416
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
17+
"k8s.io/apimachinery/pkg/util/wait"
1518
e2e "k8s.io/kubernetes/test/e2e/framework"
1619
frameworkpod "k8s.io/kubernetes/test/e2e/framework/pod"
1720
admissionapi "k8s.io/pod-security-admission/api"
@@ -114,6 +117,19 @@ func doEgressFwTest(f *e2e.Framework, mgmtFw *e2e.Framework, oc *exutil.CLI, man
114117
err := oc.AsAdmin().Run("create").Args("-f", egFwYaml).Execute()
115118
o.Expect(err).NotTo(o.HaveOccurred(), "created egress-firewall object")
116119

120+
g.By("waiting for egressfirewall rules to be applied successfully")
121+
// Fetch the name of the egressfirewall object. As there can be only
122+
// one egressfirewall object per namespace, we can use the first one.
123+
egfwName, err := oc.AsAdmin().Run("get").Args("egressfirewall", "-o", "jsonpath={.items[0].metadata.name}").Output()
124+
o.Expect(err).NotTo(o.HaveOccurred(), "failed to get egressfirewall object")
125+
126+
err = wait.PollUntilContextTimeout(context.TODO(), 100*time.Millisecond, 1*time.Second, true, func(ctx context.Context) (bool, error) {
127+
out, err := oc.AsAdmin().Run("get").Args("egressfirewall", egfwName, "-o", "jsonpath={.status.status}").Output()
128+
o.Expect(err).NotTo(o.HaveOccurred(), "failed to get egressfirewall object")
129+
return strings.Contains(out, "EgressFirewall Rules applied"), nil
130+
})
131+
o.Expect(err).NotTo(o.HaveOccurred(), "failed to wait for egressfirewall rules to be applied successfully")
132+
117133
o.Expect(sendEgressFwTraffic(f, mgmtFw, oc, egressFWTestPod, nodeSelectorSupport, checkWildcard)).To(o.Succeed())
118134

119135
g.By("deleting test pod")

0 commit comments

Comments
 (0)