-
Notifications
You must be signed in to change notification settings - Fork 8
feat: enable Cilium source IP preservation #1295
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
Conversation
charts/cluster-api-runtime-extensions-nutanix/addons/cni/cilium/values-template.yaml
Show resolved
Hide resolved
I wonder if we can add a test that checks that source IP is actually being preserved with this configuration? |
charts/cluster-api-runtime-extensions-nutanix/addons/cni/cilium/values-template.yaml
Outdated
Show resolved
Hide resolved
charts/cluster-api-runtime-extensions-nutanix/addons/cni/cilium/values-template.yaml
Outdated
Show resolved
Hide resolved
Here is the diff of the ConfigMap used by Cilium after applying kube-proxy replacement
Tested this with:
Notice how the client IP changes after enabling:
|
+1 |
@jimmidyson @yanhua121 please see #1304, I will rebase and extend the test in this PR after the other changes are merged. |
charts/cluster-api-runtime-extensions-nutanix/addons/cni/cilium/values-template.yaml
Outdated
Show resolved
Hide resolved
33ab351
to
a9998c3
Compare
3d343fe
to
f5f4bb9
Compare
**What problem does this PR solve?**: Make the migration process from kube-proxy to Cilium's kube-proxy replacement more resilient. Just setting `kubeProxyReplacement: true` is not enough for the Cilium operator to restart the DaemonSet Pods and pickup the new configuration. Instead of relying on `k8sServiceHost` to cause a rollout, this change forces a rollout during the migration process. This also fixes a potential race where the Cilium DaemonSet wait returned early and delete kube-proxy before all the Pods were restarted. Another fix here is that this whole migration process is now safer and only done once when kube-proxy is installed. Pulled out from #1295 **Which issue(s) this PR fixes**: Fixes # **How Has This Been Tested?**: <!-- Please describe the tests that you ran to verify your changes. Provide output from the tests and any manual steps needed to replicate the tests. --> **Special notes for your reviewer**: <!-- Use this to provide any additional information to the reviewers. This may include: - Best way to review the PR. - Where the author wants the most review attention on. - etc. --> --------- Co-authored-by: Jimmi Dyson <[email protected]>
f5f4bb9
to
0edbe03
Compare
0edbe03
to
cd63f74
Compare
This reverts commit 8163ca5.
What problem does this PR solve?:
Set Cilium's configuration to preserve source IPs from external connections. See https://docs.cilium.io/en/stable/network/kubernetes/kubeproxy-free/#client-source-ip-preservation
Which issue(s) this PR fixes:
Fixes #
How Has This Been Tested?:
Special notes for your reviewer: