Gateway API v1.5 Enhancements: Transitioning Features to Stability
Apr 21, 2026
465 views
Announcing Gateway API v1.5 is Now Available
The Kubernetes SIG Network community has just unveiled Gateway API version 1.5, marking a significant step forward for network management within container orchestration frameworks. Released on February 27, 2026, this iteration focuses primarily on elevating previously experimental features to stable and standard status, reflecting the project's commitment to robust and dependable functionality. This is not merely a cosmetic update; it represents the most substantial release yet, poised to enhance usability significantly. Alongside the main release, a patch update—Gateway API v1.5.1—has already been issued, underscoring the community's proactive approach to refining the platform. This new version brings six high-demand features into the Standard channel, enhancing the Gateway API's overall capabilities. The newly standardized features include: - ListenerSet - TLSRoute - HTTPRoute CORS Filter - Client Certificate Validation - Certificate Selection for Gateway TLS Origination - ReferenceGrant The commitment from contributors has been exemplary, and special recognition is due to the individuals involved in making this release possible. For a deeper appreciation of their efforts, check out the [Gateway API Contributors](https://github.com/kubernetes-sigs/gateway-api/blob/a811d174a406553006bbb9a3594b49380cb9069e/CHANGELOG/1.5-TEAM.md).Revamping the Release Process
Gateway API v1.5 also introduces a systematic release train model aimed at streamlining development and rollout. In this revised approach, features that are ready by a specified freeze date will be packaged and delivered in the release, encompassing both Experimental and Standard features. Notably, this includes a new accountability standard: if the documentation isn't finalized, the accompanying feature won't be included in the launch. What does this mean for developers? Simply put, you can expect a more predictable release schedule going forward, benefiting from the insights gained from the SIG Release team that oversees Kubernetes itself. To support this new process, the roles of Release Manager and Release Shadow have been established within the release team. Kudos to Flynn from Buoyant and Beka Modebadze from Google for their diligent work in refining this process, and they will continue in their respective roles for the upcoming release.Highlighted Standard Features in v1.5
Let’s take a closer look at some of the new standard features introduced in Gateway API v1.5:ListenerSet
Led by experts Dave Protasowski and David Jumani, the [ListenerSet](https://gateway-api.sigs.k8s.io/geps/gep-1713/) feature is a game-changer for managing complex network scenarios. Before its introduction, each listener had to be specified directly on the Gateway object, which posed challenges, particularly in multi-tenant or intricate setups. Platform teams often found themselves needing to coordinate modifications on the same Gateway, which could lead to unnecessary bottlenecks. By allowing listeners to be defined independently and merged onto a target Gateway, ListenerSet addresses these issues head-on. A significant advancement, this feature facilitates the attachment of more than 64 listeners to a single Gateway, which is crucial for scalability in larger systems. However, it’s important to note that despite this enhancement, the base requirement persists: each Gateway must still have at least one valid listener.TLSRoute Enhancements
Aimed at improving security and usability, the TLSRoute feature—led by Rostislav Bobrovsky and Ricardo Pchevuzinske Katz—allows for traffic routing based on Server Name Indication (SNI). This capability directs transport to the appropriate backends while utilizing a Gateway's TLS listener, which can operate in either Passthrough or Terminate mode. One essential consideration is migration: existing Experimental TLSRoutes will not function with v1.5 Standard unless you migrate them to the v1 version included in the Standard YAMLs. This shift is pivotal for those who had relied on previous iterations, so be sure to evaluate your current setup if you're making the switch. As the Gateway API continues to evolve, v1.5 represents not just an incremental update but a substantial move towards a more stable, reliable, and feature-rich platform that could change how teams manage and deploy their networking needs moving forward.Terminate Mode Explained
Terminate mode offers a practical approach to managing TLS certificates directly at the Gateway level. This setup enables the Gateway to handle the TLS session until it reaches the backend service, decrypting the data along the way. Essentially, the Gateway acts as a middleman, converting secure TLS traffic into an unencrypted TCP stream for transmission. To illustrate this, consider the following configuration for a TLSRoute linked to a listener operating in Terminate mode. This listener is customized to respond only to TLS handshakes associated with the hostnamebar.example.com. When a request matches this criteria, the Gateway applies its routing rules, directing the decrypted traffic to the specified backend service:
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: example-gateway
spec:
gatewayClassName: example-gateway-class
listeners:
- name: tls-terminate
protocol: TLS
port: 443
tls:
mode: Terminate
certificateRefs:
- name: tls-terminate-certificate
Configuring CORS with HTTPRoute
As part of the Gateway API framework, the HTTPRoute resource can be leveraged to set up Cross-Origin Resource Sharing (CORS) rules. CORS is a vital HTTP-header based security feature that governs how web pages can access resources hosted on different domains. Take a look at this example that allows authorized requests from https://app.example:apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: cors
spec:
parentRefs:
- name: same-namespace
rules:
- matches:
- path:
type: PathPrefix
value: /cors-behavior-creds-false
backendRefs:
- name: infra-backend-v1
port: 8080
filters:
- cors:
allowOrigins:
- https://app.example
type: CORS