Overview
The microservices-app supports Kubernetes deployment using Kind (Kubernetes in Docker) for local development. Tilt orchestrates the build, deployment, and hot-reload workflow.Prerequisites
- Docker running
- Nix with direnv (installed via
direnv allow) - microservices-infra repository for cluster setup
Cluster Setup
The Kind cluster is bootstrapped from the separate microservices-infra repository, which includes:- Traefik v3 reverse proxy
- Observability stack (Prometheus, Grafana, Loki, Tempo)
- Cilium CNI with Hubble for network visibility
- ArgoCD for GitOps (optional)
Full Bootstrap (Heavy)
Includes the complete observability stack. Recommended if you have sufficient resources (8GB+ RAM):microservice-app with:
- Control plane + multiple worker nodes
- Full observability stack (Prometheus, Grafana, Loki, Tempo)
- Cilium with Hubble UI
- ArgoCD
Light Bootstrap
Minimal cluster without Istio, ArgoCD, and fewer worker nodes:Starting Tilt
Once the cluster is running, deploy the application services:Tilt Dashboard
Access the Tilt web UI at http://localhost:10350 to monitor:- Service build status
- Pod logs
- Resource health
- Hot-reload triggers
Accessing Services
| URL | Service |
|---|---|
| http://localhost:10350 | Tilt Dashboard |
| http://localhost:30081 | Traefik (API Gateway) |
| http://localhost:30300 | Grafana (admin/admin) |
| http://localhost:30090 | Prometheus |
| http://localhost:31235 | Hubble UI |
| http://localhost:5173 | Frontend |
| http://localhost:8080 | Greeter service |
| http://localhost:8081 | Caller service |
| http://localhost:8082 | Gateway service |
| http://localhost:8090 | Auth service |
| http://localhost:3000 | Custom-lang service |
Tilt Configuration
TheTiltfile orchestrates:
1. Cluster Bootstrap
TILT_SKIP_CLUSTER_UP=true if the cluster already exists.
2. Manifest Generation
3. Protocol Buffer Generation
4. Go Service Builds
Two build modes: Nix mode (USE_NIX=true):
5. Node.js Services
6. Resource Dependencies
- Cluster creation
- Manifest generation
- Code generation
- Binary compilation
Health Checks
Run the built-in health check:- Cluster connectivity
- Pod status
- Service endpoints
- HTTP health checks for greeter, gateway, frontend, and Traefik
Debugging
See the debugging guide for common issues and debugging commands.Next Steps
- Configure Traefik routing: Traefik Configuration
- Set up observability: Observability Stack
- Generate manifests with Nixidy: Nixidy