diff --git a/cmd/kubeadm/app/discovery/https/BUILD b/cmd/kubeadm/app/discovery/https/BUILD index b06e34cc060..b155bef81ee 100644 --- a/cmd/kubeadm/app/discovery/https/BUILD +++ b/cmd/kubeadm/app/discovery/https/BUILD @@ -11,6 +11,7 @@ go_library( importpath = "k8s.io/kubernetes/cmd/kubeadm/app/discovery/https", deps = [ "//cmd/kubeadm/app/discovery/file:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", "//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library", ], diff --git a/cmd/kubeadm/app/discovery/https/https.go b/cmd/kubeadm/app/discovery/https/https.go index 4ad2fbdcd5b..ec647c53974 100644 --- a/cmd/kubeadm/app/discovery/https/https.go +++ b/cmd/kubeadm/app/discovery/https/https.go @@ -20,6 +20,7 @@ import ( "io/ioutil" "net/http" + netutil "k8s.io/apimachinery/pkg/util/net" "k8s.io/client-go/tools/clientcmd" clientcmdapi "k8s.io/client-go/tools/clientcmd/api" "k8s.io/kubernetes/cmd/kubeadm/app/discovery/file" @@ -29,7 +30,8 @@ import ( // securely to the API Server using the provided CA cert and // optionally refreshes the cluster-info information from the cluster-info ConfigMap func RetrieveValidatedClusterInfo(httpsURL string) (*clientcmdapi.Cluster, error) { - response, err := http.Get(httpsURL) + client := &http.Client{Transport: netutil.SetOldTransportDefaults(&http.Transport{})} + response, err := client.Get(httpsURL) if err != nil { return nil, err } diff --git a/cmd/kubeadm/app/preflight/checks.go b/cmd/kubeadm/app/preflight/checks.go index 48462b80679..42f71eebf31 100644 --- a/cmd/kubeadm/app/preflight/checks.go +++ b/cmd/kubeadm/app/preflight/checks.go @@ -422,7 +422,7 @@ func (hst HTTPProxyCheck) Check() (warnings, errors []error) { return nil, []error{err} } - proxy, err := http.DefaultTransport.(*http.Transport).Proxy(req) + proxy, err := netutil.SetOldTransportDefaults(&http.Transport{}).Proxy(req) if err != nil { return nil, []error{err} } @@ -798,15 +798,15 @@ func (evc ExternalEtcdVersionCheck) configCertAndKey(config *tls.Config) (*tls.C func (evc ExternalEtcdVersionCheck) getHTTPClient(config *tls.Config) *http.Client { if config != nil { - transport := &http.Transport{ + transport := netutil.SetOldTransportDefaults(&http.Transport{ TLSClientConfig: config, - } + }) return &http.Client{ Transport: transport, Timeout: externalEtcdRequestTimeout, } } - return &http.Client{Timeout: externalEtcdRequestTimeout} + return &http.Client{Timeout: externalEtcdRequestTimeout, Transport: netutil.SetOldTransportDefaults(&http.Transport{})} } func getEtcdVersionResponse(client *http.Client, url string, target interface{}) error { diff --git a/cmd/kubeadm/app/util/BUILD b/cmd/kubeadm/app/util/BUILD index 5c3a8173b60..d67803c3d0f 100644 --- a/cmd/kubeadm/app/util/BUILD +++ b/cmd/kubeadm/app/util/BUILD @@ -27,6 +27,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", ], ) diff --git a/cmd/kubeadm/app/util/apiclient/BUILD b/cmd/kubeadm/app/util/apiclient/BUILD index 598c1eec29f..2ee1d0ea762 100644 --- a/cmd/kubeadm/app/util/apiclient/BUILD +++ b/cmd/kubeadm/app/util/apiclient/BUILD @@ -28,6 +28,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/client-go/dynamic:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", diff --git a/cmd/kubeadm/app/util/apiclient/wait.go b/cmd/kubeadm/app/util/apiclient/wait.go index 2ab645d9a64..5bb9e3f7425 100644 --- a/cmd/kubeadm/app/util/apiclient/wait.go +++ b/cmd/kubeadm/app/util/apiclient/wait.go @@ -27,6 +27,7 @@ import ( "k8s.io/api/core/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + netutil "k8s.io/apimachinery/pkg/util/net" "k8s.io/apimachinery/pkg/util/wait" clientset "k8s.io/client-go/kubernetes" "k8s.io/kubernetes/cmd/kubeadm/app/constants" @@ -132,7 +133,8 @@ func (w *KubeWaiter) WaitForPodToDisappear(podName string) error { func (w *KubeWaiter) WaitForHealthyKubelet(initalTimeout time.Duration, healthzEndpoint string) error { time.Sleep(initalTimeout) return TryRunCommand(func() error { - resp, err := http.Get(healthzEndpoint) + client := &http.Client{Transport: netutil.SetOldTransportDefaults(&http.Transport{})} + resp, err := client.Get(healthzEndpoint) if err != nil { fmt.Printf("[kubelet-check] It seems like the kubelet isn't running or healthy.\n") fmt.Printf("[kubelet-check] The HTTP call equal to 'curl -sSL %s' failed with error: %v.\n", healthzEndpoint, err) diff --git a/cmd/kubeadm/app/util/version.go b/cmd/kubeadm/app/util/version.go index 90256b36c90..b64857b61c1 100644 --- a/cmd/kubeadm/app/util/version.go +++ b/cmd/kubeadm/app/util/version.go @@ -22,6 +22,8 @@ import ( "net/http" "regexp" "strings" + + netutil "k8s.io/apimachinery/pkg/util/net" ) var ( @@ -131,7 +133,8 @@ func splitVersion(version string) (string, string, error) { // Internal helper: return content of URL func fetchFromURL(url string) (string, error) { - resp, err := http.Get(url) + client := &http.Client{Transport: netutil.SetOldTransportDefaults(&http.Transport{})} + resp, err := client.Get(url) if err != nil { return "", fmt.Errorf("unable to get URL %q: %s", url, err.Error()) }