Не могу прочитать служебную мету с консул-шаблоном

У меня есть тестовая служба, зарегистрированная в Консуле со следующим определением службы:

{
  "name": "web",
  "tags": ["web1"],
  "address": "example.com",
  "meta": {
    "meta": "cluster",
    "acl": "host_test",
    "cluster": "test_cluster"
  },
  "port": 8000
}

И я хочу загрузить эту информацию в конфигурацию HAProxy, используя consul-template. Я могу получить адрес и порт, как указано в документации:

{{ range service "web" }}{{if in .Tags "web1"}}
    server {{.Node}} {{ .Address }}:{{.Port}} cookie A check
    {{ end }}{{end}}

Но я не могу получить метаинформацию. Я думал, что могу получить к нему доступ, используя что-то вроде этого в пределах диапазона обслуживания:

 {{range .Meta}}
  {{.}}{{end}}

Любая идея, как я могу получить ACL или кластер из мета?

0 ответов

Для того, чтобы использовать пары ключ: значение из мета-карты, вам нужно использовать index, Кроме того, мета-карта на сервисе называется .ServiceMeta,

Так, например, чтобы получить значение ключа acl в Meta вы бы использовали:

{{index .ServiceMeta "acl"}}
Другие вопросы по тегам