diff --git a/controllers/client/round_tripper.go b/controllers/client/round_tripper.go index 56f7fadce..108060b67 100644 --- a/controllers/client/round_tripper.go +++ b/controllers/client/round_tripper.go @@ -1,7 +1,6 @@ package client import ( - "crypto/tls" "net/http" "strconv" @@ -15,13 +14,10 @@ type instrumentedRoundTripper struct { } func NewInstrumentedRoundTripper(relatedResource string, metric *prometheus.CounterVec) http.RoundTripper { - transport := &http.Transport{ - DisableKeepAlives: true, - MaxIdleConnsPerHost: -1, - TLSClientConfig: &tls.Config{ - InsecureSkipVerify: true, //nolint - }, - } + transport := http.DefaultTransport.(*http.Transport).Clone() + transport.DisableKeepAlives = true + transport.MaxIdleConnsPerHost = -1 + transport.TLSClientConfig.InsecureSkipVerify = true //nolint return &instrumentedRoundTripper{ relatedResource: relatedResource, diff --git a/deploy/helm/grafana-operator/README.md b/deploy/helm/grafana-operator/README.md index e4f062703..514704616 100644 --- a/deploy/helm/grafana-operator/README.md +++ b/deploy/helm/grafana-operator/README.md @@ -37,6 +37,7 @@ It's easier to just manage this configuration outside of the operator. |-----|------|---------|-------------| | additionalLabels | object | `{}` | additional labels to add to all resources | | affinity | object | `{}` | pod affinity | +| env | list | `[]` | Additional environment variables | | fullnameOverride | string | `""` | | | image.pullPolicy | string | `"IfNotPresent"` | The image pull policy to use in grafana operator container | | image.repository | string | `"ghcr.io/grafana-operator/grafana-operator"` | grafana operator image repository | diff --git a/deploy/helm/grafana-operator/templates/deployment.yaml b/deploy/helm/grafana-operator/templates/deployment.yaml index 1fae3c8cb..db3f2ff0f 100644 --- a/deploy/helm/grafana-operator/templates/deployment.yaml +++ b/deploy/helm/grafana-operator/templates/deployment.yaml @@ -48,6 +48,9 @@ spec: {{ else }} value: {{ .Values.watchNamespaces }} {{- end }} + {{- with .Values.env }} + {{- toYaml . | nindent 12 }} + {{- end }} args: - --health-probe-bind-address=:8081 - --metrics-bind-address=0.0.0.0:{{ .Values.metricsService.metricsPort }} diff --git a/deploy/helm/grafana-operator/values.yaml b/deploy/helm/grafana-operator/values.yaml index 149ef0ea3..ae3caa1f0 100644 --- a/deploy/helm/grafana-operator/values.yaml +++ b/deploy/helm/grafana-operator/values.yaml @@ -10,6 +10,11 @@ leaderElect: false # By default it's all namespaces, if you only want to listen for the same namespace as the operator is deployed to look at namespaceScope. watchNamespaces: "" +# -- Additional environment variables +env: [] + # - name: MY_VAR + # value: "myvalue" + image: # -- grafana operator image repository repository: ghcr.io/grafana-operator/grafana-operator diff --git a/docs/docs/_index.md b/docs/docs/_index.md index 7a7c41292..88b7e0025 100644 --- a/docs/docs/_index.md +++ b/docs/docs/_index.md @@ -84,3 +84,8 @@ To solve this we introduced `spec.allowCrossNamespaceImport` option to, dashboar This setting makes it so a grafana instance in another namespace don't get the grafana resources applied to it even if the label matches. This is because especially the data sources contain secret information and we don't want another team to be able to use your datasource unless defined to do so in both CR:s. + +## Using a proxy server + +The Operator can use a proxy server when making requests to Grafana. +The proxy settings can be controlled through environment variables as documented [here](https://pkg.go.dev/golang.org/x/net/http/httpproxy#FromEnvironment).