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:
- TraefikTomlProxy
For distributed setups:
- TraefikEtcdProxy
- TraefikConsulProxy
The documentation contains a complete installation guide with examples for the three different implementations.
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>