【问题标题】:base64encode in Nomad job file not encoding value of variableNomad作业文件中的base64encode未编码变量的值
【发布时间】:2021-12-09 14:59:02
【问题描述】:

我正在尝试将 base64encode 的结果存储在 env 块中,如下所示:

env {
  HOST_ID = "${base64encode("${NOMAD_ADDR_serviceA}")}"
}

这导致HOST_ID 持有base64 编码字符串“${NOMAD_ADDR_serviceA}”,而不是我希望的NOMAD_ADDR_serviceA 的值。例如。 HOST_ID = JHtOT01BRF9BRERSX3NlcnZpY2VBfQ==.

我也试过了:

env {
  HOST_ID = base64encode("${NOMAD_ADDR_serviceA}")
}

...但这会生成相同的编码。

知道我怎样才能达到预期的结果吗?任何帮助将不胜感激!

编辑:我还尝试了以下方法:

HOST_ID = "${base64encode(NOMAD_ADDR_serviceA)}"

但没有运气。

【问题讨论】:

    标签: terraform hcl nomad


    【解决方案1】:

    @apollo13Nomad Gitter 上找到了一种方法来延迟base64encode 的执行,以便使用Nomad templates 进行运行时插值。他们建议使用类似的东西:

    template {
        data        = "HOST_ID={{ env \"NOMAD_ADDR_ServiceA\" | base64Encode }}"
        env         = true
        destination = "secrets/env"
    }
    

    这完全符合预期!惊讶地发现 base64encode 不等待变量可用。

    【讨论】:

      猜你喜欢
      • 2017-08-15
      • 1970-01-01
      • 2018-01-04
      • 2023-02-17
      • 2018-03-03
      • 2021-01-22
      • 2020-07-01
      • 1970-01-01
      • 2021-07-23
      相关资源
      最近更新 更多