StorageΒΆ

All three aspects mentioned above are using storage in the form of a shared filesystem. Usually, this is accomplished via an NFS server, but there are other options as well. The Kubernetes abstraction for this is a PersistentVolume (PV) with ReadWriteMany access mode.

Projects mount the /projects/[UUID] subdirectory as their Home Directory. Other services manage-copy mount this directory to copy between projects, while sharing (publishing) files is mounted by hub-next and serves rendered files at the /share path.

Note

An important detail is that the UID/GID is 2001, since the user in a project and these services run under that UID. This is for security reasons, i.e. to be distinct from root with UID 0.

For example, the AWS EKS setup does not work out of the box and must be configured to use 2001 as UID/GID.