-
Notifications
You must be signed in to change notification settings - Fork 209
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
Enable running connectivity tests requiring a node without Cilium in combination with clustermesh #2191
Enable running connectivity tests requiring a node without Cilium in combination with clustermesh #2191
Conversation
8761380
to
d1534e6
Compare
d1534e6
to
f482c1f
Compare
f482c1f
to
709898d
Compare
709898d
to
70fe178
Compare
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.
This looks sensible to me, I suppose similar changes to the multicluster workflow on the main repo will be needed?
Yes, they are part of cilium/cilium#29926. |
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!
@giorio94 looks like this picked up a merge conflict. Could you please rebase and resolve? |
Currently, the deployment originating the pod scheduled on a node without Cilium is added to the incorrect wait list. While this does not create issues in single cluster environments (given that they are merged anyhow as there's a single client), it does not work with clustermesh, as we would use the incorrect client to wait until it becomes ready. Signed-off-by: Marco Iorio <[email protected]>
The detected PodCIDRs are later used to configure the routes required by "from-outside" tests. Let's make sure that we retrieve them for both local and remote nodes when clustermesh is enabled, so that we can run these tests also in that case. From outside tests work under the assumption that the nodes (of both clusters) are on the same LAN, and therefore we can configure a direct route targeting them. This holds for CI workflows using Kind. Signed-off-by: Marco Iorio <[email protected]>
756b7a2 ("connectivity: skip nodeport tests with clustermesh if KPR is disabled") skipped the execution of NodePort tests in the aforementioned scenario, as iptables/ipvs don't know about remote endpoints. Let's add the same requisite also to the other N/S loadbalancing tests, to ensure they are compatible with clustermesh. Signed-off-by: Marco Iorio <[email protected]>
The echo-other-node deployment is hosted on the remote cluster in case of clustermesh, which allows to additionally test that ingress and multi cluster services play well together. Signed-off-by: Marco Iorio <[email protected]>
Extend the tests generating traffic from nodes external to the cluster (i.e., without Cilium) to the echo pods to cover both address families, when enabled. To this end, let's additionally configure routes towards the IPv6 PodCIDR. We explicitly skip the configuration for the CIDRs of the nodes where Cilium is not installed, as the insertion of an IPv6 route with next hop a local address appears to fail with: ip: RTNETLINK answers: Invalid argument Signed-off-by: Marco Iorio <[email protected]>
Make sure that the host-netns daemonsets leveraged by the connectivity tests are ready before proceeding with the subsequent checks, to prevent possible flakiness caused by some pods not being yet completely running. Signed-off-by: Marco Iorio <[email protected]>
They will never, because no CNI is present at that point. Hence, let's just avoid wasting one minute waiting for the timeout to expire. Signed-off-by: Marco Iorio <[email protected]>
The v1beta2 API is no longer recognized by newer versions of kubeadm. Signed-off-by: Marco Iorio <[email protected]>
Let's make sure that we don't introduce regressions in the tests requiring an external node that doesn't run cilium when enabled in combination with clustermesh. Signed-off-by: Marco Iorio <[email protected]>
70fe178
to
e6ddd1c
Compare
Thanks for the heads up! Rebased. |
Please review commit by commit, and refer to the individual messages for additional details.