@@ -19,10 +19,12 @@ package network
19
19
import (
20
20
"context"
21
21
"strings"
22
+ "time"
22
23
23
24
networkingv1beta1 "k8s.io/api/networking/v1beta1"
24
25
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
25
26
"k8s.io/apimachinery/pkg/util/intstr"
27
+ "k8s.io/apimachinery/pkg/util/wait"
26
28
clientset "k8s.io/client-go/kubernetes"
27
29
"k8s.io/kubernetes/test/e2e/framework"
28
30
@@ -73,14 +75,19 @@ var _ = SIGDescribe("IngressClass [Feature:Ingress]", func() {
73
75
framework .ExpectNoError (err )
74
76
defer deleteIngressClass (cs , ingressClass2 .Name )
75
77
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
81
79
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 ())
84
91
}
85
92
})
86
93
0 commit comments