jupyterhub-virtualdesktopspawner

Run Linux or Windows desktops with JupyterHub on public cloud and Kubernetes

MIT License

Stars
3

JupyterHub Virtual Desktop Spawner

⚠️⚠️⚠️⚠️⚠️ Under development ⚠️⚠️⚠️⚠️⚠️

Run Linux or Windows desktops with JupyterHub on public cloud and Kubernetes.

Linux desktops can be run in Linux containers on Kubernetes.

Windows desktops can only be run in a virtual machine- Microsoft does not allow desktops to be run in a Windows container. Support for AWS EC2 is provided.

Apache Guacamole, running on Kubernetes, provides browser access to the desktops.

Example of connecting to a shutdown Windows desktop:

windows-existing-launch.webm

Setup: Linux desktops (containers)

Install JupyterHub following Zero to JupyterHub with Kubernetes. Use z2jh-linuxdesktops.yaml as the Z2JH configuration.

Setup: Windows desktops (virtual machines)

Currently only AWS EC2 is supported.

Create an IRSA role with the policy in aws-ec2ssm-iam-policy.json so that JupyterHub can access EC2 and SSM. Ensure the role can be assumed by the hub service account in whichever Kubernetes namespace you're using. Alternatively create an IAM role and credentials, and pass them to the hub pod as environment variables.

Install JupyterHub following Zero to JupyterHub with Kubernetes. Use z2jh-windowsdesktops.yaml as the Z2JH configuration. Change:

  • hub.config.Ec2DesktopSpawner.subnet_id: The VPC subnet ID that the instance should be created in
  • hub.config.Ec2DesktopSpawner.instance_profile_name: Instance profile role name, must allow SSM access

More screenshots

Example of creating a new Windows desktop:

windows-create-launch.webm

Badges
Extracted from project README
Build