Skip to content
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

Add image selector #37

Open
2 of 3 tasks
tsnow03 opened this issue Feb 7, 2023 · 4 comments
Open
2 of 3 tasks

Add image selector #37

tsnow03 opened this issue Feb 7, 2023 · 4 comments
Assignees

Comments

@tsnow03
Copy link
Member

tsnow03 commented Feb 7, 2023

We anticipate needing multiple images for the hackweeks and potentially machine learning users. We need to add an image selector capability. The ideal setup is to have one docker image per environment per repo.

We anticipate new users who will be using MATLAB at the March 24th onboarding training. We need to add the Jupyter MATLAB proxy and new MATLAB kernel (https://github.com/mathworks/jupyter-matlab-proxy/blob/main/src/jupyter_matlab_kernel/README.md) in a way that the user can bring their own license. We will start by doing this using the [NASA OpenScapes](https://github.com/NASA-Openscapes hub) model. We want to have these images for these kernels:

  • MATLAB
  • Julia
  • R
@tsnow03 tsnow03 moved this to 📋 Backlog in March 2023 Event Feb 7, 2023
@weiji14
Copy link
Member

weiji14 commented Mar 1, 2023

Ideas from the CryoCloud Pangeo talk that could help with the multi-environment issue:

  • Condastore. https://conda.store/en/latest/
    • Pros: Well suited for multi-user JupyterHub, looks very user-friendly to adjust dependencies once set-up
    • Cons: Setup is rather complicated, may require (lots of) help from 2i2c. Some anecdotes of bug fixes being slow.
  • Note https://opensarlab-docs.asf.alaska.edu/ installs custom envs in /home/jovan (but not shared), see https://github.com/ASFOpenSARlab/opensarlab-envs/tree/main/Environment_Configs
    • Pros: Has been tested in a production environment (OpenSarLabs), quite similar to pangeo-docker-images and what we're already using?
    • Cons: Still requires a bit of setup (easier than condastore), a little less user friendly to update changing dependencies, somewhat less reproducible than condastore?
  • Also worth keeping an eye on https://prefix.dev/
    • Pros: Dependency solving is quite fast (since it's designed by mamba folks). Support for multiple operating systems (Linux, macos (M1 and Intel), Windows)
    • Cons: Relatively new, may lack some features such as multi-user editing of depedency specification files

Need to investigate if these newer options are viable, or if we go with a tried and tested multi Dockerfile method like https://github.com/pangeo-data/pangeo-docker-images (which is tested but hard to maintain).

Edit: Added some pros/cons from a quick superficial evaluation looking at the docs, and some advice from colleagues.

@tsnow03
Copy link
Member Author

tsnow03 commented Mar 19, 2023

Thanks @weiji14 for all of the ideas. I hadn't been aware anything but condastore. We chatted with @yuvipanda and decided to go with the current Openscapes hub model until other options can be tested and configured. It is inefficient but it works for now. I like the Condastore model as a potential future option. We can keep this on our task list even once this version is working.

I made updates to the original issue. I've combined the image and kernel selector issues, favoring using the image selector for our different kernels (one image per environment). I am aiming to have this working by Wed Mar 22rd at the latest so we can debut it for the March 24th FOGSS onboarding training.

@tsnow03
Copy link
Member Author

tsnow03 commented Mar 19, 2023

I created CryoCloud R image and Matlab image repos based on the Openscapes py-rocket and matlab repos. I updated the build workflow and test workflow in both to mostly match what we have in our hub-image build.yml. I'm not sure which of the other workflows need to be added. Docker images for both have built and posted to quay (quay repos built, robot adjusted, and secrets added to Github repos). I'm guessing the Dockerfiles don't work properly with this workflow and need to be integrated into the build.yml, but I haven't been able to look that up yet. @yuvipanda Is contacting 2i2c what I do to have the image selector deployed? Or is there something we do on our end?

Also, still needing a Julia image at some point, but that isn't a rush.

@tsnow03 tsnow03 moved this from 📋 Backlog to 🏗 In progress in March 2023 Event Mar 19, 2023
@tsnow03
Copy link
Member Author

tsnow03 commented Mar 21, 2023

The R and Matlab images work! I'm contacting 2i2c to build an image selector for us now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: 🏗 In progress
Development

No branches or pull requests

3 participants