Reference configurations

The source distribution includes a set of example configuration templates for each of the three major Envoy deployment types:

The goal of this set of example configurations is to demonstrate the full capabilities of Envoy in a complex deployment. All features will not be applicable to all use cases. For full documentation see the configuration reference.

Configuration generator

Envoy configurations can become relatively complicated. At Lyft we use jinja templating to make the configurations easier to create and manage. The source distribution includes a version of the configuration generator that loosely approximates what we use at Lyft. We have also included three example configuration templates for each of the above three scenarios.

To generate the example configurations run the following from the root of the repo:

  1. mkdir -p generated/configs
  2. bazel build //configs:example_configs
  3. tar xvf $PWD/bazel-genfiles/configs/example_configs.tar -C generated/configs

The previous command will produce three fully expanded configurations using some variables defined inside of configgen.py. See the comments inside of configgen.py for detailed information on how the different expansions work.

A few notes about the example configurations:

Smoketest configuration

A very minimal Envoy configuration that can be used to validate basic plain HTTP proxying is available in configs/google_com_proxy.json. This is not intended to represent a realistic Envoy deployment. To smoketest Envoy with this, run:

  1. build/source/exe/envoy -c configs/google_com_proxy.json -l debug
  2. curl -v localhost:10000