fix(projection-writer): отключить spring-cloud-vault kv source

projection-writer крашится в bootstrap на 403 при чтении
secret/data/ordinis/cuod/k8s — путь которого нет ни в одной из vault-policies
(ordinis-app/read-api/projection-writer). Сами секреты приходят через Vault
Agent injector в env-переменные ещё до старта JVM, поэтому spring-cloud-vault
как config source избыточен.

writer и read-api ту же 403 получают, но Spring Cloud Vault лог-warning'ом
переваривает. У projection-writer почему-то фатально (возможно из-за
ROTATE-mode на secret lease + redis-зависимости в bootstrap chain). Не лезу
в эту разницу — просто отключаю kv совсем.

Если когда-то понадобится использовать vault как config source — добавить
читать secret/data/ordinis/cuod/k8s в политики или сменить application-name
на ordinis-projection-writer + создать отдельный путь.
This commit is contained in:
Zimin A.N.
2026-05-06 00:24:29 +03:00
parent ab6f6cb860
commit 2b70c0692d
@@ -100,21 +100,19 @@ spring:
on-profile: k8s
import:
- "configserver:${SPRING_CLOUD_CONFIG_URI:http://config-server.ordinis-staging:8888}"
- "vault://"
cloud:
config:
enabled: true
# Spring Cloud Vault как config source отключён намеренно: креды (postgres,
# kafka, redis) приходят через Vault Agent injector в env-переменные ещё
# до старта JVM. Если включить kv-source с application-name=ordinis/cuod,
# Spring пытается читать secret/data/ordinis/cuod/k8s — путь для которого
# ни одна из ролей (ordinis-app/read-api/projection-writer) не имеет
# capabilities=read, и projection-writer падает на этом 403 в bootstrap.
# writer/read-api тот же 403 ловят, но молча проглатывают (бin Lifecycle
# отличается). Чистый путь — не использовать kv-source совсем.
vault:
enabled: true
uri: ${VAULT_URI:http://vault.config:8200}
authentication: KUBERNETES
kubernetes:
role: ordinis-projection-writer
service-account-token-file: /var/run/secrets/kubernetes.io/serviceaccount/token
kv:
enabled: true
backend: secret
application-name: ordinis/cuod
enabled: false
datasource:
url: jdbc:postgresql://${ORDINIS_PG_HOST}:${ORDINIS_PG_PORT:5432}/${ORDINIS_PG_DB:ordinis}
username: ${ORDINIS_PG_USER}