Setting grafana.ini via Terraform Helm provider

9/25/2019

I'm able to install grafana using the stable/grafana chart, using Terraform and the Helm provider. I'm trying to configure grafana with a new grafana.ini file, which should be possible using a set, however it doesn't appear to pick up the configuration at all.

I've also tried using the Helm release resources values key to merge in the same config in yaml format (with a top-level grafana.ini key), also with no success.

What I'm trying to achieve is a file containing my config, in ini or yml format, passed to the grafana Helm chart so I can configure grafana correctly (ultimately I need to configure OAuth providers via the config) using Terraform.

Relevant config snips below.

grafana.ini

[security]
admin_user = username

main.tf (excerpt)

resource "helm_release" "grafana" {
  chart = "stable/grafana"
  name = "grafana"

  set {
    name = "grafana.ini"
    value = file("grafana.ini")
  }
}
-- MunkyJunky
grafana
kubernetes
kubernetes-helm
terraform

1 Answer

9/26/2019

I eventually found the correct way of merging the values key - it turns out (no surprise) I had the format of grafana.ini wrong when converting to YAML. Here's the working config:

config.yaml

grafana.ini:
  default:
    instance_name: my-server
  auth.basic:
    enabled: true

main.tf

resource "helm_release" "grafana" {
  chart = "stable/grafana"
  name = "grafana"
  values = [file("config.yaml")]
}
-- MunkyJunky
Source: StackOverflow