.. _start_tools_configuration_generator:
Configuration generator
-----------------------
Envoy configurations can become relatively complicated. The
source distribution includes a version of the configuration generator that uses `jinja
`_ templating to make the configurations easier to create and manage. We
have also included three example configuration templates for each of the above three scenarios.
* Generator script: :repo:`configs/configgen.py`
* Service to service template: :repo:`configs/envoy_service_to_service.template.yaml`
* Front proxy template: :repo:`configs/envoy_front_proxy.template.yaml`
* Double proxy template: :repo:`configs/envoy_double_proxy.template.yaml`
To generate the example configurations run the following from the root of the repo:
.. code-block:: console
mkdir -p generated/configs
bazel build //configs:example_configs
tar xvf $PWD/bazel-out/k8-fastbuild/bin/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:
* An instance of :ref:`endpoint discovery service ` is assumed
to be running at `discovery.yourcompany.net`.
* DNS for `yourcompany.net` is assumed to be setup for various things. Search the configuration
templates for different instances of this.
* Tracing is configured for `LightStep `_. To
disable this or enable `Zipkin `_ or `Datadog `_ tracing, delete or
change the :ref:`tracing configuration ` accordingly.
* The configuration demonstrates the use of a :ref:`global rate limiting service
`. To disable this delete the :ref:`rate limit configuration
`.
* :ref:`Route discovery service ` is configured for the service to service
reference configuration and it is assumed to be running at `rds.yourcompany.net`.
* :ref:`Cluster discovery service ` is configured for the service to
service reference configuration and it is assumed that be running at `cds.yourcompany.net`.