confd icon indicating copy to clipboard operation
confd copied to clipboard

xxx.toml 配置文件是否支持dest目录路径动态从etcdv3 获取

Open zhenliangliang opened this issue 1 year ago • 3 comments

我使用配置文件 在[template] dest = "/tmp/{{getv "/nginx/path/server_name" }}" 动态从etcd获取目标路径值,但无法成功,chatgpt说可以实现,这个能支持吗

zhenliangliang avatar Mar 18 '23 09:03 zhenliangliang

我使用配置文件 在[template] dest = "/tmp/{{getv "/nginx/path/server_name" }}" 动态从etcd获取目标路径值,但无法成功,chatgpt说可以实现,这个能支持吗

报错信息:ERROR open /tmp/{{getv "/nginx/path/.server_name" }}236432004: no such file or directory

zhenliangliang avatar Mar 18 '23 09:03 zhenliangliang

不要听AI跟你胡说八道,他又不背KPI。confd的template文件和template resource文件是分离的,只有template文件当中可以使用go template语法,而dest是template resource的一部分。你可以尝试将文件输出到固定的位置,在template第一行额外附加一个目标路径例如# dest="/tmp/{{getv "/nginx/path/server_name" }}"或者其他适合处理的格式,然后写一个reload脚本,读取第一行里面的路径之后把文件复制过去,如果需要的话删掉第一行。

hubo1016 avatar Mar 30 '23 03:03 hubo1016

在nginx配置文件中,使用循环来生成server{}代码块也是一样的啊,不用动态生成文件

wuceyang avatar Apr 28 '23 08:04 wuceyang