DEV Community

chitranjan Jegadeesan
chitranjan Jegadeesan

Posted on • Edited on

Learn a real production Kubernetes platform by running one — offline, on your laptop, in 5 minutes

TL;DR: lab-in-a-box is a single-command, fully offline Kubernetes stack with GitOps, observability, security policies, and a full CI/CD pipeline — and a guided walkthrough that teaches you each layer as it runs. No cloud, no bill. github.com/BubblyWolf/lab-in-a-box

I wanted to understand how platform teams actually build and run things. Not just "hello world" Kubernetes — the real stuff: Argo CD syncing apps from Git, Prometheus scraping custom metrics, policies blocking bad deployments before they reach the cluster, CI pipelines that sign container images and generate SBOMs.

The problem? Doing this in the cloud costs money. Tutorials are fragmented. And you never see the wiring between tools.

So I spent weekends wiring everything together into one reproducible repo. Then I made it run locally with one command.

What you get in 5 minutes:

make up # Kind cluster + Argo CD + Prometheus/Grafana/Loki + Kyverno
make deploy-local # 3-microservice "Pulse" app with health checks and metrics
make demo # Argo CD, Grafana, and the app — all open in browser
The full stack:

☸️ Kind — multi-node Kubernetes cluster in Docker
🔄 Argo CD — GitOps with app-of-apps pattern, Git as source of truth
📊 Prometheus + Grafana + Loki — custom "Pulse" dashboard, metrics-to-logs correlation
🔐 Kyverno + Sealed Secrets + Trivy — admission policies, encrypted secrets, vulnerability scanning
🚀 GitHub Actions — build, scan, SBOM, cosign sign, push to GHCR
🎯 Pulse app — Node.js API, worker, and frontend + Redis — all wired for observability
Why this exists:

It's a learning environment that doesn't lie. The policies actually block things. The dashboards show real data. The GitOps sync fails if you break the manifests. You can experiment, break, fix, and understand — without a $200 cloud bill or a 2am page.

What I'd love:

⭐ Star it if it saves you time or teaches you something
🍴 Fork it to build your own internal platform demo
💬 Tell me what you built, what broke, what I got wrong
Issues, ideas, and PRs welcome. This is a community learning project first.

GitHub logo BubblyWolf / lab-in-a-box

One command, fully offline, production-grade Kubernetes platform for learning — Kind + Argo CD GitOps, Prometheus/Grafana/Loki observability, Kyverno security policies, and a CI/CD pipeline with image signing. Runs free on your laptop.

🧪 lab-in-a-box

Learn a real production Kubernetes platform by running one — on your laptop, offline, in 5 minutes. No cloud account. No bill. No 40-tab tutorial.

License: MIT CI Kubernetes Helm Argo CD


⚡ TL;DR

  • 💻 Runs offline on your laptopKind (Kubernetes-in-Docker). No cloud account, no credit card, no surprise bill.
  • 🎓 Built to learn from — every piece is wired and explained. Start the cluster, then read the guided walkthrough and watch each layer work.
  • 🧱 Real production patterns — GitOps (app-of-apps), observability, admission-control security, signed images + SBOMs. Not toy YAML.
  • Working demo app — "Pulse" (3 Node.js microservices + Redis) with a live Grafana dashboard you can watch update.
make up            # Kind cluster + Argo CD + Monitoring + Security stack
make deploy-local  # Pulse app via Helm (no remote Git push needed)
make demo          # Port-forward all UIs: Argo CD, Grafana, Pulse frontend
Enter fullscreen mode Exit fullscreen mode

🆚 How this differs

Top comments (0)