Closed fritzduchardt closed 9 months ago
Caching does need to be explicitly enabled and would only benefit OCI Images using shasum references today. The thoughts around this are documented here: https://carvel.dev/vendir/docs/v0.34.x/sync/#caching
I think a fundamental rule that we are trying to follow is that we want to cache resources if they are referred to in an immutable manner.
Trying to understand the problem/your use case better:
You have a software deployed which leverages vendir
to pull contents (in your use case it is pulling helm charts, OCI images and git repos) for hundreds of application.
Every time the software runs, it executes vendir sync for each application to pick up changes in case the corresponding vendir.yaml was modified.
Does your application have logic to check if vendir.yaml is modified and then only run vendir sync
for that? Because as per my understanding vendir does not check either vendir.yaml has modified or not. It just read the file and do its job.
This slows down the process tremendously and is mostly unnecessary, since we usually only modify one vendir.yaml at the time leaving the other untouched.
What I can understand is, this is getting slow down as it is trying to sync contents for all of your applications but your expectation is that it should try to sync only for modified vendir.yaml.
@fritzduchardt can you please help me either I understood your use case and problem correctly or not?
This issue is being marked as stale due to a long period of inactivity and will be closed in 5 days if there is no response.
This issue is being marked as stale due to a long period of inactivity and will be closed in 5 days if there is no response.
For the record: this issue was superseded by #278 and is being worked on in #279.
Describe the problem/challenge you have We have developed a deployment software that leverages
vendir
to pull Helm Charts, OCI Images and Git Repos for hundreds of applications. Every time the software runs, it executesvendir sync
for each application to pick up changes in case the correspondingvendir.yaml
was modified. This slows down the process tremendously and is mostly unnecessary, since we usually only modify onevendir.yaml
at the time leaving the other untouched.Describe the solution you'd like The issue could be solved by an optional synchronization mode that only synchronizes, if the last vendored files are not in line with the release versions set in the corresponding
vendir.yaml
.Possibly this feature could be using the lock file as a record of the versions last synced and a re-sync only, if the
tags
in the lock file diverge from therefs
invendir.yaml
.Also, on could ensure that caching only takes effect for
refs
that follow semantic version or other standardized version formats.Naturally, caching only works, if releases are stable, which is the case with our applications. If they were not, we would see this as an issue with the release process rather than vendir.
Vote on this request
This is an invitation to the community to vote on issues, to help us prioritize our backlog. Use the "smiley face" up to the right of this comment to vote.
👍 "I would like to see this addressed as soon as possible" 👎 "There are other more important things to focus on right now"
We are also happy to receive and review Pull Requests if you want to help working on this issue.