AETHER-513 Add grafana-aether Helm chart

Change-Id: I54b208bbbc981d2bff252ce9586d716dafb053cc
diff --git a/monitoring/grafana-aether/templates/NOTES.txt b/monitoring/grafana-aether/templates/NOTES.txt
new file mode 100644
index 0000000..2c966b5
--- /dev/null
+++ b/monitoring/grafana-aether/templates/NOTES.txt
@@ -0,0 +1,10 @@
+{{/*
+Copyright 2020-present Open Networking Foundation
+SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+*/}}
+
+Thank you for installing {{ .Chart.Name }}.
+
+Your release is named {{ .Release.Name }}.
+
+This chart deploys Grafana and ConfigMaps to configure custom Aether dashboards.
diff --git a/monitoring/grafana-aether/templates/_helpers.tpl b/monitoring/grafana-aether/templates/_helpers.tpl
new file mode 100644
index 0000000..4385f61
--- /dev/null
+++ b/monitoring/grafana-aether/templates/_helpers.tpl
@@ -0,0 +1,68 @@
+{{/*
+Copyright 2020-present Open Networking Foundation
+SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+*/}}
+
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Expand the name of the chart.
+*/}}
+{{- define "grafana-aether.name" -}}
+{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
+{{- end }}
+
+{{/*
+Create a default fully qualified app name.
+We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
+If release name contains chart name it will be used as a full name.
+*/}}
+{{- define "grafana-aether.fullname" -}}
+{{- if .Values.fullnameOverride }}
+{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- $name := default .Chart.Name .Values.nameOverride }}
+{{- if contains $name .Release.Name }}
+{{- .Release.Name | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
+{{- end }}
+{{- end }}
+{{- end }}
+
+{{/*
+Create chart name and version as used by the chart label.
+*/}}
+{{- define "grafana-aether.chart" -}}
+{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
+{{- end }}
+
+{{/*
+Common labels
+*/}}
+{{- define "grafana-aether.labels" -}}
+helm.sh/chart: {{ include "grafana-aether.chart" . }}
+{{ include "grafana-aether.selectorLabels" . }}
+{{- if .Chart.AppVersion }}
+app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
+{{- end }}
+app.kubernetes.io/managed-by: {{ .Release.Service }}
+{{- end }}
+
+{{/*
+Selector labels
+*/}}
+{{- define "grafana-aether.selectorLabels" -}}
+app.kubernetes.io/name: {{ include "grafana-aether.name" . }}
+app.kubernetes.io/instance: {{ .Release.Name }}
+{{- end }}
+
+{{/*
+Create the name of the service account to use
+*/}}
+{{- define "grafana-aether.serviceAccountName" -}}
+{{- if .Values.serviceAccount.create }}
+{{- default (include "grafana-aether.fullname" .) .Values.serviceAccount.name }}
+{{- else }}
+{{- default "default" .Values.serviceAccount.name }}
+{{- end }}
+{{- end }}
diff --git a/monitoring/grafana-aether/templates/dashboard-configmap.yaml b/monitoring/grafana-aether/templates/dashboard-configmap.yaml
new file mode 100644
index 0000000..04ff167
--- /dev/null
+++ b/monitoring/grafana-aether/templates/dashboard-configmap.yaml
@@ -0,0 +1,13 @@
+# Copyright 2020-present Open Networking Foundation
+# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ .Release.Name }}-dashboards
+  labels:
+     grafana_dashboard: "1"
+data:
+{{ if .Values.globalStatusMonitorNamespace }}
+{{ (.Files.Glob "dashboards/global*.json").AsConfig | indent 2 }}
+{{ end }}
diff --git a/monitoring/grafana-aether/templates/datasource-configmap.yaml b/monitoring/grafana-aether/templates/datasource-configmap.yaml
new file mode 100644
index 0000000..da039de
--- /dev/null
+++ b/monitoring/grafana-aether/templates/datasource-configmap.yaml
@@ -0,0 +1,23 @@
+# Copyright 2020-present Open Networking Foundation
+# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ .Release.Name }}-datasource
+  labels:
+     grafana_datasource: "1"
+data:
+  datasources.yaml: |-
+    apiVersion: 1
+
+    datasources:
+{{ if .Values.globalStatusMonitorNamespace }}
+    - name: RANCHER_MONITORING_GLOBAL
+      type: prometheus
+      access: proxy
+      basicAuth: false
+      editable: false
+      isDefault: true
+      url: http://access-prometheus.{{.Values.globalStatusMonitorNamespace}}:80
+{{ end }}