-
Notifications
You must be signed in to change notification settings - Fork 893
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
What's the proper convention for customizing kubeflow in a maintainable way? #1549
Comments
Issue-Label Bot is automatically applying the labels:
Please mark this comment with 👍 or 👎 to give our bot feedback! |
@mttcnnff This is exactly the reason why we built kubeflow/gcp-blueprint. GCP is now the only platform following this pattern. I'm interested if other platforms want to follow. |
Issue-Label Bot is automatically applying the labels:
Please mark this comment with 👍 or 👎 to give our bot feedback! |
@Bobgy Can you explain a bit more of how this pattern works? I'm on AWS but more than happy to contribute to get this in a better place |
I make use of argo-cd. Here is what I do:
This has the benefit of being git-ops, and means I can make any changes I need without modifying the files in If there is interest, I can put a guide for this on the main Kubeflow docs, as I expect this approach is probably the most generic way to deploy kubeflow if you are not wanting to use one of the vendor's approaches. |
@thesuperzapper this sounds good, at the end of the day you're using kfctl once to generate everything and then from there on using kustomize? Never to run kfctl again? How does this work for different environment? How do you specify which to use for the patchesStrategicMerge? |
@mttcnnff yep, you only use Because the purpose of having multiple environments is usually testing dev/prod, I would recommend having completely seperate folders under a repo to store the Kubeflow app-of-apps:The basic structure is a single repo with a helm chart at its root. This outer chart is an app-of-apps which deploys the various sub kubeflow apps found in the Repo structure for
|
@thesuperzapper Wow thank you so much! This is super enlightening! |
@thesuperzapper what if I do want to edit what's inside the .cache, for instance if I don't want to create an aws-alb-ingress-controller bc I already have one in my cluster? |
@mttcnnff I assume you are using kfctl_aws.v1.1.0.yaml? (Which I see is missing from the I personally comment out resources for installing Also note, Kustomize will never let you remove a resource with a patch, so until we fix up this repos structure, you will have to either create your own |
@thesuperzapper thanks for sharing! this is genius !!!! |
@sajid-moinuddin I will try get this added to the docs on https://www.kubeflow.org/docs/ |
@thesuperzapper looking deeper into it, do you really need to maintain copies of .cache , kustomize charts for dev/stg/prod ? could you have a |
@sajid-moinuddin perhaps you could, but the point of storing the Also note, we make changes to the |
If this is helpful I documented also how I was doing this which I think is close to this as well: |
Hi everyone! With the formation of the Manifests Working Group, the goal is to provide a catalog of kustomize packages that admins/platforms can:
AFAIK, virtually all GitOps tools right now work with kustomize, so integration with 3rd-party tools should be straightforward. |
I created a repository demonstrating the approach mentioned in #1549 (comment). |
With the release of 1.3 and the use of bare Kustomize using Argo CD and referencing the upstream manifests directly (no need to copy them in your repo) has made the deployment and customization of Kubeflow a lot easier. I've created a distribution that I am maintaining. The TL;DR setup is as follows:
|
@davidspek This is excellent! How would you remove an application? For example, what would be the steps to remove Katib? |
@benjamintanweihao In https://github.com/argoflow/argoflow/blob/master/kustomization.yaml you would simply comment out Katib and KNative. |
@davidspek Interesting! I tried commenting out Katib only, however it disappeared on the ArgoUI, but I could still see the pods and other Katib resources being deployed. Also, I was still able to access AutoML from the UI. |
@benjamintanweihao Seems like the deletion didn't propagate. If your on Slack I can help you get those deleted and removed the Katib entry from the central dashboard. It's not difficult but I don't want to hijack this issue. |
So this issue doesn't live forever, I am going to close it here. I think the main outcomes are:
/close |
@thesuperzapper: Closing this issue. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
I understand that you can use kfctl to generate kustomization.yaml files and then edit the generated files in the /kustomize directory but this doesn't seem maintainable as if I rerun kfctl it will overwrite that /kustomize directory, which could be a problem when you want to change the upstream repo from which you pull config for something like an upgrade down the road.
Is there anyway to generate the overall config for the kubeflow deploy using kfctl but to refer to outside kustomize files that wouldn't get thrown out from a rerun? This way I would have my "base deploy" and then my custom configuration and resources on top?
The text was updated successfully, but these errors were encountered: