isola logo

isola

Self-hosted Kubernetes sandboxing platform

GoDeveloper ToolsSelf-HostedGoApache-2.0 44 4Health 63
Website GitHub

What is it?

What it is

An open-source platform for running untrusted and AI-generated code securely on Kubernetes using gVisor sandboxing.

Why it exists

To provide a secure, self-hosted, and Kubernetes-native way to execute arbitrary code via a REST API and SDKs, featuring filesystem snapshots and configurable network isolation.

Who should use it

AI engineers building autonomous agentsDevelopers building code interpreters or online IDEsPlatform engineers needing secure multi-tenant execution environmentsDevOps teams requiring sandboxed command execution on Kubernetes

Who should avoid it

Users looking for a managed SaaS solutionTeams without access to a Kubernetes clusterUsers requiring full VM-level hardware virtualization (e.g., Firecracker)Developers who cannot manage or configure gVisor runtimes

How it works

A quick walkthrough in plain English

How isola works

Step 1 of 3

You interact with it

Open isola, send a request, or connect it to your stack.

Features

Sandbox lifecycle management with configurable CPU, memory, and storage limits
File I/O operations (read/write) within sandboxes
Command execution with streaming, stdin support, and non-blocking spawn
Rootfs snapshots for environment reuse and state persistence
Configurable network isolation (internet egress, CIDR restrictions)
Multi-container sandboxes with shared network namespace

Advantages

  • Open-source Apache 2.0 licensed for full control and auditing
  • Self-hosted on Kubernetes cluster with no external dependencies
  • Kubernetes-native integration via Custom Resources and operator
  • Strong security via gVisor application-layer isolation
  • Efficient rootfs snapshots with minimal storage overhead
  • Flexible network policies with egress rate limiting
  • Multi-language SDKs (Python, TypeScript) and REST API access

Disadvantages

  • Requires Kubernetes cluster with gVisor RuntimeClass configured
  • Cloud storage dependency for rootfs snapshots (S3/GCS/Azure)
  • Network isolation may require specific CNI support
  • Resource limit summation issues in multi-container setups
  • Egress rate limiting requires gVisor release 20260615.0+

Installation

cloud

Install with Helm: `kubectl create namespace isola-sandboxes` and `helm install isola oci://ghcr.io/isola-run/charts/isola --namespace isola-system --create-namespace`

native

run `hack/setup.sh` to get a local development cluster with Kind.

FAQ

What are the prerequisites for deploying Isola?

A Kubernetes cluster, Helm, a gVisor RuntimeClass configured in the cluster, and optionally an object storage bucket for rootfs snapshots.

How do I set up a local development environment?

Run `hack/setup.sh` to create a local Kind cluster with gVisor and a local registry, then use `tilt up` to start the dev environment.

How are rootfs snapshots enabled and used?

Enable via Helm values (`operator.sandboxRuntime.rootfssnapshot.enabled: true`) and configure storage (S3/GCS/Azure). Snapshots capture filesystem changes for reuse across sandboxes.

Can I restrict network access for sandboxes?

Yes. Configure `network=Network(allowed_egress_cidrs: [...])` or `allow_internet_egress: true` per sandbox to control egress traffic.

Which programming languages are supported via SDKs?

Python (sync/async) and TypeScript (Node, Bun, Deno) SDKs are available. The REST API can also be used directly for other languages.

How does Isola ensure security?

Isola uses gVisor for strong isolation via user-space system call interception. It's self-hosted, avoiding third-party services, and sandbox resources are managed via Kubernetes RBAC.

Loading documentation…
View on GitHub

Featured in Videos

YouTube tutorials and walkthroughs for isola

Alternatives

Similar projects ranked by category, topics, and text overlap.

Compare
isola | MushyBook