Posting here also on advice from the google group for Project Jupyter.
Does anyone have experience or info about how the jupyterlab-git extension can be deployed for jupyterlab running under kubernetes, e.g. deployed using https://z2jh.jupyter.org/en/latest/index.html. All I see at https://github.com/jupyterlab/jupyterlab-git seems related to deploying the extension on your developer workstation. I would like to e.g. configure jupyterhub to include the jupyterlab-git extension through the z2jh helm chart used to deploy jupyterlab.
For Acumos (a LF Deep Learning community project) we are working to deploy jupyterlab as part of the Acumos platform, and are looking at deploying a local git server also as a backend service for storage and version control. Any input/pointers to how we can integrated such a git server with jupyterlab single-user containers via the jupyterlab-git extension, or where more info can be found, would be very appreciated.
As for running a git server, authentication is probably going to be the trickiest step. Most private git servers I’m aware of use a standard ssh server so that git’s really just managing files on disk and ssh is responsible for authentication, permissions, etc. But this might be tricky for getting credentials (ssh keys) to user environments. You might consider deploying the GitLab helm chart, if you are already using kubernetes+helm. I haven’t done this, so I can’t speak to whether it’s a good choice (it does a lot more than just be a git server). The git on a server docs might also be useful for making a decision on how to go.
The authentication part is still being worked out. We are trying to tie the user auth directly to their profile on the Acumos platform, automatically. This might another reason that I need to use a custom image, if I can’t just use a secret for this somehow using kubespawner.
I was able to get it installed in a custom docker image after hunting around a bit. Thanks again for the help.
Here’s the dockerfile (I installed nbgitpuller also to see what it can do for me):