segmentio / kubeapply

A lightweight tool for git-based management of Kubernetes configs
MIT License
146 stars 16 forks source link

Comparison to Argocd #16

Open ntorba opened 3 years ago

ntorba commented 3 years ago

Hello kubeapply team!

I am curious in the differences between this tool and argocd (and if they are even reasonable to compare). Argocd can also be used to link cluster state to a github repo.

What was not present in argocd that made building this project a better option?

Thanks

Nick

yolken-segment commented 3 years ago

Thanks for the questions.

This project was actually developed before we knew about Argo CD, so we did not create it based on any shortcomings in the latter.

I've played around with Argo CD a bit, and I think the projects have similar goals, but it seems like the main difference is in the workflows. Kubeapply integrates the change process into the Github pull request process (inspired by Atlantis for Terraform changes), whereas Argo is more of an independent system that syncs Kubernetes clusters with config changes in git repos (independent of how those changes were made). Another difference is that kubeapply is more explicit about the config expansion process; Argo CD supports applying from Helm charts, etc. but it looks like this expansion is done implicitly as part of the app update process.

At this point, Argo CD has more development resources behind it and better documentation, so it's probably the safer and more general of the two choices if you're on the fence. We still actively use kubeapply at Segment, however, and we plan to continue developing it for our use cases in the future.

Hope this helps. I'll also add something to README about this since others will probably wonder the same thing.

ntorba commented 3 years ago

@yolken-segment Thank you!