diff --git a/.meta/team.toml b/.meta/team.toml index c413e7161c..1d25fb614c 100644 --- a/.meta/team.toml +++ b/.meta/team.toml @@ -146,4 +146,14 @@ keybase = "https://keybase.io/acarranoqovery" name = "Alessandro Carrano" bio = """\ Alessandro is a Lead Product Manager at Qovery.\ -""" \ No newline at end of file +""" + +[[team]] +id = "cegagnaire" +avatar = "https://github.com/baalooos.png" +github = "https://github.com/baalooos" +keybase = "https://keybase.io/baalooos" +name = "Charles-Edouard Gagnaire" +bio = """\ +Charles-Edouard is Technical Account Manager at Qovery.\ +""" diff --git a/website/guides/tutorial/deploy-jupyterhub-qovery.md b/website/guides/tutorial/deploy-jupyterhub-qovery.md new file mode 100644 index 0000000000..e46baefff0 --- /dev/null +++ b/website/guides/tutorial/deploy-jupyterhub-qovery.md @@ -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. + + + +- You have a Qovery cluster ready +- You have a dedicated Qovery project and environment to deploy JupyterHub (example: Project=JupyterHub, Environment=Production) + + + + + +## 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). + + + +
    + +
  1. + +#### 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/` + +
  2. + +
  3. + +#### 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. + +
  4. + +
  5. + +#### 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) + +
  6. + +
  7. + +#### Deploy your chart + +Open the `Play` button and trigger the deployment of your chart. + +

    + JupyterHub - Deploy +

    + +
  8. + +
  9. + +#### Access JupyterHub + +You can click the `Link` button to access JupyterHub on your cluster. + +

    + JupyterHub - Link +

    + +Now you can login to the webUI and start playing with Jupyter Notebooks. + +
  10. + +
+ +
+ +## 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/ diff --git a/website/guides/tutorial/deploy-jupyterhub-qovery.md.erb b/website/guides/tutorial/deploy-jupyterhub-qovery.md.erb new file mode 100644 index 0000000000..517ead8914 --- /dev/null +++ b/website/guides/tutorial/deploy-jupyterhub-qovery.md.erb @@ -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. + + + +- You have a Qovery cluster ready +- You have a dedicated Qovery project and environment to deploy JupyterHub (example: Project=JupyterHub, Environment=Production) + + + +## 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). + + + +
    + +
  1. + +#### 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/` + +
  2. + +
  3. + +#### 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. + +
  4. + +
  5. + +#### 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) + +
  6. + +
  7. + +#### Deploy your chart + +Open the `Play` button and trigger the deployment of your chart. + +

    + JupyterHub - Deploy +

    + +
  8. + +
  9. + +#### Access JupyterHub + +You can click the `Link` button to access JupyterHub on your cluster. + +

    + JupyterHub - Link +

    + +Now you can login to the webUI and start playing with Jupyter Notebooks. + +
  10. + +
+ +
+ +## 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. diff --git a/website/metadata.js b/website/metadata.js index a364ab3be5..19598ba353 100644 --- a/website/metadata.js +++ b/website/metadata.js @@ -415,6 +415,15 @@ module.exports = { "series_position": null, "title": "Customizing Preview URL with Qovery CLI" }, + { + "author_github": "https://github.com/baalooos", + "description": null, + "id": "/tutorial/deploy-jupyterhub-qovery", + "last_modified_on": null, + "path": "website/guides/tutorial/deploy-jupyterhub-qovery.md", + "series_position": null, + "title": "Deploy JupyterHub using Helm" + }, { "author_github": "https://github.com/l0ck3", "description": null, @@ -952,6 +961,14 @@ module.exports = { "id": "acarranoqovery", "keybase": "https://keybase.io/acarranoqovery", "name": "Alessandro Carrano" + }, + { + "avatar": "https://github.com/baalooos.png", + "bio": "Charles-Edouard is Technical Account Manager at Qovery.", + "github": "https://github.com/baalooos", + "id": "cegagnaire", + "keybase": "https://keybase.io/baalooos", + "name": "Charles-Edouard Gagnaire" } ], "technologies": [ diff --git a/website/static/img/deploy-jupyterhub-qovery/deploy.png b/website/static/img/deploy-jupyterhub-qovery/deploy.png new file mode 100644 index 0000000000..1f91bc47fa Binary files /dev/null and b/website/static/img/deploy-jupyterhub-qovery/deploy.png differ diff --git a/website/static/img/deploy-jupyterhub-qovery/link.png b/website/static/img/deploy-jupyterhub-qovery/link.png new file mode 100644 index 0000000000..7929db4270 Binary files /dev/null and b/website/static/img/deploy-jupyterhub-qovery/link.png differ