diff --git a/cmd/default-domain/main.go b/cmd/default-domain/main.go index 22d73112fabd..1a8578930a0a 100644 --- a/cmd/default-domain/main.go +++ b/cmd/default-domain/main.go @@ -142,13 +142,20 @@ func findGatewayAddress(kubeclient *kubernetes.Clientset, client *versioned.Clie } name, namespace := parts[0], parts[1] - svc, err := kubeclient.CoreV1().Services(namespace).Get(name, metav1.GetOptions{}) - if err != nil { + // Wait for the Ingress Service to have an external IP. + var svc *corev1.Service + if err := wait.PollImmediate(pollInterval, waitTimeout, func() (done bool, err error) { + svc, err = kubeclient.CoreV1().Services(namespace).Get(name, metav1.GetOptions{}) + if err != nil { + return true, err + } + if len(svc.Status.LoadBalancer.Ingress) == 0 { + return false, nil + } + return true, nil + }); err != nil { return nil, err } - if len(svc.Status.LoadBalancer.Ingress) == 0 { - return nil, errors.New("Public load balancer does not have an ingress IP.") - } return &svc.Status.LoadBalancer.Ingress[0], nil }