AWS EFS workspace storage
The aws_efs storage provider connects an operator-owned EFS filesystem through
the official AWS EFS CSI driver. It does not create or delete cloud filesystems,
mount targets or access points. The platform's common mergerfs router still
owns workspace assignment before sandbox delivery; engines do not select the
storage or implement EFS-specific recovery.
This provider currently requires Kubernetes and a statically provisioned,
read-write EFS CSI claim whose volumeHandle is exactly the filesystem ID.
The Docker runtime, access-point and subdirectory volume handles, and
efs:-prefixed handles are not implemented by this provider and are rejected
explicitly. Local storage and other backing filesystems use mounted_volume.
Configure the backing filesystem
Create an EFS filesystem and mount targets reachable by the sandbox nodes. Allow TCP 2049 on the mount target's security group only from the intended clients. Keep the EFS filesystem under operator control, independently of sandbox and Session lifetimes.
Install the official CSI driver before enabling EFS workspaces. These
instructions pin driver v3.5.0, Helm chart 4.5.0, upstream commit
978c0b0be261904014ffd68af35a7421bbf439a4. Static provisioning uses the node
driver; dynamic access-point provisioning is not needed for this integration:
helm upgrade --install aws-efs-csi-driver aws-efs-csi-driver \
--repo https://kubernetes-sigs.github.io/aws-efs-csi-driver/ \
--version 4.5.0 --namespace kube-system --set controller.create=false
Create a static PV for the actual filesystem ID, and a PVC in the sandbox
namespace (ASTRABOX_SANDBOX_SERVER_KUBE_NAMESPACE). The key PV fields are:
spec:
capacity:
storage: 20Gi
volumeMode: Filesystem
accessModes: [ReadWriteMany]
persistentVolumeReclaimPolicy: Retain
csi:
driver: efs.csi.aws.com
volumeHandle: fs-0123456789abcdef0
volumeAttributes:
encryptInTransit: "true"
The driver encrypts traffic in transit by default; encryptInTransit: "true"
states that explicitly. Bind a ReadWriteMany PVC to that PV. The declared
capacity is required by Kubernetes; it is not an EFS quota. Wait for the claim
to become Bound. Configure AstraBox with:
ASTRABOX_STORAGE_PROVIDER=aws_efs
ASTRABOX_EFS_FILE_SYSTEM_ID=fs-0123456789abcdef0
ASTRABOX_SANDBOX_WORKSPACE_VOLUME=your-bound-efs-claim
ASTRABOX_WORKSPACE_STORAGE_TOPOLOGY=shared
ASTRABOX_WORKSPACE_MOUNTER_IMAGE=your-immutable-workspace-mounter-image
Startup rejects aws_efs unless the sandbox runtime is Kubernetes, the
topology is shared, the workspace volume is set and the filesystem ID has the
fs- form. Before supplying each mount plan, the provider reads the live claim
and its PV:
- Both are
Bound, not terminating,ReadWriteMany, and inFilesystemmode. - The PV references that claim by name, namespace and UID.
- The PV uses the
efs.csi.aws.comdriver, and itsvolumeHandleequals the configured filesystem ID. - The PV permits writes. It keeps encryption in transit:
encryptInTransitother than"true", or anotlsortls=mount option, is rejected.
A local volume with the same claim name does not satisfy this check. The platform then uses its normal workspace router and OpenSandbox mount interface.
Filesystem behavior and verification
EFS does not support user extended attributes. The router preserves the underlying filesystem's result instead of emulating them. The mergerfs control entry is separate from file xattrs and is not exposed in the sandbox workspace. File operations required by workspace use include read/write, atomic rename, mode changes, symbolic links and advisory locks.
AstraBox stores the Agent program's native session data in the platform database, so conversation recovery does not depend on EFS. Releasing a workspace assignment deletes only the helper Pod and the view PV/PVC that AstraBox created for it. The backing claim, its PV and the EFS data stay in place.
A successful driver installation or a Bound claim shows only that Kubernetes
can mount the filesystem. Verify workspace persistence separately, with
sandboxes on different nodes, and record those results.
References: AWS CSI static provisioning, driver installation, EFS network access, and unsupported filesystem features.