【问题标题】:How do I pass variables to a yaml file in heml.tf?如何将变量传递给 heml.tf 中的 yaml 文件?
【发布时间】:2021-02-18 03:08:05
【问题描述】:

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

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

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

谢谢

【问题讨论】:

    标签: terraform kubernetes-helm android-3.0-honeycomb amazon-eks


    【解决方案1】:

    你可以使用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"
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-31
    • 2021-07-03
    • 2010-11-18
    • 2015-05-21
    • 2022-06-29
    • 2021-03-27
    相关资源
    最近更新 更多