Microsoft.ContainerService managedClusters/agentPools 2020-11-01

Bicep resource definition

The managedClusters/agentPools resource type can be deployed to:

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.ContainerService/managedClusters/agentPools resource, add the following Bicep to your template.

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

Property values

managedClusters/agentPools

Name Description Value
name The resource name

See how to set names and types for child resources in Bicep.
string (required)
parent In Bicep, you can specify the parent resource for a child resource. You only need to add this property when the child resource is declared outside of the parent resource.

For more information, see Child resource outside parent resource.
Symbolic name for resource of type: managedClusters
properties Properties of an agent pool. ManagedClusterAgentPoolProfileProperties

ManagedClusterAgentPoolProfileProperties

Name Description Value
availabilityZones Availability zones for nodes. Must use VirtualMachineScaleSets AgentPoolType. string[]
count 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. int
enableAutoScaling Whether to enable auto-scaler bool
enableNodePublicIP Enable public IP for nodes bool
kubeletConfig KubeletConfig specifies the configuration of kubelet on agent nodes. KubeletConfig
linuxOSConfig LinuxOSConfig specifies the OS configuration of linux agent nodes. LinuxOSConfig
maxCount Maximum number of nodes for auto-scaling int
maxPods Maximum number of pods that can run on a node. int
minCount Minimum number of nodes for auto-scaling int
mode AgentPoolMode represents mode of an agent pool 'System'
'User'
nodeLabels Agent pool node labels to be persisted across all nodes in agent pool. object
nodeTaints Taints added to new nodes during node pool create and scale. For example, key=value:NoSchedule. string[]
orchestratorVersion Version of orchestrator specified when creating the managed cluster. string
osDiskSizeGB 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. int
osDiskType 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. 'Ephemeral'
'Managed'
osType OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux. 'Linux'
'Windows'
podSubnetID Pod SubnetID specifies the VNet's subnet identifier for pods. string
proximityPlacementGroupID The ID for Proximity Placement Group. string
scaleSetEvictionPolicy ScaleSetEvictionPolicy to be used to specify eviction policy for Spot virtual machine scale set. Default to Delete. 'Deallocate'
'Delete'
scaleSetPriority ScaleSetPriority to be used to specify virtual machine scale set priority. Default to regular. 'Regular'
'Spot'
spotMaxPrice 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. int
tags Agent pool tags to be persisted on the agent pool virtual machine scale set. object
type AgentPoolType represents types of an agent pool 'AvailabilitySet'
'VirtualMachineScaleSets'
upgradeSettings Settings for upgrading the agentpool AgentPoolUpgradeSettings
vmSize 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'
vnetSubnetID VNet SubnetID specifies the VNet's subnet identifier for nodes and maybe pods string

KubeletConfig

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

LinuxOSConfig

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

SysctlConfig

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

AgentPoolUpgradeSettings

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

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

ARM template resource definition

The managedClusters/agentPools resource type can be deployed to:

For a list of changed properties in each API version, see change log.

Resource format

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

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

Property values

managedClusters/agentPools

Name Description Value
type The resource type 'Microsoft.ContainerService/managedClusters/agentPools'
apiVersion The resource api version '2020-11-01'
name The resource name

See how to set names and types for child resources in JSON ARM templates.
string (required)
properties Properties of an agent pool. ManagedClusterAgentPoolProfileProperties

ManagedClusterAgentPoolProfileProperties

Name Description Value
availabilityZones Availability zones for nodes. Must use VirtualMachineScaleSets AgentPoolType. string[]
count 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. int
enableAutoScaling Whether to enable auto-scaler bool
enableNodePublicIP Enable public IP for nodes bool
kubeletConfig KubeletConfig specifies the configuration of kubelet on agent nodes. KubeletConfig
linuxOSConfig LinuxOSConfig specifies the OS configuration of linux agent nodes. LinuxOSConfig
maxCount Maximum number of nodes for auto-scaling int
maxPods Maximum number of pods that can run on a node. int
minCount Minimum number of nodes for auto-scaling int
mode AgentPoolMode represents mode of an agent pool 'System'
'User'
nodeLabels Agent pool node labels to be persisted across all nodes in agent pool. object
nodeTaints Taints added to new nodes during node pool create and scale. For example, key=value:NoSchedule. string[]
orchestratorVersion Version of orchestrator specified when creating the managed cluster. string
osDiskSizeGB 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. int
osDiskType 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. 'Ephemeral'
'Managed'
osType OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux. 'Linux'
'Windows'
podSubnetID Pod SubnetID specifies the VNet's subnet identifier for pods. string
proximityPlacementGroupID The ID for Proximity Placement Group. string
scaleSetEvictionPolicy ScaleSetEvictionPolicy to be used to specify eviction policy for Spot virtual machine scale set. Default to Delete. 'Deallocate'
'Delete'
scaleSetPriority ScaleSetPriority to be used to specify virtual machine scale set priority. Default to regular. 'Regular'
'Spot'
spotMaxPrice 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. int
tags Agent pool tags to be persisted on the agent pool virtual machine scale set. object
type AgentPoolType represents types of an agent pool 'AvailabilitySet'
'VirtualMachineScaleSets'
upgradeSettings Settings for upgrading the agentpool AgentPoolUpgradeSettings
vmSize 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'
vnetSubnetID VNet SubnetID specifies the VNet's subnet identifier for nodes and maybe pods string

KubeletConfig

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

LinuxOSConfig

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

SysctlConfig

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

AgentPoolUpgradeSettings

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

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

Terraform (AzAPI provider) resource definition

The managedClusters/agentPools resource type can be deployed to:

  • Resource groups

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.ContainerService/managedClusters/agentPools resource, add the following Terraform to your template.

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

Property values

managedClusters/agentPools

Name Description Value
type The resource type "Microsoft.ContainerService/managedClusters/agentPools@2020-11-01"
name The resource name string (required)
parent_id The ID of the resource that is the parent for this resource. ID for resource of type: managedClusters
properties Properties of an agent pool. ManagedClusterAgentPoolProfileProperties

ManagedClusterAgentPoolProfileProperties

Name Description Value
availabilityZones Availability zones for nodes. Must use VirtualMachineScaleSets AgentPoolType. string[]
count 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. int
enableAutoScaling Whether to enable auto-scaler bool
enableNodePublicIP Enable public IP for nodes bool
kubeletConfig KubeletConfig specifies the configuration of kubelet on agent nodes. KubeletConfig
linuxOSConfig LinuxOSConfig specifies the OS configuration of linux agent nodes. LinuxOSConfig
maxCount Maximum number of nodes for auto-scaling int
maxPods Maximum number of pods that can run on a node. int
minCount Minimum number of nodes for auto-scaling int
mode AgentPoolMode represents mode of an agent pool "System"
"User"
nodeLabels Agent pool node labels to be persisted across all nodes in agent pool. object
nodeTaints Taints added to new nodes during node pool create and scale. For example, key=value:NoSchedule. string[]
orchestratorVersion Version of orchestrator specified when creating the managed cluster. string
osDiskSizeGB 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. int
osDiskType 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. "Ephemeral"
"Managed"
osType OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux. "Linux"
"Windows"
podSubnetID Pod SubnetID specifies the VNet's subnet identifier for pods. string
proximityPlacementGroupID The ID for Proximity Placement Group. string
scaleSetEvictionPolicy ScaleSetEvictionPolicy to be used to specify eviction policy for Spot virtual machine scale set. Default to Delete. "Deallocate"
"Delete"
scaleSetPriority ScaleSetPriority to be used to specify virtual machine scale set priority. Default to regular. "Regular"
"Spot"
spotMaxPrice 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. int
tags Agent pool tags to be persisted on the agent pool virtual machine scale set. object
type AgentPoolType represents types of an agent pool "AvailabilitySet"
"VirtualMachineScaleSets"
upgradeSettings Settings for upgrading the agentpool AgentPoolUpgradeSettings
vmSize 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"
vnetSubnetID VNet SubnetID specifies the VNet's subnet identifier for nodes and maybe pods string

KubeletConfig

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

LinuxOSConfig

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

SysctlConfig

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

AgentPoolUpgradeSettings

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