Skip to content

Ambassador Edge Stack 2.0.5

Compare
Choose a tag to compare
@kflynn kflynn released this 08 Nov 21:15
· 180 commits to main since this release
169eace

🎉 Ambassador Edge Stack 2.0.5 🎉

Ambassador Edge Stack is a Kubernetes-native microservices API gateway built on the Envoy Proxy.

Upgrade Edge Stack - https://www.getambassador.io/reference/upgrading.html
View changelog - https://github.com/datawire/edge-stack/blob/master/CHANGELOG.md
Get started with Edge Stack on Kubernetes - https://www.getambassador.io/user-guide/getting-started

Ambassador Edge Stack

  • Change: When Ambassador Edge Stack makes a cacheable internal request (such as fetching the JWKS endpoint
    for a JWT Filter), if a cache-miss occurs but a request for that resource is already
    in-flight, then instead of performing a second request in parallel, it will now wait for the first
    request to finish and (if the response is cacheable) use that response. If the response turns out
    to be non-cacheable, then it will proceed to make the second request. This avoids the situation
    where if a cache entry expires during a moment with high number of concurrent requests, then Edge
    Stack creates a deluge of concurrent requests to the resource when one aught to have sufficed;
    this allows the result to be returned more quickly while putting less load on the remote resource.
    However, if the response turns out to be non-cacheable, then this does effectively serialize
    requests, increasing the latency for concurrent requests.

  • Feature: It is now possible to set the circuit_breakers for AuthServices, exactly the same as for
    Mappings and TCPMappings. This makes it possible to configure your AuthService to be able to
    handle more than 1024 concurrent requests.

  • Bugfix: When Ambassador Edge Stack completes an internal request (such as fetching the JWKS endpoint for a
    JWT Filter) it logs (at the info log level) how long the request took. Previously, the
    duration logged was how long it took to receive the response header, and did not count the time it
    takes to receive the entire response body; now it properly times the entire thing. Additionally,
    it now separately logs the "total duration" and the "networking duration", in order to make it
    possible to identify when a request was delayed waiting for other requests to finish.

  • Bugfix: Any token delimited by '%' is now validated agains a whitelist of valid Envoy command operators.
    Any mapping containing an error_response_overrides section with invalid command operators will
    be discarded.

  • Bugfix: The Host CRD now correctly supports the mappingSelector element, as documented. As a
    transition aid, selector is a synonym for mappingSelector; a future version of Ambassador Edge
    Stack will remove the selector element. (3902)