Release notes
Review summaries of the main changes in the Gloo Gateway 1.21 release.
Make sure that you review the breaking changes đĨ that were introduced in this release and the impact that they have on your current environment.
Introduction
The release notes include important installation changes and known issues. They also highlight ways that you can take advantage of new features or enhancements to improve your product usage.
For more information, see the following related resources:
- Open source changelog or enterprise changelog
- Upgrade guide: Steps to upgrade from the previous minor version to the current version.
- Version reference: Information about Solo’s version support.
đĨ Breaking changes
Review details about the following breaking changes. To review when breaking changes were released, you can use the comparison feature of the open source changelog or enterprise changelog. The severity is intended as a guide to help you assess how much attention to pay to this area during the upgrade, but can vary depending on your environment.
đ¨ High
Review severe changes that can impact production and require manual intervention.
- No high-severity changes are currently reported.
đ Medium
Review changes that might have impact to production and require manual intervention, but possibly not until the next version is released.
Envoy version upgrade
The Envoy dependency in Gloo Gateway 1.21 was upgraded from 1.35.x to 1.36.x. This change includes the following upstream breaking changes. For more information about these changes, see the changelog documentation for Envoy v1.36.
Envoy v1.36:
ExtProc changes: Removed support for
fail_openandFULL_DUPLEX_STREAMEDconfiguration combinations. For more information, see the related Envoy pull request.Tracing changes: A route refresh now results in a tracing refresh. The trace sampling decision and decoration of the new route is applied to the active span. This change can be reverted by setting the runtime guard
envoy.reloadable_features.trace_refresh_after_route_refreshtofalse. Note, that ifpack_trace_reasonis set totrue(default value), a request that is marked as traced cannot be unmarked as traced after the tracing refresh.HTTP/2 default value changes: The following default values were changed.
- The maximum number of concurrent streams in HTTP/2 changed from 2147483647 to 1024.
- The initial stream window size in HTTP/2 changed from 256MiB to 16MiB.
- The initial connection window size in HTTP/2 was changed from 256MiB to 24MiB.
You can temporarily revert this change by setting the runtime guard
envoy.reloadable_features.safe_http2_optionstofalse.HTTP/1 CONNECT request changes: The HTTP/1.1 proxy transport socket now generates RFC 9110 compliant
CONNECTrequests that include a Host header by default. When the proxy address is configured via endpoint metadata, the transport socket now prefershostname:portformat overIP:portwhen the hostname is available. The legacy behavior that allowsCONNECTrequests without a Host header can be restored by setting the runtime flagenvoy.reloadable_features.http_11_proxy_connect_legacy_formattotrue.
âšī¸ Low
Review informational updates that you might want to implement but that are unlikely to materially impact production.
- No low-severity changes are currently reported.
âī¸ Installation changes
In addition to comparing differences across versions in the changelog, review the following installation changes from the previous minor version to version 1.21.
- No installation changes are currently reported.
đ New features
Review the following new features that are introduced in version 1.21 and that you can enable in your environment.
HPA support
Starting in Gloo Gateway 1.21, you can bring your own Horizontal Pod Autoscaler (HPA) plug-in to automatically scale gateway proxy pods up and down based on thresholds such as memory and CPU consumption. To allow integration with HPA plug-ins, replicas are no longer managed by Gloo Gateway when no custom replicas are set in the GatewayParameters resource.
For setup instructions, see Horizontal Pod Autoscaling (HPA).
Multiple extProc filter variants
Starting in Gloo Gateway v1.21, you can configure up to three external processing (extProc) filters that run at different positions in the Envoy filter chain. Previously, only a single extProc filter was supported.
| Field | Position in filter chain |
|---|---|
extProcEarly | Early in the filter chain. Stage is configurable via filterStage. |
extProc | Middle of the filter chain. Stage is configurable via filterStage. |
extProcLate | Final filter before a request leaves Envoy; first filter when a response enters Envoy. Always runs as an upstream_http_filter regardless of filterStage. |
All three fields are available at the global Settings, HttpListenerOptions, VirtualHostOptions, and RouteOptions levels. You can enable or disable individual variants at the listener level with disableExtProcEarly and disableExtProcLate.
For more information, see ExtProc filter variants and the Header manipulation guide.
Regex matching for JWT claims
Starting in Gloo Gateway v1.21, you can match JWT claims against regular expressions (regex) instead of the default exact string comparison. To enable regex matching, set the matcher field to REGEX_MATCH in the jwtPrincipal of your RBAC policy, and provide a regex pattern as the claim value. For example, to match an email claim against a pattern:
rbac:
policies:
viewer:
principals:
- jwtPrincipal:
claims:
email: "dev[0-1]@solo\\.io"
matcher: REGEX_MATCH
For more information and additional examples, see Authorize access based on claims.
Custom host URL and path for LLMs
By default, Gloo Gateway uses the default host URL for a particular LLM, such as https://api.openai.com for OpenAI when sending a request to the LLM. You can customize the host URL and specify the base or full path that you want to use for your requests. This setup is useful in cases where your LLM is hosted through a different provider, such as IBM API Connect.
For more information, see Custom host URL and path.
OpenAI Realtime API WebSocket support
Starting in Gloo Gateway 1.21, you can proxy WebSocket connections to the OpenAI /v1/realtime endpoint through an AI upstream. Previously, the AI transformation filter rewrote all paths to /v1/chat/completions, which broke WebSocket upgrade requests. Now, the AI transformation filter automatically passes through WebSocket connections without rewriting the path.
No additional configuration is required. When you route traffic to an AI upstream, the gateway automatically enables WebSocket passthrough for the AI transformation filter.
In addition, a new global setting enableAutoWebsocketTransformationPassthrough is available in the Settings resource to enable WebSocket passthrough for non-AI transformation filters.
OpenAI Responses API support
Starting in Gloo Gateway 1.21, you can proxy requests to the OpenAI /v1/responses endpoint through an AI upstream. Previously, the AI transformation filter applied chat completions logic to all proxied requests, which caused requests to /v1/responses to fail.
No additional configuration is required. The AI transformation filter automatically detects requests to /v1/responses and passes them through.
Note the following feature support with the /v1/responses endpoint:
- Supported: auth token injection, custom host URL and base path, and dynamic metadata extraction.
- Not supported: rate limiting, prompt injection, RAG, guardrails, webhooks, semantic caching, and moderation.
Configurable PodMonitor scrape interval
You can now configure the scrape interval for the PodMonitor resource by setting the global.glooStats.podMonitor.interval Helm value. The default interval is 15s. This is useful when using managed monitoring services such as Grafana Cloud, where you want to control the scraping rate to reduce costs.
Installation changes
Redis image version update
The default Redis image version was updated to 7.2.11-alpine to fix CVEs. If you installed Gloo Gateway in an airgapped environment, make sure to update the Redis image accordingly.
For more information, see the Airgap installation guide.
đ Feature changes
Review the following changes that might impact how you use certain features in your Gloo Gateway environment.
XSLT transformation deprecated
The XSLT transformation feature is deprecated in Gloo Gateway v1.21 and will be removed in v1.22.0. If you use XSLT transformations, plan to use an external processing server to process this type of transformation. For more information, see External processing.