🎉 Emissary Ingress 3.0.0 🎉
Emissary Ingress is an open source, Kubernetes-native microservices API gateway built on the Envoy Proxy.
Upgrade Emissary - https://www.getambassador.io/reference/upgrading.html
View changelog - https://github.com/emissary-ingress/emissary/blob/v3.0.0/CHANGELOG.md
Get started with Emissary on Kubernetes - https://www.getambassador.io/user-guide/getting-started
-
Change: The envoy version included in Emissary-ingress has been upgraded from 1.17 to the latest
patch release of 1.22. This provides Emissary-ingress with the latest security patches,
performances enhancments, and features offered by the envoy proxy. One notable change that will
effect users is the removal of support for V2 tranport protocol. See below for more information. -
Change: Emissary-ingress can no longer be made to configure Envoy using the v2 xDS configuration
API; it now always uses the v3 xDS API to configure Envoy. This change should be mostly invisible
to users, with one notable exception: It removes support forregex_type: unsafe
.
The
regex_type
field will is removed from theambassador
Module
, meaning that it is not be
possible to instruct Envoy to use the ECMAScript Regex engine rather than
the default RE2 engine.
Users who rely on the specific
ECMAScript Regex syntax will need to rewrite their regular expressions with RE2 syntax before
upgrading to Emissary-ingress 3.0.0.
As the xDS version is no longer configurable and the range of
supported Zipkin protocols is reduced (see below), the AMBASSADOR_ENVOY_API_VERSION environment
variable has been removed. -
Change: With the ugprade to Envoy 1.22, Emissary-ingress no longer supports the V2 transport
protocol. TheAuthService
,LogService
and theRateLimitService
will only support the v3
protocol_version. If protocol_version is not specified, the default value ofv2
will cause an
error to be posted. Therefore, you will need to set it toprotocol_version: "v3"
. If upgrading
from a previous version you will want to set it to "v3" and ensure it is working before upgrading
to Emissary-ingress 3.Y. -
Change: With the upgrade to Envoy 1.22, the
zipkin
driver for theTraceService
no longer
supports setting thecollector_endpoint_version: HTTP_JSON_V1
. This was removed in Envoy 1.20 -
.
The new default will becollector_endpoint_version: HTTP_JSON
, regardless of the
AMBASSADOR_ENVOY_API_VERSION
environment variable.Change: In the standard published
.yaml
files, now included is aModule
resource that disables
the/ambassador/v0/
→127.0.0.1:8878
synthetic mapping. We have long recommended to turn
this off for production use; it is now off in the standard YAML. The associated Helm chart
release also now disables it by default. A later apiVersion (getambassador.io/v3alpha2
or
later) will likely change theModule
CRD so that it is disabled if unspecified; but in the
mean-time, the default install procedure will now specify it to be disabled.Change: This release does not include the publishing of
emissary-emissaryns-agent.yaml
,
emissary-defaultns-agent.yaml
,emissary-emissaryns-migration.yaml
, or
emissary-defaultns-migration.yaml
files. All four of these files existed solely as part of the
migration process from 1;y, but since 2.2.0 the*-migration.yaml
files have not been part of the
migration instructions, and while the*-agent.yaml
files remained part of the instructions they
were actually unnescessary.Change: The previous version of Emissary-ingress was based on Envoy 1.17 and when using grpc_stats
withall_methods
orservices
set, it would output metrics in the following format
envoy_cluster_grpc_{ServiceName}_{statname}
. When neither of these fields are set it would be
aggregated toenvoy_cluster_grpc_{statname}
.
The new behavior since Envoy 1.18 will produce
metrics in the following formatenvoy_cluster_grpc_{MethodName}_statsname
and
envoy_cluster_grpc_statsname
.
After further investigation we found that Envoy doesn't properly
parse service names such ascncf.telepresence.Manager/Status
. In the future, we will work
upstream Envoy to get this parsing logic fixed to ensure consistent metric naming.Bugfix: Previously setting
grpc_stats
in theambassador
Module
without setting either
grpc_stats.services
orgrpc_stats.all_methods
would result in crashing. Now it behaves as if
grpc_stats.all_methods=false
.Feature: With the ugprade to Envoy 1.22, Emissary-ingress can now be configured to listen for
HTTP/3 connections using QUIC and the UDP network protocol. It currently only supports for
connections between downstream clients and Emissary-ingress.