After spending some time digging into GitOps—reading docs, I wanted to share what I’ve learned. If you’re new to GitOps, here’s what stood out to me, what’s worth trying, and what you can skip (at least for now).
What is GitOps, Really?
GitOps is all about managing your infrastructure and application deployments using Git as the single source of truth. Instead of clicking around in cloud dashboards or running manual scripts, you make changes by updating code in a Git repo, and automation tools handle the rest.
Why Bother?
Here’s what I found most compelling about GitOps:
Consistency: Everything’s versioned. You can see who changed what, and when.
Rollback: If something breaks, just revert the commit. I tested this myself and it really does make rollbacks painless.
Collaboration: Teams can review and discuss changes before they go live. This came up a lot in the conversations I had with engineers using GitOps in their workflow.
The Basic Workflow
Based on my own experiments, here’s how a typical GitOps workflow looks:
You make a change (like updating a Kubernetes deployment YAML) and push it to your Git repo.
A GitOps tool (I tried Argo CD, but Flux is another popular choice) notices the change and applies it to your cluster.
Automation keeps things in sync. If someone changes something manually, the tool will usually revert it back to what’s in Git.
What You Actually Need to Try GitOps
From setting this up myself, you really only need three things:
A Git repo (GitHub, GitLab, whatever you prefer).
A Kubernetes cluster (I used Minikube locally, but you can use kind or a cloud provider).
A GitOps tool (Argo CD was my starting point; Flux is another solid option).
That’s it. You don’t need a huge setup to get started.
What to Put in Your Repo
Here’s what I found works best to keep things organized:
Kubernetes manifests: Deployments, Services, ConfigMaps, etc.
Helm charts: If you’re using Helm, store your chart definitions here.
Documentation: A README explaining what’s what and how to use it. I learned the hard way that a good README saves a lot of confusion later.
What to Skip (for Now)
Based on both my research and a few rookie mistakes, here’s what you can safely ignore when starting out:
Overly complex multi-repo setups.
Custom controllers or operators—unless you really need them.
Trying to automate everything on day one. Start small and build up.
A Simple Example
Here’s a quick example I tried myself to deploy a basic web app to Kubernetes using GitOps:
Write your deployment YAML and push it to your repo.
Install Argo CD in your cluster.
Point Argo CD at your repo.
Watch as Argo CD syncs your cluster to match what’s in Git.
If you want to update your app, just change the YAML and push again. Argo CD will handle the rest.
Common Questions
1) Do I need to know Kubernetes?
Yes, at least the basics. From everything I’ve seen and tried, GitOps is mostly used with Kubernetes right now.
2) Is GitOps only for big teams?
Nope. Even solo projects can benefit from versioned, automated deployments. I’ve used it on my own side projects and found it helpful.
3) What if something goes wrong?
Check your Git history, revert the change, and let your GitOps tool sync things back. This saved me more than once during my testing.
Conclusion
GitOps isn’t magic, but it really does make managing infrastructure a lot less painful. Start with a simple project, keep your repo clean, and let automation do the heavy lifting. Once you get the hang of it, you’ll wonder how you managed deployments any other way.
If you want more examples or guides, check out the rest of the site. I’ll keep sharing what I learn as I go. Good luck!