Reputation: 295
I'm creating AKS cluster using ARM script. The goal is to create cluster from 0 with all needed configurations VNs, NGS and AgentPool. Here is mine ManagedCluster ARM template:
{
"apiVersion": "2020-03-01",
"name": "[parameters('clusterName')]",
"type": "Microsoft.ContainerService/managedClusters",
"location": "[parameters('templateSettings').location]",
"properties": {
"kubernetesVersion": "[parameters('kubernetesVersion')]",
"enableRBAC": true,
"dnsPrefix": "[parameters('dnsPrefix')]",
"agentPoolProfiles": [
{
"name": "nodepool",
"count": "[parameters('agentCount')]",
"vmSize": "[parameters('agentVMSize')]",
"osDiskSizeGB": "[parameters('osDiskSizeGB')]",
"vnetSubnetID": "[parameters('vnetSubnetID')]",
"maxPods": 110,
"minCount": 1,
"maxCount": 100,
"enableAutoScaling": true,
"type": "VirtualMachineScaleSets",
"storageProfile": "ManagedDisks"
}
],
"servicePrincipalProfile": {
"ClientId": "[parameters('servicePrincipalClientId')]",
"Secret": "[parameters('servicePrincipalClientSecret')]"
},
"networkProfile": {
"loadBalancerSku": "standard",
"networkPlugin": "kubenet"
},
"addonProfiles": {
"httpApplicationRouting": {
"enabled": true
},
"omsagent": {
"enabled": true,
"config": {
"logAnalyticsWorkspaceResourceID": "[resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspaceName'))]"
}
}
},
"nodeResourceGroup": "[concat(resourceGroup().name, '-nodes')]"
}
}
On deployment to Azure I receive this error which is not mentioned anywhere in docs:
{
"error": {
"code": "InvalidTemplateDeployment",
"message": "The template deployment 'AksDeployment' is not valid according to the validation procedure. The tracking id is 'b68b569d-**********************'. See inner errors for details.",
"details": [
{
"code": "MustDefineAtLeastOneSystemPool",
"message": "Provisioning of resource(s) for container service aks-arm-test in resource group rg-arm-test failed. Message: {\n \"code\": \"MustDefineAtLeastOneSystemPool\",\n \"message\": \"Must define at least one system pool.\"\n }. Details: "
}
]
}
}
Upvotes: 3
Views: 1719
Reputation: 72191
actually, you can just mark it as a system:
{
"name": "nodepool",
"count": "[parameters('agentCount')]",
"vmSize": "[parameters('agentVMSize')]",
"osDiskSizeGB": "[parameters('osDiskSizeGB')]",
"vnetSubnetID": "[parameters('vnetSubnetID')]",
"maxPods": 110,
"minCount": 1,
"maxCount": 100,
"enableAutoScaling": true,
"type": "VirtualMachineScaleSets",
"storageProfile": "ManagedDisks",
"mode" : "System"
}
https://learn.microsoft.com/en-us/azure/aks/use-system-pools#show-details-for-your-node-pool
older api version should also work
Upvotes: 6