2022 Girls Astronomy Summer Camp Report

T. Andrew Manning, Research Scientist, National Center for Supercomputing Applications

Summary

I supported another successful UIUC Girls Astronomy Summer Camp, which was held June 21-22, 2022. This year I again deployed a dedicated JupyterHub service that allowed the students to run code in Jupyter notebooks independently on their own JupyterLab servers during the two programming sessions. My points of contact were the camp instructors Rachel Harrison and Frankie Encalada. After an initial meeting about a month prior to the camp where they articulated their needs, we iterated on the cyberinfrastructure (CI) as I developed the tools and services.

Technical details

The CI was based on what I built last year, but this time was simpler because instead of creating an entire dedicated Kubernetes cluster, we used our existing SPT-3G cutout service cluster. There was room for innovation, however, and I used the opportunity to improve my understanding of the software components I also use in several of my other NCSA projects.

  • Identity and access management: Because they are in high school, the students needed local accounts that do not rely on an email address or a third-party service. I used Keycloak for this purpose. Instead of deploying a new dedicated Keycloak server for the camp, I created a new “realm” in an existing server. User account provisioning was streamlined by improved workflow and tooling: Camp instructors entered instructor and student names in a shared online spreadsheet, which was parsed by a Python script I wrote to automatically create the user accounts via the Keycloak API. This required me to manually execute the script, so it was most useful for the initial bulk account creation. Camp instructors were given the role of “realm admins” so that they could subsequently add or modify user accounts on their own via the Keycloak web interface.

  • JupyterHub: There were two improvements to the JupyterHub deployment this year worth mentioning:

    1. Because Keycloak is a standard OpenID Connect (OIDC) identity provider, I could use an existing JupyterHub OIDC plugin for authentication, negating the need for any account management within JupyterHub itself. Additionally, the standard role based access control (RBAC) supported by Keycloak was used to grant instructors access to the JupyterHub admin panel, giving them more autonomy over managing the student JupyterLab servers as desired.

    2. Each student needed the same initial set of Jupyter notebook and data files so that they could all follow along interactively during the programming tutorials. I designed a data provisioning system that copied these files into place upon first login, using hooks provided by the JupyterHub system. This system has a few advantages over a statically provisioned file set. First, the instructors could modify the template files that were being copied without assistance from me at any time leading up to the camp. Second, the system would seamlessly accommodate any number of unanticipated additional camp participants.

  • Website: I created and hosted a simple website like last year at https://gasc.cosmology.illinois.edu to provide a central location for people to discover information and services related to the camp. This included documentation about the CI for both instructors and students as well as a link to the JupyterHub service.