Skip to main content

Installing Sysbox

Faheem Code runs each agent session in a sandbox that uses Sysbox for isolation. This guide covers installing Sysbox.

Node requirements

Sysbox nodes must:

  • Run a Sysbox-supported Linux distribution. Ubuntu is the most common and best-supported choice.
  • Have at least 4 vCPU and 4 GiB of memory.
  • Use containerd (the default on most managed distributions).
  • Run a Kubernetes version supported by Sysbox.

Run sandboxes on a dedicated node pool so these requirements (and the Sysbox install below) apply only to sandbox nodes, not the whole cluster.

Install Sysbox

Sysbox installs per node via the sysbox-deploy-k8s DaemonSet. It targets nodes labeled sysbox-install=yes, installs the runtime, and registers a sysbox-runc RuntimeClass.

Label the sandbox nodes
kubectl label nodes <node-name> sysbox-install=yes

If your nodes autoscale, set this label on the group so every node it launches is labeled automatically.

Apply the installer
kubectl apply -f https://raw.githubusercontent.com/nestybox/sysbox/master/sysbox-k8s-manifests/sysbox-install.yaml
Confirm the RuntimeClass exists
kubectl get runtimeclass sysbox-runc

The sysbox-runc RuntimeClass pins any pod that uses it to Sysbox nodes, so sandboxes only schedule where the runtime is installed.

Point Faheem Code at Sysbox

Tell the runtime API to launch sandboxes with the Sysbox runtime class, and enable native user namespaces:

runtime-api:
env:
RUNTIME_CLASS: sysbox-runc
SET_HOST_USERS: "true"

Verify

Start a conversation in Faheem Code, then confirm the sandbox pod landed on a Sysbox node with the runtime class applied:

kubectl get pod <sandbox-pod> -n faheemcode \
-o jsonpath='{.spec.runtimeClassName}{"\n"}'

The output should be sysbox-runc.

Next steps