spring-cloud / spring-cloud/spring-cloud-config

Optionally force update of git repositories

Open
#2,249 3 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement help wanted
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 refreshRate setting at all; wouldn't the client then on refresh still potentially get the old config?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.