Bootstrap для конкретного профиля Spring Cloud Vault

У меня есть приложение Spring Boot, и я хотел бы загружать конфигурации из Vault на основе профиля, который я использую. В настоящее время у меня есть 2 профиля (dev, prod). Мой профиль Dev использует базу данных H2, а профиль Prod использует базу данных Posgres. Запуск профиля разработчика загружает правильную конфигурацию из Vault, но запуск с профилем Prod, похоже, каким-то образом пропускает его и не смотрит в Vault.

bootstrap.yaml

spring:
  application:
    name: my-app
  profiles:
    active:
  cloud:
    vault:
      host: localhost
      port: 8200
      scheme: http
      uri: http://localhost:8200
      connection-timeout: 5000
      read-timeout: 15000
      authentication: TOKEN
      token: 00000000-0000-0000-0000-000000000000
      kv:
        enabled: true
        backend: secret
        default-context: my-app/dev
      fail-fast: false

bootstrap-prod.yaml

spring:
  application:
    name: gateway
  profiles:
    active: prod
  cloud:
    vault:
      host: localhost
      port: 8200
      scheme: http
      uri: http://localhost:8200
      connection-timeout: 5000
      read-timeout: 15000
      authentication: TOKEN
      token: 00000000-0000-0000-0000-000000000000
      kv:
        enabled: true
        backend: secret
        default-context: my-app/dev
      fail-fast: false

Например, запуск команды gradle загрузит конфигурацию из хранилища. Но запуск gradle -Pprod не позволяет загрузить правильную конфигурацию из Vault.


person MSRahman    schedule 27.05.2020    source источник


Ответы (1)


попробуйте этот синтаксис, чтобы активировать свой профиль при использовании gradle:

./gradlew clean bootRun --args='--spring.profiles.active=prod'
person Community    schedule 16.09.2020