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

Terraform 如何将变量传递到heml.tf中的yaml文件?,terraform,kubernetes-helm,android-3.0-honeycomb,amazon-eks,Terraform,Kubernetes Helm,Android 3.0 Honeycomb,Amazon Eks,我有一个文件,用于使用helmhelm.tf创建地形资源 在这个文件中,我创建了一个蜂巢代理,需要传入一些观察者,所以我使用一个yaml文件进行配置。以下是helm.tf的片段: resource "helm_release" "honeycomb" { version = "0.11.0" depends_on = [module.eks] repository = "https://honeycombio.gi

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


谢谢

您可以使用
模板文件
功能

main.tf

蜂巢


templatefile
确实是一种很好的方法,但请注意。如果在模板中使用
yamlencode
,则Terraform可以保证结果始终是有效的YAML语法,即使模板变量需要引用或转义。
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}" })
  ]
}
agent:
  watchers:
    - labelSelector: "app=my-app"
      namespace: my-namespace
      dataset: "${env}"
      parser:
        name: nginx
        dataset: "${env}"
        options:
          log_format: "blah"