Notes / Ci Cd / Reference

What is ArgoCD

CNCF-graduated declarative GitOps continuous delivery tool for Kubernetes — pull-based reconciliation from Git via an Application CRD, the App-of-Apps pattern for fleet management, and Argo Rollouts for canary/blue-green progressive delivery.

Updated July 9, 2026 · §202607081949-15 ·

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

ComponentJob
API servergRPC/REST + web UI + CLI entry point; auth and RBAC live here
Repository serverClones Git repos, renders manifests (raw YAML, Helm, Kustomize, Jsonnet)
Application controllerThe reconciliation loop — diffs live cluster state vs. rendered manifests, triggers sync
RedisCaches 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

ModeBehavior
ManualDrift is detected and shown (OutOfSync), but a human clicks/argocd app sync
AutomatedDrift auto-corrects on the next reconciliation loop, no human step
prune: trueResources removed from Git get deleted from the cluster, not just left orphaned
selfHeal: trueManual 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

AxisArgoCDWhat is FluxCD
ShapeOne application with a built-in UIA toolkit of composable controllers, no built-in UI
Fleet managementApp-of-Apps patternKustomization dependency graph (dependsOn)
Progressive deliveryArgo Rollouts (canary/blue-green + analysis)Flagger (same categories, different CRDs)
Multi-tenancy modelProjects + RBAC on ApplicationsNamespace-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

Full 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.