Skip to content

Commit 48515b6

Browse files
author
sivakami
committed
define stamp vnet function.
1 parent bf8bad3 commit 48515b6

File tree

1 file changed

+63
-70
lines changed

1 file changed

+63
-70
lines changed

.pipelines/swiftv2-long-running/scripts/create_aks.sh

Lines changed: 63 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -7,75 +7,16 @@ RG=$3
77
VM_SKU_DEFAULT=$4
88
VM_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"
10799
done
108-
echo "All done. Created $CLUSTER_COUNT cluster set(s)."
100+
101+
echo "All clusters complete."

0 commit comments

Comments
 (0)