Auto Provisioning Group Args
data class AutoProvisioningGroupArgs(val autoProvisioningGroupName: Output<String>? = null, val autoProvisioningGroupType: Output<String>? = null, val defaultTargetCapacityType: Output<String>? = null, val description: Output<String>? = null, val excessCapacityTerminationPolicy: Output<String>? = null, val launchTemplateConfigs: Output<List<AutoProvisioningGroupLaunchTemplateConfigArgs>>? = null, val launchTemplateId: Output<String>? = null, val launchTemplateVersion: Output<String>? = null, val maxSpotPrice: Output<Double>? = null, val payAsYouGoAllocationStrategy: Output<String>? = null, val payAsYouGoTargetCapacity: Output<String>? = null, val spotAllocationStrategy: Output<String>? = null, val spotInstanceInterruptionBehavior: Output<String>? = null, val spotInstancePoolsToUseCount: Output<Int>? = null, val spotTargetCapacity: Output<String>? = null, val terminateInstances: Output<Boolean>? = null, val terminateInstancesWithExpiration: Output<Boolean>? = null, val totalTargetCapacity: Output<String>? = null, val validFrom: Output<String>? = null, val validUntil: Output<String>? = null) : ConvertibleToJava<AutoProvisioningGroupArgs>
Provides a ECS auto provisioning group resource which is a solution that uses preemptive instances and pay_as_you_go instances to rapidly deploy clusters.
NOTE: Available in 1.79.0+
Example Usage
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.alicloud.AlicloudFunctions;
import com.pulumi.alicloud.inputs.GetZonesArgs;
import com.pulumi.alicloud.vpc.Network;
import com.pulumi.alicloud.vpc.NetworkArgs;
import com.pulumi.alicloud.vpc.Switch;
import com.pulumi.alicloud.vpc.SwitchArgs;
import com.pulumi.alicloud.ecs.SecurityGroup;
import com.pulumi.alicloud.ecs.SecurityGroupArgs;
import com.pulumi.alicloud.ecs.EcsFunctions;
import com.pulumi.alicloud.ecs.inputs.GetImagesArgs;
import com.pulumi.alicloud.ecs.EcsLaunchTemplate;
import com.pulumi.alicloud.ecs.EcsLaunchTemplateArgs;
import com.pulumi.alicloud.ecs.AutoProvisioningGroup;
import com.pulumi.alicloud.ecs.AutoProvisioningGroupArgs;
import com.pulumi.alicloud.ecs.inputs.AutoProvisioningGroupLaunchTemplateConfigArgs;
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) {
final var config = ctx.config();
final var name = config.get("name").orElse("auto_provisioning_group");
final var defaultZones = AlicloudFunctions.getZones(GetZonesArgs.builder()
.availableDiskCategory("cloud_efficiency")
.availableResourceCreation("VSwitch")
.build());
var defaultNetwork = new Network("defaultNetwork", NetworkArgs.builder()
.vpcName(name)
.cidrBlock("172.16.0.0/16")
.build());
var defaultSwitch = new Switch("defaultSwitch", SwitchArgs.builder()
.vpcId(defaultNetwork.id())
.cidrBlock("172.16.0.0/24")
.zoneId(defaultZones.applyValue(getZonesResult -> getZonesResult.zones()[0].id()))
.vswitchName(name)
.build());
var defaultSecurityGroup = new SecurityGroup("defaultSecurityGroup", SecurityGroupArgs.builder()
.vpcId(defaultNetwork.id())
.build());
final var defaultImages = EcsFunctions.getImages(GetImagesArgs.builder()
.nameRegex("^ubuntu_18.*64")
.mostRecent(true)
.owners("system")
.build());
var template = new EcsLaunchTemplate("template", EcsLaunchTemplateArgs.builder()
.imageId(defaultImages.applyValue(getImagesResult -> getImagesResult.images()[0].id()))
.instanceType("ecs.n1.tiny")
.securityGroupId(defaultSecurityGroup.id())
.build());
var defaultAutoProvisioningGroup = new AutoProvisioningGroup("defaultAutoProvisioningGroup", AutoProvisioningGroupArgs.builder()
.launchTemplateId(template.id())
.totalTargetCapacity("4")
.payAsYouGoTargetCapacity("1")
.spotTargetCapacity("2")
.launchTemplateConfigs(AutoProvisioningGroupLaunchTemplateConfigArgs.builder()
.instanceType("ecs.n1.small")
.vswitchId(defaultSwitch.id())
.weightedCapacity("2")
.maxPrice("2")
.build())
.build());
}
}
Content copied to clipboard
Import
ECS auto provisioning group can be imported using the id, e.g.
$ pulumi import alicloud:ecs/autoProvisioningGroup:AutoProvisioningGroup example asg-abc123456
Content copied to clipboard
Constructors
Link copied to clipboard
fun AutoProvisioningGroupArgs(autoProvisioningGroupName: Output<String>? = null, autoProvisioningGroupType: Output<String>? = null, defaultTargetCapacityType: Output<String>? = null, description: Output<String>? = null, excessCapacityTerminationPolicy: Output<String>? = null, launchTemplateConfigs: Output<List<AutoProvisioningGroupLaunchTemplateConfigArgs>>? = null, launchTemplateId: Output<String>? = null, launchTemplateVersion: Output<String>? = null, maxSpotPrice: Output<Double>? = null, payAsYouGoAllocationStrategy: Output<String>? = null, payAsYouGoTargetCapacity: Output<String>? = null, spotAllocationStrategy: Output<String>? = null, spotInstanceInterruptionBehavior: Output<String>? = null, spotInstancePoolsToUseCount: Output<Int>? = null, spotTargetCapacity: Output<String>? = null, terminateInstances: Output<Boolean>? = null, terminateInstancesWithExpiration: Output<Boolean>? = null, totalTargetCapacity: Output<String>? = null, validFrom: Output<String>? = null, validUntil: Output<String>? = null)
Functions
Properties
Link copied to clipboard
The type of supplemental instances. When the total value of PayAsYouGoTargetCapacity
and SpotTargetCapacity
is smaller than the value of TotalTargetCapacity, the auto provisioning group will create instances of the specified type to meet the capacity requirements. Valid values:PayAsYouGo
: Pay-as-you-go instances; Spot
: Preemptible instances, Default value: Spot
.
Link copied to clipboard