-
Notifications
You must be signed in to change notification settings - Fork 70
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
Update the gallery package before building new images #50
base: master
Are you sure you want to change the base?
Conversation
@@ -11,6 +11,9 @@ PrivateTmp=yes | |||
PrivateDevices=yes | |||
ProtectKernelTunables=yes | |||
ProtectKernelModules=yes | |||
# Update with the new gallery | |||
ExecStartPre={python_interpreter_path} -m pip install -U {gallery_repo} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks like the simplest / easiest way to execute one more command.
If we plan to add more logic to this unit in the future we can consider moving it to a proper script.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hmm, I think this needs to be a separate process, since you'd need to restart the hub process too when this happens.
or, we can split the repo into two, code and data. Thta's the right thing to do long term anyway... we can then unconditionally pull in the data
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what does data mean in that case?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Data would be gallery.yaml
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Then we are back to the question of what happens when the structure of the yaml changes and requires the new code that goes with it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ugh, yeah.
But now when the code changes, the files will change but the running processes will not... Immutable deployment problems.
I don't have a clear answer, but if this unblocks you I'm happy to merge as long as we open an issue talking about what is the way out.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Exactly, this would require a restart.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As a side note this change also does not cover the case when the hooks have been updated and should be run one more time through the --plugin
mechanism of TLJH. For example when adding more custom actions in post_install_hook
.
In that case it would probably be better to bootstrap a complete new instance and tear down the old one.
This PR Implements the idea from #37 (comment) (option 2) so the gallery can be updated automatically.
It also introduces the
GALLERY_REPO
environment variable to let the users configure where their gallery is located. The full install command for a new installation can then become:@yuvipanda does the JupyterHub service need to be restarted after updating the package?