aiidalab / aiidalab-docker-stack

Docker images with the basic software stack for AiiDAlab

Home Page:https://aiidalab.net

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Setting up the home directory in Kubernetes

danielhollas opened this issue · comments

Just as a followup to my question about how kubernetes mounts volume, indeed it doesn't seem possible to use overlay mount to preserve pre-existing files in the /home/jovyan directory in the image. I found this StackOverflow answer interesting. https://stackoverflow.com/a/63128564/3682277

A common solution for your use-case is, to use an init container to set up the emptyDir, before the main container is started. So basically you specify the emptyDir as a volume mount in both the init container and the main container and have the init container copy the files into the emptyDir.

Might be interesting to explore, in case you haven't already CC @unkcpz @superstar54

In any case, whatever solution you arrive at at the end, we should document it somewhere in this repo.

Exactly, I did mentioned it to @superstar54 and it actually documented in jupyter k8s deployment, in https://z2jh.jupyter.org/en/latest/jupyterhub/customizing/user-environment.html#about-user-storage-and-adding-files-to-it

singleuser:
  lifecycleHooks:
    postStart:
      exec:
        command: ["cp", "-a", "src", "target"]

Therefore if we only considered the use case of speed up k8s startup, we don't need the move and uncompress script in before-notebook.d/.