kutsyk
kutsyk

Reputation: 295

ARM AKS Must define at least one system pool

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

Answers (1)

4c74356b41
4c74356b41

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

Related Questions