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-target annotation 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-redirect and temporal-redirect annotations 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-api flag. (#303, #371, @chakravardhan, @kkk777-7)
- ingress-nginx: use-regex annotation with implementationSpecific path matching (#307, #344, @chakravardhan, @Stevenjin8)
- ingress-nginx: Backend TLS via proxy-ssl-verify and proxy-ssl-secret, translated to BackendTLSPolicy (#308, @rajashish)
- ingress-nginx: proxy-body-size and client-body-buffer-size buffer annotations (#305, #375, @kkk777-7, @Stevenjin8)
- ingress-nginx: whitelist-source-range and denylist-source-range IP access control (#345, @kkk777-7)
- ingress-nginx: ssl-redirect annotation 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)