datahub icon indicating copy to clipboard operation
datahub copied to clipboard

Use group properties to manage singleuser server resources

Open ryanlovett opened this issue 1 year ago • 3 comments

Summary

JupyterHub 4.0 will have group properties 137360120-4981ccd3-0d9b-4275-ae0a-314616cc7294

Since this permits a hub admin to assign arbitrary properties, we could assign RAM to singleuser servers through group properties. This would enable infrastructure staff or course staff to alter resources without necessarily having to alter the deployment configuration.

User Stories

Instructors often need to bump RAM for specific assignments, so they will file a github issue. Infra staff alters the deployment config and pushes the change through CI. With this feature, the instructor could create arbitrary groups within bCourses, then alter group properties within the hub's administrative UI. They would be able to dynamically assign resources without infra staff intervention.

Acceptance criteria / Tasks to complete

  • [x] Create jupyterhub groups from Canvas groups (WIP). We already create groups based on Canvas enrollments, but we can do the same for Canvas groups. Instructors would be able to create groups for the duration of the course, or for specific assignments. I am working on this for RTC purposes, but it'd be useful for spawning too.
  • [ ] Appropriately scope ability to alter group properties. Since instructors would be able to increase resources whenever they want, we'd want to make sure only designated people had this ability. There would need to be oversight and education for this feature since it could massively affect spending.
  • [ ] Alter spawner to evaluate properties and change allocated resources.

Important information

  • https://github.com/jupyterhub/jupyterhub/issues/4350

ryanlovett avatar Mar 13 '23 18:03 ryanlovett

@ryanlovett This seems like a good use case for simplifying our workflow. It would definitely reduce a PR to bump up resources at my end.

For instructors, (as you highlighted) we need to figure out a process where they get our buy in before bumping up resources. As much as we don't want to add friction to their workflow, we do want to control the final decision for these type of requests

balajialg avatar Mar 13 '23 20:03 balajialg

@balajialg Absolutely. You might not choose to widen the scope of authorization, but infra staff would still be able to do the allocation through the admin interface.

ryanlovett avatar Mar 13 '23 22:03 ryanlovett

Sounds good @ryanlovett

balajialg avatar Mar 13 '23 23:03 balajialg