@@ -12,6 +12,7 @@ import (
12
12
v1 "k8s.io/api/core/v1"
13
13
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
14
14
"k8s.io/apimachinery/pkg/types"
15
+ "k8s.io/apimachinery/pkg/util/wait"
15
16
"k8s.io/client-go/tools/record"
16
17
"sigs.k8s.io/controller-runtime/pkg/client"
17
18
gatewayv1 "sigs.k8s.io/gateway-api/apis/v1"
@@ -472,8 +473,20 @@ func getGatewayAddresses(
472
473
if svc == nil {
473
474
svcName := controller .CreateNginxResourceName (gateway .Source .GetName (), gatewayClassName )
474
475
key := types.NamespacedName {Name : svcName , Namespace : gateway .Source .GetNamespace ()}
475
- if err := k8sClient .Get (ctx , key , & gwSvc ); err != nil {
476
- return nil , fmt .Errorf ("error finding Service for Gateway: %w" , err )
476
+
477
+ if err := wait .PollUntilContextCancel (
478
+ ctx ,
479
+ 500 * time .Millisecond ,
480
+ true , /* poll immediately */
481
+ func (ctx context.Context ) (bool , error ) {
482
+ if err := k8sClient .Get (ctx , key , & gwSvc ); err != nil {
483
+ return false , nil //nolint:nilerr // need to retry without returning error
484
+ }
485
+
486
+ return true , nil
487
+ },
488
+ ); err != nil {
489
+ return nil , fmt .Errorf ("error finding Service %s for Gateway: %w" , svcName , err )
477
490
}
478
491
} else {
479
492
gwSvc = * svc
0 commit comments