Skip to main content

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.

RDT Support

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.

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

  1. Get access to the SAMO K8s cluster (contact the RDT team)
  2. Configure kubectl with your cluster credentials
  3. Use RDT's Deploy to Kubernetes to deploy your project
  4. RDT creates a personal namespace (derived from your OS username, e.g., rdt-john)
  5. 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

  1. Install WSL 2 with a Linux distribution (e.g., Ubuntu)
  2. Install Docker inside WSL
  3. Install a local Kubernetes distribution:
    • minikube: minikube start --driver=docker
    • k3s: curl -sfL https://get.k3s.io | sh -
  4. Configure kubectl to point to your local cluster
  5. 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:

  1. Stop using localtron.json — this configuration file is no longer needed
  2. Choose your target environment — Kubernetes cluster (recommended) or local WSL/Docker
  3. Set up rdt.json — configure per-environment deployment settings (see Per-Environment Config)
  4. Deploy with RDT — use the Deploy to Kubernetes button in the RDT panel
  5. 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.