Внешняя конфигурация токена/серверной части Vault для приложения SpringBoot в Pivotal Cloud Foundry

Мне нужно внедрить токен Vault и серверную часть для использования в моем приложении SpringBoot/Cloud, чтобы один и тот же двоичный файл можно было развернуть в разных пространствах Pivotal Cloud Foundry. Например, у меня есть один .jar, я хочу push в Dev, Test, QA, PROD пространства без необходимости перестраивать .jar.

У меня также есть ConfigServer, поддерживаемый репозиторием git, а также User Provided Service, которые могут хранить информацию, но только перемещают проблему экстернализации, но не решают ее. И это вызывает больше проблем, особенно с порядком создания объектов.

Я изо всех сил пытаюсь получить соответствующую информацию, такую ​​​​как vault token и vault backend, чтобы использовать внешние настройки из .jar.

Все примеры, которые я могу найти, используют bootstrap.properties или application.yml.

spring:
  cloud:
    config:
      token: YourVaultToken

и это, очевидно, не сработает, потому что оно встроено в .jar и будет зависеть от среды.

Решения, использующие магические привязки Spring по умолчанию, не будут работать, поскольку мне нужно вручную совершать вызовы с помощью VaultTemplate.

Каков наиболее идиоматический способ внедрить конфигурацию клиента, как подключиться к Убежищу и прочитать секреты с помощью VaultTemplate, где мне не нужно перестраивать .jar для каждой среды.


person Community    schedule 30.01.2019    source источник


Ответы (1)


Это конфигурация весенней загрузки. Вы можете использовать переменные среды (SPRING_CLOUD_CONFIG_TOKEN=xxx) или системные свойства Java (-Dspring.cloud.config.token=xxx). Вы также можете использовать услуги, предоставляемые пользователями на CF.

person spencergibb    schedule 30.01.2019
comment
ни одно из этих предложений не решает проблему подключения к службе хранилища вручную. Просто установка этого токена в ENV не позволяет мне подключиться к хранилищу, есть и другие вещи, которые необходимо установить, backend, uri и т. д. Я пробовал оба, и оба решения имеют подводные камни при последовательности создания объектов. На самом деле это не ответ, а скорее комментарий. - person ; 31.01.2019
comment
Нет, это не работает для использования VaultTemplate вручную. Это работает только для привязки автоматических магических свойств, чего недостаточно для моего сценария. - person ; 01.02.2019
comment
Извините, кажется, вы спрашивали о том, как внедрить токен. Может быть, вы можете объяснить, что вы пытаетесь сделать в вопросе. Вы не упомянули VaultTemplate там. - person spencergibb; 01.02.2019