Consul-Template:在k / v对上循环并在另一个密钥中使用结果

时间:2017-08-15 21:57:22

标签: consul-template

鉴于领事键:

flyway/tweedle/server: postgres
flyway/beetle/server: postgres
flyway/battle/server: mysql

service/tweedle/repo: fox/tweedle.git
service/beetle/repo: fox/beetle.git
service/battle/repo: fox/battle.git

我正在尝试遍历顶层,使用密钥在底部集中查找值,使用此代码(不起作用):

{

  {{ range $key, $pairs :=tree "flyway/" | explode }}
        $key: {{ key "service/{{$key}}/repo" }}
  {{ end }}

}

得到:

tweedle: fox/tweedle.git
beetle: fox/beetle.git
battle: fox/battle.git

1 个答案:

答案 0 :(得分:2)

我的同事Brian在HashiCorp的支持票中回答了这个问题。

只是想在这里分享答案,这样也会让其他人受益。这是如何做到的:

{
{{ range $key, $pairs := tree "flyway/" | explode }}
    {{ $name := $key }}
    {{ range $key, $pairs := tree ($name | printf "service/%s/") | explode }}
        {{ $name}}: {{ $pairs }}
    {{ end }}
{{ end }}
}