Search code examples
spring-bootspring-cloudspring-cloud-config

Clone only specific path - Spring Cloud Config Server


Is there any way by chance to make spring config server to clone only specific path instead of whole git repo? When I'm running it on production I may not want my entire code base repository to be cloned to some location as it is always a risk. I've done my research and couldn't figure out ways to clone only specific paths of git repo.

One solution is to host the configurations in a seperate repo. But that would defeat the purpose of one code many deploys suggestion of 12factor.net.

Another possibility is to copy the properties into config server's classpath and then to use native profile to load them. But this would defeat the purpose of Spring ConfigServer.

Also kindly do clarify What would be the best way to run spring config server on a production?


Solution

  • You should be separating your code base from your configuration settings.

    Repo 1: Your App Code

    Repo 2: Your Spring Cloud Config Server Code

    Repo 3: Your configuration settings

    When you're deploying, you're deploying the code. Not the configuration. A configuration change should not require a new deployment. A new deployment might require an updated configuration change, but the two are generally decoupled.

    Configuration can be dynamically updated while code is running. This is completely separate from updating code and deploying the app. That's the whole point of externalized configuration.

    TL;DR: You're looking at "one code many deploys" wrong. Configuration is externalized.