Skip to content

Commit 4acd138

Browse files
committed
[release-1.12] overcome transient failures + retry when creating test cluster
Signed-off-by: Jack Francis <[email protected]>
1 parent ab09e78 commit 4acd138

File tree

2 files changed

+33
-19
lines changed

2 files changed

+33
-19
lines changed

Makefile

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -301,14 +301,14 @@ create-management-cluster: $(KUSTOMIZE) $(ENVSUBST) $(KUBECTL) $(KIND) ## Create
301301
./hack/create-custom-cloud-provider-config.sh
302302

303303
# Deploy CAPI
304-
curl --retry $(CURL_RETRIES) -sSL https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.5.5/cluster-api-components.yaml | $(ENVSUBST) | $(KUBECTL) apply -f -
304+
timeout --foreground 300 bash -c "until curl --retry $(CURL_RETRIES) -sSL https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.5.5/cluster-api-components.yaml | $(ENVSUBST) | $(KUBECTL) apply -f -; do sleep 5; done"
305305

306306
# Deploy CAAPH
307-
curl --retry $(CURL_RETRIES) -sSL https://github.com/kubernetes-sigs/cluster-api-addon-provider-helm/releases/download/v0.1.0-alpha.10/addon-components.yaml | $(ENVSUBST) | $(KUBECTL) apply -f -
307+
timeout --foreground 300 bash -c "until curl --retry $(CURL_RETRIES) -sSL https://github.com/kubernetes-sigs/cluster-api-addon-provider-helm/releases/download/v0.1.0-alpha.10/addon-components.yaml | $(ENVSUBST) | $(KUBECTL) apply -f -; do sleep 5; done"
308308

309309
# Deploy CAPZ
310310
$(KIND) load docker-image $(CONTROLLER_IMG)-$(ARCH):$(TAG) --name=$(KIND_CLUSTER_NAME)
311-
$(KUSTOMIZE) build config/default | $(ENVSUBST) | $(KUBECTL) apply -f - --server-side=true
311+
timeout --foreground 300 bash -c "until $(KUSTOMIZE) build config/default | $(ENVSUBST) | $(KUBECTL) apply -f - --server-side=true; do sleep 5; done"
312312

313313
# Wait for CAPI deployments
314314
$(KUBECTL) wait --for=condition=Available --timeout=5m -n capi-system deployment -l cluster.x-k8s.io/provider=cluster-api
@@ -322,8 +322,8 @@ create-management-cluster: $(KUSTOMIZE) $(ENVSUBST) $(KUBECTL) $(KIND) ## Create
322322
timeout --foreground 300 bash -c "until $(KUBECTL) get clusterresourcesets -A; do sleep 3; done"
323323

324324
# install Windows Calico cluster resource set
325-
$(KUBECTL) create configmap calico-windows-addon --from-file="$(ADDONS_DIR)/windows/calico" --dry-run=client -o yaml | kubectl apply -f -
326-
$(KUBECTL) apply -f templates/addons/windows/calico-resource-set.yaml
325+
timeout --foreground 300 bash -c "until $(KUBECTL) create configmap calico-windows-addon --from-file=$(ADDONS_DIR)/windows/calico --dry-run=client -o yaml | kubectl apply -f -; do sleep 5; done"
326+
timeout --foreground 300 bash -c "until $(KUBECTL) apply -f templates/addons/windows/calico-resource-set.yaml; do sleep 5; done"
327327

328328
# Wait for CAPZ deployments
329329
$(KUBECTL) wait --for=condition=Available --timeout=5m -n capz-system deployment --all
@@ -339,11 +339,11 @@ create-management-cluster: $(KUSTOMIZE) $(ENVSUBST) $(KUBECTL) $(KIND) ## Create
339339
create-workload-cluster: $(ENVSUBST) $(KUBECTL) ## Create a workload cluster.
340340
# Create workload Cluster.
341341
@if [ -f "$(TEMPLATES_DIR)/$(CLUSTER_TEMPLATE)" ]; then \
342-
$(ENVSUBST) < "$(TEMPLATES_DIR)/$(CLUSTER_TEMPLATE)" | $(KUBECTL) apply -f -; \
342+
timeout --foreground 300 bash -c "until $(ENVSUBST) < $(TEMPLATES_DIR)/$(CLUSTER_TEMPLATE) | $(KUBECTL) apply -f -; do sleep 5; done"; \
343343
elif [ -f "$(CLUSTER_TEMPLATE)" ]; then \
344-
$(ENVSUBST) < "$(CLUSTER_TEMPLATE)" | $(KUBECTL) apply -f -; \
344+
timeout --foreground 300 bash -c "until $(ENVSUBST) < $(CLUSTER_TEMPLATE) | $(KUBECTL) apply -f -; do sleep 5; done"; \
345345
else \
346-
curl --retry "$(CURL_RETRIES)" "$(CLUSTER_TEMPLATE)" | "$(ENVSUBST)" | $(KUBECTL) apply -f -; \
346+
timeout --foreground 300 bash -c "until curl --retry $(CURL_RETRIES) $(CLUSTER_TEMPLATE) | $(ENVSUBST) | $(KUBECTL) apply -f -; do sleep 5; done"; \
347347
fi
348348

349349
# Wait for the kubeconfig to become available.

hack/create-dev-cluster.sh

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ make envsubst
2828

2929
export REGISTRY="${REGISTRY:-registry.local/fake}"
3030

31+
export CLUSTER_CREATE_ATTEMPTS="${CLUSTER_CREATE_ATTEMPTS:-3}"
32+
3133
# Cluster settings.
3234
export CLUSTER_NAME="${CLUSTER_NAME:-capz-test}"
3335
export AZURE_VNET_NAME=${CLUSTER_NAME}-vnet
@@ -62,14 +64,26 @@ capz::util::generate_ssh_key
6264
echo "================ DOCKER BUILD ==============="
6365
PULL_POLICY=IfNotPresent make modules docker-build
6466

65-
echo "================ MAKE CLEAN ==============="
66-
make clean
67-
68-
echo "================ KIND RESET ==============="
69-
make kind-reset
70-
71-
echo "================ INSTALL TOOLS ==============="
72-
make install-tools
73-
74-
echo "================ CREATE CLUSTER ==============="
75-
make create-cluster
67+
setup() {
68+
echo "================ MAKE CLEAN ==============="
69+
make clean
70+
71+
echo "================ KIND RESET ==============="
72+
make kind-reset
73+
74+
echo "================ INSTALL TOOLS ==============="
75+
make install-tools
76+
}
77+
78+
create_cluster() {
79+
echo "================ CREATE CLUSTER ==============="
80+
make create-cluster
81+
}
82+
83+
retries=$CLUSTER_CREATE_ATTEMPTS
84+
while ((retries > 0)); do
85+
create_cluster && break
86+
setup
87+
sleep 5
88+
((retries --))
89+
done

0 commit comments

Comments
 (0)