From e3b94c7e7a5720c5e2985012f617f36006abff62 Mon Sep 17 00:00:00 2001 From: Jason Hall Date: Tue, 20 Sep 2022 10:29:57 -0400 Subject: [PATCH] allow remote.DefaultTransport to be overridden by an http.RoundTripper (#1449) * allow remote.DefaultTransport to be overridden by an http.RoundTripper * lint finding --- cmd/crane/cmd/root.go | 12 ++++++++---- pkg/v1/remote/options.go | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/cmd/crane/cmd/root.go b/cmd/crane/cmd/root.go index 7950ae7b6..046bafce9 100644 --- a/cmd/crane/cmd/root.go +++ b/cmd/crane/cmd/root.go @@ -70,12 +70,16 @@ func New(use, short string, options []crane.Option) *cobra.Command { options = append(options, crane.WithPlatform(platform.platform)) - transport := remote.DefaultTransport.Clone() - transport.TLSClientConfig = &tls.Config{ - InsecureSkipVerify: insecure, //nolint: gosec + rt := remote.DefaultTransport + if t, ok := remote.DefaultTransport.(interface { + Clone() *http.Transport + }); ok { + t := t.Clone() + t.TLSClientConfig = &tls.Config{ + InsecureSkipVerify: insecure, //nolint: gosec + } } - var rt http.RoundTripper = transport // Add any http headers if they are set in the config file. cf, err := config.Load(os.Getenv("DOCKER_CONFIG")) if err != nil { diff --git a/pkg/v1/remote/options.go b/pkg/v1/remote/options.go index c2b6b7e1e..70882435f 100644 --- a/pkg/v1/remote/options.go +++ b/pkg/v1/remote/options.go @@ -84,7 +84,7 @@ const ( // DefaultTransport is based on http.DefaultTransport with modifications // documented inline below. -var DefaultTransport = &http.Transport{ +var DefaultTransport http.RoundTripper = &http.Transport{ Proxy: http.ProxyFromEnvironment, DialContext: (&net.Dialer{ // By default we wrap the transport in retries, so reduce the