Inspiration
I wondered how GitOps works. For Kubernetes, deploying by making changes to a remote Github repository sounds cool. After spending a few days, I was able to create a GitOps tool for Kubernetes!
What it does
kagit helps in deployments in your Kubernetes cluster. All manifests for your Kubernetes cluster are stored in a repo, along with a kagit.yml file. Whenever changes in your manifests (deployments, services, etc.) are detected, kagit applies those changes to your Kubernetes cluster.
No need to manually do kubectl apply everytime. Push your code and kagit will take care of it.
How we built it
I used the Kubernetes API and the client-go package. I started by building a basic structure for the project, and then, added functionalities one-by-one.
Challenges we ran into
Server-side apply (https://kubernetes.io/docs/reference/using-api/server-side-apply/#using-server-side-apply-in-a-controller) was the biggest challenge.
Accomplishments that we're proud of
Writing a tool in 2 days!
What we learned
A lot about go-git, Server-Side Apply, etc.
SDKs and libraries used:
- go-git
- client-go
Theme:
Remote Work
kagit makes remote work easy. Developers in a team can push to a repo and kagit automatically takes care of deployments. Hence, developers don't need to fetch the latest changes and manually do kubectl apply everytime, kagit is the magic tool!
Built With
- civo
- client-go
- go
- kubernetes
Log in or sign up for Devpost to join the conversation.