.. _start_quick_start_dynamic_control_plane: Configuration: Dynamic from control plane ========================================= These instructions are slightly more complex as you must also set up a control plane to provide Envoy with its configuration. There are a number of control planes compatible with Envoy's API such as `Gloo <https://docs.solo.io/gloo/latest/>`_ or `Istio <https://istio.io>`_. You may also wish to explore implementing your own control plane, in which case the `Go Control Plane <https://github.com/envoyproxy/go-control-plane>`_ provides a reference implementation that is a good place to start. At a minimum, you will need to start Envoy configured with the following sections: - :ref:`node <start_quick_start_dynamic_node>` to uniquely identify the proxy node. - :ref:`dynamic_resources <start_quick_start_dynamic_dynamic_resources>` to tell Envoy which configurations should be updated dynamically - :ref:`static_resources <start_quick_start_dynamic_static_resources>` to specify where Envoy should retrieve its configuration from. You can also add an :ref:`admin <start_quick_start_admin>` section if you wish to monitor Envoy or retrieve stats or configuration information. The following sections walk through the dynamic configuration provided in the :download:`demo dynamic control plane configuration file <_include/envoy-dynamic-control-plane-demo.yaml>`. .. _start_quick_start_dynamic_node: ``node`` -------- The :ref:`node <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.node>` should specify ``cluster`` and ``id``. .. literalinclude:: _include/envoy-dynamic-control-plane-demo.yaml :language: yaml :linenos: :lines: 1-5 :emphasize-lines: 1-3 .. _start_quick_start_dynamic_dynamic_resources: ``dynamic_resources`` --------------------- The :ref:`dynamic_resources <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.dynamic_resources>` specify the configuration to load dynamically, and the :ref:`cluster <start_quick_start_dynamic_static_resources>` to connect to for dynamic configuration updates. In this example, the configuration is provided by the ``xds_cluster`` configured below. .. literalinclude:: _include/envoy-dynamic-control-plane-demo.yaml :language: yaml :linenos: :lines: 3-19 :lineno-start: 3 :emphasize-lines: 3-15 .. _start_quick_start_dynamic_static_resources: ``static_resources`` -------------------- Here we specify the :ref:`static_resources <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.static_resources>` to retrieve dynamic configuration from. The ``xds_cluster`` is configured to query a control plane at http://my-control-plane:18000 . .. literalinclude:: _include/envoy-dynamic-control-plane-demo.yaml :language: yaml :linenos: :lines: 17-35 :lineno-start: 17 :emphasize-lines: 3-17