-
Notifications
You must be signed in to change notification settings - Fork 5.9k
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
Support helm release instead of helm template #8591
Comments
May be it's could be possible to do with configManagementPlugins |
From the chart design end of things, use of Simply using |
+1 |
This behavior of not using |
Hi I want to point out a workaround and play a bit of devil's advocate to point out a reason not to implement your feature / why the current implementation / doing nothing might be better than what you're suggesting: Workaround:
(Disclaimer: I like ArgoCD more than Flux v2 to the point where I've written a blog post, https://www.doit-intl.com/avoid-fluxcd-for-gitops/, actively encouraging people to consider avoiding Flux v2. That being said I'm aware that ArgoCD isn't perfect / universally better than Flux v2. My primary reason for liking ArgoCD > FluxCD is purely from a reliability standpoint / SRE(site reliability engineer) perspective. And I mean SRE in terms of simpler software solutions are less buggy/more reliable, vs complex things like istio.) Devils Advocate of why the current approach could be considered best: I've run into rare edge cases when using the Helm CLI (v2 and v3) and FluxCD(Flux v2).
Why I'm not a fan of the helm cli approach: |
It would be nice to have feature in the tool than switch the tool. If people would like to use another tool, they won’t ask here for the feature. |
Crossposting my comment from the other thread. +1, IIRC Helm v3 is client side only and have no server components. In theory ArgoCD could support Helm deployments (still could keep using Edit: Helm has a native Golang SDK which would allow ArgoCD to integrate with Helm natively. |
Another thing to note here is this is intuitively what a beginner would expect argocd to be doing. I was surprised when I didn't see a helm release in my namespace. |
I do totally agree, beginners expect argo to use Helm lifecycle. It may be a choice to the user to want to sync with helm upgrade/install or helm template. That would be even more clear for understanding what to expect. |
I actually prefer it that Argo CD only uses |
The surprises you get with unsupported features for a lot for 3rd part charts is huge (of course questionable if random values & lookup comply with gitops) #14944 #14943 Using helm template to deploy or install helm charts in the first place is questionable IMO.
While I agree on the “too much part” Picking up the “agnostic” idea: Does ArgoCD support plugins for Sync & Deploy? Having “helm template” in the core code already ties it to helm |
It’s not that Argo CD “doesn’t support” those functions—Argo CD will render your template and have it generate random data just fine—it’s that these functions, when working as intended, conflict with Argo’s GitOps model. But it’s not Argo’s job to protect you from weird things that happen in 3rd party Helm charts. As for Argo using Helm is a templating tool (with the chart model) but it’s also very opinionated on how apps are deployed, with its Releases and rollbacks and whatever. I think Argo is correct to support Helm’s template features and not its deployment features. |
Has anyone explored the possibility of using a helm post-processor to render the template rather than just |
Since it wasn't mentioned here yet, there is now Helm functionality to enable |
Not using e.g.
-- I'm actually trying to find a solution with Related |
A question is: |
A major thing that is missing is the ability to |
Argo CD has partial support for Helm hooks: https://argo-cd.readthedocs.io/en/stable/user-guide/helm/#helm-hooks
Argo CD can do cascading deletion: https://argo-cd.readthedocs.io/en/stable/user-guide/app_deletion/#about-the-deletion-finalizer
Argo CD has some diffing capability with |
Yah, it's still not ideal when developing charts in Helm though. It suffers from the same problems as I stated already except now I need to download and configure yet another tool on top of things. I think the root of the problem is that it is just clunky, not intuitive and generally does not work well when having to jump between tools to get things done that the original tool is already providing. Given how ubiquitous Helm is, it would make sense to provide the option to support it natively. |
The problem is that Argo CD and Helm are just different tools with different approaches to the problems of development, deployment, secret management, etc. If Argo CD were to provide all of Helms features exactly as Helm provides them, then Argo CD would be a very different product (with probably a lot more code and complexity). By taking the Helm features that fit within Argo CD's existing approach and leaving the parts that don't fit, we are able to provide a coherent experience across multiple config management tools instead of just one. |
One thing I miss from argocd not having |
This might be a good feature request for Nova, if they could read Argo CD |
I've found that renovate works perfectly for this use case |
Closing for now as there are no active plans to support |
Are you using Flux and Argo CD together? |
@clayrisser Argo CD currently only uses owner references to build the resource tree. People have proposed alternative tree-construction methods (for example, by setting a label), but none of those proposals currently have traction. |
@davidham yes I am. I have to use flux because argocd doesn't correctly support the |
Summary
ArgoCD applies yaml rendered with helm template.
It makes the typical workflow with helm difficult.
We are unable to use helm features like listing releases and showing the diff
Proposal
It's could be better to use helm upgrade --install instead of helm template with apply
The text was updated successfully, but these errors were encountered: