From 8a918324aa73f1c9522337d2c367034c320ef5de Mon Sep 17 00:00:00 2001 From: Alex <33497058+bexsoft@users.noreply.github.com> Date: Wed, 13 Sep 2023 12:02:13 -0600 Subject: [PATCH] Added CONSOLE_PROMETHEUS_AUTH_TOKEN flag support (#3043) Signed-off-by: Benjamin Perez --- restapi/admin_info.go | 13 +++++++++++++ restapi/config.go | 4 ++++ restapi/consts.go | 1 + 3 files changed, 18 insertions(+) diff --git a/restapi/admin_info.go b/restapi/admin_info.go index 3e579af0a..311ce1890 100644 --- a/restapi/admin_info.go +++ b/restapi/admin_info.go @@ -963,6 +963,12 @@ func unmarshalPrometheus(ctx context.Context, httpClnt *http.Client, endpoint st return true } + prometheusBearer := getPrometheusAuthToken() + + if prometheusBearer != "" { + req.Header.Add("Authorization", fmt.Sprintf("Bearer %s", prometheusBearer)) + } + resp, err := httpClnt.Do(req) if err != nil { ErrorWithContext(ctx, fmt.Errorf("Unable to fetch labels from prometheus: %w", err)) @@ -992,6 +998,13 @@ func testPrometheusURL(ctx context.Context, url string) bool { ErrorWithContext(ctx, fmt.Errorf("error Building Request: (%v)", err)) return false } + + prometheusBearer := getPrometheusAuthToken() + + if prometheusBearer != "" { + req.Header.Add("Authorization", fmt.Sprintf("Bearer %s", prometheusBearer)) + } + response, err := httpClnt.Do(req) if err != nil { ErrorWithContext(ctx, fmt.Errorf("default Prometheus URL not reachable, trying root testing: (%v)", err)) diff --git a/restapi/config.go b/restapi/config.go index 723d38e28..21674fc82 100644 --- a/restapi/config.go +++ b/restapi/config.go @@ -247,6 +247,10 @@ func getPrometheusURL() string { return env.Get(PrometheusURL, "") } +func getPrometheusAuthToken() string { + return env.Get(PrometheusAuthToken, "") +} + func getPrometheusJobID() string { return env.Get(PrometheusJobID, "minio-job") } diff --git a/restapi/consts.go b/restapi/consts.go index d05debd4a..85d02c460 100644 --- a/restapi/consts.go +++ b/restapi/consts.go @@ -47,6 +47,7 @@ const ( ConsoleSecureFeaturePolicy = "CONSOLE_SECURE_FEATURE_POLICY" ConsoleSecureExpectCTHeader = "CONSOLE_SECURE_EXPECT_CT_HEADER" PrometheusURL = "CONSOLE_PROMETHEUS_URL" + PrometheusAuthToken = "CONSOLE_PROMETHEUS_AUTH_TOKEN" PrometheusJobID = "CONSOLE_PROMETHEUS_JOB_ID" PrometheusExtraLabels = "CONSOLE_PROMETHEUS_EXTRA_LABELS" ConsoleLogQueryURL = "CONSOLE_LOG_QUERY_URL"