Deploy with Helm
A Helm chart is a package that bundles Kubernetes manifests into a reusable, configurable deployment unit. It makes applications easier to install, upgrade, and manage.
Using the LocalStack Helm chart lets you deploy LocalStack to Kubernetes with set defaults while still customizing resources, persistence, networking, and environment variables through a single values.yaml. This approach is especially useful for teams running LocalStack in shared clusters or CI environments where repeatable, versioned deployments matter.
Getting Started
Section titled “Getting Started”This guide shows you how to install and run LocalStack on Kubernetes using the official Helm chart. It walks you through adding the Helm repository, installing and configuring LocalStack, and verifying that your deployment is running and accessible in your cluster.
Prerequisites
Section titled “Prerequisites”- Kubernetes 1.19 or newer
- Helm 3.2.0 or newer
- A working Kubernetes cluster (self-hosted, managed, or local)
- kubectl installed and configured for your cluster
- Helm CLI installed and available in your shell PATH
Namespace note: All commands in this guide assume installation into the default namespace. If you’re using a different namespace:
- Add --namespace <name> (and --create-namespace on first install) to Helm commands
- Add -n <name> to kubectl commands
Install
Section titled “Install”1) Add Helm repo
Section titled “1) Add Helm repo”2) Install with default configuration
Section titled “2) Install with default configuration”This creates the LocalStack resources in your cluster using the chart defaults.
Install LocalStack for AWS
Section titled “Install LocalStack for AWS”If you want to use the localstack-pro image, create a values.yaml file:
Then install using your custom values:
Auth token from a Kubernetes Secret
Section titled “Auth token from a Kubernetes Secret”If your auth token is stored in a Kubernetes Secret, you can reference it using valueFrom:
Configure chart
Section titled “Configure chart”The chart ships with sensible defaults, but most production setups will want a small values.yaml to customize behavior.
View all default values
Section titled “View all default values”Override values with a custom values.yaml
Section titled “Override values with a custom values.yaml”Create a values.yaml and apply it during install/upgrade:
Verify
Section titled “Verify”1) Check the Pod status
Section titled “1) Check the Pod status”After a short time, you should see the LocalStack Pod in Running status:
2) Optional: Port-forward to access LocalStack from localhost
Section titled “2) Optional: Port-forward to access LocalStack from localhost”If you’re running a local cluster (for example, k3d) and LocalStack is not exposed externally, port-forward the service:
Now verify connectivity with the AWS CLI:
Example response:
Common customizations
Section titled “Common customizations”Enable persistence
Section titled “Enable persistence”If you want state to survive Pod restarts, enable PVC-backed persistence:
- Set: persistence.enabled = true
Example values.yaml:
This is especially useful for workflows where you seed resources or rely on state across restarts.
This performs these two changes:
- sets PERSISTENCE=1, and
- creates a psrsistent volume claim for the (customizable) storage class.
Set Pod resource requests and limits
Section titled “Set Pod resource requests and limits”Some environments (notably EKS on Fargate) may terminate the LocalStack pod if not configured with reasonable requests/limits:
Add environment variables and startup scripts
Section titled “Add environment variables and startup scripts”You can inject environment variables or run a startup script to:
- pre-configure LocalStack
- seed AWS resources
- tweak LocalStack behavior
Use:
- extraEnvVars for environment variables
- startupScriptContent for startup scripts
Example pattern:
Install into a different namespace
Section titled “Install into a different namespace”Use --namespace and create it on first install:
Then include the namespace on kubectl commands:
Update installation
Section titled “Update installation”If you use a values.yaml:
Helm chart options
Section titled “Helm chart options”Run:
Keep the parameter tables on this page for quick reference (especially for common settings like persistence, resources, env vars, and service exposure).