NodePoolArgs

data class NodePoolArgs(val autoRenew: Output<Boolean>? = null, val autoRenewPeriod: Output<Int>? = null, val cisEnabled: Output<Boolean>? = null, val clusterId: Output<String>? = null, val compensateWithOnDemand: Output<Boolean>? = null, val cpuPolicy: Output<String>? = null, val dataDisks: Output<List<NodePoolDataDiskArgs>>? = null, val deploymentSetId: Output<String>? = null, val desiredSize: Output<String>? = null, val forceDelete: Output<Boolean>? = null, val formatDisk: Output<Boolean>? = null, val imageId: Output<String>? = null, val imageType: Output<String>? = null, val installCloudMonitor: Output<Boolean>? = null, val instanceChargeType: Output<String>? = null, val instanceTypes: Output<List<String>>? = null, val instances: Output<List<String>>? = null, val internetChargeType: Output<String>? = null, val internetMaxBandwidthOut: Output<Int>? = null, val keepInstanceName: Output<Boolean>? = null, val keyName: Output<String>? = null, val kmsEncryptedPassword: Output<String>? = null, val kmsEncryptionContext: Output<Map<String, String>>? = null, val kubeletConfiguration: Output<NodePoolKubeletConfigurationArgs>? = null, val labels: Output<List<NodePoolLabelArgs>>? = null, val loginAsNonRoot: Output<Boolean>? = null, val management: Output<NodePoolManagementArgs>? = null, val multiAzPolicy: Output<String>? = null, val name: Output<String>? = null, val nodeCount: Output<Int>? = null, val nodeNameMode: Output<String>? = null, val nodePoolName: Output<String>? = null, val onDemandBaseCapacity: Output<String>? = null, val onDemandPercentageAboveBaseCapacity: Output<String>? = null, val password: Output<String>? = null, val period: Output<Int>? = null, val periodUnit: Output<String>? = null, val platform: Output<String>? = null, val preUserData: Output<String>? = null, val privatePoolOptions: Output<NodePoolPrivatePoolOptionsArgs>? = null, val ramRoleName: Output<String>? = null, val rdsInstances: Output<List<String>>? = null, val resourceGroupId: Output<String>? = null, val rollingPolicy: Output<NodePoolRollingPolicyArgs>? = null, val runtimeName: Output<String>? = null, val runtimeVersion: Output<String>? = null, val scalingConfig: Output<NodePoolScalingConfigArgs>? = null, val scalingPolicy: Output<String>? = null, val securityGroupId: Output<String>? = null, val securityGroupIds: Output<List<String>>? = null, val securityHardeningOs: Output<Boolean>? = null, val socEnabled: Output<Boolean>? = null, val spotInstancePools: Output<Int>? = null, val spotInstanceRemedy: Output<Boolean>? = null, val spotPriceLimits: Output<List<NodePoolSpotPriceLimitArgs>>? = null, val spotStrategy: Output<String>? = null, val systemDiskBurstingEnabled: Output<Boolean>? = null, val systemDiskCategories: Output<List<String>>? = null, val systemDiskCategory: Output<String>? = null, val systemDiskEncryptAlgorithm: Output<String>? = null, val systemDiskEncrypted: Output<Boolean>? = null, val systemDiskKmsKey: Output<String>? = null, val systemDiskPerformanceLevel: Output<String>? = null, val systemDiskProvisionedIops: Output<Int>? = null, val systemDiskSize: Output<Int>? = null, val systemDiskSnapshotPolicyId: Output<String>? = null, val tags: Output<Map<String, String>>? = null, val taints: Output<List<NodePoolTaintArgs>>? = null, val teeConfig: Output<NodePoolTeeConfigArgs>? = null, val unschedulable: Output<Boolean>? = null, val updateNodes: Output<Boolean>? = null, val userData: Output<String>? = null, val vswitchIds: Output<List<String>>? = null) : ConvertibleToJava<NodePoolArgs>

Example Usage

Basic Usage

Import

Container Service for Kubernetes (ACK) Nodepool can be imported using the id, e.g.

$ pulumi import alicloud:cs/nodePool:NodePool example <cluster_id>:<node_pool_id>

Constructors

Link copied to clipboard
constructor(autoRenew: Output<Boolean>? = null, autoRenewPeriod: Output<Int>? = null, cisEnabled: Output<Boolean>? = null, clusterId: Output<String>? = null, compensateWithOnDemand: Output<Boolean>? = null, cpuPolicy: Output<String>? = null, dataDisks: Output<List<NodePoolDataDiskArgs>>? = null, deploymentSetId: Output<String>? = null, desiredSize: Output<String>? = null, forceDelete: Output<Boolean>? = null, formatDisk: Output<Boolean>? = null, imageId: Output<String>? = null, imageType: Output<String>? = null, installCloudMonitor: Output<Boolean>? = null, instanceChargeType: Output<String>? = null, instanceTypes: Output<List<String>>? = null, instances: Output<List<String>>? = null, internetChargeType: Output<String>? = null, internetMaxBandwidthOut: Output<Int>? = null, keepInstanceName: Output<Boolean>? = null, keyName: Output<String>? = null, kmsEncryptedPassword: Output<String>? = null, kmsEncryptionContext: Output<Map<String, String>>? = null, kubeletConfiguration: Output<NodePoolKubeletConfigurationArgs>? = null, labels: Output<List<NodePoolLabelArgs>>? = null, loginAsNonRoot: Output<Boolean>? = null, management: Output<NodePoolManagementArgs>? = null, multiAzPolicy: Output<String>? = null, name: Output<String>? = null, nodeCount: Output<Int>? = null, nodeNameMode: Output<String>? = null, nodePoolName: Output<String>? = null, onDemandBaseCapacity: Output<String>? = null, onDemandPercentageAboveBaseCapacity: Output<String>? = null, password: Output<String>? = null, period: Output<Int>? = null, periodUnit: Output<String>? = null, platform: Output<String>? = null, preUserData: Output<String>? = null, privatePoolOptions: Output<NodePoolPrivatePoolOptionsArgs>? = null, ramRoleName: Output<String>? = null, rdsInstances: Output<List<String>>? = null, resourceGroupId: Output<String>? = null, rollingPolicy: Output<NodePoolRollingPolicyArgs>? = null, runtimeName: Output<String>? = null, runtimeVersion: Output<String>? = null, scalingConfig: Output<NodePoolScalingConfigArgs>? = null, scalingPolicy: Output<String>? = null, securityGroupId: Output<String>? = null, securityGroupIds: Output<List<String>>? = null, securityHardeningOs: Output<Boolean>? = null, socEnabled: Output<Boolean>? = null, spotInstancePools: Output<Int>? = null, spotInstanceRemedy: Output<Boolean>? = null, spotPriceLimits: Output<List<NodePoolSpotPriceLimitArgs>>? = null, spotStrategy: Output<String>? = null, systemDiskBurstingEnabled: Output<Boolean>? = null, systemDiskCategories: Output<List<String>>? = null, systemDiskCategory: Output<String>? = null, systemDiskEncryptAlgorithm: Output<String>? = null, systemDiskEncrypted: Output<Boolean>? = null, systemDiskKmsKey: Output<String>? = null, systemDiskPerformanceLevel: Output<String>? = null, systemDiskProvisionedIops: Output<Int>? = null, systemDiskSize: Output<Int>? = null, systemDiskSnapshotPolicyId: Output<String>? = null, tags: Output<Map<String, String>>? = null, taints: Output<List<NodePoolTaintArgs>>? = null, teeConfig: Output<NodePoolTeeConfigArgs>? = null, unschedulable: Output<Boolean>? = null, updateNodes: Output<Boolean>? = null, userData: Output<String>? = null, vswitchIds: Output<List<String>>? = null)

Properties

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

Whether to enable automatic renewal for nodes in the node pool takes effect only when instance_charge_type is set to PrePaid. Default value: false. Valid values:

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

The automatic renewal period of nodes in the node pool takes effect only when you select Prepaid and Automatic Renewal, and is a required value. When PeriodUnit = Month, the value range is {1, 2, 3, 6, 12}. Default value: 1.

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

Whether enable worker node to support cis security reinforcement, its valid value true or false. Default to false and apply to AliyunLinux series. Use security_hardening_os instead.

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

The id of kubernetes cluster.

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

Specifies whether to automatically create pay-as-you-go instances to meet the required number of ECS instances if preemptible instances cannot be created due to reasons such as cost or insufficient inventory. This parameter takes effect when you set multi_az_policy to COST_OPTIMIZED. Valid values: true: automatically creates pay-as-you-go instances to meet the required number of ECS instances if preemptible instances cannot be created. false: does not create pay-as-you-go instances to meet the required number of ECS instances if preemptible instances cannot be created.

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

Node CPU management policies. Default value: none. When the cluster version is 1.12.6 or later, the following two policies are supported:

Link copied to clipboard
val dataDisks: Output<List<NodePoolDataDiskArgs>>? = null

Configure the data disk of the node in the node pool. See data_disks below.

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

The deployment set of node pool. Specify the deploymentSet to ensure that the nodes in the node pool can be distributed on different physical machines.

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

Number of expected nodes in the node pool.

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

Whether to force deletion.

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

After you select this check box, if data disks have been attached to the specified ECS instances and the file system of the last data disk is uninitialized, the system automatically formats the last data disk to ext4 and mounts the data disk to /var/lib/docker and /var/lib/kubelet. The original data on the disk will be cleared. Make sure that you back up data in advance. If no data disk is mounted on the ECS instance, no new data disk will be purchased. Default is false.

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

The custom image ID. The system-provided image is used by default.

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

The operating system image type and the platform parameter can be selected from the following values:

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

Whether to install cloud monitoring on the ECS node. After installation, you can view the monitoring information of the created ECS instance in the cloud monitoring console and recommend enable it. Default value: false. Valid values:

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

Node payment type. Valid values: PostPaid, PrePaid, default is PostPaid. If value is PrePaid, the arguments period, period_unit, auto_renew and auto_renew_period are required.

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

The instance list. Add existing nodes under the same cluster VPC to the node pool.

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

In the node instance specification list, you can select multiple instance specifications as alternatives. When each node is created, it will try to purchase from the first specification until it is created successfully. The final purchased instance specifications may vary with inventory changes.

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

The billing method for network usage. Valid values PayByBandwidth and PayByTraffic. Conflict with eip_internet_charge_type, EIP and public network IP can only choose one.

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

The maximum bandwidth of the public IP address of the node. The unit is Mbps(Mega bit per second). The value range is:\[1,100\]

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

Add an existing instance to the node pool, whether to keep the original instance name. It is recommended to set to true.

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

The name of the key pair. When the node pool is a managed node pool, only key_name is supported.

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

An KMS encrypts password used to a cs kubernetes. You have to specify one of password key_name kms_encrypted_password fields.

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

An KMS encryption context used to decrypt kms_encrypted_password before creating or updating a cs kubernetes with kms_encrypted_password. See Encryption Context. It is valid when kms_encrypted_password is set.

Link copied to clipboard

Kubelet configuration parameters for worker nodes. See kubelet_configuration below. More information in Kubelet Configuration. See kubelet_configuration below.

Link copied to clipboard
val labels: Output<List<NodePoolLabelArgs>>? = null

A List of Kubernetes labels to assign to the nodes . Only labels that are applied with the ACK API are managed by this argument. Detailed below. More information in Labels. See labels below.

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

Whether the ECS instance is logged on as a ecs-user user. Valid value: true and false.

Link copied to clipboard
val management: Output<NodePoolManagementArgs>? = null

Managed node pool configuration. See management below.

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

The scaling policy for ECS instances in a multi-zone scaling group. Valid value: PRIORITY, COST_OPTIMIZED and BALANCE. PRIORITY: scales the capacity according to the virtual switches you define (VSwitchIds.N). When an ECS instance cannot be created in the zone where the higher-priority vSwitch is located, the next-priority vSwitch is automatically used to create an ECS instance. COST_OPTIMIZED: try to create by vCPU unit price from low to high. When the scaling configuration is configured with multiple instances of preemptible billing, preemptible instances are created first. You can continue to use the CompensateWithOnDemand parameter to specify whether to automatically try to create a preemptible instance by paying for it. It takes effect only when the scaling configuration has multi-instance specifications or preemptible instances. BALANCE: distributes ECS instances evenly among the multi-zone specified by the scaling group. If the zones become unbalanced due to insufficient inventory, you can use the API RebalanceInstances to balance resources.

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

. Field 'name' has been deprecated from provider version 1.219.0. New field 'node_pool_name' instead.

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

The worker node number of the node pool. From version 1.111.0, node_count is not required.

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

Each node name consists of a prefix, its private network IP, and a suffix, separated by commas. The input format is customized,,ip,.

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

The name of node pool.

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

The minimum number of pay-as-you-go instances that must be kept in the scaling group. Valid values: 0 to 1000. If the number of pay-as-you-go instances is less than the value of this parameter, Auto Scaling preferably creates pay-as-you-go instances.

Link copied to clipboard

The percentage of pay-as-you-go instances among the extra instances that exceed the number specified by on_demand_base_capacity. Valid values: 0 to 100.

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

The password of ssh login. You have to specify one of password and key_name fields. The password rule is 8 to 30 characters and contains at least three items (upper and lower case letters, numbers, and special symbols).

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

Node payment period. Its valid value is one of {1, 2, 3, 6, 12}.

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

Node payment period unit, valid value: Month. Default is Month.

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

Operating system release, using image_type instead.

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

Node pre custom data, base64-encoded, the script executed before the node is initialized.

Link copied to clipboard

Private node pool configuration. See private_pool_options below.

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

The name of the Worker RAM role.

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

The list of RDS instances.

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

The ID of the resource group

Link copied to clipboard

Rotary configuration. See rolling_policy below.

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

The runtime name of containers. If not set, the cluster runtime will be used as the node pool runtime. If you select another container runtime, see Comparison of Docker, containerd, and Sandboxed-Container.

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

The runtime version of containers. If not set, the cluster runtime will be used as the node pool runtime.

Link copied to clipboard

Automatic scaling configuration. See scaling_config below.

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

Scaling group mode, default value: release. Valid values:

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

The security group ID of the node pool. This field has been replaced by security_group_ids, please use the security_group_ids field instead.

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

Multiple security groups can be configured for a node pool. If both security_group_ids and security_group_id are configured, security_group_ids takes effect. This field cannot be modified.

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

Alibaba Cloud OS security reinforcement. Default value: false. Value:

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

Whether enable worker node to support soc security reinforcement, its valid value true or false. Default to false and apply to AliyunLinux series. See SOC Reinforcement.

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

The number of instance types that are available. Auto Scaling creates preemptible instances of multiple instance types that are available at the lowest cost. Valid values: 1 to 10.

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

Specifies whether to supplement preemptible instances when the number of preemptible instances drops below the specified minimum number. If you set the value to true, Auto Scaling attempts to create a new preemptible instance when the system notifies that an existing preemptible instance is about to be reclaimed. Valid values: true: enables the supplementation of preemptible instances. false: disables the supplementation of preemptible instances.

Link copied to clipboard

The current single preemptible instance type market price range configuration. See spot_price_limit below.

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

The preemptible instance type. Value:

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

Specifies whether to enable the burst feature for system disks. Valid values:true: enables the burst feature. false: disables the burst feature. This parameter is supported only when system_disk_category is set to cloud_auto.

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

The multi-disk categories of the system disk. When a high-priority disk type cannot be used, Auto Scaling automatically tries to create a system disk with the next priority disk category. Valid values see system_disk_category.

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

The category of the system disk for nodes. Default value: cloud_efficiency. Valid values:

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

The encryption algorithm used by the system disk. Value range: aes-256.

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

Whether to encrypt the system disk. Value range: true: encryption. false: Do not encrypt.

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

The ID of the KMS key used by the system disk.

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

The system disk performance of the node takes effect only for the ESSD disk.

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

The predefined IOPS of a system disk. Valid values: 0 to min{50,000, 1,000 × Capacity - Baseline IOPS}. Baseline IOPS = min{1,800 + 50 × Capacity, 50,000}. This parameter is supported only when system_disk_category is set to cloud_auto.

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

The size of the system disk. Unit: GiB. The value of this parameter must be at least 1 and greater than or equal to the image size. Default value: 40 or the size of the image, whichever is larger.

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

The ID of the automatic snapshot policy used by the system disk.

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

Add tags only for ECS instances. The maximum length of the tag key is 128 characters. The tag key and value cannot start with aliyun or acs:, or contain https:// or http://.

Link copied to clipboard
val taints: Output<List<NodePoolTaintArgs>>? = null

A List of Kubernetes taints to assign to the nodes. Detailed below. More information in Taints and Toleration. See taints below.

Link copied to clipboard
val teeConfig: Output<NodePoolTeeConfigArgs>? = null

The configuration about confidential computing for the cluster. See tee_config below.

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

Whether the node after expansion can be scheduled.

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

Synchronously update node labels and taints.

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

Node custom data, base64-encoded.

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

The vswitches used by node pool workers.

Functions

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