Learning bite
Argo CD applications and sync
Connect a Git revision to a narrowly scoped local reconciliation target.
On this page
Build once, then reconcile intent
GitHub Actions builds and tests an artifact. Argo CD reads deployment configuration from Git and reconciles the cluster. A Git commit in an application repository does not automatically change the deployment image; the desired configuration must reference the new artifact.
An Argo CD Application identifies a repository, revision, path, destination, and project. Synced describes agreement with desired manifests. Healthy describes resource health as assessed by the controller. Neither guarantees a correct MicroBank account balance.
Follow one revision through the Application
Treat an Application as an address for both its input and its destination. repoURL selects the Git repository, targetRevision selects a commit/branch/tag, and path selects the manifest directory. The destination specifies the cluster API and namespace. The project sets which repositories, destinations, and resource kinds that Application may request. A correct path in the wrong repository, or a correct revision aimed at the wrong namespace, is still the wrong deployment.
Work through this invented example before installation:
| Step | Desired revision | Live image | Interpretation |
|---|---|---|---|
| Baseline | commit A declares image A | image A | The image agrees with the selected input |
| Build finishes | Application still selects A | image A | Building B has not requested deployment of B |
| Desired revision changes to B | commit B declares image B | image A | A diff can now show the unapplied change |
| Manual sync completes | commit B | image B | Verify workload health and the user journey next |
If the app fails after the last row, rebuilding the same image blindly adds little information. Inspect sync errors, the actual Pod image ID, configuration, and the failing transaction separately.
Small practice: open the Application template in the GitOps lab as text. Mark its five choices: repository, revision, path, destination, and project. Then answer two cases. A commit pushed to another branch is invisible to an Application pinned to A until its revision changes. A successful manual sync of B can still produce an unhealthy Pod if B contains an invalid startup setting. These distinctions make status labels useful instead of reassuring by default.
Use a small local controller
Argo CD Core is sufficient for the first exercise: it supplies reconciliation without the normal long-running API/UI server, while still including supporting components such as Redis and the repository server. It relies on Kubernetes access controls. Use a reviewed release tag and its installation manifest; measure its resource use on your host.
The module lab starts with a pinned Git commit, an AppProject restricted to your repository and the microbank namespace, and a manual sync. Do not commit the local kubeconfig or real credentials. A repository must be reachable from the controller; a folder on your Mac is not automatically a Git server.
Observe one change
Keep a note containing source commit, rendered manifest checksum, Application sync status, Pod image ID, and transaction-check result. Change one benign annotation, commit it, update the Application revision, and sync again. Then repeat with a rebuilt application image that has been loaded into kind.
Checkpoint: if Git has a new image reference but the cluster still has the previous one, inspect the Application's selected revision and sync result before rebuilding. If sync is complete but the journey fails, investigate the application and verify the transaction result separately from controller status.
Checkpoint answer: first compare the Application's requested and observed revision, then its operation result and rendered image. A repository-fetch failure and a healthy old image can coexist. Continue to drift and pruning with manual synchronization understood; automation changes when the same actions happen, not what they mean.
Sources
Your notes and evidence
Record observations, questions, or links to your work. Keep credentials out of your notes.
Back up or restore this path
Progress and notes stay in this browser. A backup contains only this learning path.