Run Linux or Windows desktops with JupyterHub on public cloud and Kubernetes
MIT License
⚠️⚠️⚠️⚠️⚠️ 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:
Install JupyterHub following Zero to JupyterHub with Kubernetes. Use z2jh-linuxdesktops.yaml as the Z2JH configuration.
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 inhub.config.Ec2DesktopSpawner.instance_profile_name
: Instance profile role name, must allow SSM accessExample of creating a new Windows desktop: