如何将变量传递给 heml.tf 中的 yaml 文件?

How do I pass variables to a yaml file in heml.tf?

我有一个用于使用 helm 创建 terraform 资源的文件 helm.tf

在这个文件中我创建了一个蜂巢代理并且需要传入一些观察者,所以我使用yaml文件进行配置。这是来自 helm.tf 的片段:

resource "helm_release" "honeycomb" {
  version = "0.11.0"
  depends_on = [module.eks]
  repository = "https://honeycombio.github.io/helm-charts"
  chart = "honeycomb"
  name = "honeycomb"

  values = [
    file("modules/kubernetes/helm/honeycomb.yml")
  ]
}

这里是 yaml 文件

agent:
  watchers:
    - labelSelector: "app=my-app"
      namespace: my-namespace
      dataset: {{$env}}
      parser:
        name: nginx
        dataset: {{$env}}
        options:
          log_format: "blah"

不幸的是,我尝试使用 {{$x}} 设置变量的尝试没有奏效,那么我如何将 env 变量发送到 yaml 值文件?我在 tf 文件中有可用的变量,但不确定如何在值文件中设置它。

谢谢

您可以使用templatefile函数

main.tf

resource "helm_release" "honeycomb" {
  version    = "0.11.0"
  depends_on = [module.eks]
  repository = "https://honeycombio.github.io/helm-charts"
  chart      = "honeycomb"
  name       = "honeycomb"

  values = [
    templatefile("modules/kubernetes/helm/honeycomb.yml", { env = "${var.env}" })
  ]
}

honeycomb.yml

agent:
  watchers:
    - labelSelector: "app=my-app"
      namespace: my-namespace
      dataset: "${env}"
      parser:
        name: nginx
        dataset: "${env}"
        options:
          log_format: "blah"