AlinsRan opened a new pull request, #2784: URL: https://github.com/apache/apisix-ingress-controller/pull/2784
### What this PR does Changes the default of `listener_port_match_mode` from `auto` to `off`. ### Why `auto` mode, introduced in #2703 and first shipped in 2.1.0, injects a `server_port` route var into any route that matches multiple listener ports — with no config change from the user. The injected value is the **Gateway listener port** (e.g. `80`/`443`), but the APISIX `server_port` variable reflects the port the **data plane actually listens on** (e.g. `9080`/`9443` in the standard Helm deploy, where the Service maps `80/443 → 9080/9443`). The two never match, so every multi-listener route returns `404` after upgrading to 2.1.0. See #2782. This is a silent breaking change: before #2703 routes carried no `server_port` var and matched on any port. ### What changes - Default `ListenerPortMatchMode` is now `off`; empty/unknown modes also normalize to `off`, so port-var injection is strictly opt-in. - Updated sample config, configuration-file docs, tests, and CHANGELOG. `auto` and `explicit` remain available for users who run APISIX with `node_listen` aligned to their Gateway listener ports. ### Note This only changes *when* injection happens. The deeper issue — matching `$server_port` against the Gateway's logical listener port is incorrect under any port remapping — still needs a redesign and is tracked separately in #2782. Closes #2782 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
