Datasource variable
This example shows how to reference values from a secret in data source fields.
Values can be assigned using spec.valuesFrom
:
valuesFrom:
- targetPath: "secureJsonData.httpHeaderValue1"
valueFrom:
secretKeyRef:
name: "credentials"
key: "PROMETHEUS_TOKEN"
The Operator will look for a key with the name PROMETHEUS_TOKEN
in a secret with the name credentials
.
It will then inject the value into secureJsonData.httpHeaderValue1
:
datasource:
secureJsonData:
"httpHeaderValue1": "Bearer ${PROMETHEUS_TOKEN}"
The Operator expects a string to be present with the replacement pattern.
---
apiVersion: grafana.integreatly.org/v1beta1
kind: Grafana
metadata:
name: grafana
labels:
dashboards: "grafana"
spec:
config:
log:
mode: "console"
auth:
disable_login_form: "false"
security:
admin_user: root
admin_password: secret
---
kind: Secret
apiVersion: v1
metadata:
name: credentials
namespace: grafana
stringData:
PROMETHEUS_TOKEN: secret_token
type: Opaque
---
apiVersion: grafana.integreatly.org/v1beta1
kind: GrafanaDatasource
metadata:
name: grafanadatasource-sample
spec:
valuesFrom:
- targetPath: "secureJsonData.httpHeaderValue1"
valueFrom:
secretKeyRef:
name: "credentials"
key: "PROMETHEUS_TOKEN"
instanceSelector:
matchLabels:
dashboards: "grafana"
datasource:
name: prometheus
type: prometheus
access: proxy
basicAuth: true
url: http://prometheus-service:9090
isDefault: true
jsonData:
"tlsSkipVerify": true
"timeInterval": "5s"
httpHeaderName1: "Authorization"
secureJsonData:
"httpHeaderValue1": "Bearer ${PROMETHEUS_TOKEN}"