How do I configure Envoy to use the v3 API?ΒΆ

By default, Envoy will attempt to parse any YAML, JSON or text proto as v2, and if it fails to do so, will consider it as v3. So, if you have a simple static Envoy consuming a text-based bootstrap, you just need to start using the new configuration. For binary proto bootstrap configuration, please use a v3 Bootstrap proto.

For dynamic configuration, we have introduced two new fields to config sources, transport API version and resource API version. The distinction is as follows:

  • The transport API version indicates the API endpoint and version of DiscoveryRequest/DiscoveryResponse messages used.

  • The resource API version indicates whether a v2 or v3 resource, e.g. v2 RouteConfiguration or v3 RouteConfiguration, is delivered.

It is possible to use a mixture of transport API and resource API versions, e.g. to deliver v2 Listener resources and v3 RouteConfiguration resources over a v2 ADS transport. This is an intentional feature designed to provide for gradual migration of Envoy deployments from v2 to v3.

There may be some operational advantage in having vM resources delivered over vN endpoints, so we provide the flexibility to make this call by appropriate configuration of config sources.