# Create an Arc-enabled AKS cluster on an edge zone
function createArcEnabledAksOnEz {
param(
[string] $SubscriptionId,
[string] $AKSClusterResourceGroupName,
[string] $location = "westus",
[string] $AKSName,
[string] $edgeZone,
[int] $nodeCount = 2,
[string] $vmSize = "standard_nv12ads_a10_v5",
[string] $ArcResourceGroupName,
[switch] $Debug
)
# Set the subscription
az account set --subscription $SubscriptionId
# Login to Azure
az provider register --namespace Microsoft.AzureArcData
# Create new resource group
az group create --name $AKSClusterResourceGroupName --location $location
# Create new cluster and deploy in edge zone
Write-Output "Creating AKS cluster in edge zone..."
az aks create -g $AKSClusterResourceGroupName -n $AKSName --location $location --edge-zone $edgeZone --node-count $nodeCount -s $vmSize --generate-ssh-keys
# Create new resource group for Arc
az group create --name $ArcResourceGroupName --location eastus
# Download cluster credentials and get AKS cluster context
az aks get-credentials --resource-group $AKSClusterResourceGroupName --name $AKSName --overwrite-existing
# Connect the AKS cluster to Arc
$CLUSTER_NAME = "$ArcResourceGroupName-cluster" # Name of the connected cluster resource
Write-Output "Connecting AKS cluster to Azure Arc..."
az connectedk8s connect --resource-group $ArcResourceGroupName --name $CLUSTER_NAME
# DEBUG: Test connection to Arc
if ($Debug) {
Write-Debug az connectedk8s show --resource-group $ArcResourceGroupName --name $CLUSTER_NAME
}
}
createArcEnabledAksOnEz -SubscriptionId "ffc37441-49e9-4291-a520-0b2d4972bb99" `
-AKSClusterResourceGroupName "t1" `
-location "westus" `
-AKSName "my-aks-cluster" `
-edgeZone "losangeles" `
-nodeCount 2 `
-vmSize "standard_nv12ads_a10_v5" `
-ArcResourceGroupName "t2"