Why are the Envoy xDS APIs versioned? What is the benefit?

    We had previously put in place policies around breaking changes across releases, the takes this a step further, articulating a guaranteed multi-year support window for APIs that provides control plane authors a predictable clock when considering support for a range of Envoy versions.

    For the v3 xDS APIs, a brief list of the key improvements that were made with a clean break from v2:

    • Packages organization was improved to reflect a more logical grouping of related APIs:

      • xDS service endpoints/transport and configuration are split between envoy.service and envoy.config.

      • Extensions now reflect the Envoy source tree layout under .

    • google.protobuf.Struct configuration of extensions was dropped from the API, in favor of typed configuration. This provides for better support for multiple instances of extensions, e.g. in filter chains, and more flexible naming of extension instances.

    • Over 60 deprecated fields were removed from the API.