GitOps promised a better way to run infrastructure. Put everything in Git. Use pull requests instead of tickets. Let automation handle deployments. In theory, it’s clean, auditable, and safe.
In practice, many GitOps implementations end up recreating the same operational bottlenecks they were meant to eliminate, just with YAML and CI pipelines instead of runbooks and change tickets.
If GitOps feels complicated, fragile, or overly procedural in your organisation, that’s not because GitOps “failed.” It’s because most teams stopped halfway through the idea.
In this article, I’ll walk through a GitOps model that’s a bit different from what you usually see. It leans hard on declarative configuration, treats intent as data in Git, and lets reconciliation, not pipelines, decide what actually runs in production. Configuration as Data (CAD) and Config Sync set the stage for a simpler and more predictable way to run platforms.
At its heart, GitOps is still operations done the developer way.
Instead of filing tickets or manually touching systems, engineers make changes in Git repositories. Those changes go through pull requests, automated validation, and controlled promotion across environments. Git is the source of truth, and automation ensures reality matches what’s declared.
The familiar pillars still apply:
So what changes in a modern GitOps model isn’t what GitOps is, it’s how we apply it.

This works… until it doesn’t.
At scale, teams want:
That’s where Configuration-as-Data comes in.
Configuration-as-Data treats configuration not as templated text, but as structured, versioned data that describes intent.
Instead of asking pipelines to “deploy version X to environment Y,” we declare:
Environment Y should run version X of this component.
Everything else is reconciliation.
Key ideas behind CAD:
This approach dramatically simplifies GitOps workflows, and that’s where Config Sync shines.
Config Sync is a GitOps reconciler that continuously applies configuration from Git to Kubernetes clusters. Rather than relying on CI/CD pipelines to push changes, clusters pull their desired state directly from Git.
Key properties of Config Sync:
Most importantly, Config Sync enables a clean separation between:
Let’s walk through a concrete example of how this works in practice. Below is the process of how our developers at Mesoform go from nothing to deploying a Kubernetes operator.
First off, what is an operator? At its core, a Kubernetes Operator is a method of packaging and managing applications by extending the Kubernetes API. Think of it as a digital Site Reliability Engineer — it codifies human operational knowledge to automate complex, stateful tasks like backups and upgrades. This allows us to manage sophisticated software with the same consistency and automation as a simple container, ensuring our infrastructure remains self-healing and scalable.
To deploy these safely, we follow a “build once, promote many” pipeline that ensures environmental parity. Every image starts with a Git commit tag, progressing through Sandbox, Integration, and UAT registries as it passes automated validation. This GitOps-aligned workflow means we never rebuild code between stages; instead, we promote the exact same binary that was already tested.
For the final move to production, we re-tag the proven commit with a formal version number (e.g., v0.2.1-stable) before pushing to our Live environment. This rigorous process, managed via RootSync for automated deployments, ensures that the version running in production is identical to the one verified by our developers, providing a reliable and auditable path to every release.
Instead of embedding environment logic in pipelines, we define it in Git:
For example:
This is not a deployment instruction — it’s a declaration of intent.
An engineer creates a feature branch and makes a change:
A pull request triggers validation:
Config Sync applies the change to a sandbox cluster automatically, giving fast feedback without risk.

Promotion between environments is handled by changing data, not pipelines.
develop updates integration clustersmain promotes configuration to UATvN.N.N and vN.N.N-stable represent explicit approval statesEach promotion is:
No hidden logic. No magic.
Once merged, Config Sync ensures clusters continuously match Git:
Operations becomes a matter of maintaining the correct configuration, not executing deployments.

Operators still follow a familiar lifecycle: build, test, release, but with clearer boundaries.
This guarantees that production runs only what was intentionally approved, and nothing else.
This modern GitOps model delivers tangible benefits:

GitOps becomes less about “how we deploy” and more about how we declare intent.
GitOps isn’t just about using Git. It’s about trusting declarative systems to do the right thing.
By embracing Configuration-as-Data and tools like Config Sync, teams can move beyond pipeline-heavy GitOps and toward a cleaner, more scalable model:
Declare intent → Review changes → Merge → Reconcile continuously
No tickets. No guesswork. No surprises.
The real shift isn’t new tooling, it’s a mindset change:
Make configuration the product, Git the contract, and reconciliation the engine that keeps everything honest.
If your GitOps setup feels heavier than it should, you’re not alone... and you don’t have to live with it.
At Mesoform, we help platform teams move from pipeline-driven GitOps to a truly declarative, reconciliation-first model using Configuration-as-Data and Config Sync. The result: fewer bottlenecks, clearer intent, and platforms that scale without operational drag.
Contact us to learn how we can help you turn Git into a clean, auditable contract and let reconciliation do the heavy lifting.