Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync Cache that relies on release versions #274

Closed
fritzduchardt opened this issue Jul 11, 2023 · 6 comments
Closed

Sync Cache that relies on release versions #274

fritzduchardt opened this issue Jul 11, 2023 · 6 comments
Labels
carvel-triage This issue has not yet been reviewed for validity enhancement This issue is a feature request stale This issue has had no activity for a while and will be closed soon

Comments

@fritzduchardt
Copy link
Contributor

fritzduchardt commented Jul 11, 2023

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 executes vendir sync for each application to pick up changes in case the corresponding vendir.yaml was modified. 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.

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 the refs in vendir.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.

@fritzduchardt fritzduchardt added carvel-triage This issue has not yet been reviewed for validity enhancement This issue is a feature request labels Jul 11, 2023
@100mik
Copy link
Contributor

100mik commented Jul 12, 2023

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

@100mik
Copy link
Contributor

100mik commented Jul 12, 2023

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.

@renuy renuy moved this to To Triage in Carvel Jul 12, 2023
@kumaritanushree
Copy link
Contributor

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?

@github-actions
Copy link

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.

@github-actions github-actions bot added the stale This issue has had no activity for a while and will be closed soon label Aug 23, 2023
@kumaritanushree kumaritanushree removed the stale This issue has had no activity for a while and will be closed soon label Aug 23, 2023
@github-actions
Copy link

github-actions bot commented Oct 3, 2023

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.

@github-actions github-actions bot added the stale This issue has had no activity for a while and will be closed soon label Oct 3, 2023
@github-actions github-actions bot closed this as completed Oct 8, 2023
@github-project-automation github-project-automation bot moved this from To Triage to Closed in Carvel Oct 8, 2023
@Zebradil
Copy link
Member

For the record: this issue was superseded by #278 and is being worked on in #279.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
carvel-triage This issue has not yet been reviewed for validity enhancement This issue is a feature request stale This issue has had no activity for a while and will be closed soon
Projects
Archived in project
Development

No branches or pull requests

4 participants