【问题标题】:Use GitLab env variable in terraform file在 terraform 文件中使用 GitLab 环境变量
【发布时间】:2020-10-27 21:56:42
【问题描述】:

我有一个秘密存储为 GitLab 中的环境变量:TF_VAR_DD_API_KEY

在我的main.tf 我正在做这样的事情:

{
  "name": "datadog-agent",
  "image": "datadog/agent:latest",
  "environment": [
    {
      "name": "DD_API_KEY",
      "value": "${var.DD_API_KEY}"
    }
  ]
}

这似乎不起作用。如何从 GitLab TF_DD_API_KEY 变量中获取值并在我的 main.tf 中使用它?

谢谢

【问题讨论】:

  • 第一次观察。当您输入问题时,这可能是您的拼写错误,但是当您尝试引用 TF_DD_API_KEY 时,您缺少 VAR
  • @JBone 与 Terraform 将使用以 TF_VAR_ 为前缀的环境变量。因此,要填充 DD_API_KEY 变量,您需要像 OP 一样设置 TF_VAR_DD_API_KEY
  • 代码有错误吗?或者只是不做你所期望的。如果可能的话,您能否编辑问题以包含 minimal reproducible example 并包含任何错误或输出与您想要的输出?
  • @ydaetskcoR,是的。但如果你看看 OPs 最后一行,他在TF_DD_API_KEY 中的TF 之后错过了VAR ..这就是我想要强调的

标签: gitlab terraform gitlab-ci terraform-template-file


【解决方案1】:

你需要像这样添加一个模块输入变量:

variable DD_API_KEY {
  type = string
}

TF_VAR_ 前缀将被 terraform 移除。

一旦您有了输入变量,您的引用 var.DD_API_KEY 就会按预期工作。

【讨论】:

  • 不定义变量会导致OP没有提到的错误。这可能是答案,但很难从现有问题中分辨出来。这也意味着问答组合对于可能遇到相同问题的其他人来说不太有用。此外,您的语法缺少引号,因此它不太有效。
  • @ydaetskcoR 引号不是必需的。这是我自 v0.12 以来一直使用的有效语法
  • 嗯,直到。我也很惊讶地看到 terraform fmt 没有添加引号。除了极少的简洁性之外,您使用该语法的任何特殊原因?
  • 字符越少越好。 VS Code terraform 扩展语法突出显示使它看起来也很奇怪。
猜你喜欢
  • 2020-03-10
  • 2018-12-11
  • 2017-09-09
  • 2019-09-15
  • 2021-07-25
  • 2021-06-20
  • 1970-01-01
  • 2018-01-17
  • 2022-08-17
相关资源
最近更新 更多