Skip to content

Commit 1aa2c99

Browse files
authored
Merge pull request kubernetes#90254 from smarterclayton/flaky_test
test: IngressClass exclusion test races with admission cache
2 parents 32540b0 + 77973b5 commit 1aa2c99

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

test/e2e/network/ingressclass.go

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,12 @@ package network
1919
import (
2020
"context"
2121
"strings"
22+
"time"
2223

2324
networkingv1beta1 "k8s.io/api/networking/v1beta1"
2425
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2526
"k8s.io/apimachinery/pkg/util/intstr"
27+
"k8s.io/apimachinery/pkg/util/wait"
2628
clientset "k8s.io/client-go/kubernetes"
2729
"k8s.io/kubernetes/test/e2e/framework"
2830

@@ -73,14 +75,19 @@ var _ = SIGDescribe("IngressClass [Feature:Ingress]", func() {
7375
framework.ExpectNoError(err)
7476
defer deleteIngressClass(cs, ingressClass2.Name)
7577

76-
_, err = createBasicIngress(cs, f.Namespace.Name)
77-
if err == nil {
78-
framework.Failf("Expected error creating Ingress")
79-
}
80-
78+
// the admission controller may take a few seconds to observe both ingress classes
8179
expectedErr := "2 default IngressClasses were found, only 1 allowed"
82-
if !strings.Contains(err.Error(), expectedErr) {
83-
framework.Failf("Expected error to contain %s, got %s", expectedErr, err.Error())
80+
var lastErr error
81+
if err := wait.Poll(time.Second, time.Minute, func() (bool, error) {
82+
defer cs.NetworkingV1beta1().Ingresses(f.Namespace.Name).Delete(context.TODO(), "ingress1", metav1.DeleteOptions{})
83+
_, err := createBasicIngress(cs, f.Namespace.Name)
84+
if err == nil {
85+
return false, nil
86+
}
87+
lastErr = err
88+
return strings.Contains(err.Error(), expectedErr), nil
89+
}); err != nil {
90+
framework.Failf("Expected error to contain %s, got %s", expectedErr, lastErr.Error())
8491
}
8592
})
8693

0 commit comments

Comments
 (0)