Skip to content

Commit 6416eb1

Browse files
committed
Create regular capl and ipv6 dual stack cluster in parallel to optimize the workflow time
1 parent 3269e78 commit 6416eb1

4 files changed

Lines changed: 16 additions & 63 deletions

File tree

.github/workflows/ci.yml

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -113,18 +113,8 @@ jobs:
113113
- name: Install devbox
114114
uses: jetify-com/devbox-install-action@v0.14.0
115115

116-
- name: Docker Build and Push CCM Image
117-
run: devbox run build-and-push
118-
119-
- name: Setup CAPL Management Kind Cluster
120-
run: devbox run mgmt-cluster
121-
122-
# Temp running this before all the other e2e tests
123-
- name: Setup Dual Stack Cluster and IPv6 backend e2e test
124-
run: devbox run e2e-test-ipv6-backends
125-
126-
- name: Setup CAPL Cluster
127-
run: devbox run capl-cluster
116+
- name: Setup CAPL Management Kind Cluster and CAPL Child Cluster For Testing
117+
run: devbox run mgmt-and-capl-cluster
128118

129119
- name: Run E2E Tests
130120
run: devbox run e2e-test
@@ -135,9 +125,6 @@ jobs:
135125
- name: Run subnet filtering test
136126
run: devbox run e2e-test-subnet
137127

138-
- name: Run node addition e2e test
139-
run: devbox run e2e-test-node-addition
140-
141128
- name: Cleanup Resources
142129
if: always()
143130
run: devbox run cleanup-cluster

Makefile

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -165,10 +165,13 @@ run-debug: build
165165
#####################################################################
166166

167167
.PHONY: mgmt-and-capl-cluster
168-
mgmt-and-capl-cluster: build-and-push mgmt-cluster capl-cluster
168+
mgmt-and-capl-cluster: mgmt-cluster
169+
$(MAKE) -j2 capl-ipv6-cluster capl-cluster
169170

170171
.PHONY: capl-cluster
171-
capl-cluster: generate-capl-cluster-manifests create-capl-cluster
172+
capl-cluster: generate-capl-cluster-manifests
173+
MANIFEST_NAME=$(MANIFEST_NAME) CLUSTER_NAME=$(CLUSTER_NAME) KUBECONFIG_PATH=$(KUBECONFIG_PATH) \
174+
$(MAKE) create-capl-cluster
172175

173176
.PHONY: capl-ipv6-cluster
174177
capl-ipv6-cluster: generate-capl-ipv6-cluster-manifests
@@ -232,6 +235,8 @@ cleanup-cluster:
232235

233236
.PHONY: e2e-test
234237
e2e-test:
238+
# Run ipv6 tests first and then the rest
239+
$(MAKE) e2e-test-ipv6-backends
235240
CLUSTER_NAME=$(CLUSTER_NAME) \
236241
MGMT_KUBECONFIG=$(MGMT_KUBECONFIG_PATH) \
237242
KUBECONFIG=$(KUBECONFIG_PATH) \
@@ -241,7 +246,7 @@ e2e-test:
241246
chainsaw test e2e/test --parallel 2 --selector all $(E2E_FLAGS)
242247

243248
.PHONY: e2e-test-ipv6-backends
244-
e2e-test-ipv6-backends: capl-ipv6-cluster
249+
e2e-test-ipv6-backends:
245250
CLUSTER_NAME=$(IPV6_CLUSTER_NAME) \
246251
MGMT_KUBECONFIG=$(MGMT_KUBECONFIG_PATH) \
247252
KUBECONFIG=$(IPV6_KUBECONFIG_PATH) \
@@ -250,16 +255,6 @@ e2e-test-ipv6-backends: capl-ipv6-cluster
250255
LINODE_URL=$(LINODE_URL) \
251256
chainsaw test e2e/test --selector ipv6-backends $(E2E_FLAGS)
252257

253-
.PHONY: e2e-test-node-addition
254-
e2e-test-node-addition:
255-
CLUSTER_NAME=$(CLUSTER_NAME) \
256-
MGMT_KUBECONFIG=$(MGMT_KUBECONFIG_PATH) \
257-
KUBECONFIG=$(KUBECONFIG_PATH) \
258-
REGION=$(LINODE_REGION) \
259-
LINODE_TOKEN=$(LINODE_TOKEN) \
260-
LINODE_URL=$(LINODE_URL) \
261-
chainsaw test e2e/test --selector node-addition $(E2E_FLAGS)
262-
263258
.PHONY: e2e-test-bgp
264259
e2e-test-bgp:
265260
KUBECONFIG=$(KUBECONFIG_PATH) CLUSTER_SUFFIX=$(CLUSTER_NAME) ./e2e/setup/cilium-setup.sh

devbox.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
"capl-ipv6-cluster": "make capl-ipv6-cluster",
2727
"e2e-test": "make e2e-test",
2828
"e2e-test-ipv6-backends": "make e2e-test-ipv6-backends",
29-
"e2e-test-node-addition": "make e2e-test-node-addition",
3029
"e2e-test-bgp": "make e2e-test-bgp",
3130
"e2e-test-subnet": "make e2e-test-subnet",
3231
"cleanup-cluster": "make cleanup-cluster"

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

Lines changed: 6 additions & 34 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-
node-addition:
7+
all:
88
spec:
99
namespace: "lb-with-node-addition"
1010
catch:
@@ -74,43 +74,15 @@ spec:
7474
- name: Add new node and check nodebalancer gets updated
7575
try:
7676
- script:
77-
timeout: 20m
77+
timeout: 10m
7878
content: |
7979
set -euo pipefail
8080
81-
md_info=$(KUBECONFIG=$MGMT_KUBECONFIG kubectl get machinedeployments.cluster.x-k8s.io -A -l cluster.x-k8s.io/cluster-name=${CLUSTER_NAME} -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\n"}{end}')
82-
md_count=$(echo "$md_info" | sed '/^$/d' | wc -l | tr -d ' ')
83-
84-
if [[ "$md_count" -ne 1 ]]; then
85-
echo "Expected exactly one worker MachineDeployment, found: $md_count"
86-
echo "$md_info"
87-
exit 1
88-
fi
89-
90-
md_namespace=$(echo "$md_info" | awk 'NF {print $1; exit}')
91-
md_name=$(echo "$md_info" | awk 'NF {print $2; exit}')
92-
echo "Using MachineDeployment ${md_namespace}/${md_name}"
93-
94-
current_replicas=$(KUBECONFIG=$MGMT_KUBECONFIG kubectl -n "$md_namespace" get machinedeployment "$md_name" -o=jsonpath='{.spec.replicas}')
81+
current_replicas=$(KUBECONFIG=$MGMT_KUBECONFIG kubectl get machinedeployment ${CLUSTER_NAME}-md-0 -o=jsonpath='{.spec.replicas}')
9582
required_replicas=$((current_replicas + 1))
96-
KUBECONFIG=$MGMT_KUBECONFIG kubectl -n "$md_namespace" patch machinedeployment "$md_name" --type='merge' -p "{\"spec\":{\"replicas\":$required_replicas}}"
97-
98-
for i in {1..20}; do
99-
ready_replicas=$(KUBECONFIG=$MGMT_KUBECONFIG kubectl -n "$md_namespace" get machinedeployment "$md_name" -o=jsonpath='{.status.readyReplicas}')
100-
echo "MachineDeployment ready replicas: ${ready_replicas:-0}/$required_replicas"
101-
102-
if [[ ${ready_replicas:-0} -ge $required_replicas ]]; then
103-
echo "machine deployment scaled"
104-
break
105-
fi
106-
107-
sleep 30
108-
done
83+
KUBECONFIG=$MGMT_KUBECONFIG kubectl patch machinedeployment ${CLUSTER_NAME}-md-0 --type='merge' -p "{\"spec\":{\"replicas\":$required_replicas}}"
10984
110-
if [[ ${ready_replicas:-0} -lt $required_replicas ]]; then
111-
echo "MachineDeployment did not reach required ready replicas"
112-
exit 1
113-
fi
85+
sleep 180
11486
11587
nbid=$(KUBECONFIG=$KUBECONFIG NAMESPACE=$NAMESPACE LINODE_TOKEN=$LINODE_TOKEN ../scripts/get-nb-id.sh)
11688
echo "Nodebalancer ID: $nbid"
@@ -139,7 +111,7 @@ spec:
139111
fi
140112
done
141113
142-
#KUBECONFIG=$MGMT_KUBECONFIG kubectl -n "$md_namespace" patch machinedeployment "$md_name" --type='merge' -p "{\"spec\":{\"replicas\":$current_replicas}}"
114+
#KUBECONFIG=$MGMT_KUBECONFIG kubectl patch machinedeployment ${CLUSTER_NAME}-md-0 --type='merge' -p "{\"spec\":{\"replicas\":$current_replicas}}"
143115
check:
144116
($error == null): true
145117
(contains($stdout, 'all nodes up')): true

0 commit comments

Comments
 (0)