Skip to content

Commit 389e385

Browse files
committed
feat: secure prometheus auth transport for OpenShift telemetry
1 parent 0944569 commit 389e385

1 file changed

Lines changed: 19 additions & 12 deletions

File tree

test/utils/e2eutils.go

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)