Skip to content

Commit 4c25025

Browse files
committed
Isolate node addition e2e from parallel test runs
Run lb-with-node-addition in its own CI step and dedicated Make target, using a Chainsaw label selector instead of the general all test batch. This keeps the cluster-scaling test from mutating node membership while other load-balancer tests are running in parallel. Also widen the wait windows that were too short for CI: allow up to 10 minutes of 30-second polling for the new MachineDeployment replica to become ready, and extend the IPv6 load balancer readiness gate so backend programming and LB health checks have more time to settle.
1 parent ef25bcf commit 4c25025

4 files changed

Lines changed: 21 additions & 8 deletions

File tree

.github/workflows/ci.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,9 @@ jobs:
119119
- name: Run E2E Tests
120120
run: devbox run e2e-test
121121

122+
- name: Run node addition e2e test
123+
run: devbox run e2e-test-node-addition
124+
122125
- name: Run Cilium BGP e2e test
123126
run: devbox run e2e-test-bgp
124127

Makefile

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,17 @@ e2e-test:
223223
REGION=$(LINODE_REGION) \
224224
LINODE_TOKEN=$(LINODE_TOKEN) \
225225
LINODE_URL=$(LINODE_URL) \
226-
chainsaw test e2e/test --parallel 2 $(E2E_FLAGS)
226+
chainsaw test e2e/test --parallel 2 --selector all $(E2E_FLAGS)
227+
228+
.PHONY: e2e-test-node-addition
229+
e2e-test-node-addition:
230+
CLUSTER_NAME=$(CLUSTER_NAME) \
231+
MGMT_KUBECONFIG=$(MGMT_KUBECONFIG_PATH) \
232+
KUBECONFIG=$(KUBECONFIG_PATH) \
233+
REGION=$(LINODE_REGION) \
234+
LINODE_TOKEN=$(LINODE_TOKEN) \
235+
LINODE_URL=$(LINODE_URL) \
236+
chainsaw test e2e/test --selector node-addition $(E2E_FLAGS)
227237

228238
.PHONY: e2e-test-bgp
229239
e2e-test-bgp:

e2e/test/lb-with-ipv6-backends/chainsaw-test.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,19 +81,19 @@ spec:
8181
- name: Wait for loadbalancer to start serving traffic
8282
try:
8383
- script:
84-
timeout: 10m
84+
timeout: 15m
8585
content: |
8686
bash -ce '
8787
TARGET_IP=$(kubectl get svc svc-test -n "$NAMESPACE" -o json | jq -r '"'"'.status.loadBalancer.ingress[]? | select(.ip != null and (.ip | contains(":") | not)) | .ip'"'"' | head -n1)
8888
TARGET="http://$TARGET_IP:80"
8989
90-
for i in {1..24}; do
90+
for i in {1..60}; do
9191
output=$(curl -s --max-time 8 "$TARGET" | jq -r .podName 2>/dev/null || true)
9292
if [[ "$output" == *"test-"* ]]; then
9393
echo "loadbalancer ready"
9494
exit 0
9595
fi
96-
sleep 5
96+
sleep 10
9797
done
9898
9999
echo "loadbalancer not ready"

e2e/test/lb-with-node-addition/chainsaw-test.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ kind: Test
44
metadata:
55
name: lb-with-node-addition
66
labels:
7-
all:
7+
node-addition:
88
spec:
99
namespace: "lb-with-node-addition"
1010
catch:
@@ -74,7 +74,7 @@ spec:
7474
- name: Add new node and check nodebalancer gets updated
7575
try:
7676
- script:
77-
timeout: 10m
77+
timeout: 20m
7878
content: |
7979
set -euo pipefail
8080
@@ -95,7 +95,7 @@ spec:
9595
required_replicas=$((current_replicas + 1))
9696
KUBECONFIG=$MGMT_KUBECONFIG kubectl -n "$md_namespace" patch machinedeployment "$md_name" --type='merge' -p "{\"spec\":{\"replicas\":$required_replicas}}"
9797
98-
for i in {1..18}; do
98+
for i in {1..20}; do
9999
ready_replicas=$(KUBECONFIG=$MGMT_KUBECONFIG kubectl -n "$md_namespace" get machinedeployment "$md_name" -o=jsonpath='{.status.readyReplicas}')
100100
echo "MachineDeployment ready replicas: ${ready_replicas:-0}/$required_replicas"
101101
@@ -104,7 +104,7 @@ spec:
104104
break
105105
fi
106106
107-
sleep 10
107+
sleep 30
108108
done
109109
110110
if [[ ${ready_replicas:-0} -lt $required_replicas ]]; then

0 commit comments

Comments
 (0)