首页 > 解决方案 > 如何将变量传递给 heml.tf 中的 yaml 文件?

问题描述

我有一个使用 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 文件中有可用的变量,但不确定如何在值文件中设置它。

谢谢

标签: terraformkubernetes-helmandroid-3.0-honeycombamazon-eks

解决方案


你可以使用templatefile函数

主文件

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}" })
  ]
}

蜂窝.yml

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

推荐阅读