Мы используем облачный конфигурационный сервер Spring с поддерживаемым репозиторием git, чтобы предоставить свойства для тестового профиля. Мы получили требование переместить наши ключи в хранилище (hashicorp) и сохранить обычные свойства в нашем файле свойств, как обычно.
До создания хранилища мы передавали ключи через системное свойство (с использованием -Dxxx=yyy
), которое было загружено как обычный источник свойств, и приложение работает должным образом.
Теперь у меня должны быть составные источники свойств, которые можно получить одновременно из файла свойств и из хранилища. Я не уверен, как одновременно извлекать свойства из хранилища и git и предлагать их клиентам весенней облачной конфигурации.
Я покопался в документации и обнаружил что у нас может быть репозиторий составной среды, однако я не могу заставить работать хранилище и git одновременно.
Я пробовал несколько вещей, например, помещал такие свойства:
spring.cloud.config.server.git.uri=file:///E:/Project/git/myappdata
spring.cloud.config.server.vault.host=127.0.0.1
spring.cloud.config.server.vault.port=8200
spring.cloud.config.server.vault.scheme=http
spring.cloud.config.server.vault.backend=secret
spring.cloud.config.server.vault.defaultKey=myapp
Также тестировался с использованием весеннего облачного хранилища, и я мог получить секреты, однако они не предоставляются моим клиентам.
Пытался использовать реализацию интерфейса EnvironmentRepository
, но это сделано для создания нового репозитория (и я просто хочу добавить 1 свойство хранилища в существующий предоставленный репозиторий на основе git).
И собирался использовать весеннее событие ApplicationEnvironmentPreparedEvent и попытался динамически добавить свойство хранилища.
Думаю, я что-то не замечаю. Знаете ли вы, как правильно прочитать секрет хранилища и добавить его как свойство обычного файла свойств?