bzp2010 opened a new pull request, #2885: URL: https://github.com/apache/apisix-ingress-controller/pull/2885
<!-- Please answer these questions before submitting a pull request --> ### Type of change: - [x] Bugfix - [x] New feature provided ### What this PR does / why we need it: Part 2/6 of #2877, the last of the 2a/2b/2c split. Stacked on #2884 (2b); only the last commit is new here. Routes `Update`/`Delete`'s global_rules and plugin_metadata through the `SetGlobalRules`/`SetPluginMetadata` added in #2884, instead of through `Insert`/`Delete`, and attributes Gateway- and IngressClass-sourced plugins to the target GatewayProxy rather than to the Gateway or IngressClass object that happened to be reconciled. Several Gateways sharing one GatewayProxy now write its plugins once instead of racing each other's labels into the store, and a rejected GatewayProxy plugin is now attributed correctly instead of to whichever Gateway last triggered a sync. Also fixes a bug this exposed in `Store.Delete`: its old empty-resourceTypes-wipes-everything special case, still needed by Gateway/IngressClass's full-config deletion, would also fire for the now resourceTypes-less `ApisixGlobalRule` deletion path, wiping every owner's global rules in that config instead of just the one being deleted. `Delete` now only ever removes what it's asked to; `DeleteAll` is the explicit whole-cacheKey wipe, and Gateway/IngressClass deletion calls it directly. ### Pre-submission checklist: - [x] Did you explain what problem does this PR solve? Or what new features have been added? - [x] Have you added corresponding test cases? - [ ] Have you modified the corresponding document? - [x] Is this PR backward compatible? -- 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]
