Lesson 1: GitOps & Crossplane
🧠 The Concept (Explain Like I'm 5)
- Push (CI/CD): You build a toy and physically carry it to the toy box. (Jenkins running
kubectl apply). If someone moves the toy, Jenkins doesn't know.
- Pull (GitOps): The toy box watches a picture of how it should look (Git Repo). It constantly arranges itself to match the picture. If someone moves a toy, ArgoCD instantly moves it back.
🏢 The Enterprise Context
- ArgoCD: The industry standard for Kubernetes deployment. It continuously reconciles cluster state against Git state.
- Crossplane: Allows you to manage external cloud resources (AWS RDS, S3, IAM) using the exact same Kubernetes YAML and GitOps pipeline you use for microservices. No more separate Terraform pipelines!
🗺️ Visual Architecture: Pull-Based GitOps
flowchart LR
Dev["Developer"] -->|git commit| Git["Git Repository<br/>(Desired State)"]
subgraph K8s ["Kubernetes Cluster"]
Argo["ArgoCD Controller<br/>(The Reconciler)"]
Pods["Running Pods<br/>(Actual State)"]
Cross["Crossplane Controller"]
end
Argo -->|Pulls Changes| Git
Argo -->|Compares & Applies| Pods
Argo -->|Applies DB YAML| Cross
Cross -->|Provisions via API| AWS[("AWS RDS Database")]