在外部文件中插入游牧局部变量
Posted
技术标签:
【中文标题】在外部文件中插入游牧局部变量【英文标题】:Interpolate nomad local variables in external file 【发布时间】:2021-12-31 13:51:13 【问题描述】:在我的工作定义中,我有以下模板:
variables
environment = "staging"
...
task "server"
template
data = file("vars.env")
destination = "secrets/file.env"
env = true
...
我的vars.env
有类似的东西
ENVIRONMENT=$var.environment
但是模板没有得到内插字符串,只有文件中的原始文本。
有没有办法告诉 nomad 在解析vars.env
文件时使用局部变量?
【问题讨论】:
【参考方案1】:解决此问题的另一种方法是使用 artifact 节下载 vars.env 文件,然后从您的模板节中引用下载的 artifact。在做的时候,使用“source”属性而不是“data”,文件的内容被传递给模板引擎进行处理。
https://www.nomadproject.io/docs/job-specification/template#remote-template
【讨论】:
好点。将文件部署在某处而不是处理本地文件似乎工作量太大:( 这也是我自己还没有这样做的一个原因。 :) 到目前为止,我一直在我的模板中使用 HEREDOC(而不是像您在示例中所做的那样使用文件功能)和 data 属性,这确实会导致很长的 jobspec 文件。我正在考虑使用这种方法,方法是将我的配置文件存储在 Git 中,并使用工件节的能力从那里提取并正确模板化我的值。以上是关于在外部文件中插入游牧局部变量的主要内容,如果未能解决你的问题,请参考以下文章