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
DynamicResolverbackend type, which can route traffic to any backend service based on the request’s hostname. - Added support for installing CRDs through the
gateway-crds-helmchart. - Added support for the offline Kubernetes controller and enabled its use with the file provider.
- Added support for configuring
maxUnavailableinKubernetesPodDisruptionBudgetSpec. - Added support for percentage-based request mirroring.
- Allowed
matchExpressionsinTargetSelector. - Added a defaulter for Gateway API resources loaded from file to set default values.
- Added support for defining Lua
EnvoyExtensionPolicies. - Added
RequestIDfield inClientTrafficPolicy.HeaderSettingsto configure EnvoyX-Request-IDbehavior. - Added support for
HorizontalPodAutoscalerfor 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
BackendTLSPolicytargetingServiceImport. - Added support for the
kubernetes.io/h2capplication protocol inServiceImport. - Added support for per-host circuit breaker thresholds.
- Added support for injecting a credential from a Kubernetes
Secretinto a request header using theHTTPRouteFilterfilter. - Added support for
egctlWebSocket in addition to SPDY. - Added a configuration option in the Helm chart to set the
TrafficDistributionfield in theEnvoy GatewayService. - Added support for setting the log level to
tracefor the Envoy proxy. - Added support for global
imageRegistryandimagePullSecretsin the Helm chart. - Added support for using a local JWKS in an inline string or in a
ConfigMapto 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
OverlappingTLSConfigcondition 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
SecretandConfigMapparsing in standalone mode. - Bypassed overload manager for stats and ready listeners.
- Fixed translation of
backendSettingsfor external authorization. - Fixed an issue where the stats compressor was not working.
- Added support for
BackendTLSPolicyandEnvoyExtensionPolicyparsing in standalone mode. - Re-triggered reconciliation when a
backendRefof typeServiceImportis updated or whenEndpointSliceresources for aServiceImportare updated. - Fixed missing error logs and returns in the Kubernetes Reconcile method when a
GatewayClassis not accepted. - Allowed empty text field for OpenTelemetry sink when using JSON format.
- Fixed the
SamplingFractionimplementation within the Tracing API. - Fixed Kubernetes resources not being deleted when a custom name was used.
- Prevented essential resources like
Namespacefrom being treated as missing when loading from file. - Avoided setting retriable status codes to 503 when
RetryOnis configured inBackendTrafficPolicy. - Fixed reconciliation logic to continue processing all
GatewayClasseseven after an error with one. - Fixed an issue where a
ReferenceGrantfrom aSecurityPolicyto a referencedremoteJWKSbackend was not respected. - Added additional newline validation for header values.
- Added validation to prevent duplicated API keys in API Key Auth.
- Fixed
HTTPRouteprecedence 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
PreserveXRequestIDfield inClientTrafficPolicy.Spec.Headers. UseRequestIDinstead.
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.