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.

The API version must be set for both transport and resource API versions.

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.

If you see a warning or error with V2 (and AUTO) xDS transport protocol versions are deprecated, it is likely that you are missing explicit V3 configuration of the transport API version.