@@ -981,14 +981,14 @@ func (p *PrometheusClient) API() promv1.API {
981981 return p .client
982982}
983983
984- type authRoundTripper struct {
985- token string
986- rt http. RoundTripper
984+ type authTransport struct {
985+ transport http. RoundTripper
986+ token string
987987}
988988
989- func (a * authRoundTripper ) RoundTrip (req * http.Request ) (* http.Response , error ) {
990- req .Header .Set ("Authorization" , "Bearer " + a .token )
991- return a . rt .RoundTrip (req )
989+ func (t * authTransport ) RoundTrip (req * http.Request ) (* http.Response , error ) {
990+ req .Header .Set ("Authorization" , "Bearer " + t .token )
991+ return t . transport .RoundTrip (req )
992992}
993993
994994// creates a new Prometheus client for e2e tests
@@ -997,17 +997,24 @@ func NewPrometheusClient(baseURL string, insecureSkipVerify bool) (*PrometheusCl
997997 Address : baseURL ,
998998 }
999999
1000+ // We copy DefaultTransport safely to preserve generic settings
10001001 roundTripper := promAPI .DefaultRoundTripper
1001- if rt , ok := roundTripper .(* http.Transport ); ok {
1002- if insecureSkipVerify {
1003- rt .TLSClientConfig = & tls.Config {InsecureSkipVerify : true }
1002+ if insecureSkipVerify {
1003+ if ht , ok := roundTripper .(* http.Transport ); ok {
1004+ transportClone := ht .Clone ()
1005+ if transportClone .TLSClientConfig == nil {
1006+ transportClone .TLSClientConfig = & tls.Config {InsecureSkipVerify : true }
1007+ } else {
1008+ transportClone .TLSClientConfig .InsecureSkipVerify = true
1009+ }
1010+ roundTripper = transportClone
10041011 }
10051012 }
10061013
10071014 if token := os .Getenv ("PROMETHEUS_TOKEN" ); token != "" {
1008- roundTripper = & authRoundTripper {
1009- token : token ,
1010- rt : roundTripper ,
1015+ roundTripper = & authTransport {
1016+ transport : roundTripper ,
1017+ token : token ,
10111018 }
10121019 }
10131020 config .RoundTripper = roundTripper
0 commit comments