Microsoft.ContainerService managedClusters/agentPools 2020-11-01

Template format

To create a Microsoft.ContainerService/managedClusters/agentPools resource, add the following JSON to the resources section of your template.

  "name": "string",
  "type": "Microsoft.ContainerService/managedClusters/agentPools",
  "apiVersion": "2020-11-01",
  "properties": {
    "count": "integer",
    "vmSize": "string",
    "osDiskSizeGB": "integer",
    "osDiskType": "string",
    "vnetSubnetID": "string",
    "podSubnetID": "string",
    "maxPods": "integer",
    "osType": "string",
    "maxCount": "integer",
    "minCount": "integer",
    "enableAutoScaling": "boolean",
    "type": "string",
    "mode": "string",
    "orchestratorVersion": "string",
    "upgradeSettings": {
      "maxSurge": "string"
    "availabilityZones": [
    "enableNodePublicIP": "boolean",
    "scaleSetPriority": "string",
    "scaleSetEvictionPolicy": "string",
    "spotMaxPrice": "number",
    "tags": {},
    "nodeLabels": {},
    "nodeTaints": [
    "proximityPlacementGroupID": "string",
    "kubeletConfig": {
      "cpuManagerPolicy": "string",
      "cpuCfsQuota": "boolean",
      "cpuCfsQuotaPeriod": "string",
      "imageGcHighThreshold": "integer",
      "imageGcLowThreshold": "integer",
      "topologyManagerPolicy": "string",
      "allowedUnsafeSysctls": [
      "failSwapOn": "boolean"
    "linuxOSConfig": {
      "sysctls": {
        "netCoreSomaxconn": "integer",
        "netCoreNetdevMaxBacklog": "integer",
        "netCoreRmemMax": "integer",
        "netCoreWmemMax": "integer",
        "netCoreOptmemMax": "integer",
        "netIpv4TcpMaxSynBacklog": "integer",
        "netIpv4TcpMaxTwBuckets": "integer",
        "netIpv4TcpFinTimeout": "integer",
        "netIpv4TcpKeepaliveTime": "integer",
        "netIpv4TcpKeepaliveProbes": "integer",
        "netIpv4TcpkeepaliveIntvl": "integer",
        "netIpv4TcpRmem": "integer",
        "netIpv4TcpWmem": "integer",
        "netIpv4TcpTwReuse": "boolean",
        "netIpv4IpLocalPortRange": "string",
        "netIpv4NeighDefaultGcThresh1": "integer",
        "netIpv4NeighDefaultGcThresh2": "integer",
        "netIpv4NeighDefaultGcThresh3": "integer",
        "netNetfilterNfConntrackMax": "integer",
        "netNetfilterNfConntrackBuckets": "integer",
        "fsInotifyMaxUserWatches": "integer",
        "fsFileMax": "integer",
        "fsAioMaxNr": "integer",
        "fsNrOpen": "integer",
        "kernelThreadsMax": "integer",
        "vmMaxMapCount": "integer",
        "vmSwappiness": "integer",
        "vmVfsCachePressure": "integer"
      "transparentHugePageEnabled": "string",
      "transparentHugePageDefrag": "string",
      "swapFileSizeMB": "integer"

Property values

The following tables describe the values you need to set in the schema.

Microsoft.ContainerService/managedClusters/agentPools object


In Bicep, type and apiVersion are specified in the first line of the resource declaration. Use the format <type>@<apiVersion>. Don't set those properties in the resource body.

Name Type Required Value
name string Yes The name of the agent pool.
type enum Yes For JSON -agentPools

See Set name and type for child resources.
apiVersion enum Yes For JSON - 2020-11-01
properties object Yes Properties of an agent pool. - ManagedClusterAgentPoolProfileProperties object

ManagedClusterAgentPoolProfileProperties object

Name Type Required Value
count integer No Number of agents (VMs) to host docker containers. Allowed values must be in the range of 0 to 100 (inclusive) for user pools and in the range of 1 to 100 (inclusive) for system pools. The default value is 1.
vmSize enum No Size of agent VMs. - Standard_A1, Standard_A10, Standard_A11, Standard_A1_v2, Standard_A2, Standard_A2_v2, Standard_A2m_v2, Standard_A3, Standard_A4, Standard_A4_v2, Standard_A4m_v2, Standard_A5, Standard_A6, Standard_A7, Standard_A8, Standard_A8_v2, Standard_A8m_v2, Standard_A9, Standard_B2ms, Standard_B2s, Standard_B4ms, Standard_B8ms, Standard_D1, Standard_D11, Standard_D11_v2, Standard_D11_v2_Promo, Standard_D12, Standard_D12_v2, Standard_D12_v2_Promo, Standard_D13, Standard_D13_v2, Standard_D13_v2_Promo, Standard_D14, Standard_D14_v2, Standard_D14_v2_Promo, Standard_D15_v2, Standard_D16_v3, Standard_D16s_v3, Standard_D1_v2, Standard_D2, Standard_D2_v2, Standard_D2_v2_Promo, Standard_D2_v3, Standard_D2s_v3, Standard_D3, Standard_D32_v3, Standard_D32s_v3, Standard_D3_v2, Standard_D3_v2_Promo, Standard_D4, Standard_D4_v2, Standard_D4_v2_Promo, Standard_D4_v3, Standard_D4s_v3, Standard_D5_v2, Standard_D5_v2_Promo, Standard_D64_v3, Standard_D64s_v3, Standard_D8_v3, Standard_D8s_v3, Standard_DS1, Standard_DS11, Standard_DS11_v2, Standard_DS11_v2_Promo, Standard_DS12, Standard_DS12_v2, Standard_DS12_v2_Promo, Standard_DS13, Standard_DS13-2_v2, Standard_DS13-4_v2, Standard_DS13_v2, Standard_DS13_v2_Promo, Standard_DS14, Standard_DS14-4_v2, Standard_DS14-8_v2, Standard_DS14_v2, Standard_DS14_v2_Promo, Standard_DS15_v2, Standard_DS1_v2, Standard_DS2, Standard_DS2_v2, Standard_DS2_v2_Promo, Standard_DS3, Standard_DS3_v2, Standard_DS3_v2_Promo, Standard_DS4, Standard_DS4_v2, Standard_DS4_v2_Promo, Standard_DS5_v2, Standard_DS5_v2_Promo, Standard_E16_v3, Standard_E16s_v3, Standard_E2_v3, Standard_E2s_v3, Standard_E32-16s_v3, Standard_E32-8s_v3, Standard_E32_v3, Standard_E32s_v3, Standard_E4_v3, Standard_E4s_v3, Standard_E64-16s_v3, Standard_E64-32s_v3, Standard_E64_v3, Standard_E64s_v3, Standard_E8_v3, Standard_E8s_v3, Standard_F1, Standard_F16, Standard_F16s, Standard_F16s_v2, Standard_F1s, Standard_F2, Standard_F2s, Standard_F2s_v2, Standard_F32s_v2, Standard_F4, Standard_F4s, Standard_F4s_v2, Standard_F64s_v2, Standard_F72s_v2, Standard_F8, Standard_F8s, Standard_F8s_v2, Standard_G1, Standard_G2, Standard_G3, Standard_G4, Standard_G5, Standard_GS1, Standard_GS2, Standard_GS3, Standard_GS4, Standard_GS4-4, Standard_GS4-8, Standard_GS5, Standard_GS5-16, Standard_GS5-8, Standard_H16, Standard_H16m, Standard_H16mr, Standard_H16r, Standard_H8, Standard_H8m, Standard_L16s, Standard_L32s, Standard_L4s, Standard_L8s, Standard_M128-32ms, Standard_M128-64ms, Standard_M128ms, Standard_M128s, Standard_M64-16ms, Standard_M64-32ms, Standard_M64ms, Standard_M64s, Standard_NC12, Standard_NC12s_v2, Standard_NC12s_v3, Standard_NC24, Standard_NC24r, Standard_NC24rs_v2, Standard_NC24rs_v3, Standard_NC24s_v2, Standard_NC24s_v3, Standard_NC6, Standard_NC6s_v2, Standard_NC6s_v3, Standard_ND12s, Standard_ND24rs, Standard_ND24s, Standard_ND6s, Standard_NV12, Standard_NV24, Standard_NV6
osDiskSizeGB integer No OS Disk Size in GB to be used to specify the disk size for every machine in this master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified.
osDiskType enum No OS disk type to be used for machines in a given agent pool. Allowed values are 'Ephemeral' and 'Managed'. If unspecified, defaults to 'Ephemeral' when the VM supports ephemeral OS and has a cache disk larger than the requested OSDiskSizeGB. Otherwise, defaults to 'Managed'. May not be changed after creation. - Managed or Ephemeral
vnetSubnetID string No VNet SubnetID specifies the VNet's subnet identifier for nodes and maybe pods
podSubnetID string No Pod SubnetID specifies the VNet's subnet identifier for pods.
maxPods integer No Maximum number of pods that can run on a node.
osType enum No OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux. - Linux or Windows
maxCount integer No Maximum number of nodes for auto-scaling
minCount integer No Minimum number of nodes for auto-scaling
enableAutoScaling boolean No Whether to enable auto-scaler
type enum No AgentPoolType represents types of an agent pool. - VirtualMachineScaleSets or AvailabilitySet
mode enum No AgentPoolMode represents mode of an agent pool. - System or User
orchestratorVersion string No Version of orchestrator specified when creating the managed cluster.
upgradeSettings object No Settings for upgrading the agentpool - AgentPoolUpgradeSettings object
availabilityZones array No Availability zones for nodes. Must use VirtualMachineScaleSets AgentPoolType. - string
enableNodePublicIP boolean No Enable public IP for nodes
scaleSetPriority enum No ScaleSetPriority to be used to specify virtual machine scale set priority. Default to regular. - Spot or Regular
scaleSetEvictionPolicy enum No ScaleSetEvictionPolicy to be used to specify eviction policy for Spot virtual machine scale set. Default to Delete. - Delete or Deallocate
spotMaxPrice number No SpotMaxPrice to be used to specify the maximum price you are willing to pay in US Dollars. Possible values are any decimal value greater than zero or -1 which indicates default price to be up-to on-demand.
tags object No Agent pool tags to be persisted on the agent pool virtual machine scale set.
nodeLabels object No Agent pool node labels to be persisted across all nodes in agent pool.
nodeTaints array No Taints added to new nodes during node pool create and scale. For example, key=value:NoSchedule. - string
proximityPlacementGroupID string No The ID for Proximity Placement Group.
kubeletConfig object No KubeletConfig specifies the configuration of kubelet on agent nodes. - KubeletConfig object
linuxOSConfig object No LinuxOSConfig specifies the OS configuration of linux agent nodes. - LinuxOSConfig object

AgentPoolUpgradeSettings object

Name Type Required Value
maxSurge string No Count or percentage of additional nodes to be added during upgrade. If empty uses AKS default

KubeletConfig object

Name Type Required Value
cpuManagerPolicy string No CPU Manager policy to use.
cpuCfsQuota boolean No Enable CPU CFS quota enforcement for containers that specify CPU limits.
cpuCfsQuotaPeriod string No Sets CPU CFS quota period value.
imageGcHighThreshold integer No The percent of disk usage after which image garbage collection is always run.
imageGcLowThreshold integer No The percent of disk usage before which image garbage collection is never run.
topologyManagerPolicy string No Topology Manager policy to use.
allowedUnsafeSysctls array No Allowlist of unsafe sysctls or unsafe sysctl patterns (ending in *). - string
failSwapOn boolean No If set to true it will make the Kubelet fail to start if swap is enabled on the node.

LinuxOSConfig object

Name Type Required Value
sysctls object No Sysctl settings for Linux agent nodes. - SysctlConfig object
transparentHugePageEnabled string No Transparent Huge Page enabled configuration.
transparentHugePageDefrag string No Transparent Huge Page defrag configuration.
swapFileSizeMB integer No SwapFileSizeMB specifies size in MB of a swap file will be created on each node.

SysctlConfig object

Name Type Required Value
netCoreSomaxconn integer No Sysctl setting net.core.somaxconn.
netCoreNetdevMaxBacklog integer No Sysctl setting net.core.netdev_max_backlog.
netCoreRmemMax integer No Sysctl setting net.core.rmem_max.
netCoreWmemMax integer No Sysctl setting net.core.wmem_max.
netCoreOptmemMax integer No Sysctl setting net.core.optmem_max.
netIpv4TcpMaxSynBacklog integer No Sysctl setting net.ipv4.tcp_max_syn_backlog.
netIpv4TcpMaxTwBuckets integer No Sysctl setting net.ipv4.tcp_max_tw_buckets.
netIpv4TcpFinTimeout integer No Sysctl setting net.ipv4.tcp_fin_timeout.
netIpv4TcpKeepaliveTime integer No Sysctl setting net.ipv4.tcp_keepalive_time.
netIpv4TcpKeepaliveProbes integer No Sysctl setting net.ipv4.tcp_keepalive_probes.
netIpv4TcpkeepaliveIntvl integer No Sysctl setting net.ipv4.tcp_keepalive_intvl.
netIpv4TcpRmem integer No Sysctl setting net.ipv4.tcp_rmem.
netIpv4TcpWmem integer No Sysctl setting net.ipv4.tcp_wmem.
netIpv4TcpTwReuse boolean No Sysctl setting net.ipv4.tcp_tw_reuse.
netIpv4IpLocalPortRange string No Sysctl setting net.ipv4.ip_local_port_range.
netIpv4NeighDefaultGcThresh1 integer No Sysctl setting net.ipv4.neigh.default.gc_thresh1.
netIpv4NeighDefaultGcThresh2 integer No Sysctl setting net.ipv4.neigh.default.gc_thresh2.
netIpv4NeighDefaultGcThresh3 integer No Sysctl setting net.ipv4.neigh.default.gc_thresh3.
netNetfilterNfConntrackMax integer No Sysctl setting net.netfilter.nf_conntrack_max.
netNetfilterNfConntrackBuckets integer No Sysctl setting net.netfilter.nf_conntrack_buckets.
fsInotifyMaxUserWatches integer No Sysctl setting fs.inotify.max_user_watches.
fsFileMax integer No Sysctl setting fs.file-max.
fsAioMaxNr integer No Sysctl setting fs.aio-max-nr.
fsNrOpen integer No Sysctl setting fs.nr_open.
kernelThreadsMax integer No Sysctl setting kernel.threads-max.
vmMaxMapCount integer No Sysctl setting vm.max_map_count.
vmSwappiness integer No Sysctl setting vm.swappiness.
vmVfsCachePressure integer No Sysctl setting vm.vfs_cache_pressure.

Quickstart templates

The following quickstart templates deploy this resource type.

Template Description
Deploy an AKS cluster for Azure ML

Deploy to Azure
This template allows you to deploy an entreprise compliant AKS cluster which can be attached to Azure ML