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

Application controller can run out of disk space on '/dev/shm', when deploying concurrently to a large number of clusters, or with many large manifests #19201

Open
3 tasks done
jgwest opened this issue Jul 24, 2024 · 0 comments · May be fixed by #19202
Assignees

Comments

@jgwest
Copy link
Member

jgwest commented Jul 24, 2024

Checklist:

  • I've searched in the docs and FAQ for my answer: https://bit.ly/argocd-faq.
  • I've included steps to reproduce the bug.
  • I've pasted the output of argocd version.

Describe the bug

At present, Argo CD (via gitops-engine) uses /dev/shm to store temporary files that are passed to kubectl code, such as manifests and cluster credentials. The temp directory logic can be found within pkg/utils/io/io.go of gitops-engine.

However, since /dev/shm is backed by RAM, it has limited size (but has the security advantage of avoiding writes of sensitive info to disk). For many use cases this is not an issue, but, when deploying to a large number of kubernetes clusters, or deploying large k8s manifests, /dev/shm can run out of disk space.

We can/should allow Argo CD users to customize the target output path for application-controller/gitops-engine generated manifests, to allow them to avoid this issue.

I propose we add a new configuration parameter to argocd-cmd-params-cm (and connected to Application Controller Deployment/StatefulSet YAML), that allow users to specify a custom application controller manifest destination path, which will allow application controller to writing to a different path with the container, such as '/tmp'.

See the linked issue in gitops-engine for further details.

This issue has a corresponding issue on gitops-engine: argoproj/gitops-engine#614
And PR: argoproj/gitops-engine#613

To Reproduce

Concurrently deploy to a large number of clusters, or deploy a large number of large manifests: if the concurrent KiB of generated resources exceed /dev/shm size, /dev/shm runs out of space, and an error occurs.

Expected behavior

Users should be able to specify custom Argo CD path/volume to store generated manifests, allowing them to avoid running out of disk space in /dev/shm.

Version

All

@jgwest jgwest added the bug Something isn't working label Jul 24, 2024
@jgwest jgwest self-assigned this Jul 24, 2024
jgwest added a commit to jgwest/argo-cd that referenced this issue Jul 24, 2024
jgwest added a commit to jgwest/argo-cd that referenced this issue Jul 24, 2024
jgwest added a commit to jgwest/argo-cd that referenced this issue Jul 26, 2024
jgwest added a commit to jgwest/argo-cd that referenced this issue Jul 26, 2024
jgwest added a commit to jgwest/argo-cd that referenced this issue Aug 27, 2024
jgwest added a commit to jgwest/argo-cd that referenced this issue Aug 27, 2024
jgwest added a commit to jgwest/argo-cd that referenced this issue Aug 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants