v1.4.0
4 minute read
Breaking changes
- Use a dedicated listener port(19003) for envoy proxy readiness
- Uses the envoy JSON formatter for the default access log instead of text formatter.
- Envoy Gateway will skip xDS snapshot updates in case of errors during xDS translation.
- When Extension Manager is configured to Fail Open, translation errors are logged and suppressed.
- When Extension Manager is configured to not Fail Open, Envoy Gateway will no longer replace affected resources. Instead, xDS snapshot update would be skipped.
New Features
- Added support for the extension server in standalone mode.
- Added support for the
DynamicResolver
backend type, which can route traffic to any backend service based on the request’s hostname. - Added support for installing CRDs through the
gateway-crds-helm
chart. - Added support for the offline Kubernetes controller and enabled its use with the file provider.
- Added support for configuring
maxUnavailable
inKubernetesPodDisruptionBudgetSpec
. - Added support for percentage-based request mirroring.
- Allowed
matchExpressions
inTargetSelector
. - Added a defaulter for Gateway API resources loaded from file to set default values.
- Added support for defining Lua
EnvoyExtensionPolicies
. - Added
RequestID
field inClientTrafficPolicy.HeaderSettings
to configure EnvoyX-Request-ID
behavior. - Added support for
HorizontalPodAutoscaler
for Envoy Gateway in the Helm chart. - Added support for distinct header and distinct source CIDR-based local rate limiting.
- Added support for forwarding the authenticated username to the backend via a configurable header in
BasicAuth
. - Added support for HTTP method and header-based authorization in
SecurityPolicy
. - Added support for Zone Aware Routing.
- Added support for
BackendTLSPolicy
targetingServiceImport
. - Added support for the
kubernetes.io/h2c
application protocol inServiceImport
. - Added support for per-host circuit breaker thresholds.
- Added support for injecting a credential from a Kubernetes
Secret
into a request header using theHTTPRouteFilter
filter. - Added support for
egctl
WebSocket in addition to SPDY. - Added a configuration option in the Helm chart to set the
TrafficDistribution
field in theEnvoy Gateway
Service. - Added support for setting the log level to
trace
for the Envoy proxy. - Added support for global
imageRegistry
andimagePullSecrets
in the Helm chart. - Added support for using a local JWKS in an inline string or in a
ConfigMap
to validate JWT tokens inSecurityPolicy
. - Added support for logging the status of resources in standalone mode.
- Added support for per-route tracing in
BackendTrafficPolicy
. - Added support for configuring retry settings for Extension Service hooks in the Envoy Gateway config.
- Added support for request buffering using the Envoy Buffer filter.
- Added support for merge type in
BackendTrafficPolicy
. - Added support for the
OverlappingTLSConfig
condition in Gateway status. This condition is set if there are overlapping hostnames or certificates between listeners. The ALPN protocol is set to HTTP/1.1 for overlapping listeners to avoid HTTP/2 connection coalescing. - Added support for running Envoy infrastructure proxies in the Gateway namespace. Please note that this is currently an experimental feature and not recommended for production use.
- Added support for Shared Global RateLimiting buckets.
- Added support for fuzz testing the codebase.
- Added Backend API Support for Telemetry backends in Envoy Proxy
- Added support for FullDuplexedStreamed mode in Ext Proc
Bug Fixes
- Fixed traffic splitting when filters are attached to the
backendRef
. - Added support for
Secret
andConfigMap
parsing in standalone mode. - Bypassed overload manager for stats and ready listeners.
- Fixed translation of
backendSettings
for external authorization. - Fixed an issue where the stats compressor was not working.
- Added support for
BackendTLSPolicy
andEnvoyExtensionPolicy
parsing in standalone mode. - Re-triggered reconciliation when a
backendRef
of typeServiceImport
is updated or whenEndpointSlice
resources for aServiceImport
are updated. - Fixed missing error logs and returns in the Kubernetes Reconcile method when a
GatewayClass
is not accepted. - Allowed empty text field for OpenTelemetry sink when using JSON format.
- Fixed the
SamplingFraction
implementation within the Tracing API. - Fixed Kubernetes resources not being deleted when a custom name was used.
- Prevented essential resources like
Namespace
from being treated as missing when loading from file. - Avoided setting retriable status codes to 503 when
RetryOn
is configured inBackendTrafficPolicy
. - Fixed reconciliation logic to continue processing all
GatewayClasses
even after an error with one. - Fixed an issue where a
ReferenceGrant
from aSecurityPolicy
to a referencedremoteJWKS
backend was not respected. - Added additional newline validation for header values.
- Added validation to prevent duplicated API keys in API Key Auth.
- Fixed
HTTPRoute
precedence by correctly considering header and query match types. - Ensured the TLS inspector filter is only added to TCP listeners (not UDP/QUIC) when HTTP/3 is enabled via
ClientTrafficPolicy
. - Fix reconciling mirror backendRef endpoints once they’ve changed.
Performance Improvements
- Added a cache for the Wasm OCI image permission checks and check the pullSecrets against the OCI image registry in a background goroutine.
Deprecations
- Deprecated the
PreserveXRequestID
field inClientTrafficPolicy.Spec.Headers
. UseRequestID
instead.
Other Changes
- Updated gateway-api to v1.3.0.
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.