{"action":"created","issue":{"url":"https://api.github.com/repos/spring-cloud/spring-cloud-config/issues/383","repository_url":"https://api.github.com/repos/spring-cloud/spring-cloud-config","labels_url":"https://api.github.com/repos/spring-cloud/spring-cloud-config/issues/383/labels{/name}","comments_url":"https://api.github.com/repos/spring-cloud/spring-cloud-config/issues/383/comments","events_url":"https://api.github.com/repos/spring-cloud/spring-cloud-config/issues/383/events","html_url":"https://github.com/spring-cloud/spring-cloud-config/issues/383","id":151252394,"number":383,"title":"Loading multiple Git Repos at the same time","user":{"login":"marcellodesales","id":131457,"avatar_url":"https://avatars.githubusercontent.com/u/131457?v=3","gravatar_id":"","url":"https://api.github.com/users/marcellodesales","html_url":"https://github.com/marcellodesales","followers_url":"https://api.github.com/users/marcellodesales/followers","following_url":"https://api.github.com/users/marcellodesales/following{/other_user}","gists_url":"https://api.github.com/users/marcellodesales/gists{/gist_id}","starred_url":"https://api.github.com/users/marcellodesales/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marcellodesales/subscriptions","organizations_url":"https://api.github.com/users/marcellodesales/orgs","repos_url":"https://api.github.com/users/marcellodesales/repos","events_url":"https://api.github.com/users/marcellodesales/events{/privacy}","received_events_url":"https://api.github.com/users/marcellodesales/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/spring-cloud/spring-cloud-config/labels/duplicate","name":"duplicate","color":"cccccc"}],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2016-04-26T22:15:08Z","updated_at":"2016-05-25T21:40:07Z","closed_at":"2016-05-05T07:20:44Z","body":"Hi there, we have a requirement to load settings in different layers... \r\n\r\nShared Properties\r\n----\r\n\r\n* Shared settings for all Services: \r\n * Config Git Repo: `github.com/service/shared-config`\r\n * application.properties: All the general properties shared across \r\n * Core capability team can change settings at any time, and work independently.\r\n\r\nService X\r\n-----\r\n\r\n* Service X: Must load its own properties plus the Shared.\r\n * Config Git Repo: `github.com/service/x-config`\r\n * x.properties\r\n * x-qa.properties\r\n * X capability team can work on their own properties isolated, but inherit, reuse and override the core capabilities.\r\n\r\nService Y\r\n-----\r\n\r\n* Service Y: Must load its own properties plus the Shared.\r\n * Config Git Repo: `github.com/service/y-config`\r\n * application.properties\r\n * y.yaml\r\n * Y capability team can work on their own properties isolated, but inherit, reuse and override the core capabilities.\r\n\r\nDesired Behavior\r\n-------\r\n\r\n* Is it possible that the server could return all properties across different git repos for a given `${application}/{$profile}` combo? \r\n\r\n* My desired behavior is that the call to the `x/qa` combo would return the following:\r\n\r\n```json\r\n$ curl localhost:8888/x/qa\r\n{\r\n   \"name\":\"application\",\r\n   \"profiles\":[\r\n      \"qa\"\r\n   ],\r\n   \"label\":\"master\",\r\n   \"propertySources\":[\r\n      {\r\n         \"name\":\"git@github.com:service/x-config.git/x-qa.properties\",\r\n         \"source\":{\r\n            \"app.color\":\"red\",\r\n            \"env\":\"qa\",\r\n            \"total\":\"nice\"\r\n         }\r\n      },\r\n      {\r\n         \"name\":\"git@github.com:service/x-config.git/x.properties\",\r\n         \"source\":{\r\n            \"app.color\":\"red\",\r\n            \"total\":\"nice\"\r\n         }\r\n      },\r\n      {\r\n         \"name\":\"git@github.com:service/shared-config.git/application.properties\",\r\n         \"source\":{\r\n            \"app.color\":\"blue\",\r\n            \"app.enabled\":\"true\"\r\n         }\r\n      }\r\n   ]\r\n}\r\n```\r\n\r\n* Similarly, a call to the Y application would result in the following:\r\n\r\n```json\r\n$ curl localhost:8888/y/default\r\n{\r\n   \"name\":\"application\",\r\n   \"profiles\":[\r\n      \"qa\"\r\n   ],\r\n   \"label\":\"master\",\r\n   \"propertySources\":[\r\n      {\r\n         \"name\":\"git@github.com:service/y-config.git/y.yaml\",\r\n         \"source\":{\r\n            \"app.color\":\"blue\",\r\n            \"env\":\"default\"\r\n         }\r\n      },\r\n      {\r\n         \"name\":\"git@github.com:service/y-config.git/application.properties\",\r\n         \"source\":{\r\n            \"total\":\"cool\",\r\n            \"app.enabled\":\"false\"\r\n         }\r\n      },\r\n      {\r\n         \"name\":\"git@github.com:service/shared-config.git/application.properties\",\r\n         \"source\":{\r\n            \"app.color\":\"blue\",\r\n            \"app.enabled\":\"true\"\r\n         }\r\n      }\r\n   ]\r\n}\r\n```"},"comment":{"url":"https://api.github.com/repos/spring-cloud/spring-cloud-config/issues/comments/221716325","html_url":"https://github.com/spring-cloud/spring-cloud-config/issues/383#issuecomment-221716325","issue_url":"https://api.github.com/repos/spring-cloud/spring-cloud-config/issues/383","id":221716325,"user":{"login":"marcellodesales","id":131457,"avatar_url":"https://avatars.githubusercontent.com/u/131457?v=3","gravatar_id":"","url":"https://api.github.com/users/marcellodesales","html_url":"https://github.com/marcellodesales","followers_url":"https://api.github.com/users/marcellodesales/followers","following_url":"https://api.github.com/users/marcellodesales/following{/other_user}","gists_url":"https://api.github.com/users/marcellodesales/gists{/gist_id}","starred_url":"https://api.github.com/users/marcellodesales/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marcellodesales/subscriptions","organizations_url":"https://api.github.com/users/marcellodesales/orgs","repos_url":"https://api.github.com/users/marcellodesales/repos","events_url":"https://api.github.com/users/marcellodesales/events{/privacy}","received_events_url":"https://api.github.com/users/marcellodesales/received_events","type":"User","site_admin":false},"created_at":"2016-05-25T21:40:07Z","updated_at":"2016-05-25T21:40:07Z","body":"@dragontree101 Yeah, with a single repo that's simpler...\r\n\r\nServer Config\r\n----\r\n\r\nStart a config server with the following config... For instance, two teams: `ttu` and `dancing` in the search paths.\r\n\r\n```yml\r\ninfo:\r\n  component: Config Server\r\nspring:\r\n  application:\r\n    name: configserver\r\n  jmx:\r\n    default_domain: cloud.config.server\r\n  cloud:\r\n    config:\r\n      server:\r\n        git:\r\n          uri: git@github.company.com:org/config-repo.git\r\n          searchPaths: ttu,dancing\r\n          \r\nmanagement:\r\n  context_path: /admin\r\n```\r\n\r\nGit Repo: Root Structure\r\n----\r\n\r\n* application.properties or application.yml works are global config\r\n\r\n![screen shot 2016-05-25 at 2 34 12 pm](https://cloud.githubusercontent.com/assets/131457/15557136/3a61994e-2286-11e6-8497-fd2098e7c92a.png)\r\n\r\nGit Repo: search Paths\r\n-----\r\n\r\n* Define the app with the same name, and the profiles you need...\r\n* `ttu` app\r\n* teams: `ttu-android`, `ttu-ios`\r\n\r\n![screen shot 2016-05-25 at 2 34 27 pm](https://cloud.githubusercontent.com/assets/131457/15557151/56236cac-2286-11e6-8125-9be89f807cef.png)\r\n\r\nNote tha there's a directory called `ios`, but that does not work..."}}
{"actor":{"display_login":"marcellodesales"}}