Consul-Template: зацикливание пары a k/v и использование результата в другом ключе

Имеются ключи Консула:

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 ответ

Решение

Мой коллега Брайан ответил на это в обращении в службу поддержки HashiCorp.

Просто хотел поделиться здесь ответом, чтобы он был полезен и другим. Вот как это можно сделать:

{
{{ range $key, $pairs := tree "flyway/" | explode }}
    {{ $name := $key }}
    {{ range $key, $pairs := tree ($name | printf "service/%s/") | explode }}
        {{ $name}}: {{ $pairs }}
    {{ end }}
{{ end }}
}
Другие вопросы по тегам