rancher-partner-charts/charts/kubecost/cost-analyzer/2.2.3/templates/grafana-configmap.yaml

90 lines
2.8 KiB
YAML

{{- if (eq (include "cost-analyzer.grafanaEnabled" .) "true") }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "grafana.fullname" . }}
namespace: {{ .Release.Namespace }}
labels:
app: {{ template "grafana.name" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
data:
{{- if .Values.grafana.plugins }}
plugins: {{ join "," .Values.grafana.plugins }}
{{- end }}
grafana.ini: |
{{- range $key, $value := index .Values.grafana "grafana.ini" }}
[{{ $key }}]
{{- range $elem, $elemVal := $value }}
{{ $elem }} = {{ $elemVal }}
{{- end }}
{{- end }}
{{- if .Values.grafana.datasources }}
{{- range $key, $value := .Values.grafana.datasources }}
{{ $key }}: |
{{ toYaml $value | trim | indent 4 }}
{{- end -}}
{{- end }}
{{- if not .Values.grafana.datasources }}
datasources.yaml: |
apiVersion: 1
datasources:
{{- if .Values.global.prometheus.enabled }}
- access: proxy
isDefault: true
name: Prometheus
type: prometheus
url: http://{{ template "cost-analyzer.prometheus.server.name" . }}.{{ .Release.Namespace }}.svc
jsonData:
httpMethod: POST
prometheusType: Prometheus
prometheusVersion: 2.35.0
timeInterval: 1m
{{- else }}
- access: proxy
isDefault: true
name: Prometheus
type: prometheus
url: {{ .Values.global.prometheus.fqdn }}
jsonData:
httpMethod: POST
prometheusType: Prometheus
prometheusVersion: 2.35.0
timeInterval: 1m
{{- end -}}
{{- end }}
{{- if .Values.grafana.dashboardProviders }}
{{- range $key, $value := .Values.grafana.dashboardProviders }}
{{ $key }}: |
{{ toYaml $value | indent 4 }}
{{- end -}}
{{- end -}}
{{- if .Values.grafana.dashboards }}
download_dashboards.sh: |
#!/usr/bin/env sh
set -euf
{{- if .Values.grafana.dashboardProviders }}
{{- range $key, $value := .Values.grafana.dashboardProviders }}
{{- range $value.providers }}
mkdir -p {{ .options.path }}
{{- end }}
{{- end }}
{{- end }}
{{- range $provider, $dashboards := .Values.grafana.dashboards }}
{{- range $key, $value := $dashboards }}
{{- if (or (hasKey $value "gnetId") (hasKey $value "url")) }}
curl -sk \
--connect-timeout 60 \
--max-time 60 \
-H "Accept: application/json" \
-H "Content-Type: application/json;charset=UTF-8" \
{{- if $value.url -}}{{ $value.url }}{{- else -}} https://grafana.com/api/dashboards/{{ $value.gnetId }}/revisions/{{- if $value.revision -}}{{ $value.revision }}{{- else -}}1{{- end -}}/download{{- end -}}{{ if $value.datasource }}| sed 's|\"datasource\":[^,]*|\"datasource\": \"{{ $value.datasource }}\"|g'{{ end }} \
> /var/lib/grafana/dashboards/{{ $provider }}/{{ $key }}.json
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{ end }}