Skip to main content...
GitOps: ArgoCD
25 min

Day 77: The real pipeline shape

Putting CI and GitOps together correctly

A common mistake is having CI both build the image AND run kubectl/helm to deploy it — this reintroduces the push-based model GitOps is meant to replace. The correct shape separates these cleanly:

  1. A developer merges a PR to main
  2. CI (Phase 14) builds a new image, runs security gates, and pushes it to a registry
  3. CI updates a manifest in the GitOps repo (e.g. bumping an image tag) and commits — this is the ONLY thing CI does that touches deployment state
  4. ArgoCD (running in-cluster) notices the Git change and syncs it to the cluster

Why the separation matters

CI never needs cluster credentials at all in this model — its only job is to update a Git repository. Every actual cluster change flows through ArgoCD's reconciliation, giving you one consistent audit trail (Git history) for every deployment, and one consistent enforcement point (self-heal) against drift.

The Four Questions: GitOps (ArgoCD)

Worked example for Docker: dependency hell → consistent runtime environments → VMs too heavy → shared kernel, weaker isolation. Apply it to GitOps: what problem (CI holding cluster-write credentials, undocumented manual changes) did it solve, why couldn't traditional push-based CI/CD solve it, and what trade-off (losing the 'quick manual fix' escape hatch, added reconciliation latency) does it introduce?

Phase 13 complete — you should now be able to

In a correctly separated CI/GitOps pipeline, what credentials does the CI system need to deploy a new version?

We use cookies

We use cookies to enhance your browsing experience, serve personalized content, and analyze our traffic. By clicking "Accept All", you consent to our use of cookies. Learn more

    Day 77: The real pipeline shape | RBTechIconX