spring-cloud / spring-cloud/spring-cloud-config
Optionally force update of git repositories
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 2k
- Forks
- 1.3k
- Avg merge
- 2d 59m
- Merged PRs (30d)
- 16
Description
Is your feature request related to a problem? Please describe.
I want to use the refreshRate property for 2 reasons:
- keep load on our bitbucket server low (it's provided externally and unfortunately they don't seem to like a lot of requests)
- improve performance for clients (as we don't have to go back and forth to bitbucket every request but only once every x minutes)
Unfortunately, there are also scenario's where you need an immediate refresh. Specifically, we have cicd pipelines that push a new tag to the config repo, and right after that a pod is spun up which will try to fetch that specific config.
Describe the solution you'd like
Possible solutions:
- Change the refresh logic, such that when you are inside the refreshRate window, but a tag or branch is not available in the cloned repo, it tries to update from the remote anyway (this might result in pretty obfuscated behavior, not sure I like this)
- Include a parameter on the endpoint to force update of the repository. If you request a config with that parameter
?force-update=true, spring-cloud-config-server should always.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
- I've looked into using sping-cloud-config-monitor, however, as I understand it this will only send a notification to any connected clients that there updates, it will not refresh the repo. I may be wrong here. If I'm right, this does make me wonder how this feature works together with the
refreshRatesetting at all; wouldn't the client then on refresh still potentially get the old config?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing how refreshRate is applied to Git repository access and how configuration requests handle query parameters. Review the described interaction with spring-cloud-config-monitor. Done should mean a documented force-update request reliably refreshes the repository before returning the requested configuration, without changing normal refreshRate behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- git, java, spring-boot
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100