test: Replace MetalLB with dummyLB and re-enable LoadBalancer test#12852
test: Replace MetalLB with dummyLB and re-enable LoadBalancer test#12852
Conversation
|
retest-net-next |
The image replaces the MetalLB used in the Cilium's integration tests. See cilium/cilium#12852 for more details. Signed-off-by: Martynas Pumputis <m@lambda.lt>
b29d678 to
78549f3
Compare
This commit re-enables LoadBalancer service tests, and switches from MetalLB to dummylb [1]. The main reason for switching is that the former was operating in L2 mode which interfered with the vbox VM bridge resulting in the test flakes. The new lb only assigns LoadBalancerIP addr to a service (specified by a user in .spec.loadBalancerIP). Therefore, making the LB IP addr reachable from other nodes is up to a user. This can be achieved by installing a route on a client node (as we do in the test). [1]: https://github.com/cilium/dummylb. Signed-off-by: Martynas Pumputis <m@lambda.lt>
78549f3 to
467e9e9
Compare
467e9e9 to
f19af88
Compare
|
test-me-please |
070ba7f to
a8f4a60
Compare
|
test-me-please |
a8f4a60 to
dfb0b52
Compare
|
test-me-please |
dfb0b52 to
e34d4f2
Compare
aanm
left a comment
There was a problem hiding this comment.
I didn't pay too much attention to the CI code.
The image replaces the MetalLB used in the Cilium's integration tests. See cilium/cilium#12852 for more details. Signed-off-by: Martynas Pumputis <m@lambda.lt>
|
test-me-please |
- Invoke cmds for a given node instead of returning cmd itself - reduces boilerplate by quite a bit. - Changes method names form to verb + noun. Suggested-by: Chris Tarazi <chris@isovalent.com> Signed-off-by: Martynas Pumputis <m@lambda.lt>
e34d4f2 to
c38d3ca
Compare
I squashed two *IPRoute related commits. |
|
test-me-please |
joestringer
left a comment
There was a problem hiding this comment.
GKE seems to have a few failures particularly in tests modified by this PR. How do we want to handle this?
https://jenkins.cilium.io/job/Cilium-PR-K8s-GKE/2220/#showFailuresLink
|
retest-gke |
@joestringer Good catch, I didn't dare to look into the GKE failures considering that's broken. Anyway, I've added a new commit which should fix the failures introduced by this PR. |
|
retest-gke |
Otherwise, GKE LB might fail to assign the IP addr to other LB svcs
which results in the following failure:
<*errors.errorString | 0xc0002a6410>: {
s: "could not get service LoadBalancer IP addr: 30s
timeout expired",
}
Signed-off-by: Martynas Pumputis <m@lambda.lt>
5c0295e to
9cfe7dc
Compare
|
retest-gke |
2 similar comments
|
retest-gke |
|
retest-gke |
|
GKE CI: all the tests executed after the Update test are failing. When I run them manually on my GKE cluster, they pass. Going to disable the Update test for now. |
|
retest-gke |
Currently, it's broken, and it prevents other tests from being invoked. Signed-off-by: Martynas Pumputis <m@lambda.lt>
|
test-me-please |
This PR re-enables LoadBalancer service tests, and switches from MetalLB to dummylb [1]. The main reason for switching is that the former was operating in L2 mode which interfered with the vbox VM bridge resulting in the test flakes.
The new lb only assigns LoadBalancerIP addr to a service (specified by a user in
.spec.loadBalancerIP). Therefore, making the LB IP addr reachable from other nodes is up to a user. This can be achieved by installing a route on a client node (as we do in the test).Also, refactor
IP{Add,Del}RouteandExecIn{FirstPod,HostNetNS}helpers (see commit messages).[1]: https://github.com/cilium/dummylb.
Fix #10763