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/GUI 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/GUI.