Week 10: GitOps — ArgoCD

Theme: Declarative deployment and sync with ArgoCD.

Learning Objectives

  1. Explain GitOps principles (declarative, versioned, automated sync)
  2. Install and configure ArgoCD
  3. Manage application definitions via Git repositories
  4. Implement sync strategies (auto-sync, prune, self-heal)

Reading Materials

Finger Exercises (choose 2)

  1. Install ArgoCD in kind. Access the UI via port-forward. Change the admin password.
  2. Create a Git repo with Kubernetes manifests for the Go app. Point ArgoCD at it. Verify auto-sync.
  3. Simulate drift: manually edit a Deployment resource in the cluster. Watch ArgoCD self-heal.

Project

Create a GitOps repository (gitops-infra) separate from the app repo:

gitops-infra/
├── apps/
│   ├── go-app/
│   │   ├── deployment.yaml
│   │   ├── service.yaml
│   │   └── kustomization.yaml
│   └── python-worker/
│       ├── deployment.yaml
│       └── kustomization.yaml
├── infrastructure/
│   ├── prometheus/
│   ├── grafana/
│   ├── loki/
│   └── jaeger/
└── argo-apps/
    └── all-apps.yaml

Time Budget

ActivityTime
Reading1.5 hrs
Finger exercises1.5 hrs
Project3 hrs
Total6 hrs