-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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
v1.12 backports 2022-10-10 #21639
v1.12 backports 2022-10-10 #21639
Conversation
Any backporting conflicts? If not, why was this carried outside the normal backporting process? (We currently have 4 in-flight 1.12 backport PR 😱 ) If yes, please document 🙂 |
All commits had non trivial conflicts as pointed in the first backport attempt and I had already synced offline with the tophat about that. Not sure there's much value in documenting each individual conflict as I literally started from a blank state and manually reapplied the changes |
Just that would be useful to know when reviewing & when we'll come back to these while trying to understand some buggy behavior. |
/test-backport-1.12 |
all 3 jenkins jobs are failing for the same tests, I am not sure if there are some regression here. Appreciate if someone can chime in.
https://jenkins.cilium.io/job/Cilium-PR-K8s-1.22-kernel-5.4/780/ |
65723fd
to
29abd34
Compare
29abd34
to
0f75a20
Compare
[ upstream commit 4532996 ] In order to reclaim orphan entries in the NAT table the agent uses the connection tracking state: if a NAT entry is not backed by a connection, it should be considered orphaned and can be reclaimed. Currently the SNAT logic assumes that all connections that needs to be translated are already tracked. The only exception for this is connections originating from the local host, which are tracked by snat_v4_track_local(). In practice egress gateway is another case that requires special attention: in fact, all connections tunneled from a different node to a gateway node are currently not tracked. This means that whenever the CT garbage collector kicks in, all NAT entries for egress gateway will be deleted, potentially leading to connections breakage. This commit fix this by making sure we always track these connections. While at it, also rename snat_v4_track_local() to snat_v4_track_connection(). Towards: #21346 Signed-off-by: Gilberto Bertin <jibi@cilium.io> Signed-off-by: Gilberto Bertin <jibi@cilium.io>
[ upstream commit 19c2d59 ] For consistency with its v4 counterpart. Signed-off-by: Gilberto Bertin <jibi@cilium.io> Signed-off-by: Gilberto Bertin <jibi@cilium.io>
[ upstream commit c62b209 ] No functional changes introduced. Signed-off-by: Gilberto Bertin <jibi@cilium.io> Signed-off-by: Gilberto Bertin <jibi@cilium.io>
[ upstream commit 658045e ] In snat_v4_needed(), whenever NAT is required because of an egress gateway policy, we unconditionally set the from_endpoint parameter to true, as egress gateway traffic is always originating from an endpoint. This is wrong as that parameter is supposed to track whether traffic is coming from a _local_ endpoint, and so that variable should be set to true only if the __lookup_ip4_endpoint() lookup is successful. Signed-off-by: Gilberto Bertin <jibi@cilium.io> Signed-off-by: Gilberto Bertin <jibi@cilium.io>
[ upstream commit 59ac84f ] Move the from_endpoint parameter of snat_v4_needed() into ipv4_nat_target, and rename the function to snat_v4_prepare_state(). Signed-off-by: Gilberto Bertin <jibi@cilium.io> Signed-off-by: Gilberto Bertin <jibi@cilium.io>
[ upstream commit f9697d2 ] Use the information stored in the SNAT target state to determine if the packet is coming from a local endpoint, saving one map lookup. Signed-off-by: Gilberto Bertin <jibi@cilium.io> Signed-off-by: Gilberto Bertin <jibi@cilium.io>
0f75a20
to
76cd011
Compare
/test-backport-1.12 Job 'Cilium-PR-K8s-GKE' failed: Click to show.Test Name
Failure Output
If it is a flake and a GitHub issue doesn't already exist to track it, comment |
/test-1.19-4.9 |
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.
🤞
CI status:
|
Once this PR is merged, you can update the PR labels via:
or with