77VM_SKU_DEFAULT=$4
88VM_SKU_HIGHNIC=$5
99
10- CLUSTER_COUNT=2
11- CLUSTER_PREFIX=" aks"
10+ CLUSTER_COUNT=2
11+ CLUSTER_PREFIX=" aks"
1212
13- wait_for_provisioning () { # Helper for safe retry/wait for provisioning states (basic)
14- local rg=" $1 " clusterName=" $2 "
15- echo " Waiting for AKS '$clusterName ' in RG '$rg ' to reach Succeeded/Failed (polling)..."
16- while : ; do
17- state=$( az aks show --resource-group " $rg " --name " $clusterName " --query provisioningState -o tsv 2> /dev/null || true)
18- if [ -z " $state " ]; then
19- sleep 3
20- continue
21- fi
22- case " $state " in
23- Succeeded|Succeeded* ) echo " Provisioning state: $state " ; break ;;
24- Failed|Canceled|Rejected) echo " Provisioning finished with state: $state " ; break ;;
25- * ) printf " ." ; sleep 6 ;;
26- esac
27- done
28- }
2913
14+ # ########################################
15+ # Define functions BEFORE the loop
16+ # ########################################
3017
31- for i in $( seq 1 " $CLUSTER_COUNT " ) ; do
32- echo " =============================="
33- echo " Working on cluster set #$i "
34- echo " =============================="
35-
36- CLUSTER_NAME=" ${CLUSTER_PREFIX} -${i} "
37- echo " Creating AKS cluster '$CLUSTER_NAME ' in RG '$RG '"
38-
39- make -C ./hack/aks azcfg AZCLI=az REGION=$LOCATION
40-
41- make -C ./hack/aks swiftv2-podsubnet-cluster-up \
42- AZCLI=az REGION=$LOCATION \
43- SUB=$SUBSCRIPTION_ID \
44- GROUP=$RG \
45- CLUSTER=$CLUSTER_NAME \
46- VM_SIZE=$VM_SKU_DEFAULT
47-
48- echo " - waiting for AKS provisioning state..."
49- wait_for_provisioning " $RG " " $CLUSTER_NAME "
50-
51- echo " Retrieving VNET ID from AKS cluster..."
52- vnet_id=$( az network vnet show -g " $RG " --name " $CLUSTER_NAME " --query id -o tsv)
53- echo " Found VNET: $vnet_id "
54- stamp_vnet " $vnet_id "
55-
56- echo " Adding multi-tenant nodepool ' to '$CLUSTER_NAME '"
57- make -C ./hack/aks linux-swiftv2-nodepool-up \
58- AZCLI=az REGION=$LOCATION \
59- GROUP=$RG \
60- VM_SIZE=$VM_SKU_HIGHNIC \
61- CLUSTER=$CLUSTER_NAME \
62- SUB=$SUBSCRIPTION_ID
63-
64- KUBECONFIG_PATH=" /tmp/${CLUSTER_NAME} .kubeconfig"
65- echo " Exporting admin kubeconfig for '$CLUSTER_NAME ' to ${KUBECONFIG_PATH} ..."
66-
67- az aks get-credentials \
68- --resource-group " $RG " \
69- --name " $CLUSTER_NAME " \
70- --overwrite-existing \
71- --admin \
72- --file " $KUBECONFIG_PATH "
73- echo " Kubeconfig saved: ${KUBECONFIG_PATH} "
74-
75- # Stamp infra vnet.
76- function stamp_vnet() {
77- local vnet_id
78- vnet_id=" ${1} "
18+ stamp_vnet () {
19+ local vnet_id=" $1 "
7920
8021 responseFile=" response.txt"
8122 modified_vnet=" ${vnet_id// \/ /% 2F} "
@@ -85,6 +26,7 @@ function stamp_vnet() {
8526 max_retries=6
8627 sleep_seconds=15
8728 retry_count=0
29+
8830 while [[ $retry_count -lt $max_retries ]]; do
8931 script --quiet -c " $cmd_containerapp_exec " " $responseFile "
9032 if grep -qF " 200 OK" " $responseFile " ; then
@@ -97,12 +39,63 @@ function stamp_vnet() {
9739 sleep " $sleep_seconds "
9840 fi
9941 done
100- if [[ $retry_count -eq $max_retries ]]; then
101- echo " Failed to stamp the vnet even after $max_retries attempts"
102- exit 1
42+
43+ echo " Failed to stamp the vnet even after $max_retries attempts"
44+ exit 1
45+ }
46+
47+ wait_for_provisioning () {
48+ local rg=" $1 " clusterName=" $2 "
49+ echo " Waiting for AKS '$clusterName ' in RG '$rg '..."
50+ while : ; do
51+ state=$( az aks show --resource-group " $rg " --name " $clusterName " --query provisioningState -o tsv 2> /dev/null || true)
52+ if [[ " $state " =~ Succeeded ]]; then
53+ echo " Provisioning state: $state "
54+ break
55+ fi
56+ if [[ " $state " =~ Failed| Canceled ]]; then
57+ echo " Provisioning finished with state: $state "
58+ break
10359 fi
60+ sleep 6
61+ done
10462}
10563
10664
65+ # ########################################
66+ # Main loop
67+ # ########################################
68+
69+ for i in $( seq 1 " $CLUSTER_COUNT " ) ; do
70+ echo " Creating cluster #$i ..."
71+
72+ CLUSTER_NAME=" ${CLUSTER_PREFIX} -${i} "
73+
74+ make -C ./hack/aks azcfg AZCLI=az REGION=$LOCATION
75+
76+ make -C ./hack/aks swiftv2-podsubnet-cluster-up \
77+ AZCLI=az REGION=$LOCATION \
78+ SUB=$SUBSCRIPTION_ID \
79+ GROUP=$RG \
80+ CLUSTER=$CLUSTER_NAME \
81+ VM_SIZE=$VM_SKU_DEFAULT
82+
83+ wait_for_provisioning " $RG " " $CLUSTER_NAME "
84+
85+ vnet_id=$( az network vnet show -g " $RG " --name " $CLUSTER_NAME " --query id -o tsv)
86+ echo " Found VNET: $vnet_id "
87+
88+ stamp_vnet " $vnet_id "
89+
90+ make -C ./hack/aks linux-swiftv2-nodepool-up \
91+ AZCLI=az REGION=$LOCATION \
92+ GROUP=$RG \
93+ VM_SIZE=$VM_SKU_HIGHNIC \
94+ CLUSTER=$CLUSTER_NAME \
95+ SUB=$SUBSCRIPTION_ID
96+
97+ az aks get-credentials -g " $RG " -n " $CLUSTER_NAME " --admin --overwrite-existing \
98+ --file " /tmp/${CLUSTER_NAME} .kubeconfig"
10799done
108- echo " All done. Created $CLUSTER_COUNT cluster set(s)."
100+
101+ echo " All clusters complete."
0 commit comments