
- You author declarative manifests, Helm charts, or package definitions in a Git repository.
- A GitOps operator (for example Argo CD) watches the repository for commits and PR merges.
- The operator reconciles the target environment (for example a Kubernetes cluster) to match the Git state, applying changes automatically.
- All changes are auditable (logged in Git), and configuration drift is detected and corrected by the operator.


- Push model: An external system (CI/CD pipeline) detects commits and pushes changes to the target environment. Simpler to bootstrap, but it relies on external triggers and may make auditing and drift detection harder.
- Pull model: A GitOps operator running inside the target environment continuously monitors Git and pulls/apply changes when new commits arrive. This model provides a declarative reconciliation loop, stronger control, and better observability.

For Kubernetes-focused deployments, the pull model (with a GitOps operator like Argo CD) is generally recommended because it provides continuous reconciliation, better audit trails, and reduced operational complexity.
- Use Git as the central source of truth and protect repository integrity (branch protections, signed commits, PR reviews).
- GitOps enables declarative management of infrastructure, applications, and package definitions.
- The pull model is preferred for Kubernetes environments because it enforces a continuous reconciliation loop and improves reliability.
- Choose the model that matches your operational constraints—simplicity vs. control—and ensure proper RBAC and observability for any operator you run.