kubernetes-ingress-controller
kubernetes-ingress-controller copied to clipboard
Gateway Routes with conflicting Services in their backend should not break config build
If service population fails due to a single Gateway Route using multiple Services whose annotation sets differ, that failure bubbles up to the parser build and indicates that it failed completely, and the parser build bubbles that up saying that it also failed completely. This blocks the entire config build because of one misconfigured Route.
We should be able to only break the Route in question and skip it, proceeding with the rest of the config. Roughly, this would require logging the failure, adding some entry to ingressRules.ServiceNameToServices
that we can recognize as a failure, and then later skipping/logging the route using that service (or the service, forget offhand which we have at the top of the Kong config tree) when building the larger config.
Acceptance:
- [ ] Configuring an xRoute with multiple incompatible Services (e.g. different konghq.com/path annotations) prevents creation of a Kong route for that resource, but does not prevent the parser from building: changes to other routes still take effect.
- [ ] Incompatible Services result in a log indicating that they're not being successfully processed. Optionally combine with https://github.com/Kong/kubernetes-ingress-controller/issues/2566 to make this report the affected xRoute.
Moving to Milestone 4 as this is a fairly evident nice to have.