-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for listener level warnings #10458
Conversation
Visit the preview URL for this PR (updated for commit 6baba8c): https://gloo-edge--pr10458-allow-listener-warni-13gjo7fg.web.app (expires Fri, 20 Dec 2024 12:10:43 GMT) 🔥 via Firebase Hosting GitHub Action 🌎 Sign: 77c2b86e287749579b7ff9cadb81e099042ef677 |
Issues linked to changelog: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me - agree with Nathan's comments regarding the function names, but happy to approve once that's addressed
/kick
|
/kick same failure |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The comments you added are extremely helpful, thanks
/kick
|
/kick |
/kick
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we want to add an explicit e2e test to demonstrate this behavior? We have a good suite of these tests (https://github.com/solo-io/gloo/tree/main/test/kubernetes/e2e/features/validation) so if we added one, I imagined it would go into this space
How does this functionality play with invalid route replacement: https://docs.solo.io/gloo-edge/latest/guides/traffic_management/configuration_validation/invalid_route_replacement/
It scares me that we are kicking a test that theoretically is validating the behavior we are adding. I may be missing some context, but I think if we added plakes, or changes behavior and are seeing flakes, we should do our best to address them |
Kicking tests like this is a way to enable test flakes to continue to permeate the codebase. Let's identify issues and assignees and understand how recently code merged that could have affected this. Based on the error, I see kgateway-dev#10400 as the relevant issue. I think it's worth following up with the people involved there to let them know how frequently it's happening |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great work!
Thanks Sam. I planned to update this issue once the PR was merged since this was a recurring failure. I've disabled the tests for now and commented the same on the issue |
I didn't think it was necessary since unit tests have been added, however I've added e2e tests as well
This should have no effect since it only replaces invalid routes but here the warnings are just reported on the listener |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree that the new test doesn't add a huge amount of value, but since it's done, let's move on to other things
Co-authored-by: changelog-bot <changelog-bot> Co-authored-by: Sam Heilbron <SamHeilbron@gmail.com>
Co-authored-by: changelog-bot <changelog-bot> Co-authored-by: Sam Heilbron <SamHeilbron@gmail.com>
Description
Adds support for listener-level warnings. This way when a listener or its plugin returns an error, it can be checked if it is a configuration error that can be treated as a warning and processed accordingly.
API changes
Added the
warnings
field to theHttpListenerReport
&&TcpListenerReport
Context
This is introduced to resolve Upstream not found when configuring opentelemetry collector should be a warning, not an error
TLDR;
When the upstream is not found in a tracing collector, it throws an error instead of a warning (Invalid Destination)
Testing steps
Run the following steps :
Now create a gateway with an invalid otel collector upstream :
After this fix, the gateway should be accepted with a warning
Checklist: