-
Notifications
You must be signed in to change notification settings - Fork 36
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
Remove hard ArgoCD dependency #110
Comments
@AndersBennedsgaard While I agree that it would be nice to use deployKF without ArgoCD, there are a few things that deployKF uses ArgoCD for, which can't be solved when using a raw manifests directory:
Given the complexity of achieving all this natively in the PS: from my discussions with large companies all around the world, pretty much everyone who is using Kubernetes seriously is using ArgoCD. For this and many other reasons, ArgoCD is how I recommend anyone deploy something as complex as deployKF. Yes, it has its problems, but for better or worse, it is the standard. |
Actually, no, I wouldn't prefer that you spend time on user-facing features. I would prefer that the focus is on the stability and availability of use. But you probably prefer to focus on user-facing features as it is just more fun to work on 😉 But I have to disagree with several things you write.
While I agree that a good way of removing stuff should be possible, is is very easy to just write
As I read it, this script is making sure that all the manifests are correctly applied to the cluster, in the correct order, and verifying that some resources has been pruned?
Same as above
This is just a Helm feature, so ArgoCD isn't really needed for this?
Yes. I've used ArgoCD, and I am not very impressed. It has a very nice developer-friendly UI, and if you don't do pure GitOps then it's a very nice alternative to
While it is probably true that ArgoCD is the most used engine (I am not entirely sure that it is, since a lot of people use them in conjunction), I've worked with a lot of different companies in my role as consultant, and I've only seen the use of ArgoCD once - when I wanted to test it on one of our demo setups. |
@AndersBennedsgaard my comment in #110 (comment) was primarily about why raw manifests wouldn't work. However, it's always been a roadmap item to support FluxCD (given it's the only other widely used K8S CD tool). If you or your customers would benefit from FluxCD support coming sooner, I am very happy to help facilitate such a contribution from you or your team (or others watching this thread). |
I am not actually arguing for full-blown Flux support, but rather removal of the hard ArgoCD dependency. It's fair to have support for ArgoCD, Flux, whatever other system using plugins or some other ways, but there are times where raw manifests are just preferred (such as when using Flux). |
Is a Kubernetes Operator an option? Instead of relying on ArgoCD, a Kubernetes Operator is a Kubernetes Native opportunity to do automated cluster management on the fly. |
I would like to second this request. As a lead engineer on an ML team functioning like a startup and provisioning our own siloed infrastructure for compliance reasons, it really sucks to have to do a complete deployment of a separate product just for a single deployment of something unrelated.. especially because our cluster is used primarily for data manipulation and model development rather than service hosting in production. I understand that this is a very complex deployment but focusing on simpler or built-in solutions to the challenges makes your product more accessible. Any external dependency creates more points of failure and maintenance. Do the benefits really outweigh the cost for every team and every use case? What good are great features on a product nobody wants to go through the struggle of deploying? There is elegance in simplicity. |
Checks
Motivation
ArgoCD is a fine tool deploy stuff to a Kubernetes cluster, but not everybody want to use it (they could be using a different GitOps engine such as Flux, Fleet, etc., or not wanting to use GitOps).
It should be possible to just generate raw Kubernetes manifests as output to a directory, without the ArgoCD dependency.
I think it is fine to keep a guide for using ArgoCD with
deployKF
, and perhaps keep it as a recommendation, but we should not do what KubeFlow has done and add arbitrary dependencies to their platform which aren't actually needed for a lot of people (in my mind, their implementation of Istio is this is the biggest contributor to KubeFlow being hard to install and manage)Implementation
No response
Are you willing & able to help?
The text was updated successfully, but these errors were encountered: