KubernetesClusterNodePoolArgs

data class KubernetesClusterNodePoolArgs(val capacityReservationGroupId: Output<String>? = null, val customCaTrustEnabled: Output<Boolean>? = null, val enableAutoScaling: Output<Boolean>? = null, val enableHostEncryption: Output<Boolean>? = null, val enableNodePublicIp: Output<Boolean>? = null, val evictionPolicy: Output<String>? = null, val fipsEnabled: Output<Boolean>? = null, val hostGroupId: Output<String>? = null, val kubeletConfig: Output<KubernetesClusterNodePoolKubeletConfigArgs>? = null, val kubeletDiskType: Output<String>? = null, val kubernetesClusterId: Output<String>? = null, val linuxOsConfig: Output<KubernetesClusterNodePoolLinuxOsConfigArgs>? = null, val maxCount: Output<Int>? = null, val maxPods: Output<Int>? = null, val messageOfTheDay: Output<String>? = null, val minCount: Output<Int>? = null, val mode: Output<String>? = null, val name: Output<String>? = null, val nodeCount: Output<Int>? = null, val nodeLabels: Output<Map<String, String>>? = null, val nodeNetworkProfile: Output<KubernetesClusterNodePoolNodeNetworkProfileArgs>? = null, val nodePublicIpPrefixId: Output<String>? = null, val nodeTaints: Output<List<String>>? = null, val orchestratorVersion: Output<String>? = null, val osDiskSizeGb: Output<Int>? = null, val osDiskType: Output<String>? = null, val osSku: Output<String>? = null, val osType: Output<String>? = null, val podSubnetId: Output<String>? = null, val priority: Output<String>? = null, val proximityPlacementGroupId: Output<String>? = null, val scaleDownMode: Output<String>? = null, val snapshotId: Output<String>? = null, val spotMaxPrice: Output<Double>? = null, val tags: Output<Map<String, String>>? = null, val ultraSsdEnabled: Output<Boolean>? = null, val upgradeSettings: Output<KubernetesClusterNodePoolUpgradeSettingsArgs>? = null, val vmSize: Output<String>? = null, val vnetSubnetId: Output<String>? = null, val windowsProfile: Output<KubernetesClusterNodePoolWindowsProfileArgs>? = null, val workloadRuntime: Output<String>? = null, val zones: Output<List<String>>? = null) : ConvertibleToJava<KubernetesClusterNodePoolArgs>

Manages a Node Pool within a Kubernetes Cluster

NOTE: Multiple Node Pools are only supported when the Kubernetes Cluster is using Virtual Machine Scale Sets.

Example Usage

This example provisions a basic Kubernetes Node Pool.

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azure.core.ResourceGroup;
import com.pulumi.azure.core.ResourceGroupArgs;
import com.pulumi.azure.containerservice.KubernetesCluster;
import com.pulumi.azure.containerservice.KubernetesClusterArgs;
import com.pulumi.azure.containerservice.inputs.KubernetesClusterDefaultNodePoolArgs;
import com.pulumi.azure.containerservice.inputs.KubernetesClusterServicePrincipalArgs;
import com.pulumi.azure.containerservice.KubernetesClusterNodePool;
import com.pulumi.azure.containerservice.KubernetesClusterNodePoolArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var exampleResourceGroup = new ResourceGroup("exampleResourceGroup", ResourceGroupArgs.builder()
.location("West Europe")
.build());
var exampleKubernetesCluster = new KubernetesCluster("exampleKubernetesCluster", KubernetesClusterArgs.builder()
.location(exampleResourceGroup.location())
.resourceGroupName(exampleResourceGroup.name())
.dnsPrefix("exampleaks1")
.defaultNodePool(KubernetesClusterDefaultNodePoolArgs.builder()
.name("default")
.nodeCount(1)
.vmSize("Standard_D2_v2")
.build())
.servicePrincipal(KubernetesClusterServicePrincipalArgs.builder()
.clientId("00000000-0000-0000-0000-000000000000")
.clientSecret("00000000000000000000000000000000")
.build())
.build());
var exampleKubernetesClusterNodePool = new KubernetesClusterNodePool("exampleKubernetesClusterNodePool", KubernetesClusterNodePoolArgs.builder()
.kubernetesClusterId(exampleKubernetesCluster.id())
.vmSize("Standard_DS2_v2")
.nodeCount(1)
.tags(Map.of("Environment", "Production"))
.build());
}
}

Import

Kubernetes Cluster Node Pools can be imported using the resource id, e.g.

$ pulumi import azure:containerservice/kubernetesClusterNodePool:KubernetesClusterNodePool pool1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ContainerService/managedClusters/cluster1/agentPools/pool1

Constructors

Link copied to clipboard
fun KubernetesClusterNodePoolArgs(capacityReservationGroupId: Output<String>? = null, customCaTrustEnabled: Output<Boolean>? = null, enableAutoScaling: Output<Boolean>? = null, enableHostEncryption: Output<Boolean>? = null, enableNodePublicIp: Output<Boolean>? = null, evictionPolicy: Output<String>? = null, fipsEnabled: Output<Boolean>? = null, hostGroupId: Output<String>? = null, kubeletConfig: Output<KubernetesClusterNodePoolKubeletConfigArgs>? = null, kubeletDiskType: Output<String>? = null, kubernetesClusterId: Output<String>? = null, linuxOsConfig: Output<KubernetesClusterNodePoolLinuxOsConfigArgs>? = null, maxCount: Output<Int>? = null, maxPods: Output<Int>? = null, messageOfTheDay: Output<String>? = null, minCount: Output<Int>? = null, mode: Output<String>? = null, name: Output<String>? = null, nodeCount: Output<Int>? = null, nodeLabels: Output<Map<String, String>>? = null, nodeNetworkProfile: Output<KubernetesClusterNodePoolNodeNetworkProfileArgs>? = null, nodePublicIpPrefixId: Output<String>? = null, nodeTaints: Output<List<String>>? = null, orchestratorVersion: Output<String>? = null, osDiskSizeGb: Output<Int>? = null, osDiskType: Output<String>? = null, osSku: Output<String>? = null, osType: Output<String>? = null, podSubnetId: Output<String>? = null, priority: Output<String>? = null, proximityPlacementGroupId: Output<String>? = null, scaleDownMode: Output<String>? = null, snapshotId: Output<String>? = null, spotMaxPrice: Output<Double>? = null, tags: Output<Map<String, String>>? = null, ultraSsdEnabled: Output<Boolean>? = null, upgradeSettings: Output<KubernetesClusterNodePoolUpgradeSettingsArgs>? = null, vmSize: Output<String>? = null, vnetSubnetId: Output<String>? = null, windowsProfile: Output<KubernetesClusterNodePoolWindowsProfileArgs>? = null, workloadRuntime: Output<String>? = null, zones: Output<List<String>>? = null)

Functions

Link copied to clipboard
open override fun toJava(): KubernetesClusterNodePoolArgs

Properties

Link copied to clipboard
val capacityReservationGroupId: Output<String>? = null

Specifies the ID of the Capacity Reservation Group where this Node Pool should exist. Changing this forces a new resource to be created.

Link copied to clipboard
val customCaTrustEnabled: Output<Boolean>? = null

Specifies whether to trust a Custom CA.

Link copied to clipboard
val enableAutoScaling: Output<Boolean>? = null

Whether to enable auto-scaler.

Link copied to clipboard
val enableHostEncryption: Output<Boolean>? = null

Should the nodes in this Node Pool have host encryption enabled? Changing this forces a new resource to be created.

Link copied to clipboard
val enableNodePublicIp: Output<Boolean>? = null

Should each node have a Public IP Address? Changing this forces a new resource to be created.

Link copied to clipboard
val evictionPolicy: Output<String>? = null

The Eviction Policy which should be used for Virtual Machines within the Virtual Machine Scale Set powering this Node Pool. Possible values are Deallocate and Delete. Changing this forces a new resource to be created.

Link copied to clipboard
val fipsEnabled: Output<Boolean>? = null

Should the nodes in this Node Pool have Federal Information Processing Standard enabled? Changing this forces a new resource to be created.

Link copied to clipboard
val hostGroupId: Output<String>? = null

The fully qualified resource ID of the Dedicated Host Group to provision virtual machines from. Changing this forces a new resource to be created.

Link copied to clipboard

A kubelet_config block as defined below. Changing this forces a new resource to be created.

Link copied to clipboard
val kubeletDiskType: Output<String>? = null

The type of disk used by kubelet. Possible values are OS and Temporary.

Link copied to clipboard
val kubernetesClusterId: Output<String>? = null

The ID of the Kubernetes Cluster where this Node Pool should exist. Changing this forces a new resource to be created.

Link copied to clipboard

A linux_os_config block as defined below. Changing this forces a new resource to be created.

Link copied to clipboard
val maxCount: Output<Int>? = null

The maximum number of nodes which should exist within this Node Pool. Valid values are between 0 and 1000 and must be greater than or equal to min_count.

Link copied to clipboard
val maxPods: Output<Int>? = null

The maximum number of pods that can run on each agent. Changing this forces a new resource to be created.

Link copied to clipboard
val messageOfTheDay: Output<String>? = null

A base64-encoded string which will be written to /etc/motd after decoding. This allows customization of the message of the day for Linux nodes. It cannot be specified for Windows nodes and must be a static string (i.e. will be printed raw and not executed as a script). Changing this forces a new resource to be created.

Link copied to clipboard
val minCount: Output<Int>? = null

The minimum number of nodes which should exist within this Node Pool. Valid values are between 0 and 1000 and must be less than or equal to max_count.

Link copied to clipboard
val mode: Output<String>? = null

Should this Node Pool be used for System or User resources? Possible values are System and User. Defaults to User.

Link copied to clipboard
val name: Output<String>? = null

The name of the Node Pool which should be created within the Kubernetes Cluster. Changing this forces a new resource to be created.

Link copied to clipboard
val nodeCount: Output<Int>? = null

The number of nodes which should exist within this Node Pool. Valid values are between 0 and 1000 (inclusive) for user pools and between 1 and 1000 (inclusive) for system pools.

Link copied to clipboard
val nodeLabels: Output<Map<String, String>>? = null

A map of Kubernetes labels which should be applied to nodes in this Node Pool.

Link copied to clipboard

A node_network_profile block as documented below.

Link copied to clipboard
val nodePublicIpPrefixId: Output<String>? = null

Resource ID for the Public IP Addresses Prefix for the nodes in this Node Pool. enable_node_public_ip should be true. Changing this forces a new resource to be created.

Link copied to clipboard
val nodeTaints: Output<List<String>>? = null

A list of Kubernetes taints which should be applied to nodes in the agent pool (e.g key=value:NoSchedule). Changing this forces a new resource to be created.

Link copied to clipboard
val orchestratorVersion: Output<String>? = null

Version of Kubernetes used for the Agents. If not specified, the latest recommended version will be used at provisioning time (but won't auto-upgrade). AKS does not require an exact patch version to be specified, minor version aliases such as 1.22 are also supported. - The minor version's latest GA patch is automatically chosen in that case. More details can be found in the documentation.

Link copied to clipboard
val osDiskSizeGb: Output<Int>? = null

The Agent Operating System disk size in GB. Changing this forces a new resource to be created.

Link copied to clipboard
val osDiskType: Output<String>? = null

The type of disk which should be used for the Operating System. Possible values are Ephemeral and Managed. Defaults to Managed. Changing this forces a new resource to be created.

Link copied to clipboard
val osSku: Output<String>? = null

Specifies the OS SKU used by the agent pool. Possible values include: AzureLinux, Ubuntu, Windows2019, Windows2022. If not specified, the default is Ubuntu if OSType=Linux or Windows2019 if OSType=Windows. And the default Windows OSSKU will be changed to Windows2022 after Windows2019 is deprecated. Changing this forces a new resource to be created.

Link copied to clipboard
val osType: Output<String>? = null

The Operating System which should be used for this Node Pool. Changing this forces a new resource to be created. Possible values are Linux and Windows. Defaults to Linux.

Link copied to clipboard
val podSubnetId: Output<String>? = null

The ID of the Subnet where the pods in the Node Pool should exist. Changing this forces a new resource to be created.

Link copied to clipboard
val priority: Output<String>? = null

The Priority for Virtual Machines within the Virtual Machine Scale Set that powers this Node Pool. Possible values are Regular and Spot. Defaults to Regular. Changing this forces a new resource to be created.

Link copied to clipboard
val proximityPlacementGroupId: Output<String>? = null

The ID of the Proximity Placement Group where the Virtual Machine Scale Set that powers this Node Pool will be placed. Changing this forces a new resource to be created.

Link copied to clipboard
val scaleDownMode: Output<String>? = null

Specifies how the node pool should deal with scaled-down nodes. Allowed values are Delete and Deallocate. Defaults to Delete.

Link copied to clipboard
val snapshotId: Output<String>? = null

The ID of the Snapshot which should be used to create this Node Pool. Changing this forces a new resource to be created.

Link copied to clipboard
val spotMaxPrice: Output<Double>? = null

The maximum price you're willing to pay in USD per Virtual Machine. Valid values are -1 (the current on-demand price for a Virtual Machine) or a positive value with up to five decimal places. Changing this forces a new resource to be created.

Link copied to clipboard
val tags: Output<Map<String, String>>? = null

A mapping of tags to assign to the resource.

Link copied to clipboard
val ultraSsdEnabled: Output<Boolean>? = null

Used to specify whether the UltraSSD is enabled in the Node Pool. Defaults to false. See the documentation for more information. Changing this forces a new resource to be created.

Link copied to clipboard

A upgrade_settings block as documented below.

Link copied to clipboard
val vmSize: Output<String>? = null

The SKU which should be used for the Virtual Machines used in this Node Pool. Changing this forces a new resource to be created.

Link copied to clipboard
val vnetSubnetId: Output<String>? = null

The ID of the Subnet where this Node Pool should exist. Changing this forces a new resource to be created.

Link copied to clipboard

A windows_profile block as documented below. Changing this forces a new resource to be created.

Link copied to clipboard
val workloadRuntime: Output<String>? = null

Used to specify the workload runtime. Allowed values are OCIContainer, WasmWasi and KataMshvVmIsolation.

Link copied to clipboard
val zones: Output<List<String>>? = null

Specifies a list of Availability Zones in which this Kubernetes Cluster Node Pool should be located. Changing this forces a new Kubernetes Cluster Node Pool to be created.