Skip to content

Instantly share code, notes, and snippets.

@oke-py
Last active June 29, 2023 21:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save oke-py/053e2f360ce0b5266e42769f2bf6417e to your computer and use it in GitHub Desktop.
Save oke-py/053e2f360ce0b5266e42769f2bf6417e to your computer and use it in GitHub Desktop.
grafana datasource

Install grafana via helm

grafana.yaml

datasources:
  datasources.yaml:
    apiVersion: 1
    datasources:
    - name: Loki
      type: loki
      access: proxy
      url: http://loki:3100
    - name: Prometheus
      type: prometheus
      url: http://prometheus-k8s:9090
      access: proxy
      isDefault: true
helm -n monitoring install grafana-helm grafana/grafana -f grafana.yaml

The datasources loki and prometheus are successfully added. grafana-datasources

I'd like to do this using argocd.

Set up grafana datasource via argocd (part 1, falied)

The value of grafana.datasources is given as a map.
https://github.com/cloudnativedaysjp/dreamkast-infra/commit/67de00cae074731780c7c8b0f8a54185cb878220

argocd-apps sync failed.

error validating data: ValidationError(Application.spec.source.helm.parameters[3].value): invalid type for io.argoproj.v1alpha1.Application.spec.source.helm.parameters.value: got "map", expected "string"

sync-failed-1

Set up grafana datasource via argocd (part 2, falied)

The value of grafana.datasources is given as a string.
https://github.com/cloudnativedaysjp/dreamkast-infra/commit/42cf7c90b7533018aead6d143adec0491da93707

loki sync failed.

rpc error: code = Unknown desc = Manifest generation error (cached): helm template . --name-template loki --namespace monitoring --set loki.persistence.enabled=true --set grafana.enabled=true --set grafana.persistence.enabled=true --set grafana.datasources=datasources.yaml: apiVersion: 1 datasources: - name: Loki type: loki access: proxy url: http://loki:3100 - name: Prometheus type: prometheus url: http://prometheus-k8s:9090 access: proxy isDefault: true --api-versions v1 --api-versions apiregistration.k8s.io/v1 --api-versions apiregistration.k8s.io/v1beta1 --api-versions apps/v1 --api-versions events.k8s.io/v1 --api-versions events.k8s.io/v1beta1 --api-versions authentication.k8s.io/v1 --api-versions authentication.k8s.io/v1beta1 --api-versions authorization.k8s.io/v1 --api-versions authorization.k8s.io/v1beta1 --api-versions autoscaling/v1 --api-versions autoscaling/v2beta1 --api-versions autoscaling/v2beta2 --api-versions batch/v1 --api-versions batch/v1beta1 --api-versions certificates.k8s.io/v1 --api-versions certificates.k8s.io/v1beta1 --api-versions networking.k8s.io/v1 --api-versions networking.k8s.io/v1beta1 --api-versions extensions/v1beta1 --api-versions policy/v1 --api-versions policy/v1beta1 --api-versions rbac.authorization.k8s.io/v1 --api-versions rbac.authorization.k8s.io/v1beta1 --api-versions storage.k8s.io/v1 --api-versions storage.k8s.io/v1beta1 --api-versions admissionregistration.k8s.io/v1 --api-versions admissionregistration.k8s.io/v1beta1 --api-versions apiextensions.k8s.io/v1 --api-versions apiextensions.k8s.io/v1beta1 --api-versions scheduling.k8s.io/v1 --api-versions scheduling.k8s.io/v1beta1 --api-versions coordination.k8s.io/v1 --api-versions coordination.k8s.io/v1beta1 --api-versions node.k8s.io/v1 --api-versions node.k8s.io/v1beta1 --api-versions discovery.k8s.io/v1 --api-versions discovery.k8s.io/v1beta1 --api-versions flowcontrol.apiserver.k8s.io/v1beta1 --api-versions argoproj.io/v1alpha1 --include-crds failed exit status 1: coalesce.go:200: warning: cannot overwrite table with non table for datasources (map[]) Error: template: loki-stack/charts/grafana/templates/deployment.yaml:34:28: executing "loki-stack/charts/grafana/templates/deployment.yaml" at <include (print $.Template.BasePath "/configmap.yaml") .>: error calling include: template: loki-stack/charts/grafana/templates/configmap.yaml:22:35: executing "loki-stack/charts/grafana/templates/configmap.yaml" at <.Values.datasources>: range can't iterate over datasources.yaml: apiVersion: 1 datasources: - name: Loki type: loki access: proxy url: http://loki:3100 - name: Prometheus type: prometheus url: http://prometheus-k8s:9090 access: proxy isDefault: true Use --debug flag to render out invalid YAML

sync-failed-2

@franq77
Copy link

franq77 commented Jan 11, 2023

Running into the same issue, did you manage to find a solution in the end?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment