/traefik-proxy

JupyterHub proxy implementation with traefik

Primary LanguageJupyter NotebookBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

JupyterHub Traefik Proxy

Documentation build status GitHub Workflow Status CircleCI build status Latest PyPI version GitHub Discourse Gitter

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

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>