ArgoCD is a CNCF-graduated GitOps continuous delivery tool for Kubernetes. It’s the concrete
implementation of the What is GitOps model that’s actually in use in this repo’s e-gitops/ pillar,
paired with Argo Rollouts for canary rollouts.
Core components
| Component | Job |
|---|---|
| API server | gRPC/REST + web UI + CLI entry point; auth and RBAC live here |
| Repository server | Clones Git repos, renders manifests (raw YAML, Helm, Kustomize, Jsonnet) |
| Application controller | The reconciliation loop — diffs live cluster state vs. rendered manifests, triggers sync |
| Redis | Caches rendered manifests and cluster state to keep the controller loop fast |
Git repo (manifests/Helm/Kustomize)
│
▼
Repository server ──▶ renders manifests
│
▼
Application controller ──▶ diffs against live cluster state
│
▼
Kubernetes API ──▶ applies drift correction
The Application CRD
Everything ArgoCD manages is expressed as an Application custom resource — this is the unit of
sync, health, and RBAC:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: signal-forge
spec:
source:
repoURL: https://github.com/org/repo.git
path: d-apps/11-signal-forge/k8s
targetRevision: main
destination:
server: https://kubernetes.default.svc
namespace: signal-forge
syncPolicy:
automated:
prune: true # delete resources removed from Git
selfHeal: true # revert manual cluster drift
App-of-Apps: managing a fleet declaratively
Rather than hand-creating N Application resources, one root Application points at a directory of
other Application manifests — the fleet itself becomes GitOps-managed:
Root Application
│
├── Application: signal-forge (dev)
├── Application: signal-forge (qa)
├── Application: runway-backstage
└── Application: runway-argocd (bootstrapping itself)
This is the pattern for onboarding a new service or a new environment without touching the ArgoCD install itself — add a manifest to the app-of-apps directory in Git, and the root Application picks it up on the next sync.
Sync policy: manual vs. automated
| Mode | Behavior |
|---|---|
| Manual | Drift is detected and shown (OutOfSync), but a human clicks/argocd app sync |
| Automated | Drift auto-corrects on the next reconciliation loop, no human step |
prune: true | Resources removed from Git get deleted from the cluster, not just left orphaned |
selfHeal: true | Manual kubectl edit drift gets reverted automatically — the full GitOps promise |
Automated + prune + selfHeal together is “true” GitOps; leaving any of them off is a deliberate looser mode, usually chosen early in adopting ArgoCD before trusting the automation on prod.
Argo Rollouts: progressive delivery
The companion project that turns a plain sync into a controlled rollout — this is the piece this
repo’s e-gitops/ pillar uses canary deployments through:
Rollout CRD (replaces Deployment)
│
▼
Canary steps: 20% traffic ──▶ pause ──▶ analysis ──▶ 50% ──▶ analysis ──▶ 100%
│
▼
AnalysisRun queries a metrics
provider (Prometheus/Mimir) —
auto-promote or auto-rollback
based on error rate / latency
Automated analysis is what makes this more than a slow manual rollout — Argo Rollouts queries Mimir/Prometheus directly and can abort a canary before it reaches full traffic, tying deployment safety directly to the same series that back SLO burn-rate alerting — see What is Cardinality (in observability) for why those series need to stay bounded in the first place.
ArgoCD vs. FluxCD, at a glance
| Axis | ArgoCD | What is FluxCD |
|---|---|---|
| Shape | One application with a built-in UI | A toolkit of composable controllers, no built-in UI |
| Fleet management | App-of-Apps pattern | Kustomization dependency graph (dependsOn) |
| Progressive delivery | Argo Rollouts (canary/blue-green + analysis) | Flagger (same categories, different CRDs) |
| Multi-tenancy model | Projects + RBAC on Applications | Namespace-scoped controllers, tighter Kubernetes RBAC fit |
Why it’s in use here: this is the GitOps engine for the e-gitops/ pillar — reusable GitHub
Actions push manifest/tag changes to Git, ArgoCD’s Application controller reconciles them into the
k3d/AKS clusters, and Argo Rollouts governs the canary step for anything with an SLO to protect.
Local graph
Linked from 8 notes
What is FluxCD
CNCF-graduated GitOps toolkit for Kubernetes, built as a set of composable controllers (source, kustomize, helm, notification, image-automation) rather than one monolithic app — Flagger is its progressive-delivery counterpart to Argo Rollouts.
What is GitOps
A declarative delivery model where Git is the single source of truth for desired system state, and an in-cluster controller continuously reconciles live state to match it — the operating model behind ArgoCD and FluxCD.
CI/CD Overview
The repo currently uses three CI/CD layers:
CI/CD Platform Engineering
A book-shaped table of contents for CI/CD platform engineering: pipeline foundations, build/artifact/delivery platforms, GitHub Actions end to end (workflow mechanics through enterprise governance), Argo Workflows, Tekton, Jenkins, release engineering, platform security, observability, reliability, enterprise governance, and MAANG interview preparation — cross-linking existing tech/kubernetes/platform-engineering-fundamentals/system-design notes instead of duplicating them.
5 — Backstage Plugins
Surveys the Backstage plugin ecosystem, Kubernetes, GitHub, Argo CD, Grafana, PagerDuty, Jenkins, and where a custom plugin becomes necessary.
5 — Infrastructure Automation
Infrastructure automation, Terraform/Crossplane-style provisioning, as the execution layer behind self-service infrastructure requests.
Internal Developer Platforms
A book-shaped table of contents for Internal Developer Platforms: IDP fundamentals, architecture, self-service, golden paths, software catalogs, Backstage, templates, platform APIs and automation, developer experience, governance, operations, success metrics, anti-patterns, enterprise scale, and MAANG interview preparation — cross-linking existing platform-engineering-fundamentals/sre/observability notes instead of duplicating them.
Kustomize layout
How signal-forge's Kustomize base and per-environment overlays are laid out, rendered, and consumed by deploy-local.sh.
Related notes
What is GitOps
A declarative delivery model where Git is the single source of truth for desired system state, and an in-cluster controller continuously reconciles live state to match it — the operating model behind ArgoCD and FluxCD.
What is FluxCD
CNCF-graduated GitOps toolkit for Kubernetes, built as a set of composable controllers (source, kustomize, helm, notification, image-automation) rather than one monolithic app — Flagger is its progressive-delivery counterpart to Argo Rollouts.
What is Istio
CNCF-graduated (July 2023) service mesh — sidecar model plus the newer sidecar-less ambient mode (stable since 1.24), now extending into AI traffic via the Gateway API Inference Extension and 2026's Ambient Multicluster beta.
What is HolmesGPT
Robusta.dev's open-source SRE agent (CNCF Sandbox) for investigating production incidents across Kubernetes, VMs, cloud services, and databases — an agentic tool-calling loop over 70+ toolsets, not a chatbot or RAG system, with a proactive 'operator mode' that monitors and opens fix PRs without a human trigger.