terraform - Terraform:属性文件到 env 部分
问题描述
我有一个 .properties,我想应用一个模板来为我的部署生成 env {} 条目。
像这样的东西:
{{- range $key, $value := .Values.configurationOverrides }}
env {
name = {{ printf "REST_%s" $key | replace "." "_" | upper | quote }}
value =
生成 env {} 条目:
...
spec {
container {
image = "**"
name = "rest"
env {
name = "REST_FROM_PROPERTIES_FILE"
value = "VALUE FROM PROPERTIES FILE"
}
...
可能吗?
谢谢。
解决方案
注意:我假设您使用 Terraform 0.12.x
解决方案的一部分是动态块,它允许您遍历值列表并动态添加 env 部分:
properties_list = [{ name: "MY_ENV_VAR", value: "VALUE", },]
dynamic "env" {
for_each = var.properties_list
name = env.value.name
value = env.value.value
}
困难的部分是解析属性文件,因为在 Terraform 中没有开箱即用的方法。您可以使用jsondecode 之类的东西将 JSON 解码为 terraform 对象。因此,您可以先将属性文件转换为 JSON 文件(例如,使用此 npm 包),然后将其解码为 terraform 对象。
推荐阅读
- python - Python - 在熊猫数据框中获取最新日期
- mongodb - 使用更改流在 MongoDB 中的每次更新操作后更新文档
- javascript - 如何从字符串中删除所有元音并使用 for 循环返回结果?
- python - 将每个子集的第三个 str 更改为 int
- ruby - 如何确保每个 Minitest 单元测试都足够快?
- tensorflow - DeepMind 的 Sonnet 提供了 Keras 没有的什么?
- ios - ios:共享扩展不允许我将 .txt 或 .csv 文件共享到我的应用程序
- apache - 通过 Apache 的 Openshift 路线
- java - 可以在 HttpServletResponse.sendRedirect() 中发送隐藏参数吗?
- css - 如何围绕同一原点旋转多个 SVG 重用元素?