Compute Servers: Anaconda and JupyterHub

There are now 3 new compute server images:

Anaconda

JupyterHub

Kubernetes Node

Anaconda

The Anaconda image is a lightweight image with the conda command installed and configured (via mambaforge), and two channels, anaconda and conda-forge, enabled by default. You get Python 3.11 and can very easily install packages into your compute server's environment using the conda command, e.g., install Matplotlib:

(compute-server-1540) ~/anaconda$ conda install matplotlib

The packages you install are stored in /conda only on the compute server, so installing and using the packages is fast, and if you make the compute server disk large, you can install many packages.

JupyterHub

Th JupyterHub image is a single-node Kubernetes install of JupyterHub, which can be fully customized by you exactly as explained in the official docs (or email help@sagemath.com for support!). Click to create it, and wait for everything to install. It can take several minutes to start the first time, so please be patient. There is a random registration token which has to be entered to connect to JupyterHub; once you do that the default auth is that anybody can then sign in with any login/password (that's just the JupyterHub default). The default image is also very simple, but you can easily change it as documented above.

This is a single node deployment by default, but scaling up to multiple nodes does work, though it requires some copy/paste on the command line. (We will automate this in the future.)

Kubenetes Node

You can create a Kubernetes node. This is a single node Kubernetes cluster by default. However, you can join it to an existing cluster following the microk8s directions. E.g., you could expand a JupyterHub install to have multiple nodes.