-
Notifications
You must be signed in to change notification settings - Fork 3.1k
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
Fix dropped NodePort traffic to hostNetwork backends with Geneve+DSR #36978
base: main
Are you sure you want to change the base?
Fix dropped NodePort traffic to hostNetwork backends with Geneve+DSR #36978
Conversation
Thank you! I'll have a closer look later. Also queued up #36982. Once that's merged, we can rebase this PR so that we get immediate feedback on the connectivity test. |
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.
lgtm
Merged, I'll auto-rebase the branch... |
ce585d8
to
aa75d28
Compare
/ci-e2e-upgrade |
Thanks for the quick look! |
@julianwiedmann fixed the conflict. Any tips on next steps to get this in? |
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.
Some comments inline, before I forgot about the CLI compatibility aspect again ...
In general - please rebase on-top of
IIRC the CLI tests for cluster-internal connectivity to all the nodeport services on startup, before running the connectivity tests. Is that what's failing? Let's re-run the workflow and find out. |
@dylandreimerink I refactored the PR to a potential implementation of the above solution. Curious to hear any feedback. Given the larger scope of this PR with respect to before, I have also split the original PR into two, splitting off the cilium-cli tests into #37235 so the two can be reviewed and merged separately |
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.
encryption parts LGTM.
(my personal feeling is, maybe we can split it into two commits, one for "always set tunnel_endpoint in ipcache", the other for "propagate endpointFlags")
/ci-e2e-upgrade |
Happy to split up into two commits if we think that is preferred. I'll wait for some more feedback on the preference and execute if so! |
The e2e tests can be flaky, I see they made it on the 2nd try. Passing the
Splitting the commits would be the nicest approach. The first adding the endpoint flags everywhere, and the second using that capability to implement the DSR fix. |
bf84421
to
5121948
Compare
Done! And thanks for the clarification on the flaky e2e tests! |
5121948
to
fbcf9c5
Compare
Fixed up the unit test |
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.
@tommasopozzetti Nice work!
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.
agent changes LGTM 👍
Hi @dylandreimerink, is there anything else that I can do to help push this through? |
/test |
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.
Thanks, the changes look good for envoy related file (e.g. pkg/envoy/resources.go)
:sigh: CI is failing, seems because this branch is now starting to lag behind main. Could you rebase onto main? That should resolve this. |
This commit makes endpoint flags available for plumbing in the new ipcache API, allowing to set them from higher in the stack Signed-off-by: Tommaso Pozzetti <tommypozzetti@hotmail.it>
Always set tunnel_endpoint in ipcache, even for directly reachable endpoints. This ensures DSR info is available for DSR with geneve dispatch. Use endpointFlags to set the skiptunnel flag for directly reachable endpoints such that, even if overlay is enabled, we do not do an unneeded encap. Fixes: cilium#36901 Signed-off-by: Tommaso Pozzetti <tommypozzetti@hotmail.it>
fbcf9c5
to
e0c8502
Compare
@dylandreimerink Thanks! Done! |
/test |
This PR fixes DSR dispatch with Geneve to hostNetworked pods by ensuring tunnel_endpoint is always populated in ipcache, even for directly reachable endpoints. Unneeded encapsulation is avoided by passing the skiptunnel flag for such endpoints.
Fixes: #36901