๐Ÿค– Learn ArgoCD the school way โ€” with & without GitOps

The sister course to Learn Kubernetes School: that one teaches what runs your app โ€” this one teaches what deploys it and keeps it honest. You deploy the same demo app three ways โ€” by hand, with a CI/CD push pipeline, and with ArgoCD โ€” and feel exactly why each step up exists.

๐ŸŽ’ by hand๐Ÿ“ฎ CI/CD push ๐Ÿ“– GitOps๐Ÿค– ArgoCD pull ๐Ÿช‘โ†ฉ๏ธ self-healโช git-revert rollbacks

๐Ÿšช Part 1 โ€” WITHOUT ArgoCD

  • deploy by hand โ€” and forget what you deployed
  • meet configuration drift, the silent killer
  • automate with a push pipeline (courier robot ๐Ÿ“ฎ)
  • โ€ฆand discover what push still can't fix

๐Ÿ“– Part 2 โ€” WITH ArgoCD

  • git becomes the single source of truth
  • the caretaker robot ๐Ÿค– lives inside the cluster
  • drift gets reverted; deploys = commits
  • rollback = git revert ยท audit = git log

๐Ÿ—บ๏ธ The big picture โ€” one diagram, both worlds

The whole course on one canvas: the PUSH world (red, lessons 1โ€“4) with its four gaps, and the PULL world (green, lessons 5โ€“12) with its six wins. Click it for the 4K version โ€” great as a wallpaper-sized reference.

The big picture: deploying without ArgoCD (push model, with its gaps) vs with ArgoCD (GitOps pull model, with its wins)

๐Ÿšช Part 1 โ€” WITHOUT ArgoCD (lessons 1โ€“4)

Feel the pain first: hand deploys, invisible drift, then a courier robot (CI/CD push) โ€” and the four gaps it can never close. One git branch = one idea; branch 07 contains lessons 01โ€“07.

1

๐ŸŽ’ Deploy by hand

Carrying homework to school yourself โ€” fine once, awful daily.lesson-01-deploy-by-handRead lesson โ†’See the diagram โ†—
2

๐Ÿช‘ The drift problem

No master seating chart โ€” nobody knows how the room should look.lesson-02-drift-problemRead lesson โ†’See the diagram โ†—
3

๐Ÿ“ฎ CI/CD push pipeline

The courier robot โ€” tests, builds, delivers with a master key.lesson-03-cicd-pushRead lesson โ†’See the diagram โ†—
4

๐Ÿšช Limits of push

The courier deliversโ€ฆ and leaves. Nobody watches the room after.lesson-04-limits-of-pushRead lesson โ†’See the diagram โ†—

๐Ÿ“– Part 2 โ€” WITH ArgoCD (lessons 5โ€“12)

The cure: git becomes the master plan book, and ArgoCD โ€” the caretaker robot living INSIDE the cluster โ€” keeps reality matching it, forever.

5

๐Ÿ“– The GitOps idea

The master plan book โ€” reality must match the book, always.lesson-05-gitops-ideaRead lesson โ†’See the diagram โ†—
6

๐Ÿค– Install ArgoCD

Hiring the caretaker robot โ€” it moves into the school itself.lesson-06-install-argocdRead lesson โ†’See the diagram โ†—
7

๐Ÿ“„ First Application

One page of the plan book: which repo, which folder, which room.lesson-07-first-applicationRead lesson โ†’See the diagram โ†—
8

๐Ÿ“ Sync policies

House rules for the robot โ€” ask first, or act on its own?lesson-08-sync-policiesRead lesson โ†’See the diagram โ†—
9

๐Ÿช‘โ†ฉ๏ธ Self-heal & drift

A kid moves the chairs; the robot puts them back. Live demo.lesson-09-self-heal-driftRead lesson โ†’See the diagram โ†—
10

โช Rollback & history

Flip the book to yesterday's page โ€” git revert IS the rollback.lesson-10-rollback-historyRead lesson โ†’See the diagram โ†—
11

๐Ÿ“š Helm, Kustomize & envs

Fill-in-the-blank recipe books โ€” one recipe, many classrooms.lesson-11-helm-kustomize-envsRead lesson โ†’See the diagram โ†—
12

๐Ÿ”‘ Secrets + the scorecard

Never glue the locker key into the book โ€” and the final verdict.lesson-12-secrets-and-compareRead lesson โ†’See the diagram โ†—
# take the course locally (any local cluster โ€” Docker Desktop, minikube, kind):
git clone https://github.com/BaluRaut/learn-argocd-school.git
cd learn-argocd-school
git checkout lesson-01-deploy-by-hand   # then open lessons/01-deploy-by-hand/README.md
๐ŸŽ“ The school series: 0๏ธโƒฃ AWS foundations (IAM & EC2) โ†’ 1๏ธโƒฃ Learn Docker School packs & ships the images โ†’ 2๏ธโƒฃ Learn Kubernetes School runs them (do its lessons 01โ€“11 before this course) โ†’ 3๏ธโƒฃ this course deploys them automatically, forever.

๐Ÿ“ The lesson diagrams โ€” follow the numbers

Every lesson as one numbered box-and-arrow diagram, one after another โ€” readable right here (red = without ArgoCD, green = with). Also on a standalone page with jump navigation.

1 ๐ŸŽ’ Deploy by hand โ€” you ARE the deploy system

kubectl apply from your laptop worksโ€ฆ and quietly makes you the single point of failure.

๐Ÿง‘โ€๐Ÿ’ป Your laptop YAML files + kubeconfig ๐Ÿ”‘ ๐Ÿซ Cluster ๐Ÿช‘๐Ÿช‘ hello-school pods 1 kubectl apply -f k8s/ 2 works! ๐ŸŽ‰ โ€ฆtoday ๐Ÿ“… one week later โ“ which version is live? โ“ who changed it? โ“ teammate deploys too? ๐Ÿ˜ฑ only your memory knows 3

Read full lesson 01 โ†’

2 ๐Ÿช‘ Drift โ€” when reality stops matching the files

Every hand-edit that never lands back in git widens a silent, dangerous gap.

๐Ÿ“„ YAML in git says replicas: 2 image: v1 memory limit: 64Mi ๐Ÿซ Cluster actually runs replicas: 5 (Friday panic) image: v2-hotfix-final-REAL limit: 512Mi (kubectl edit) โ‰  1 hotfix by hand, "just this once" 2 โ€ฆand nobody writes it back to git 3 the gap = DRIFT: next "clean" deploy from git silently undoes the hotfix ๐Ÿ’ฅ

Read full lesson 02 โ†’

3 ๐Ÿ“ฎ CI/CD push โ€” the courier robot deploys for you

Every push is tested, built and delivered โ€” the human is out of the loop (mostly).

๐Ÿง‘โ€๐Ÿ’ป dev git push ๐Ÿ“ฎ CI/CD โ€” the courier robot โœ… test ๐Ÿฑ build ๐Ÿ—„๏ธ registry holds the cluster's master key ๐Ÿ”‘ ๐Ÿซ Cluster kubectl apply, from outside 1 2 same steps every time โ€” no "oops, forgot the tests" 3 PUSH deploy

Read full lesson 03 โ†’

4 ๐Ÿšช Limits of push โ€” the courier delivers and LEAVES

A push pipeline deploys moments; nobody guards the state in between.

๐Ÿ“ฎ pipeline run deploys at 14:03โ€ฆ then exits ๐Ÿซ Cluster at 14:04+ unguarded until next push 1 ๐Ÿช‘ drift creeps back in โ€” who would even notice? 2 ๐Ÿ”‘ cluster keys live OUTSIDE, in the CI system 3 ๐Ÿซ๐Ÿซ๐Ÿซ 10 clusters = 10 keys + 10 pipeline configs 4 the fix isn't a better courier โ€” it's a guard who LIVES in the school โ†’ Part 2

Read full lesson 04 โ†’

5 ๐Ÿ“– The GitOps idea โ€” reality must match the book

Declare the desired state in git; an agent inside the cluster converges reality toward it, forever.

๐Ÿ“– git repo DESIRED state โ€” the book k8s/ manifests, reviewed PRs ๐Ÿซ cluster ACTUAL state โ€” the rooms pods, services, configs ๐Ÿ”„ agent compare โ†’ converge 1 reads the book 2 looks at the rooms 3 fixes any difference 4 repeat every ~3 minutes, forever โ€” same reconcile loop as lesson 03 of the k8s course, one level up

Read full lesson 05 โ†’

6 ๐Ÿค– Install ArgoCD โ€” the robot moves into the school

One kubectl apply installs the whole robot; the UI is your window into its head.

๐Ÿง‘โ€๐Ÿ’ป you one kubectl apply ๐Ÿซ your cluster ๐Ÿšช namespace: argocd โ€” the robot's room ๐Ÿ–ฅ๏ธ api-server + the web UI ๐Ÿ“– repo-server clones git repos ๐Ÿ”„ app-controller the reconcile loop 1 install manifest 2 port-forward the UI โ†’ https://localhost:8080 ยท login admin + initial secret ยท 3: the robot waits for its first plan page

