Есть такой софт для управления кластером postgres -> Patroni. Patroni управляет нодами через Consul. Соотвественно в номаде у меня есть такой кусок темплейт конфига:
consul:
host: {{ env "attr.unique.network.ip-address" }}
port: 8500
token: {{with secret "consul/creds/postgres"}}{{.Data.token}}{{end}}
register_service: true
т.е. в финальный шаблон попадает токен (созданный vault’ом) который Patroni юзает для коммуникации с нодами через Consul. Все прекрасно работает но блин - этот токен который vault создает протухает
vault.read(consul/creds/postgres): TTL of "768h" exceeded the effective max_ttl of "211h1m32s"; TTL value is capped accordingly
vault.read(consul/creds/postgres): renewer done (maybe the lease expired)
соотвественно в определенный момент связь с базой теряется на 5-10 сек (вотл создает новый токен, триггерит обновление шаблона, шаблон триггерит рестарт сервиса, рестарт сервиса гасит master.postgres.service.consul на эти хз сколько секунд, приложение теряет понимание где у него база и отдает 500ую эту хз сколько секунд); затем все возвращается на круги своя