Local Development Environments
SAMO is migrating away from the legacy Localtron tool for local development. Going forward, all SAMO development environments should use one of the two supported approaches:
Why Move Away from Localtron
Localtron served as a local runner for SAMO services during development. However, it has several limitations:
- Environment drift — local setups diverge from production Kubernetes deployments
- Manual configuration — each developer maintains their own service setup
- No parity with CI/CD — what works locally may fail in the cluster
- Maintenance burden — Localtron requires separate tooling and updates
The new approaches ensure development environments match production as closely as possible.
Currently, Option 1 (Kubernetes Dev Environments) is fully supported in the RDT extension. Options 2 and 3 are planned for future RDT releases — until then they require manual setup.
Option 1: Kubernetes Dev Environments (Recommended)
Use the shared SAMO Kubernetes cluster for development. Each developer gets their own namespace and deploys via the RDT extension's Kubernetes Deployment feature.
How It Works
- Get access to the SAMO K8s cluster (contact the RDT team)
- Configure kubectl with your cluster credentials
- Use RDT's Deploy to Kubernetes to deploy your project
- RDT creates a personal namespace (derived from your OS username, e.g.,
rdt-john) - Edit files locally — Kubernetes Sync pushes changes to the pod automatically
Advantages
- Zero local infrastructure — no Docker, no VMs, no WSL needed
- Production-like environment — same Helm chart, same services, same networking
- Shared resources — cluster is maintained centrally, no per-developer overhead
- Fast iteration — Kubernetes Sync enables incremental updates without redeployment
Prerequisites
- Access to the SAMO Kubernetes cluster
- kubectl + Helm installed locally
- RDT VS Code Extension
See Kubernetes Deployment prerequisites for the full setup.
Option 2: Local Kubernetes (WSL) — coming soon
Run a local Kubernetes cluster inside WSL (Windows Subsystem for Linux) using minikube or k3s. This gives you a fully local environment that still uses the same Helm chart as production.
Setup
- Install WSL 2 with a Linux distribution (e.g., Ubuntu)
- Install Docker inside WSL
- Install a local Kubernetes distribution:
- minikube:
minikube start --driver=docker - k3s:
curl -sfL https://get.k3s.io | sh -
- minikube:
- Configure kubectl to point to your local cluster
- Use RDT's Deploy to Kubernetes as normal — it works the same way against a local cluster
Advantages
- Fully offline — no dependency on shared infrastructure
- Same deployment flow — uses the same Helm chart and RDT deploy workflow
- Good for testing — can experiment without affecting others
Considerations
- Requires WSL 2 + Docker running locally (resource-intensive)
- You manage the cluster yourself (updates, restarts, resource limits)
Option 3: Docker Compose — coming soon
Run SAMO services directly via Docker Compose for a lightweight local setup without Kubernetes.
Considerations
- Simpler setup than Kubernetes, but less production-like
- Service networking differs from K8s (no ConfigMaps, no Helm)
- Suitable for quick testing or when K8s access is not available
Migration from Localtron
If you are currently using Localtron:
- Stop using
localtron.json— this configuration file is no longer needed - Choose your target environment — Kubernetes cluster (recommended) or local WSL/Docker
- Set up
rdt.json— configure per-environment deployment settings (see Per-Environment Config) - Deploy with RDT — use the Deploy to Kubernetes button in the RDT panel
- Use Kubernetes Sync — replace manual Localtron restarts with automatic file sync
The RDT extension handles everything that Localtron used to do — service deployment, configuration, and restarts — but in a way that matches your production environment.