# 𝗚𝗶𝘁𝗢𝗽𝘀: Argo CD + Kubernetes Cluster

It was interesting to see Argo CD implement a GitOps workflow, with the manifests stored in my Git repository.

![](https://cdn.hashnode.com/uploads/covers/69cc3755e4688e4edd42a14e/1305250c-26e1-4cf3-ac72-19612be2383f.png align="center")

Argo CD continuously performed drift detection, comparing the live state of the Kubernetes cluster against the manifests I stored in Git. When differences were detected, Argo CD synchronized the cluster back to the desired state.

![](https://cdn.hashnode.com/uploads/covers/69cc3755e4688e4edd42a14e/d8f1d8fa-3c55-4734-b2bd-e5ed2b8ad8bc.png align="center")

A solid proof of concept of how GitOps keeps Kubernetes environments consistent and recoverable by performing:

*   Reads Kubernetes manifests from Git (Git defines the desired state).
    
*   Monitors the Git repo for changes to manifests/configuration.
    
*   Compares my desired state vs. live cluster state.
    
*   Detects configuration drift when the cluster differs from Git.
    
*   Reports the app as OutOfSync when drift or Git changes are detected.
    
*   Syncs the cluster with Git by applying the desired manifests.
    
*   Automatically reconciles changes when the auto-sync is configured.
    
*   Tracks deployment history through Git revisions/commits.
    
*   Provides deployment status and health information for Kubernetes resources.
    
*   Supports rollback (by syncing to a previous Git revision).
    

## **What ArgoCD Does:**

It Maintains Git as the authoritative configuration, rather than relying on changes made directly with 𝘬𝘶𝘣𝘦𝘤𝘵𝘭. So if someone manually changes the cluster:

Manual change → Drift detected → Argo CD reconciles → Cluster returns to Git-defined state

The core GitOps loop:

Git → Argo CD → Compare → Detect Drift → Sync → Kubernetes

In another post I will write a hands-on how to get ArgoCD running in a live cluster
