Skip to content

using extraFiles makes the parent directory read-only, which can often break JupyterHub #3680

Open
@cboettig

Description

@cboettig

Bug description

It seems like a common case for singleluser.extraFiles would be to load configuration files for JupyterHub and related extensions. For instance, I'd like to use this to provide a pre-configured config.json for the jupyter-ai extension, which lives in $XDG_HOME/jupyter/jupyter_ai .

However, setting this with something like:

singleuser:
  extraFiles:
    jupyter_ai_config.json:
      mountPath: "/opt/share/jupyter/jupyter_ai/config.json"
      data: 
        model_provider_id: "openai-chat-custom:llama3"

makes the hub fail to launch any image, due to a permissions error introduced on jupyter/runtime, which is found in the parent folder. This seems to be a known issue, (though I didn't see this side-effect documented in the docs).

(Maybe this counts as a feature request rather than a bug, but because a seemingly valid use of the documented option for extraFiles leads to the hub not even launching it feels more like a bug).

How to reproduce

add config listed above to jupyterhub values.yaml and deploy

Expected behaviour

jupyter-ai extension, if installed on the image, has the provided config. Ideally the file itself is read-write permissions to the jupyter user, though read-only would be okay to.

Actual behaviour

JupyterHub fails to launch pod, kubectl logs show pod gets stuck on a permission error on jupyter/runtime

Your personal set up

https://github.com/boettiger-lab/k8s/blob/main/jupyterhub/thelio-config.yaml

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions