terraform - 如何将变量传递给 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 文件中有可用的变量,但不确定如何在值文件中设置它。
谢谢
解决方案
你可以使用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"
推荐阅读
- c++ - Visual Studio 字符编码问题
- kotlin - 流的 onCompletion 和 try/finally 有什么区别?
- linux - 如何使用 sed 基于两个列表替换文本文件的字符串
- python - VSCode集成终端不使用Conda环境执行python文件
- r - R非线性最小二乘(nls)函数:使用索引向量作为输入?
- .net - 使用两个条件执行 LINQ 连接
- python - 如何从附加行和列的多循环过程中构建熊猫数据框?
- c++ - Boost::Asio::Read 没有填充缓冲区
- r - 如何使用变量作为R中函数的参数来过滤小标题
- python - 涉及列表和字典的程序