JupyterHub Traefik Proxy
When JupyterHub starts a server for a user, it will dynamically configure a
proxy server so that accessing jupyterhub.example.com/user/<user>
routes to
the individual Jupyter server. This project contains what JupyterHub need to
dynamically configure the routes of a traefik proxy
server! There are three implementations of the JupyterHub proxy
API,
depending on how traefik store its routing configuration.
For smaller, single-node deployments:
- TraefikFileProviderProxy
For distributed setups:
- TraefikEtcdProxy
- TraefikConsulProxy
Installation
The documentation contains a complete installation guide with examples for the three different implementations.
Running tests
There are some tests that use etcdctl command line client for etcd. Make sure
to set environment variable ETCDCTL_API=3
before running the tests, so that
the v3 API to be used, e.g.:
$ export ETCDCTL_API=3
You can then run the all the test suite from the traefik-proxy directory with:
$ pytest -v ./tests
Or you can run a specific test file with:
$ pytest -v ./tests/<test-file-name>