diff --git a/cmd/clusterctl/clusterdeployer/clusterclient/clusterclient.go b/cmd/clusterctl/clusterdeployer/clusterclient/clusterclient.go index 3df93bc51dbe..f6b2009c108e 100644 --- a/cmd/clusterctl/clusterdeployer/clusterclient/clusterclient.go +++ b/cmd/clusterctl/clusterdeployer/clusterclient/clusterclient.go @@ -234,6 +234,15 @@ func NewFromDefaultSearchPath(kubeconfigFile string, overrides tcmd.ConfigOverri if err := util.PollImmediate(retryAcquireClient, timeoutAcquireClient, func() (_ bool, err error) { c, err = clientcmd.NewControllerRuntimeClient(kubeconfigFile, overrides) if err != nil { + if strings.Contains(err.Error(), io.EOF.Error()) || strings.Contains(err.Error(), "refused") || strings.Contains(err.Error(), "no such host") { + // Connection was refused, probably because the API server is not ready yet. + klog.V(2).Infof("Waiting to acquire client... server not yet available: %v", err) + return false, nil + } + if strings.Contains(err.Error(), "unable to recognize") { + klog.V(2).Infof("Waiting to acquire client... api not yet available: %v", err) + return false, nil + } klog.V(2).Infof("Waiting to acquire client...") return false, err }