Skip to content

Commit e879cae

Browse files
committed
chore: upgrade requirements.txt and README.md
1 parent 2778592 commit e879cae

File tree

4 files changed

+13
-35
lines changed

4 files changed

+13
-35
lines changed

README.md

Lines changed: 3 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -8,29 +8,9 @@ Create and manage your `Jupyter` notebooks on `Kubernetes` **without** `JupyterH
88

99
### How and why?
1010

11-
Currently, if you want to deploy `Jupyter` notebooks on `Kubernetes` using available open-source tools, you need to choose between two major approaches:
12-
13-
- One that re-implements the notebooks management logic the `Kubernetes` way, it:
14-
- integrates well with `Kubernetes` ecosystem: using [Operators](https://kubernetes.io/docs/concepts/extend-kubernetes/operator/) and [CRD](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/).
15-
- is usually part of a bigger toolkit ([Kubeflow](https://www.kubeflow.org) e.g.).
16-
- comes with more features than one may need.
17-
- are complicated and add a lot of maintenance burden even for people who are familiar with `Kubernetes`.
18-
19-
20-
- The other that re-uses already existing notebooks management code (mainly [JupyterHub](https://jupyter.org/hub)) and tries to integrate it with `Kubernetes`, it:
21-
- doesn't reinvent the wheel: people who are familiar with managing notebooks outside/before Kubernetes don't feel unaccustomed.
22-
- comes with more features than one may need, `notebook-on-kube` itself will be kept as simple as possible (a straightforward [FastAPI](https://github.com/tiangolo/fastapi) application.)
23-
- relies on "hacky" code to import and connect these legacy tools to `Kubernetes` and introduce feature redundancy:
24-
- `JupyterHub` relies on [kubespawner](https://github.com/jupyterhub/kubespawner) to spawn `Kubernetes` resources (Pods, PVC etc.) representing a notebook. **But** why adding another
25-
`Kubernetes` client when we already use [Helm](https://github.com/helm/helm)? `notebook-on-kube` uses `Helm` to manage the notebooks (see [here](#create-connect-to-and-delete-a-notebook)).
26-
- `JupyterHub` adds its own auth layer, **but** why not using Kubernetes [authn](https://kubernetes.io/docs/reference/access-authn-authz/authentication/)/[authz](https://kubernetes.io/docs/reference/access-authn-authz/authorization/)
27-
(user management) features? `notebook-on-kube` uses the same `Kubernetes` [OpenID Connect](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#openid-connect-tokens) token on behalf of the user to manage their notebooks: Reuse `Kubernetes` access levels and be more transparent.
28-
- `JupyterHub` comes with its own [node-http-proxy](https://github.com/jupyterhub/configurable-http-proxy) for reverse proxying, **but** why not making use of the well-established [Ingress NGINX Controller](https://github.com/kubernetes/ingress-nginx)?
29-
`notebook-on-kube` deploys an `Ingress NGINX` Controller instance and configures it for each notebook via `Ingress` resources.
30-
31-
`notebook-on-kube` re-uses these features and tools that are already there and are tailored to run applications on `Kubernetes` and provides a third, middle ground, easy to maintain and well-integrated approach to managing notebooks on `Kubernetes`!
32-
33-
It provides the following features:
11+
You can check out this [post](http://ouba.online/blog/2023/3/8/you_probably_dont_need_jupyterhub_on_kubernetes/post.html).
12+
13+
`notebook-on-kube` provides the following features:
3414
- Authn/authz based on `Kubernetes'`.
3515
- Customize and create notebooks.
3616
- Connect to notebooks.

deploy/notebook-on-kube/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: v2
22
name: notebook-on-kube
33
description: A Helm chart to deploy notebook-on-kube
44
type: application
5-
version: 0.2.1
5+
version: 0.2.2
66
home: https://github.com/machine424/notebook-on-kube
77
dependencies:
88
- name: ingress-nginx

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "notebook-on-kube"
7-
version = "0.2.1"
7+
version = "0.2.2"
88
description = "A tool to deploy Notebooks on Kubernetes."
99
readme = "README.md"
1010
authors = [
@@ -25,7 +25,7 @@ dependencies = [
2525
notebook-on-kube = "notebook_on_kube.main:run"
2626

2727
[project.optional-dependencies]
28-
test = ["black", "isort", "flake8", "mypy", "pytest", "pytest-mock", "requests"]
28+
test = ["black", "isort", "flake8", "mypy", "pytest", "pytest-mock", "requests", "httpx"]
2929

3030
[project.urls]
3131
"Homepage" = "https://github.com/machine424/notebook-on-kube"

requirements.txt

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,33 +8,31 @@ anyio==3.6.2
88
# via starlette
99
click==8.1.3
1010
# via uvicorn
11-
fastapi==0.85.1
11+
fastapi==0.93.0
1212
# via notebook-on-kube (pyproject.toml)
1313
h11==0.14.0
1414
# via uvicorn
1515
idna==3.4
1616
# via anyio
1717
jinja2==3.1.2
1818
# via notebook-on-kube (pyproject.toml)
19-
markupsafe==2.1.1
19+
markupsafe==2.1.2
2020
# via jinja2
21-
pydantic==1.10.2
21+
pydantic==1.10.5
2222
# via fastapi
2323
pyjwt==2.6.0
2424
# via notebook-on-kube (pyproject.toml)
25-
python-multipart==0.0.5
25+
python-multipart==0.0.6
2626
# via notebook-on-kube (pyproject.toml)
2727
ruamel-yaml==0.17.21
2828
# via notebook-on-kube (pyproject.toml)
2929
ruamel-yaml-clib==0.2.7
3030
# via ruamel-yaml
31-
six==1.16.0
32-
# via python-multipart
3331
sniffio==1.3.0
3432
# via anyio
35-
starlette==0.20.4
33+
starlette==0.25.0
3634
# via fastapi
37-
typing-extensions==4.4.0
35+
typing-extensions==4.5.0
3836
# via pydantic
39-
uvicorn==0.19.0
37+
uvicorn==0.20.0
4038
# via notebook-on-kube (pyproject.toml)

0 commit comments

Comments
 (0)