Installation
To install this release, refer to the instructions at https://github.com/kubernetes-sigs/ingress2gateway/blob/v1.0.0/README.md
(ingress2gateway v1.0.0 was tagged on 2026-03-20T20:21:16Z.)
Changelog
Major Themes
Emitters Framework
New pluggable emitter architecture enabling output to vendor-specific Gateway API
extensions. Supported emitters: standard (vanilla Gateway API), Agentgateway, Envoy Gateway, and Kgateway.
(#265, #273, #305, #320)
Extensive ingress-nginx Annotation Support
Significantly expanded ingress-nginx annotation coverage, adding translation for
header manipulation, GRPC, canary routing, path rewriting, timeouts, SSL and permanent/temporal redirects,
CORS, regex path matching, backend TLS, buffer sizing, IP access control.
A new annotation tracking system also
reports which annotations were parsed, unsupported, or unrecognized.
E2E Test Framework
Comprehensive end-to-end test suite built in pure Go with real cluster testing
across Ingress NGINX and Envoy Gateway providers. Covers TLS termination, SSL
redirect, canary routing, CORS, and timeouts. (#294, #330, #353, #366, #372)
Changes by Kind
Feature
- Emitters framework: pluggable emitter architecture separating providers (Ingress → IR) from emitters (IR → Gateway API resources). Includes standard, Agentgateway, Envoy Gateway, kgateway, and GCE emitters. (#265, #273, #305, #320, #336, #388, @Stevenjin8, @kkk777-7, @puertomontt, @chakravardhan, @markuskobler)
- Route rule name support for xPolicy CRD attachment (#298, @kkk777-7)
- ingress-nginx: header manipulation (
upstream-vhost,x-forwarded-prefix,connection-proxy-header) (#283, @eladmotola) - ingress-nginx: GRPC support annotation (#286, @eladmotola)
- ingress-nginx: extended canary support with
canary-by-header,canary-by-header-value, and cookie-based routing (#287, #365, #374, @jgreeer, @Stevenjin8) - ingress-nginx:
rewrite-targetannotation for path rewriting (#288, @Stevenjin8) - ingress-nginx: timeout annotations (
proxy-connect-timeout,proxy-send-timeout,proxy-read-timeout) (#289, #376, #377, @Stevenjin8) - ingress-nginx:
permanent-redirectandtemporal-redirectannotations with configurable status codes (#299, @jgreeer) - ingress-nginx: full CORS configuration (
allow-origin,allow-methods,allow-headers,allow-credentials,expose-headers,max-age). No longer requires--allow-experimental-gw-apiflag. (#303, #371, @chakravardhan, @kkk777-7) - ingress-nginx:
use-regexannotation withimplementationSpecificpath matching (#307, #344, @chakravardhan, @Stevenjin8) - ingress-nginx: Backend TLS via
proxy-ssl-verifyandproxy-ssl-secret, translated to BackendTLSPolicy (#308, @rajashish) - ingress-nginx:
proxy-body-sizeandclient-body-buffer-sizebuffer annotations (#305, #375, @kkk777-7, @Stevenjin8) - ingress-nginx:
whitelist-source-rangeanddenylist-source-rangeIP access control (#345, @kkk777-7) - ingress-nginx:
ssl-redirectannotation with per-route evaluation matching ingress-nginx per-location semantics (#290, #385, @Stevenjin8) - ingress-nginx: trailing slash redirects (#385, @Stevenjin8)
- ingress-nginx: annotation tracking with notifications for unsupported/unparsed annotations (#359, #361, #370, @Stevenjin8, @kkk777-7)
- Read resources from multiple input files and directories via
--input-file(#258, #357, @carmal891, @johananl) - Refactored notification system to provider- and emitter-scoped reports (#360, #384, @johananl, @Stevenjin8)
- E2E test suite with real cluster testing across Ingress NGINX and Envoy Gateway (#294, #330, #351, #353, #366, #372, @johananl, @Stevenjin8, @kkk777-7)
Bug or Regression
- Fix data race in NotificationAggregator (#292, @johananl)
- Fix setting proper secret group and kind in TLS certificateRefs (#302, @cnvergence)
- Fix panic on nil
ingress.rules.http(#335, @Stevenjin8) - Fix deduplicate TLS CertificateRefs in gateway listeners (#378, @Stevenjin8)
Other (Cleanup or Flake)
- Upgraded Gateway API to v1.5 (#367, @Stevenjin8)
- Migrate to golangci-lint v2 (#323, @kkk777-7)
- Bump Kong chart to v3.0.2 (#349, @johananl)
- Docs: Providers vs Emitters architecture description (#369, @markuskobler)
- Update main and ingress-nginx README (#390, @Stevenjin8)