如何设置Pivotal Cloud Foundry Config Server以使用来自git repo的多个搜索路径?

时间:2019-05-15 14:24:14

标签: cloudfoundry spring-cloud-config configserver

我有一个本地配置服务器,并且可以与像这样的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的东西只在仓库的根目录返回默认属性。

如何使用

  

此处https://docs.run.pivotal.io/spring-cloud-services/config-server/configuring-with-git.html

表示的searchPaths

标记要添加我的所有子文件夹吗?

1 个答案:

答案 0 :(得分:1)

如果您正在使用Pivotal Spring Cloud Services,则可以使用多个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参数仅以逗号分隔的搜索路径/模式列表。

您所指向的存储库中应该包含名为devprod的顶级文件夹。然后,配置服务器将从搜索路径文件夹中返回<app-name>.properties(它支持的所有其他所有变体)。

您可以通过运行以下命令来验证您正在接收多个搜索路径中的数据:

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>替换为服务实例的客户端ID和密码(针对运行以下应用程序的应用程序运行cf env <app>有一个绑定的SCS Config服务器来获取这些值。

此命令将做两件事。首先,它将使用client_idclient_secret来获取令牌。然后,在第二个请求中使用令牌,以实际向配置服务器请求一些数据。

如果要从多个搜索路径获取配置,则应该看到这样的输出(请注意devprod子文件夹中的数据):

{"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"}}]}

希望有帮助!