Skip to content

Shared Workspace

The shared workspace is a ReadWriteMany PersistentVolumeClaim (10Gi) automatically mounted in all Jupyter notebook instances and batch job pods within a project.

The shared workspace is available inside notebooks and batch jobs at:

/home/jovyan/work/shared/
shared/
├── my-data.csv ← files you upload or create in JupyterLab
├── reports/
│ └── monthly.ipynb ← notebook to run as a batch job
└── batch_outputs/
├── abc123/
│ └── output.ipynb ← output from job abc123
└── def456/
└── output.ipynb ← output from job def456
  • The shared workspace PVC is created on demand when the first batch job is submitted for a project
  • Existing notebook deployments are automatically patched to mount it — no restart required
  • New notebooks in the same project automatically receive the mount

In JupyterLab, the shared workspace appears in the file browser under work/shared/. You can:

  • Upload data files that batch jobs will process
  • Save notebooks to shared/ so they can be submitted as batch jobs
  • Browse batch job outputs without leaving JupyterLab

The shared workspace is provisioned with 10Gi of storage. To increase this, update the PVC size via kubectl:

Terminal window
kubectl patch pvc shared-workspace -n apps-<project-slug> \
-p '{"spec":{"resources":{"requests":{"storage":"50Gi"}}}}'

The shared workspace uses ReadWriteMany access mode, which requires an RWX-capable storage class such as:

  • Longhorn (recommended for production)
  • NFS CSI driver
  • local-path in single-node k3d clusters (uses ReadWriteOnce as fallback)

The storage class is configured via the STORAGE_CLASS_RWX environment variable on the backend.