-
Notifications
You must be signed in to change notification settings - Fork 22
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add tutorial on how to deploy JupyterHub (#453)
* add ce to the team, add tutorial for jupyterhub * fix post reviews --------- Charles-Edouard
- Loading branch information
Showing
6 changed files
with
297 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,141 @@ | ||
--- | ||
last_modified_on: "2024-07-19" | ||
$schema: "/.meta/.schemas/guides.json" | ||
title: Deploy JupyterHub using Helm | ||
description: How to deploy JupyterHub on Qovery using the official Helm chart. | ||
author_github: https://github.com/baalooos | ||
tags: ["type: tutorial", "technology: qovery"] | ||
hide_pagination: true | ||
--- | ||
|
||
import Steps from '@site/src/components/Steps'; | ||
import Assumptions from '@site/src/components/Assumptions'; | ||
|
||
JupyterHub is an easy way to interact with a computing environment through a webpage. It provides a standardized way to serve Jupyter Notebooks for multiple users. Pairing it with Kubernetes and Qovery makes it easier to manage and scale. | ||
|
||
<Assumptions name="guide"> | ||
|
||
- You have a Qovery cluster ready | ||
- You have a dedicated Qovery project and environment to deploy JupyterHub (example: Project=JupyterHub, Environment=Production) | ||
|
||
</Assumptions> | ||
|
||
<!-- | ||
THIS FILE IS AUTOGENERATED! | ||
To make changes please edit the template located at: | ||
website/guides/tutorial/deploy-jupyterhub-qovery.md.erb | ||
--> | ||
|
||
## Installation | ||
|
||
The easiest way to deploy JupyterHub is using the official [Helm Chart](https://github.com/jupyterhub/helm-chart). It will create all the resources you need to run JupyterHub. | ||
|
||
For more information, the official documentation is available [here](https://z2jh.jupyter.org/en/stable/jupyterhub/installation.html). | ||
|
||
<Steps headingDepth={3}> | ||
|
||
<ol> | ||
|
||
<li> | ||
|
||
#### Add the JupyterHub helm repository | ||
|
||
Add the JupyterHub helm repository in your Qovery settings by following [this documentation][docs.using-qovery.configuration.organization.helm-repository] | ||
|
||
* Repository name: `JupyterHub` | ||
* Kind: `HTTPS` | ||
* Repository URL: `https://hub.jupyter.org/helm-chart/` | ||
|
||
</li> | ||
|
||
<li> | ||
|
||
#### Create the JupyterHub service within Qovery | ||
|
||
Create the JupyterHub service in the Qovery environment of your choice (preferably within a dedicated JupyterHub project) by following [this documentation][docs.using-qovery.configuration.helm] and these values: | ||
|
||
* General: | ||
* Application name: `JupyterHub` | ||
* Source: | ||
* Helm source: `Helm repository` | ||
* Repository: `JupyterHub` (the name given during the JupyterHub helm repository added in the previous step) | ||
* Chart name: `jupyterhub` | ||
* Version: `3.3.7` (this is the version we used for this setup, update it based on the chosen version) | ||
* Allow cluster-wide resources :heavy_check_mark: | ||
* Values | ||
* Values override as file: | ||
* File source: `Raw YAML` | ||
* Raw YAML: | ||
|
||
```yaml | ||
fullnameOverride: "jupyterhub" | ||
proxy: | ||
service: | ||
type: ClusterIP | ||
``` | ||
There are many other values you can set to modify the JupyterHub behavior. For advanced usage, check: [JupyterHub Customization](https://z2jh.jupyter.org/en/stable/jupyterhub/customization.html) | ||
Now get to the last step and `Create` the service on Qovery. | ||
|
||
</li> | ||
|
||
<li> | ||
|
||
#### Add Network configuration | ||
|
||
In the previous step, we created the JupyterHub service. In this step, we will update its configuration to make it available on the public network (through Qovery Nginx Ingress). | ||
|
||
* Open the JupyterHub service details | ||
* Enter the `Settings` section | ||
* Click on `Networking` | ||
* Add a new Port with: | ||
* Service name: jupyterhub-proxy-public | ||
* Service port: 80 | ||
* Select protocol: HTTP | ||
* External port: 443 | ||
* Port name: jupyterhub-proxy-public-p80 | ||
|
||
If you need more information on how to manage your ports, have a look at [this](https://hub.qovery.com/docs/using-qovery/configuration/application/#ports) | ||
|
||
</li> | ||
|
||
<li> | ||
|
||
#### Deploy your chart | ||
|
||
Open the `Play` button and trigger the deployment of your chart. | ||
|
||
<p align="center"> | ||
<img src="/img/deploy-jupyterhub-qovery/deploy.png" alt="JupyterHub - Deploy" /> | ||
</p> | ||
|
||
</li> | ||
|
||
<li> | ||
|
||
#### Access JupyterHub | ||
|
||
You can click the `Link` button to access JupyterHub on your cluster. | ||
|
||
<p align="center"> | ||
<img src="/img/deploy-jupyterhub-qovery/link.png" alt="JupyterHub - Link" /> | ||
</p> | ||
|
||
Now you can login to the webUI and start playing with Jupyter Notebooks. | ||
|
||
</li> | ||
|
||
</ol> | ||
|
||
</Steps> | ||
|
||
## Conclusion | ||
|
||
JupyterHub is running on your Qovery cluster. This is a simple installation and you should try to [customize](https://z2jh.jupyter.org/en/stable/jupyterhub/customization.html) it according to your needs. You can also check the[Adminstrator Guide](https://z2jh.jupyter.org/en/stable/administrator/index.html)to better understand how it works. | ||
|
||
|
||
[docs.using-qovery.configuration.helm]: /docs/using-qovery/configuration/helm/ | ||
[docs.using-qovery.configuration.organization.helm-repository]: /docs/using-qovery/configuration/organization/helm-repository/ |
128 changes: 128 additions & 0 deletions
128
website/guides/tutorial/deploy-jupyterhub-qovery.md.erb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,128 @@ | ||
--- | ||
$schema: "/.meta/.schemas/guides.json" | ||
title: Deploy JupyterHub using Helm | ||
description: How to deploy JupyterHub on Qovery using the official Helm chart. | ||
author_github: https://github.com/baalooos | ||
tags: ["type: tutorial", "technology: qovery"] | ||
hide_pagination: true | ||
--- | ||
|
||
import Steps from '@site/src/components/Steps'; | ||
import Assumptions from '@site/src/components/Assumptions'; | ||
|
||
JupyterHub is an easy way to interact with a computing environment through a webpage. It provides a standardized way to serve Jupyter Notebooks for multiple users. Pairing it with Kubernetes and Qovery makes it easier to manage and scale. | ||
|
||
<Assumptions name="guide"> | ||
|
||
- You have a Qovery cluster ready | ||
- You have a dedicated Qovery project and environment to deploy JupyterHub (example: Project=JupyterHub, Environment=Production) | ||
|
||
</Assumptions> | ||
|
||
## Installation | ||
|
||
The easiest way to deploy JupyterHub is using the official [Helm Chart](https://github.com/jupyterhub/helm-chart). It will create all the resources you need to run JupyterHub. | ||
|
||
For more information, the official documentation is available [here](https://z2jh.jupyter.org/en/stable/jupyterhub/installation.html). | ||
|
||
<Steps headingDepth={3}> | ||
|
||
<ol> | ||
|
||
<li> | ||
|
||
#### Add the JupyterHub helm repository | ||
|
||
Add the JupyterHub helm repository in your Qovery settings by following [this documentation][docs.using-qovery.configuration.organization.helm-repository] | ||
|
||
* Repository name: `JupyterHub` | ||
* Kind: `HTTPS` | ||
* Repository URL: `https://hub.jupyter.org/helm-chart/` | ||
|
||
</li> | ||
|
||
<li> | ||
|
||
#### Create the JupyterHub service within Qovery | ||
|
||
Create the JupyterHub service in the Qovery environment of your choice (preferably within a dedicated JupyterHub project) by following [this documentation][docs.using-qovery.configuration.helm] and these values: | ||
|
||
* General: | ||
* Application name: `JupyterHub` | ||
* Source: | ||
* Helm source: `Helm repository` | ||
* Repository: `JupyterHub` (the name given during the JupyterHub helm repository added in the previous step) | ||
* Chart name: `jupyterhub` | ||
* Version: `3.3.7` (this is the version we used for this setup, update it based on the chosen version) | ||
* Allow cluster-wide resources :heavy_check_mark: | ||
* Values | ||
* Values override as file: | ||
* File source: `Raw YAML` | ||
* Raw YAML: | ||
|
||
```yaml | ||
fullnameOverride: "jupyterhub" | ||
proxy: | ||
service: | ||
type: ClusterIP | ||
``` | ||
|
||
There are many other values you can set to modify the JupyterHub behavior. For advanced usage, check: [JupyterHub Customization](https://z2jh.jupyter.org/en/stable/jupyterhub/customization.html) | ||
|
||
Now get to the last step and `Create` the service on Qovery. | ||
|
||
</li> | ||
|
||
<li> | ||
|
||
#### Add Network configuration | ||
|
||
In the previous step, we created the JupyterHub service. In this step, we will update its configuration to make it available on the public network (through Qovery Nginx Ingress). | ||
|
||
* Open the JupyterHub service details | ||
* Enter the `Settings` section | ||
* Click on `Networking` | ||
* Add a new Port with: | ||
* Service name: jupyterhub-proxy-public | ||
* Service port: 80 | ||
* Select protocol: HTTP | ||
* External port: 443 | ||
* Port name: jupyterhub-proxy-public-p80 | ||
|
||
If you need more information on how to manage your ports, have a look at [this](https://hub.qovery.com/docs/using-qovery/configuration/application/#ports) | ||
|
||
</li> | ||
|
||
<li> | ||
|
||
#### Deploy your chart | ||
|
||
Open the `Play` button and trigger the deployment of your chart. | ||
|
||
<p align="center"> | ||
<img src="/img/deploy-jupyterhub-qovery/deploy.png" alt="JupyterHub - Deploy" /> | ||
</p> | ||
|
||
</li> | ||
|
||
<li> | ||
|
||
#### Access JupyterHub | ||
|
||
You can click the `Link` button to access JupyterHub on your cluster. | ||
|
||
<p align="center"> | ||
<img src="/img/deploy-jupyterhub-qovery/link.png" alt="JupyterHub - Link" /> | ||
</p> | ||
|
||
Now you can login to the webUI and start playing with Jupyter Notebooks. | ||
|
||
</li> | ||
|
||
</ol> | ||
|
||
</Steps> | ||
|
||
## Conclusion | ||
|
||
JupyterHub is running on your Qovery cluster. This is a simple installation and you should try to [customize](https://z2jh.jupyter.org/en/stable/jupyterhub/customization.html) it according to your needs. You can also check the[Adminstrator Guide](https://z2jh.jupyter.org/en/stable/administrator/index.html)to better understand how it works. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.