Read full lesson 06 โ†’

7 ๐Ÿ“„ The first Application โ€” one page of the plan book

An Application says: THIS repo, THIS folder, THIS destination. The robot does the rest.

๐Ÿ“„ Application repoURL: learn-argocd-school path: k8s/ destination: gitops-school syncPolicy: automated ๐Ÿค– ArgoCD clones the repo, renders the manifests ๐Ÿ“– git: k8s/ folder deployment + service + ns ๐Ÿšช gitops-school ๐Ÿช‘๐Ÿช‘ hello-school pods live! 1 kubectl apply -f argocd/ 2 3 creates everything from now on you never kubectl-apply the app again โ€” you edit the repo instead

Read full lesson 07 โ†’

8 ๐Ÿ“ Sync policies โ€” how strictly the robot follows the book

Manual = it asks first. Automated = it acts. Prune and selfHeal turn the strictness up.

๐Ÿ“– change lands in git app becomes OutOfSync ๐ŸŸก โœ‹ manual sync robot ASKS โ€” you click Sync โšก automated sync robot ACTS on its own 1 2 ๐Ÿ—‘๏ธ prune: true deleted in git โ†’ deleted live โ†ฉ๏ธ selfHeal: true hand-edits get reverted 3 4 start manual while learning โ†’ automated + prune + selfHeal in production (the strict-but-fair caretaker)

Read full lesson 08 โ†’

9 ๐Ÿช‘โ†ฉ๏ธ Self-heal โ€” the chairs go back where the book says

Hand-made drift survives seconds, not months. Change the book, not the room.

๐Ÿ˜ˆ you, by hand kubectl scale --replicas=5 ๐Ÿซ cluster: 5 pods but the book ๐Ÿ“– says 2! status: OutOfSync + drift ๐Ÿค– ArgoCD self-heal re-applies the book โ†’ back to 2 pods โœ… 1 2 noticed in seconds 3 the book wins โ€” every time 4 want 5 replicas for real? edit the BOOK: change git, PR, merge โ†’ robot scales up happily

Read full lesson 09 โ†’

10 โช Rollback โ€” flip the book to yesterday's page

In GitOps, git history IS deploy history โ€” so undoing a commit undoes the deploy.

commit A image: v1 โœ… commit B image: v2 ๐Ÿ’ฅ bad! commit C = revert B image: v1 again โœ… 1 bad version ships (via git, at least!) 2 git revert โ€” 10 seconds ๐Ÿค– ArgoCD syncs C cluster back on v1 3 ๐Ÿงพ git log = deploy log: who, what, when โ€” audit free 4

Read full lesson 10 โ†’

11 ๐Ÿ“š Helm, Kustomize & environments โ€” one recipe, many classrooms

Templates + per-environment values; one Application per room, and a master page listing them all.

๐Ÿ“š one recipe Helm chart / Kustomize base replicas: ___ image: ___ ๐Ÿ“ values-dev.yaml replicas: 1 ๐Ÿ“ values-staging.yaml replicas: 2 ๐Ÿ“ values-prod.yaml replicas: 5 + HPA 1 ๐Ÿšช dev room ๐Ÿšช staging room ๐Ÿšช prod room 2 one Application each ๐Ÿ“– app of apps 3 one page lists all the pages

Read full lesson 11 โ†’

12 ๐Ÿ”‘ Secrets in GitOps + the final scorecard

Everything lives in gitโ€ฆ except plaintext secrets. Encrypt them in, or reference them out.

โŒ password in the book plaintext secret in git = leaked 1 ๐Ÿ” Sealed Secrets: encrypted IN git, only the cluster can decrypt 2 ๐Ÿ—๏ธ External Secrets: git holds only a POINTER to a vault / AWS SM 3 ๐Ÿ the scorecard ๐Ÿ“ฎ push ๐Ÿค– pull drift watched?โŒ between deploysโœ… every ~3 min cluster keysโŒ outside, in CIโœ… stay inside deploy logโš ๏ธ CI historyโœ… git log itself rollbackโš ๏ธ re-run pipelineโœ… git revert many clustersโŒ keys ร— Nโœ… one agent each CI still needed?yes: tests + buildsโœ… Argo deploys 4 real teams use BOTH: the courier builds, the caretaker deploys

Read full lesson 12 โ†’

Start Lesson 01 โ†’ ๐Ÿ“ All 12 lesson diagrams ๐Ÿงช Quiz ๐Ÿ—“๏ธ Study plan โฎ๏ธ Before & trade-offs โ˜ธ๏ธ The Kubernetes course