Make tryRegistry non-blocking, remove tryLookup, add timeout
parent
3112a35600
commit
b23bddb242
|
|
@ -382,8 +382,8 @@ func validateNetwork(h *host.Host, r command.Runner) string {
|
|||
trySSH(h, ip)
|
||||
}
|
||||
|
||||
tryLookup(r)
|
||||
tryRegistry(r)
|
||||
// Non-blocking
|
||||
go tryRegistry(r, h.Driver.DriverName())
|
||||
return ip
|
||||
}
|
||||
|
||||
|
|
@ -424,21 +424,12 @@ func trySSH(h *host.Host, ip string) {
|
|||
}
|
||||
}
|
||||
|
||||
func tryLookup(r command.Runner) {
|
||||
// DNS check
|
||||
if rr, err := r.RunCmd(exec.Command("nslookup", "kubernetes.io", "-type=ns")); err != nil {
|
||||
glog.Infof("%s failed: %v which might be okay will retry nslookup without query type", rr.Args, err)
|
||||
// will try with without query type for ISOs with different busybox versions.
|
||||
if _, err = r.RunCmd(exec.Command("nslookup", "kubernetes.io")); err != nil {
|
||||
glog.Warningf("nslookup failed: %v", err)
|
||||
out.WarningT("Node may be unable to resolve external DNS records")
|
||||
}
|
||||
}
|
||||
}
|
||||
func tryRegistry(r command.Runner) {
|
||||
// Try an HTTPS connection to the image repository
|
||||
// tryRegistry tries to connect to the image repository
|
||||
func tryRegistry(r command.Runner, driverName string) {
|
||||
// 2 second timeout. For best results, call tryRegistry in a non-blocking manner.
|
||||
opts := []string{"-sS", "-m", "2"}
|
||||
|
||||
proxy := os.Getenv("HTTPS_PROXY")
|
||||
opts := []string{"-sS"}
|
||||
if proxy != "" && !strings.HasPrefix(proxy, "localhost") && !strings.HasPrefix(proxy, "127.0") {
|
||||
opts = append([]string{"-x", proxy}, opts...)
|
||||
}
|
||||
|
|
@ -451,7 +442,8 @@ func tryRegistry(r command.Runner) {
|
|||
opts = append(opts, fmt.Sprintf("https://%s/", repo))
|
||||
if rr, err := r.RunCmd(exec.Command("curl", opts...)); err != nil {
|
||||
glog.Warningf("%s failed: %v", rr.Args, err)
|
||||
out.WarningT("VM is unable to access {{.repository}}, you may need to configure a proxy or set --image-repository", out.V{"repository": repo})
|
||||
out.WarningT("This {{.type}} is having trouble accessing https://{{.repository}}", out.V{"repository": repo, "type": driver.MachineType(driverName)})
|
||||
out.T(out.Tip, "To pull new external images, you may need to configure a proxy: https://minikube.sigs.k8s.io/docs/reference/networking/proxy/")
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue