Terraform 如何将变量传递到heml.tf中的yaml文件?
我有一个文件,用于使用helmTerraform 如何将变量传递到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.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"