Skip to content
Architecture of GitOps Tools Like ArgoCD

Architecture of GitOps Tools Like ArgoCD

October 27, 2026·anupam
anupam

ArgoCD is not one big giant box, it’s made up of different micro services or small boxes. I’ve break down those.

Before I touched ArgoCD for real, I wanted to know what is actually running inside it. Turns out it is not one big thing, just a few small pieces talking to each other. Once you know who talks to whom, everything else makes sense.

alt text

The Big Picture

    flowchart LR
    user["User"] -->|UI / CLI| api["API Server"]
    api <--> dex["OAuth Server (Dex)"]
    repo["Repo Server"] -->|Talk to Git, get the state| git["Git"]
    repo -->|Caching| redis["Redis"]
    ctrl["Application Controller"] -->|Caching| redis
    repo <-->|Sync| ctrl
    ctrl -->|Talk to K8s, get the state| k8s["K8s Cluster"]
  

Who Does What

ComponentJob
API ServerFront door. Your UI and CLI both talk to this one
OAuth Server (Dex)Takes care of login, so you can sign in using your existing accounts
Repo ServerGoes to Git and gets the desired state (your YAML)
Application ControllerGoes to K8s and gets the live state, then compares it with Git’s
RedisCache. Both Repo Server and Controller keep their answers here so they don’t ask again and again

What Happens When

StepWhoWhat
1YouOpen UI or run CLI, API Server asks Dex to check who you are
2Repo ServerReads Git and gets what the state should be
3Application ControllerReads K8s and gets what the state is right now
4BothSync: if they don’t match, controller makes K8s look like Git

Note

The Application Controller is the one who does the reconcile work. Repo Server only knows Git, Controller is the only one who knows both sides.

That is all of it. Five boxes, and two of them (API Server and Dex) are only for letting you in.

Last updated on