From 6d8309e81a99482f3838831818f9fba445c42433 Mon Sep 17 00:00:00 2001 From: Filipe Sequeira Date: Tue, 8 Feb 2022 09:12:14 +0000 Subject: [PATCH] add certpool to grafana Signed-off-by: Filipe Sequeira --- internal/notifier/factory.go | 2 +- internal/notifier/grafana.go | 8 +++++--- internal/notifier/grafana_test.go | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/internal/notifier/factory.go b/internal/notifier/factory.go index 520126d15..e94bd2048 100644 --- a/internal/notifier/factory.go +++ b/internal/notifier/factory.go @@ -90,7 +90,7 @@ func (f Factory) Notifier(provider string) (Interface, error) { case v1beta1.AlertManagerProvider: n, err = NewAlertmanager(f.URL, f.ProxyURL, f.CertPool) case v1beta1.GrafanaProvider: - n, err = NewGrafana(f.URL, f.ProxyURL, f.Token) + n, err = NewGrafana(f.URL, f.ProxyURL, f.Token, f.CertPool) default: err = fmt.Errorf("provider %s not supported", provider) } diff --git a/internal/notifier/grafana.go b/internal/notifier/grafana.go index f38b6a904..6c6f2c010 100644 --- a/internal/notifier/grafana.go +++ b/internal/notifier/grafana.go @@ -17,13 +17,13 @@ limitations under the License. package notifier import ( + "crypto/x509" "fmt" "net/url" "strings" "github.com/fluxcd/pkg/runtime/events" "github.com/hashicorp/go-retryablehttp" - ) // Discord holds the hook URL @@ -31,6 +31,7 @@ type Grafana struct { URL string Token string ProxyURL string + CertPool *x509.CertPool } // GraphiteAnnotation represents a Grafana API annotation in Graphite format @@ -42,7 +43,7 @@ type GraphitePayload struct { } // NewGrafana validates the Grafana URL and returns a Grafana object -func NewGrafana(URL string, proxyURL string, token string) (*Grafana, error) { +func NewGrafana(URL string, proxyURL string, token string, certPool *x509.CertPool) (*Grafana, error) { _, err := url.ParseRequestURI(URL) if err != nil { return nil, fmt.Errorf("invalid Grafana URL %s", URL) @@ -52,6 +53,7 @@ func NewGrafana(URL string, proxyURL string, token string) (*Grafana, error) { URL: URL, ProxyURL: proxyURL, Token: token, + CertPool: certPool, }, nil } @@ -76,7 +78,7 @@ func (s *Grafana) Post(event events.Event) error { Tags: sfields, } - err := postMessage(s.URL, s.ProxyURL, nil, payload, func(request *retryablehttp.Request) { + err := postMessage(s.URL, s.ProxyURL, s.CertPool, payload, func(request *retryablehttp.Request) { if s.Token != "" { request.Header.Add("Authorization", "Bearer "+s.Token) } diff --git a/internal/notifier/grafana_test.go b/internal/notifier/grafana_test.go index 91edf990e..8705c38dc 100644 --- a/internal/notifier/grafana_test.go +++ b/internal/notifier/grafana_test.go @@ -41,7 +41,7 @@ func TestGrafana_Post(t *testing.T) { })) defer ts.Close() - grafana, err := NewGrafana(ts.URL, "", "") + grafana, err := NewGrafana(ts.URL, "", "", nil) require.NoError(t, err) err = grafana.Post(testEvent())