Skip to main content
EXAMPLE

Kubernetes Emulator

This example deploys a Helm release (nginx) to a local Kubernetes sandbox — no EKS, no cloud, no aws eks update-kubeconfig. The sandbox is an Atmos emulator component running k3s: a stack-scoped…

EmulatorsKubernetes
cloudposse / atmos

Try it out

Copy the example into a new directory and make it your own:

atmos init examples/emulator-k8s
cd emulator-k8s

Follow the README for prerequisites and next steps.

See it in action

RECORDED DEMO
emulator-k8s
 
Recorded from this example
Real commands. Real output.
README.md1.7 KB
View on GitHub

Notes

This example deploys a Helm release (nginx) to a local Kubernetes sandbox — no EKS, no cloud, no aws eks update-kubeconfig. The sandbox is an Atmos emulator component running k3s: a stack-scoped container Atmos starts and stops for you.

A single kubernetes/emulator identity in atmos.yaml binds every Helmfile component to the sandbox. When the identity is active, Atmos harvests the k3s kubeconfig and exports KUBECONFIG automatically — so Helmfile runs against the local cluster with no kubeconfig to manage. The nginx Helmfile component is reused verbatim from ../demo-helmfile; only the cluster source changed (emulator instead of a hand-rolled docker-compose.yml).

Usage

A container runtime (Docker or Podman) is required. The Helmfile component declares its helmfile, helm, kubectl, and kustomize dependencies, so Atmos installs and adds those tools to PATH through the project toolchain before running Helmfile:

atmos emulator up kubernetes -s local # start the local k3s sandbox
atmos helmfile apply demo -s local # deploy the nginx release to it

atmos helmfile destroy demo -s local # remove the release
atmos emulator down kubernetes -s local # stop and remove the sandbox container

The atmos test custom command runs the full apply/destroy lifecycle.