如何将变量传递给 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"
我有一个用于使用 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"