Back to Blog
Kubernetes
GitOps
ArgoCD
Flux
Production
GitOps on Kubernetes Feels Elegant Right Up Until Production Starts Burning
April 3, 2026
8 min read read
GitOps has one of the best stories in modern infrastructure.
Desired state lives in Git. Controllers reconcile reality back to that truth. Drift gets caught. Rollbacks make sense. Auditing improves. Multi-cluster operations stop feeling like an improvised shell-script religion.
That story is not fake.
It is just incomplete.
The more interesting Reddit discussions around GitOps on Kubernetes keep circling the same conflict. The model is elegant when the world behaves. The pain starts when production does not care about elegance, your pipeline is slow, and somebody needs to fix a real outage before the approval queue finishes pretending it is governance.
That is where the GitOps argument gets honest.
## The anti-GitOps crowd is not confused. They are reacting to real operational friction.
One recent DevOps thread asked a question many experienced operators quietly agree with but rarely phrase so bluntly: why are GitOps tools so popular when Helmfile plus CI can feel simpler and more transparent?
The critique was not shallow. It was about the very things that make GitOps devotees defensive. Extra controllers. CRDs. sync logic. new failure modes. awkward debugging. and the persistent feeling that teams still end up bolting conventional CI workflows onto their GitOps setup because reality refuses to fit inside the clean diagram.
If you are operating a small number of clusters with a manageable number of services, that critique is hard to dismiss. Several commenters basically admitted as much. Push-based pipelines can be easier to reason about. `helmfile apply` in CI often feels straightforward. You know what changed, when it ran, and where the credentials live.
But that same thread also exposed why GitOps keeps winning anyway.
One response cut right to the scaling argument: once you have multiple clusters and hundreds of services, a "simple" CI job stops being simple. It becomes a growing pile of logic about which cluster gets what, which parameters apply where, and how to make all of that safe and repeatable as the estate expands. Another said ArgoCD's killer feature is not philosophy but application generation at scale. Another compared the question to asking why anyone uses Kubernetes instead of just running container commands in CI.
That is the real split. GitOps is not always simpler. It is often just a better place to put complexity once the estate becomes too big to fake simplicity anymore.
## Desired state is wonderful until you need to break glass
The more emotionally honest GitOps discussion was not about application sets or reconciliation theory. It was the one summed up by a brutal line: it's GitOps, or it's Git plus operations.
The top response in that thread was even better because it captured the contradiction in plain language: edit in prod while you wait for the PR to get approved. Sometimes you just have to put the fire out.
That is the GitOps nightmare in one sentence.
The whole model depends on discipline, source control, and convergence. But outages do not care about doctrine. If ArgoCD is auto-healing a broken state, if your approvals are slow, if your production access model is half-baked, then the purity of GitOps can turn into an accomplice to downtime.
The comments in that thread showed both sides of the argument. One person pointed out that with auto-heal enabled, manual edits are just temporary theater because the cluster will snap back to declared state anyway. Another, from a principal SRE perspective, argued that if a junior engineer can improvise against production at two in the morning, your process has already failed and you need monitored breakglass access rather than pretending the problem is GitOps itself.
Both views are right.
GitOps is not the problem. But GitOps makes bad emergency design brutally visible.
## Flux and ArgoCD reveal the same tradeoff in different flavors
The Flux discussion added an important layer to the picture.
That thread was much more positive. People talked about Flux as underappreciated, more GitOps-native, cleaner once the mental model clicks, and especially attractive for teams that value pull-based reconciliation and composable CRDs over a UI-first experience.
The comments drew a sharp contrast with ArgoCD. ArgoCD wins people over with interface and approachability. Flux wins some of them back when they decide they care more about a cleaner reconciliation model, multi-tenant ownership, or not exposing cluster APIs to external CI.
That difference matters because it shows the GitOps choice is not just "GitOps or not." It is also what kind of operational pain you prefer.
ArgoCD often feels easier to adopt and easier to show to the rest of the organization. Flux often appeals more to teams that want to think in controllers, layers, and CRDs instead of dashboards and manual sync controls. One commenter described the breakthrough perfectly: Flux made sense once they stopped thinking of it as a deployment tool and started thinking of it as independent reconciliation loops.
That is a strong endorsement. It is also a warning.
Because once your tooling starts requiring a mental-model conversion as a prerequisite to confidence, you are no longer talking about convenience. You are talking about an operating philosophy.
## Kubernetes production pushes everyone toward the same conclusion
A separate Kubernetes thread about "what I'd do differently after five years in production" included one of the simplest claims in the whole batch: GitOps is not optional, it is survival.
That sounds dramatic until you remember what large Kubernetes estates actually do to memory and process discipline. People lose track of what was applied where. Environments drift. changes stack up. tribal knowledge hardens into risk. and the cluster slowly becomes a museum of half-remembered intent.
GitOps fixes a lot of that.
It just does not fix panic.
That is the important thing many teams only learn after adoption. GitOps is brilliant at preserving order. It is less brilliant at helping people behave calmly when production is already on fire and the "correct" path is too slow for the moment they are in.
So the winning teams are not the ones that merely install ArgoCD or Flux. They are the ones that pair GitOps with emergency reality: documented breakglass access, fast hotfix routes, clear sync controls, observability that explains reconciliation behavior, and enough process maturity that desired state does not become a religious slogan detached from operational duty.
## GitOps is worth it. The mythology around it is what needs work.
The strongest Reddit threads did not convince me GitOps is overrated.
They convinced me GitOps is often oversold.
It is not magic. It does not erase the need for production judgment. It does not automatically simplify every environment. It does not remove the need for CI, templates, secrets strategy, or human decision-making. And it absolutely does not save teams whose incident workflows were sloppy before GitOps arrived.
What it does do is give Kubernetes operations a durable center of gravity.
That matters.
Because once your platform grows past a certain point, "just run the pipeline" stops being clarity and starts being denial.
GitOps on Kubernetes is powerful for the same reason it can feel infuriating. It forces infrastructure teams to choose between clean theory and messy reality, then live in the space where both are true.
That is not a flaw in the model.
That is just what production looks like.
Keep Exploring
When GitOps Meets Emergency Fixes: ArgoCD Operational Lessons
GitOps can be clean in theory but difficult under production pressure. A practical look at ArgoCD emergency-fix workflows and operational tradeoffs.
Editing in Prod: A Love Letter to Every SRE Who's Ever Broken Glass
GitOps promises pristine, repeatable deployments — until it's 2AM and your cluster is on fire. Here's why kubectl edit in prod isn't always a sin.
What Kubernetes feature looked great on paper but hurt you in prod?
there are features in Kubernetes that look amazing on paper.
What Actually Goes Wrong in Kubernetes Production?
Hey Kubernetes folks, I’m curious to hear about real-world production experiences with Kubernetes.