Kubernetes Install Guide
Works the same way on any Kubernetes cluster — AKS, GKE, EKS, or on-prem — since this is a plain Helm chart with no cloud-specific setup. What it installs, honestly, is smaller than "run one command and you have a working sandbox": read this page before you start.
This creates a namespace-scoped ServiceAccount, a
Role, and a
RoleBinding — the exact RBAC described on
Zero Trust. It
deliberately does not start a running 00DB server: an earlier draft of this chart included a
Deployment, and a Deployment would silently defeat self-destruct by recreating any pod it manages that
gets deleted — see Zero Trace.
It's been removed for exactly that reason.
helm install 00db ./deploy/helm/00db --namespace 00db-sandboxes --create-namespace
Two values matter, both defaulted sensibly and both needing to match whatever creates a sandbox pod (Step 2 below):
sandbox.namespace— default00db-sandboxes. Every sandbox pod is created in, and this RBAC is scoped to, this one namespace.serviceAccount.name— default00db-sandbox-manager. Whatever creates a sandbox pod must set this exact name as that pod'sspec.serviceAccountName, or the pod won't have permission to delete itself later.
Worth saying plainly rather than glossing over: this chart sets up permissions, it doesn't create
sandbox pods itself. Today, that's a separate, human-operated program that isn't distributed as part of
this repo or this chart — it needs kubectl apply
(or equivalent Kubernetes API) access to create a two-container pod (the 00DB app image plus a database
engine image, see Supported Databases)
into the namespace from Step 1, with spec.serviceAccountName
set to the Step 1 ServiceAccount name. If you're setting up a real environment, talk to your Tribal
Knowledge contact about getting that piece running — it isn't a self-serve download today.
Contact sales, then
generate a license key from your Dashboard.
Set it as the SQL_SIMULATOR_LICENSE_KEY
environment variable in the sandbox pod's manifest (the same manifest Step 2's launcher applies) —
your cluster checks in automatically once a pod starts with that variable set, and unlocks whichever
tier the key is for.
From here, the pod is fully self-managing — nothing further to install or run. It provisions its own sandbox database login against its sibling engine container, connects to the Kubernetes API using the Step 1 ServiceAccount's own in-cluster credentials (not a kubeconfig file), watches its own idle/lifetime clocks, and deletes itself when one of them fires — see Zero Trace for exactly when.