practice

GitOps

Declaring desired infrastructure state in version control and letting an in-cluster agent continuously reconcile reality to it.

gitopsdeclarativereconciliation

The distinguishing feature is not that manifests live in Git — most teams already do that. It is pull-based continuous reconciliation: an agent inside the target environment watches the repository and converges the cluster towards it, forever, rather than a CI job pushing a change once and walking away.

Three consequences follow. Drift is corrected automatically instead of discovered during an incident, because a manual change is reverted within the reconciliation interval. The deployment credential no longer lives in CI, since nothing outside the cluster needs write access to it, which removes a genuinely attractive attack path. And the audit trail is the commit history, where every change has an author, a review and a revert.

The costs are real. Debugging moves a level up: something did not happen, and the reason is in a controller's events rather than a job log. Secrets need a real answer, since plaintext in Git is not one — sealed secrets, an external operator, or a secret manager reference. And a bad commit propagates automatically, so branch protection and policy checks are now production controls, not hygiene.