Не могу прочитать служебную мету с консул-шаблоном
У меня есть тестовая служба, зарегистрированная в Консуле со следующим определением службы:
{
"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"}}