Update Grafana chart

This updates the Grafana chart to the new repository, since the old
repository is now deprecated. This also updates the container images
and Grafana version.

Change-Id: I29e38d7c23bfa95992537efae7b8b3967d71ffd0
diff --git a/charts/grafana/Version b/charts/grafana/Version
index 50e2274..bf787a3 100644
--- a/charts/grafana/Version
+++ b/charts/grafana/Version
@@ -1 +1 @@
-5.0.3
+5.6.5
diff --git a/charts/grafana/grafana.yaml b/charts/grafana/grafana.yaml
index 8913de9..9314a1d 100644
--- a/charts/grafana/grafana.yaml
+++ b/charts/grafana/grafana.yaml
@@ -52,7 +52,8 @@
 
 image:
   repository: grafana/grafana
-  tag: 6.7.1
+  tag: 7.1.5
+  sha: "dfd940ed4dd82a6369cb057fe5ab4cc8c774c1c5b943b2f4b618302a7979de61"
   pullPolicy: IfNotPresent
 
   ## Optionally specify an array of imagePullSecrets.
@@ -66,10 +67,12 @@
   enabled: true
   image: "bats/bats"
   tag: "v1.1.0"
+  imagePullPolicy: IfNotPresent
   securityContext: {}
 
 securityContext:
   runAsUser: 472
+  runAsGroup: 472
   fsGroup: 472
 
 
@@ -91,11 +94,13 @@
 
 downloadDashboardsImage:
   repository: curlimages/curl
-  tag: 7.68.0
+  tag: 7.70.0
+  sha: "100cf667062584b3a756ccff1d1cf45a9a14b891812c89112275dfb751bf3d62"
   pullPolicy: IfNotPresent
 
 downloadDashboards:
   env: {}
+  resources: {}
 
 ## Pod Annotations
 # podAnnotations: {}
@@ -122,8 +127,34 @@
   labels: {}
   portName: service
 
+serviceMonitor:
+  ## If true, a ServiceMonitor CRD is created for a prometheus operator
+  ## https://github.com/coreos/prometheus-operator
+  ##
+  enabled: false
+  path: /metrics
+  #  namespace: monitoring  (defaults to use the namespace this chart is deployed to)
+  labels: {}
+  interval: 1m
+  scrapeTimeout: 30s
+  relabelings: []
+
+extraExposePorts: []
+ # - name: keycloak
+ #   port: 8080
+ #   targetPort: 8080
+ #   type: ClusterIP
+
+# overrides pod.spec.hostAliases in the grafana deployment's pods
+hostAliases: []
+  # - ip: "1.2.3.4"
+  #   hostnames:
+  #     - "my.host.com"
+
+
 ingress:
   enabled: true
+  # Values can be templated
   annotations:
     kubernetes.io/ingress.class: nginx
     # kubernetes.io/tls-acme: "true"
@@ -184,6 +215,14 @@
 #     - name: proxy-web
 #       containerPort: 4181
 
+## Volumes that can be used in init containers that will not be mounted to deployment pods
+extraContainerVolumes: []
+#  - name: volume-from-secret
+#    secret:
+#      secretName: secret-to-mount
+#  - name: empty-dir-volume
+#    emptyDir: {}
+
 ## Enable persistence using Persistent Volume Claims
 ## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
 ##
@@ -211,6 +250,7 @@
   image:
     repository: busybox
     tag: "1.31.1"
+    sha: "fd4a8673d0344c3a7f427fe4440d4b8dfd4fa59cfabbd9098f9eb0cb4ba905d0"
     pullPolicy: IfNotPresent
 
   ## initChownData resource requests and limits
@@ -261,7 +301,7 @@
 envValueFrom: {}
 
 ## The name of a secret in the same kubernetes namespace which contain values to be added to the environment
-## This can be useful for auth tokens, etc
+## This can be useful for auth tokens, etc. Value is templated.
 envFromSecret: ""
 
 ## Sensible environment variables that will be rendered as new secret object
@@ -341,6 +381,17 @@
 ## `path` must be /var/lib/grafana/dashboards/<provider_name>
 ##
 dashboardProviders: {}
+#  dashboardproviders.yaml:
+#    apiVersion: 1
+#    providers:
+#    - name: 'default'
+#      orgId: 1
+#      folder: ''
+#      type: file
+#      disableDeletion: false
+#      editable: true
+#      options:
+#        path: /var/lib/grafana/dashboards/default
 
 ## Configure grafana dashboard to import
 ## NOTE: To use dashboards you must also enable/configure dashboardProviders
@@ -365,7 +416,7 @@
   #     url: https://example.com/repository/test-b64.json
   #     b64content: true
 
