3 min • read

Major Changes in Ambassador Edge Stack 3.X

The 3.X family introduces a number of changes to ensure Ambassador Edge Stack keeps up with latest Envoy versions and to support new features such as HTTP/3. We welcome feedback! Join us on Slack and let us know what you think.

Ambassador Edge Stack 3 is functionally compatible with Ambassador Edge Stack 2.x, but with any major upgrade there are some changes to consider. Such as, Envoy removing support for V2 Transport Protocol features. Below we will outline some of these changes and things to consider when upgrading.

1. Envoy Upgraded to 1.22

Ambassador Edge Stack 3.X has been upgraded from Envoy 1.17.X to Envoy 1.22 which keeps Ambassador Edge Stack up-to-date with the latest security fixes, bug fixes, performance improvements and feature enhancements provided by Envoy Proxy. Most of the changes are under the hood but the most notable change to developers is the removal of support for Envoy V2 Transport Protocol. This means all external filters and LogServices must be updated to use the V3 Protocol.

This also means some of the v2 runtime bootstrap flags have been removed as well:

2. Envoy V2 xDS Transport Protocol Support Removed

With the upgrade to Envoy 1.22, the V2 Envoy Transport Protocol is no longer supported and has been removed. Ambassador Edge Stack 3.X only supports V3 Envoy API.

The AuthService, RatelimitService, LogService and ExternalFilters that use the grpc protocol will now need to explicilty set protocol_version: "v3". If not set or set to v2 then an error will be posted and a static response will be returned.

3. Envoy V2 xDS Configration Support Removed

Envoy can no longer be configured to use the v2 xDS configuration and will always use v3 xDS configuration. This change removes the AMBASSADOR_ENVOY_API_VERSION because it no longer configurable and will have no effect.

4. Zipkin HTTP_JSON_V1 support is removed

Envoy removed support for the older HTTP_JSON_V1 collector_endpoint_version. If using the zipkin driver with the TracingService, then you will have to update it to use HTTP_JSON or HTTP_PROTO.