-
Notifications
You must be signed in to change notification settings - Fork 65
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 a true GitOps workflow #264
Comments
Draft was explicitly created as a Day 0 tool for rapid prototyping and trying out k8s quickly. This feature request seems like it wants a separate tool entirely. As someone who has used GitOps, it is absolute overkill for someone new to the k8s/cloud native space (the target audience of Draft). In your request you even mention Day 1/2+, which is very much outside of the current scope of Draft (ofc the other maintainers may think differently). |
I strongly believe in a great day 0 experience and IMO it should be possible the GitOps aspects to be slipstreamed/hidden from the user. On day 0 they shouldn't have to care that it is using GitOps. The end result should be the same - they get the repo & k8s yaml scaffolding, pipeline to build the container, and the k8s things showing up on the cluster. The difference is they will greatly appreciate not going into a dead-end when they try to scale up to more clusters and apps (e.g. pipeline explosion) and realize they have to re-do everything with GitOps. |
I'm of the opinion that Draft should be a tool in a toolbox rather than a swiss army knife. We've talked about Draft supporting GitOps very early on in the Draft lifecycle. It was pretty clear we were targeting different users. Nothing is stopping a user from running Does jamming more functionality (and bloat) into Draft really accomplish anything when other tools exist? I'm not sure. This is probably a better discussion for @davidgamero and @qpetraroia. I only have context on the original intent of this incarnation of Draft. |
Sure, nothing is stopping people from doing this. The big problem is these two patterns are in opposition to each other. Draft sets up a pipeline which pushes to the Kubernetes cluster. GitOps still needs a pipeline to build the image, but it should not have a pipeline which pushes to the cluster present alongside the agent which pulls from git and applies it. At a minimum, perhaps draft can have a "GitOps friendly" workflow? |
What would a "GitOps" friendly workflow look like? Isn't that just the existing |
Updating ✔ helm Then people would be free to use their own GitOps implementation (Argo/Flux) without it being a conflict. |
That workflow seems reasonable to me. |
I agree with allowing users to opt out of the manifest applying step in the workflow if they are using GitOps, so we could add a prompt/step to allow restricting the generated workflow to just the build/push for the generated manifests. |
Is your feature request related to a problem? Please describe.
As a user, I'd like to be able to utilize true pull-based GitOps workflows for Day 1/2+ operations after getting started. The existing push-based model does not scale as the number of applications, teams, and clusters grow.
Mention what platform you want to support the new feature
Has implications possibly across all of: az-extension, oss draft, and vscode.
Describe the solution you'd like
draft create
provisions a GitOps-friendly/planned repo structure and optionally wraps the structure in ArgoCD application(Set).draft setup-gh
or likely alternative command bootstraps the cluster with ArgoCD agent sync'ed to the repo specifieddraft generate-workflow
still sets up the pipeline to build the container image, but it does not authenticate/kubectl apply
push down to the cluster. The ArgoCD agent in the previous step will automatically install the newly created container image after it is merged into the proper git directory as specified previously.Describe alternatives you've considered
https://github.com/gitops-bridge-dev/gitops-bridge-argocd-control-plane-template
https://github.com/argoproj-labs/argocd-autopilot
https://github.com/alexellis/arkade?tab=readme-ov-file#catalog-of-clis -- ArgoCD
The text was updated successfully, but these errors were encountered: