Many of us rely on 'kubectl apply' to make changes to our Kubernetes clusters. While this works fine initially, over time, the YAML configuration files on our laptops can quietly drift apart from what's actually running in the cluster. Nobody can tell you who changed what, when, or what the cluster looked like before someone 'just quickly fixed' something late at night. This configuration drift creates real problems, making it nearly impossible to track changes or roll back to a previous version. Imagine running a complex cluster, and a month later, nobody can tell you what's actually running, or who changed it, or what the cluster looked like before someone 'just quickly fixed' something at 11pm.
This is where Argo CD steps in. Instead of manually typing commands into a terminal, you place your Kubernetes configuration files (known as 'manifests') in a Git repository. You then tell Argo CD where that repo is, and from that moment on, the Git repository becomes the single 'source of truth.' If someone tries to change the cluster manually, Argo CD automatically reverts it to match what's in Git. This ensures your cluster always runs exactly as specified in your files.
This means you change your cluster by simply modifying and pushing to Git. Need to revert a change? Use 'git revert.' Argo CD ensures your cluster consistently reflects the state you declare in Git, correcting any 'drift' in configuration within fifteen seconds. Remember, while Kubernetes makes reality match the state you declare, Argo CD takes it one level out: it ensures your cluster matches what you declare *in Git*. It watches your repo, while Kubernetes watches its own objects. This simplifies your cluster management significantly, making it far more reliable and transparent.