-
Notifications
You must be signed in to change notification settings - Fork 5.8k
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
Gracefully handle k8s resource size limit for large Application CRs #14486
Comments
To avoid API breaking changes another suggestion could be:
With this approach the great majority of the users wouldn't be impacted as the new fields would just be used when the CRD limit is exceeded. |
Yep, I like this. One question:
How would you propose to perform that check? |
You have the computed |
Not necessarily. Some places, e.g. persisting operation state, calculate only a patch: argo-cd/controller/appcontroller.go Line 1250 in 15eeb30
Even if we know the full status field contents, I see a few potential problems:
I'd suggest a lightweight, configurable heuristic like "if it manages > N resources, compress." |
Yes.. I like that too. |
Related, we are looking to enable argo with a large scale of applications soon (5k+) and we're concerned about hitting GKE limits where any single resource type in etcd must be < 800MB. An option to always compress statuses, regardless of number of resources, would be nice. Google documentation for reference, I assume other cloud vendors would have similar limits. https://cloud.google.com/kubernetes-engine/docs/concepts/planning-large-clusters |
Any further updates on when ArgoCD will be able to implement the improvements? |
I just want to highlight how important it is for ArgoCD to handle Apps with large numbers of resources. I like the Idea of compressing |
We faced the same issue, do we have any idea what to do?( |
Summary
Intuit had an app fail to sync when it hit ~3k resources managed in a single App. I believe the problem was that it attempted to update the sync status, which contained the status of all 3k resources, and we hit the k8s resource size limit.
We should provide more ways for the user to sacrifice certain features/conveniences to allow the resource to fit within the size limit. Ideas below.
Motivation
3000 really isn't that big a number.
Proposal
The text was updated successfully, but these errors were encountered: