Skip to content

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")]