Skip to content

Commit

Permalink
add certpool to grafana
Browse files Browse the repository at this point in the history
Signed-off-by: Filipe Sequeira <filipe@weave.works>
  • Loading branch information
fsequeira1 committed Feb 8, 2022
1 parent 2d05ef9 commit 6d8309e
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 5 deletions.
2 changes: 1 addition & 1 deletion internal/notifier/factory.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
Expand Down
8 changes: 5 additions & 3 deletions internal/notifier/grafana.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,20 +17,21 @@ 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
type Grafana struct {
URL string
Token string
ProxyURL string
CertPool *x509.CertPool
}

// GraphiteAnnotation represents a Grafana API annotation in Graphite format
Expand All @@ -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)
Expand All @@ -52,6 +53,7 @@ func NewGrafana(URL string, proxyURL string, token string) (*Grafana, error) {
URL: URL,
ProxyURL: proxyURL,
Token: token,
CertPool: certPool,
}, nil
}

Expand All @@ -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)
}
Expand Down
2 changes: 1 addition & 1 deletion internal/notifier/grafana_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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())
Expand Down

0 comments on commit 6d8309e

Please sign in to comment.