Как настроить Pivotal Cloud Foundry Config Server для использования нескольких путей поиска из моего git-репо? - PullRequest
0 голосов
/ 15 мая 2019

У меня есть локальный сервер конфигурации, и он работает нормально с настройками конфигурации yml, как это?

spring:
  cloud:
    config:
      server:
        git:
          uri: https://github.com/xxx/xxxxx
          search-paths:
          - 'kenya*' 
          - 'tanzania*' 
          - 'uganda*' 
          - 'congo*'
          - 'zimbabwe*'

В моем локальном проекте я могу получить доступ ко всем этим репозиториям, как

http://localhost:8888/uganda/dev

Возвращает правильные файлы с ожидаемым выбранным профилем.

Однако, когда я настраиваю сервер Pivotal Config, я получаю только свойства по умолчанию, независимо от того, какие параметры я добавляю к пути.

Что-то вроде этого https://configserver.cfapps.io/uganda/dev возвращает только значение по умолчаниюСвойства в корне репозитория.

Как использовать флаг

SearchPaths здесь https://docs.run.pivotal.io/spring-cloud-services/config-server/configuring-with-git.html

, чтобы добавить все мои подпапки

1 Ответ

1 голос
/ 20 мая 2019

Если вы используете облачные службы Pivotal Spring, вы можете создать службу, используя несколько searchPaths, например:

cf create-service -c '{ "git": { "uri": "https://github.com/dmikusa-pivotal/cook-config.git", "label": "search-paths", "searchPaths": "dev,prod" } }' cook-config-server

Аргумент searchPaths просто принимает список путей поиска, разделенных запятыми /pattern.

В указанном вами хранилище должны быть папки верхнего уровня с именами dev и prod.Сервер конфигурации затем вернет <app-name>.properties (все остальные варианты, которые он поддерживает) из папки пути поиска.

Вы можете проверить, что вы получаете данные с несколькими путями поиска, выполнив такую ​​команду, какthis:

curl -k -H "Authorization: bearer $(curl -k -s -X POST 'https://p-spring-cloud-services.uaa.<system_domain>/oauth/token' -d 'grant_type=client_credentials&client_id=<insert client id>&client_secret=<insert client_secret>' | jq .access_token | cut -d '"' -f 2)" <insert uri>/cook/prod

Вам необходимо заменить <system_domain> системным доменом для своего фундамента, <insert client id> и <insert client secret> на идентификатор клиента и секретный ключ вашего экземпляра службы (запустите cf env <app> для приложения, котороеимеет связанный сервер конфигурации SCS для получения этих значений).

Эта команда будет выполнять две вещи.Во-первых, он будет использовать client_id и client_secret для получения токена.Затем токен используется во втором запросе для фактического запроса некоторых данных с сервера конфигурации.

Вы должны увидеть вывод, подобный этому, если вы получаете конфигурацию из нескольких путей поиска (обратите внимание, что есть данные из dev и prod подпапки):

{"name":"cook","profiles":["prod"],"label":null,"version":"5d5a3f26022dd00becdbad855c7d27ae530685f7","state":null,"propertySources":[{"name":"https://github.com/dmikusa-pivotal/cook-config.git/prod/cook.properties","source":{"cook.special":"Prod Config"}},{"name":"https://github.com/dmikusa-pivotal/cook-config.git/dev/cook.properties","source":{"cook.special":"Dev Config"}},{"name":"https://github.com/dmikusa-pivotal/cook-config.git/cook.properties","source":{"cook.special":"Not in Folder config"}}]}

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...