-## Reference to external ConfigMap per provider. Use provider name as key and ConfiMap name as value.
+## Reference to external ConfigMap per provider. Use provider name as key and ConfigMap name as value.
 ## A provider dashboards must be defined either by external ConfigMaps or in values.yaml, not in both.
 ## ConfigMap data example:
 ##
@@ -374,6 +425,7 @@
 ##     RAW_JSON
 ##
 dashboardsConfigMaps: {}
+#  default: ""
 
 ## Grafana's primary configuration
 ## NOTE: values in map will be converted to ini format
@@ -393,6 +445,22 @@
     url: https://grafana.net
   users:
     auto_assign_org_role: Editor
+## grafana Authentication can be enabled with the following values on grafana.ini
+ # server:
+      # The full public facing url you use in browser, used for redirects and emails
+ #    root_url:
+ # https://grafana.com/docs/grafana/latest/auth/github/#enable-github-in-grafana
+ # auth.github:
+ #    enabled: false
+ #    allow_sign_up: false
+ #    scopes: user:email,read:org
+ #    auth_url: https://github.com/login/oauth/authorize
+ #    token_url: https://github.com/login/oauth/access_token
+ #    api_url: https://api.github.com/user
+ #    team_ids:
+ #    allowed_organizations:
+ #    client_id:
+ #    client_secret:
 ## LDAP Authentication can be enabled with the following values on grafana.ini
 ## NOTE: Grafana will fail to start if the value for ldap.toml is invalid
   auth.ldap:
@@ -436,7 +504,10 @@
 ## Sidecars that collect the configmaps with specified label and stores the included files them into the respective folders
 ## Requires at least Grafana 5 to work and can't be used together with parameters dashboardProviders, datasources and dashboards
 sidecar:
-  image: kiwigrid/k8s-sidecar:0.1.99
+  image:
+    repository: kiwigrid/k8s-sidecar
+    tag: 0.1.151
+    sha: "7b98eecdf6d117b053622e9f317c632a4b2b97636e8b2e96b311a5fd5c68d211"
   imagePullPolicy: IfNotPresent
   resources:
     limits:
@@ -447,6 +518,7 @@
       memory: 50Mi
   # skipTlsVerify Set to true to skip tls verification for kube api calls
   # skipTlsVerify: true
+  enableUniqueFilenames: false
   dashboards:
     enabled: true
     ## Method to use to detect ConfigMap changes. With WATCH the sidecar will do a WATCH requests, with SLEEP it will list all ConfigMaps, then sleep for 60 seconds.
@@ -476,6 +548,8 @@
       disableDelete: true
       # allow updating provisioned dashboards from the UI
       allowUiUpdates: #@ data.values.monitoring.grafana.dashboards.editable
+      # allow Grafana to replicate dashboard structure from filesystem
+      foldersFromFilesStructure: false
   datasources:
     enabled: false
     ## Method to use to detect ConfigMap changes. With WATCH the sidecar will do a WATCH requests, with SLEEP it will list all ConfigMaps, then sleep for 60 seconds.
@@ -486,6 +560,14 @@
     # Otherwise the namespace in which the sidecar is running will be used.
     # It's also possible to specify ALL to search in all namespaces
     searchNamespace: null
+  notifiers:
+    enabled: false
+    # label that the configmaps with notifiers are marked with
+    label: grafana_notifier
+    # If specified, the sidecar will search for notifier config-maps inside this namespace.
+    # Otherwise the namespace in which the sidecar is running will be used.
+    # It's also possible to specify ALL to search in all namespaces
+    searchNamespace: null
 
 ## Override the deployment namespace
 ##
diff --git a/subcommands/_globals.py b/subcommands/_globals.py
index 1b6d7d8..e07ed23 100644
--- a/subcommands/_globals.py
+++ b/subcommands/_globals.py
@@ -13,7 +13,7 @@
 # limitations under the License.
 
 HELM_CHARTS = {
-    "grafana": "stable/grafana",
+    "grafana": "grafana/grafana",
     "loki": "loki/loki",
     "prometheus": "prometheus-community/prometheus",
     "promtail": "loki/promtail",
diff --git a/subcommands/install.py b/subcommands/install.py
index be28517..22f48f1 100644
--- a/subcommands/install.py
+++ b/subcommands/install.py
@@ -36,7 +36,7 @@
 ]
 
 HELM_REPOS = {
-    "stable": "https://charts.helm.sh/stable",
+    "grafana": "https://grafana.github.io/helm-charts",
     "loki": "https://grafana.github.io/loki/charts",
     "prometheus-community": "https://prometheus-community.github.io/helm-charts",
 }