During the fall quarter of 2020 the JupyterTeam attended JupyterCon and was able to make improvements to Thebe which our CKEditor Binder Plugin depends on. Furthermore, we expanded LibreTexts's CKEditor with a new Query Plugin to enable authors to embed interactive problems into their textbook pages for readers to solve. Finally, we went through most of the process of migrating the Flock kubernetes cluster to Galaxy, which contains many improvements.
Jupyter Team attended a JupyterCon sprint to improve Thebe, an open source project which we use to insert executable code blocks into LibreTexts textbook pages.
Additions to Thebe made by the team include:
- Documenting how to display various ipywidgets in Thebe code blocks. Without including scripts such as RequireJS and Font Awesome 4, many ipywidgets would not display properly. Some example pages for widgets created include bqplot, ipyleaflet, and plotly.
- Adding a read-only option to code blocks, allowing users to disable editing on rendered code blocks.
- Persisting Binder sessions across pages, which decreases the time to connect to a Binder pod if a user has already requested a previous session.
- Simplifying Jest tests
We plan to continue working with Thebe in order to improve how it inserts and displays interactive JupyterLab widgets.
CKEditor Query Plugin
During the winter break, the Jupyter team migrated the previous Flock cluster to the new Galaxy cluster. This involved various changes in networking, hardware, and Jupyterhub.
The first step was to make sure that all of the physical computers were properly wired to each other. At the end of it all, we were able to reconsolidate our Flock and protogalaxy clusters to where we now have 17 nodes online. These new Galaxy nodes are running high availability programs like metallb and HAproxy to preserve the availability of our Libretexts services and Kubernetes control-planes which is a great improvement over the previous Flock cluster.
We improved cluster management by setting up Ubuntu cloudinit to boot the nodes and install a Puppet agent from which we are able to configure and install all the processes we need using a Puppet server. This creates consistency across our nodes and makes it easier to refresh the state of the cluster if something goes massively wrong. Both of these features were lacking in the Flock cluster and using them now makes it much easier to remotely manage these nodes.
While there are still a few remaining objectives to complete the setup of the Galaxy cluster, our services such as JupyterHub and BinderHub are all online and available to the public. In fact, all UC Davis students and faculty have now been authorized to access jupyter.libretexts.org without needing manual permission from us to do so. We intend to continue to expand the availability of these Jupyter services, with our next target being a JupyterHub for high preformance computing.