-
Notifications
You must be signed in to change notification settings - Fork 88
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
JupyterLab Plugin #55
Comments
cc @ian-r-rose for thoughts here. In summary, the ideal lab extension I'd like for dask-gateway would:
I think this could be done by modifying the existing extension, but am not sure if it's the best method. Some of these views would be alternative implementations of existing code, which should be doable with some config logic. The input form on cluster creation would be new functionality, but we could likely make this work with other cluster managers as well. |
My understanding of @ian-r-rose 's original plan was that Dask-Gateway itself might replace the server-side component in dask-labextension. That way JupyterLab might talk directly to routes on the Gateway server. |
The trick there would be handling auth. If you could handle auth all browser-side then there wouldn't need to be any server-side component for the lab extension. |
Overall, my preference would be to adapt
Yes, this should be pretty straightforward. Can you expand on what you mean about not needing to proxy anything in the extension? I should think it would still be valuable to proxy the bokeh server under the notebook server in this case, and most of the existing logic for that could be reused.
I don't know much about
Can a cluster backend send a code snippet over the wire for this? If it is sending security information, can it cache it in some kind of environment variable/store to be referenced later?
It's really difficult to guarantee performing some action upon shutdown of the server. I do think it would be great to be able to have persistent clusters that run independently of the server.
Yeah, I think the input form may be the trickiest part, depending upon how much it could be backend-specific. In |
If we can use |
Dask-gateway runs the dask schedulers on a different node than the notebook server, and already proxies out the dashboards through a common shared proxy (that is intended to be publicly accessible). If the proxy in the labextension can proxy non-localhost routes, then there's no harm in keeping it, but it shouldn't be necessary in the common case.
This is specific to dask-gateway, but the options model is general enough that I'd expect we could generalize the interface to other cluster managers as well.
We wouldn't need to do any of this, the snippet would just need to be different. Something like:
To be clear, this isn't something that the labextension would need to worry about, we'd just want to expose the option on cluster creation (probably as a checkbox). This would set the
This already works, and is likely sufficient for now. In the long run I'd like to expose a form to change the parameters dynamically, which I suspect would be useful for other cluster managers as well. I think the main tasks are (ordered by importance/ease):
|
In #54 we added an API that allows users to configure admin-defined fields when starting a cluster. This API provides an endpoint for discovering what options exist (name, type, description). In the Python client library we use this information to build a
ipywidget
interface for configuring the cluster. We could do the same here with a JupyterLab plugin.I'm not sure what this would look like. I suspect it'd be easier to build a new plugin than modify the existing dask plugin, as we have features they don't need, and vice versa (e.g. we don't need any of the proxying support).
The text was updated successfully, but these errors were encountered: