-
Notifications
You must be signed in to change notification settings - Fork 388
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Optional build volumes and build init_containers, REPO_URL accessible to pod #1081
base: main
Are you sure you want to change the base?
Conversation
… config; REPO_URL env accesible to pod linting adding optionnal volumes and init_containers to binderhub config
First reaction: sounds reasonable and like a good idea. I think the most controversial things in this PR are:
So you see, really not a lot of controversy :) Maybe we can start with the last bullet point as it would also help me to think this through. |
Hi,
I can start draft something for the documentation, will add a commit for doc changes.
Oh I thought the parameters were already somehow exposed to the helm chart.. I don't know how to do that but maybe @agahkarakuzu you could help? |
* add pre-build steps doc * Update customizing.rst * Update customizing.rst * Update customizing.rst
We finished drafting a doc with @agahkarakuzu, we modified |
Hello, |
This would also be really useful to inject custom CA certs into the build pod. I'm trying to use a cluster-internal docker registry with a private CA cert. I've managed to inject the CA's cert into binderhub (cf. https://github.com/pfisterer/edsc-k8s-playbook/blob/54ec18834b19ef10b909c3a89f245047f12262d6/files/binderhub.yaml#L69). However, injecting them into the build pod didn't work. Maybe I could also use PodPresets, but they are not enabled in my current k8s environment. I guess being able to add |
This pull request has been mentioned on Jupyter Community Forum. There might be relevant details there: |
This pull request has been mentioned on Jupyter Community Forum. There might be relevant details there: |
FYI: we are relying mostly on jupyterhub customization. Still this raise the following issues:
|
This pull request has been mentioned on Jupyter Community Forum. There might be relevant details there: |
@ltretrel We're planning to merge an auto-formatting PR in two weeks #1381 Since the auto-formatting will affect most files we can give you some help with rebasing this PR after the merge if necessary. |
Hey @manics, |
Hi everyone,
We are reaching out regarding a potential contribution from the Neurolibre team:
The contribution concerns allowing some actions before building a user image (in our case pulling databases on our server using repo2data). For now we were using a
pre_span_hook
inside the hub. However, this leads to http timeout for big datasets Increasing the http timeout would be far from ideal. Moreover, running repo2data every time a user is assigned to a pod is not optimal either (when it could be done just once every time the repo changes).I first thought we could use a
pod_preset
that would inject data likeenv
orinit_container
into the build pod (check our conversation here), but it is not possible easily. So I started working on a fork to modify directly the build pod spawn. And instead of hard coding stuff, I fought it could be usefull for the community to have additional volumes in the build pod, and init_container beforerepo2docker
container is called (and also making theREPO_URL
accessible to containers inside the build pod).So I added three options to binderhub:
extra_volume_build
: specify the folder to be mounted (name
andpath
)extra_volume_mount_build
: specify where to mount the folder in the container (name
andmountPath
)init_container_build
: defines theimage
andargs
for the init container (run before repo2docker)Here is an example of a working
conf.py
:I still need help to properly log the content of the init container (nothing is logged into the webpage).
We'd be glad to hear your opinion to improve our solution and translate it to a contribution, if the community regards this as a useful addition.