Full System Diagram

End-to-end flow from pending pod to new node.

graph TB POD["Pending Pod (unschedulable)"] subgraph Controllers ["Cloudburst Controllers"] DD["Demand Detector (watches pods)"] NPC["NodePool Controller (scale-up / scale-down)"] NCC["NodeClaim Controller (VM lifecycle)"] end CB["CloudBroker (brokers providers, cost recommendation)"] subgraph Providers ["Cloud Providers (brokered)"] GCP["GCP"] SCW["Scaleway"] HTZ["Hetzner"] DO["DigitalOcean"] OVH["OVH"] AWS["AWS"] AZ["Azure"] end BS["Bootstrap (cloud-init + kubeadm join over Tailscale)"] NODE["New K8s Node (Ready)"] POD -->|"detected"| DD DD -->|"enqueue"| NPC NPC -->|"POST /api/recommendations"| CB CB -->|"cost recommendation"| NPC NPC -->|"create NodeClaim"| NCC NCC -->|"provision VM"| Providers Providers --> BS BS -->|"node joins cluster"| NODE NODE -->|"pod scheduled"| POD NPC -->|"scale-down: delete NodeClaim"| NCC NCC -->|"cordon + drain + delete VM"| Providers

Full architecture doc →

← All architecture topics