我正在尝试gomplate并遇到错误。
对于上下文,我定义了一个模板文件 test.tmplt 和一个数据源文件 dev.yaml。
test.tmplt 有以下内容:
localAPIEndpoint:
advertiseAddress: {{ (datasource "k8s").api-advertise-ip }}
而 dev.yaml 包含以下内容:
api-advertise-ip: 192.168.0.1
如果我尝试使用 gomplate 填写 test.tmplt 的内容,如下所示:
gomplate -d k8s=./dev.yaml -f ./test.tmplt -o test.conf
我收到以下错误:
09:42:44 FTL error="template: ./test.tmplt:2: bad character U+002D '-'"
在我看来,它不喜欢模板文件中的“-”符号。任何解决方法?这是预期的行为吗?
编辑 1:感谢@icza 提供的答案,该答案适用于上述示例。但是,如果我将 yaml 文件修改为具有嵌套字段,它似乎会崩溃。
例如
dev.yaml:
kubernetes:
api-advertise-ip: 192.168.0.0
测试.tmplt:
localAPIEndpoint:
advertiseAddress: {{ index (datasource "k8s") "kubernetes.api-advertise-ip" }}
在这种情况下,输出:
gomplate -d k8s=./dev.yaml -f ./test.tmplt -o test.conf
是 :
localAPIEndpoint:
advertiseAddress: <no value>
万千封印
相关分类