This Helm chart deploys JupyterHub on Kubernetes, providing a multi-user server for Jupyter notebooks. JupyterHub allows multiple users to access their own Jupyter notebook servers in a shared environment, making it ideal for educational institutions, research labs, and data science teams.
Add Helm Repository
Add the Helm repository by running:
For more details, see the Helm Repository Documentation.
Install Helm Chart
To deploy the JupyterHub Helm chart, use the following command:
Replace [RELEASE_NAME]
with your desired release name. Example:
You can override default values during installation by providing a values.yaml
file.
Refer to the Helm Install Documentation for further details.
Uninstall Helm Chart
To remove the JupyterHub Helm chart and associated resources, run:
Example:
Check the Helm Uninstall Documentation for more information.
Configuration
The JupyterHub Helm chart includes several configuration options to tailor the deployment to your needs. Below is a summary of the key configurations:
Hub Configuration
Input | Type | Description | Default |
---|---|---|---|
|
| Whether to allow admin access. |
|
|
| Authentication class to use. |
|
|
| Base URL for the JupyterHub instance. |
|
Proxy Configuration
Input | Type | Description | Default |
---|---|---|---|
|
| Whether to enable HTTPS. |
|
|
| Type of HTTPS configuration (letsencrypt). |
|
|
| Contact email for Let's Encrypt. |
|
|
| ACME server URL for Let's Encrypt. |
|
Single User Configuration
Input | Type | Description | Default |
---|---|---|---|
|
| Docker image for single-user servers. |
|
|
| Tag for the single-user server image. |
|
|
| Type of storage to use (dynamic/static). |
|
|
| Storage capacity for user volumes. |
|
|
| Path to mount user home directory. |
|
Scheduling Configuration
Input | Type | Description | Default |
---|---|---|---|
|
| Whether to enable user scheduler. |
|
|
| Number of scheduler replicas. |
|
|
| Log level for the scheduler. |
|
Culling Configuration
Input | Type | Description | Default |
---|---|---|---|
|
| Whether to enable culling of inactive servers. |
|
|
| Time in seconds before culling inactive servers. |
|
|
| How often to check for culling in seconds. |
|
Example values.yaml
Features
Multi-user Jupyter notebook server deployment
Configurable authentication system
HTTPS support with Let's Encrypt integration
Persistent storage for user data
Automatic culling of inactive servers
Network policies for security
Customizable resource limits
User scheduling capabilities
Pre-pulling of container images
Cloud metadata blocking for security
Architecture
The JupyterHub deployment includes:
Hub pod for user authentication and management
Proxy pod for routing requests
Single-user server pods for each user
Persistent volume claims for user data
Network policies for security
User scheduler for pod placement
Image pre-puller for faster startup
Culling service for resource management
Security Features
Network policies to control pod communication
Cloud metadata blocking
Configurable authentication system
HTTPS support
Privilege escalation prevention
User isolation through separate pods
Configurable security contexts
Contributing
We welcome contributions to improve this Helm chart. Please refer to the CONTRIBUTING.md file for contribution guidelines.
Code of Conduct
To maintain a healthy and collaborative community, please adhere to our Code of Conduct.
License
This project is licensed under the LICENSE. Please review it for terms of use.
Prerequisites
Kubernetes 1.19+
Helm 3.0+
kubectl configured to communicate with your cluster
Storage class for persistent volumes (if using dynamic storage)
Build By
Zop.dev
Category
See Helm Install Documentation for more information.
Need Help with This Integration?
We’re here to make setup smooth. Let us know what’s confusing—or which tools you'd like to see integrated next.
Need technical support or have product questions?