VirtualMachineScaleSetArgs

data class VirtualMachineScaleSetArgs(val additionalCapabilities: Output<AdditionalCapabilitiesArgs>? = null, val automaticRepairsPolicy: Output<AutomaticRepairsPolicyArgs>? = null, val doNotRunExtensionsOnOverprovisionedVMs: Output<Boolean>? = null, val extendedLocation: Output<ExtendedLocationArgs>? = null, val hostGroup: Output<SubResourceArgs>? = null, val identity: Output<VirtualMachineScaleSetIdentityArgs>? = null, val location: Output<String>? = null, val orchestrationMode: Output<Either<String, OrchestrationMode>>? = null, val overprovision: Output<Boolean>? = null, val plan: Output<PlanArgs>? = null, val platformFaultDomainCount: Output<Int>? = null, val proximityPlacementGroup: Output<SubResourceArgs>? = null, val resourceGroupName: Output<String>? = null, val scaleInPolicy: Output<ScaleInPolicyArgs>? = null, val singlePlacementGroup: Output<Boolean>? = null, val sku: Output<SkuArgs>? = null, val tags: Output<Map<String, String>>? = null, val upgradePolicy: Output<UpgradePolicyArgs>? = null, val virtualMachineProfile: Output<VirtualMachineScaleSetVMProfileArgs>? = null, val vmScaleSetName: Output<String>? = null, val zoneBalance: Output<Boolean>? = null, val zones: Output<List<String>>? = null) : ConvertibleToJava<VirtualMachineScaleSetArgs>

Describes a Virtual Machine Scale Set. API Version: 2021-03-01.

Example Usage

Create a custom-image scale set from an unmanaged generalized os image.

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
{
Location = "westus",
Overprovision = true,
ResourceGroupName = "myResourceGroup",
Sku = new AzureNative.Compute.Inputs.SkuArgs
{
Capacity = 3,
Name = "Standard_D1_v2",
Tier = "Standard",
},
UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
{
Mode = AzureNative.Compute.UpgradeMode.Manual,
},
VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
{
NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
{
NetworkInterfaceConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
{
EnableIPForwarding = true,
IpConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
{
Name = "{vmss-name}",
Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
},
},
},
Name = "{vmss-name}",
Primary = true,
},
},
},
OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
{
AdminPassword = "{your-password}",
AdminUsername = "{your-username}",
ComputerNamePrefix = "{vmss-name}",
},
StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
{
OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
{
Caching = AzureNative.Compute.CachingTypes.ReadWrite,
CreateOption = "FromImage",
Image = new AzureNative.Compute.Inputs.VirtualHardDiskArgs
{
Uri = "http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/{existing-generalized-os-image-blob-name}.vhd",
},
Name = "osDisk",
},
},
},
VmScaleSetName = "{vmss-name}",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
.location("westus")
.overprovision(true)
.resourceGroupName("myResourceGroup")
.sku(Map.ofEntries(
Map.entry("capacity", 3),
Map.entry("name", "Standard_D1_v2"),
Map.entry("tier", "Standard")
))
.upgradePolicy(Map.of("mode", "Manual"))
.virtualMachineProfile(Map.ofEntries(
Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
Map.entry("enableIPForwarding", true),
Map.entry("ipConfigurations", Map.ofEntries(
Map.entry("name", "{vmss-name}"),
Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
)),
Map.entry("name", "{vmss-name}"),
Map.entry("primary", true)
))),
Map.entry("osProfile", Map.ofEntries(
Map.entry("adminPassword", "{your-password}"),
Map.entry("adminUsername", "{your-username}"),
Map.entry("computerNamePrefix", "{vmss-name}")
)),
Map.entry("storageProfile", Map.of("osDisk", Map.ofEntries(
Map.entry("caching", "ReadWrite"),
Map.entry("createOption", "FromImage"),
Map.entry("image", Map.of("uri", "http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/{existing-generalized-os-image-blob-name}.vhd")),
Map.entry("name", "osDisk")
)))
))
.vmScaleSetName("{vmss-name}")
.build());
}
}

Create a platform-image scale set with unmanaged os disks.

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
{
Location = "westus",
Overprovision = true,
ResourceGroupName = "myResourceGroup",
Sku = new AzureNative.Compute.Inputs.SkuArgs
{
Capacity = 3,
Name = "Standard_D1_v2",
Tier = "Standard",
},
UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
{
Mode = AzureNative.Compute.UpgradeMode.Manual,
},
VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
{
NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
{
NetworkInterfaceConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
{
EnableIPForwarding = true,
IpConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
{
Name = "{vmss-name}",
Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
},
},
},
Name = "{vmss-name}",
Primary = true,
},
},
},
OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
{
AdminPassword = "{your-password}",
AdminUsername = "{your-username}",
ComputerNamePrefix = "{vmss-name}",
},
StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
{
ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
{
Offer = "WindowsServer",
Publisher = "MicrosoftWindowsServer",
Sku = "2016-Datacenter",
Version = "latest",
},
OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
{
Caching = AzureNative.Compute.CachingTypes.ReadWrite,
CreateOption = "FromImage",
Name = "osDisk",
VhdContainers = new[]
{
"http://{existing-storage-account-name-0}.blob.core.windows.net/vhdContainer",
"http://{existing-storage-account-name-1}.blob.core.windows.net/vhdContainer",
"http://{existing-storage-account-name-2}.blob.core.windows.net/vhdContainer",
"http://{existing-storage-account-name-3}.blob.core.windows.net/vhdContainer",
"http://{existing-storage-account-name-4}.blob.core.windows.net/vhdContainer",
},
},
},
},
VmScaleSetName = "{vmss-name}",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
.location("westus")
.overprovision(true)
.resourceGroupName("myResourceGroup")
.sku(Map.ofEntries(
Map.entry("capacity", 3),
Map.entry("name", "Standard_D1_v2"),
Map.entry("tier", "Standard")
))
.upgradePolicy(Map.of("mode", "Manual"))
.virtualMachineProfile(Map.ofEntries(
Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
Map.entry("enableIPForwarding", true),
Map.entry("ipConfigurations", Map.ofEntries(
Map.entry("name", "{vmss-name}"),
Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
)),
Map.entry("name", "{vmss-name}"),
Map.entry("primary", true)
))),
Map.entry("osProfile", Map.ofEntries(
Map.entry("adminPassword", "{your-password}"),
Map.entry("adminUsername", "{your-username}"),
Map.entry("computerNamePrefix", "{vmss-name}")
)),
Map.entry("storageProfile", Map.ofEntries(
Map.entry("imageReference", Map.ofEntries(
Map.entry("offer", "WindowsServer"),
Map.entry("publisher", "MicrosoftWindowsServer"),
Map.entry("sku", "2016-Datacenter"),
Map.entry("version", "latest")
)),
Map.entry("osDisk", Map.ofEntries(
Map.entry("caching", "ReadWrite"),
Map.entry("createOption", "FromImage"),
Map.entry("name", "osDisk"),
Map.entry("vhdContainers",
"http://{existing-storage-account-name-0}.blob.core.windows.net/vhdContainer",
"http://{existing-storage-account-name-1}.blob.core.windows.net/vhdContainer",
"http://{existing-storage-account-name-2}.blob.core.windows.net/vhdContainer",
"http://{existing-storage-account-name-3}.blob.core.windows.net/vhdContainer",
"http://{existing-storage-account-name-4}.blob.core.windows.net/vhdContainer")
))
))
))
.vmScaleSetName("{vmss-name}")
.build());
}
}

Create a scale set from a custom image.

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
{
Location = "westus",
Overprovision = true,
ResourceGroupName = "myResourceGroup",
Sku = new AzureNative.Compute.Inputs.SkuArgs
{
Capacity = 3,
Name = "Standard_D1_v2",
Tier = "Standard",
},
UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
{
Mode = AzureNative.Compute.UpgradeMode.Manual,
},
VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
{
NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
{
NetworkInterfaceConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
{
EnableIPForwarding = true,
IpConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
{
Name = "{vmss-name}",
Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
},
},
},
Name = "{vmss-name}",
Primary = true,
},
},
},
OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
{
AdminPassword = "{your-password}",
AdminUsername = "{your-username}",
ComputerNamePrefix = "{vmss-name}",
},
StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
{
ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}",
},
OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
{
Caching = AzureNative.Compute.CachingTypes.ReadWrite,
CreateOption = "FromImage",
ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
{
StorageAccountType = "Standard_LRS",
},
},
},
},
VmScaleSetName = "{vmss-name}",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
.location("westus")
.overprovision(true)
.resourceGroupName("myResourceGroup")
.sku(Map.ofEntries(
Map.entry("capacity", 3),
Map.entry("name", "Standard_D1_v2"),
Map.entry("tier", "Standard")
))
.upgradePolicy(Map.of("mode", "Manual"))
.virtualMachineProfile(Map.ofEntries(
Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
Map.entry("enableIPForwarding", true),
Map.entry("ipConfigurations", Map.ofEntries(
Map.entry("name", "{vmss-name}"),
Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
)),
Map.entry("name", "{vmss-name}"),
Map.entry("primary", true)
))),
Map.entry("osProfile", Map.ofEntries(
Map.entry("adminPassword", "{your-password}"),
Map.entry("adminUsername", "{your-username}"),
Map.entry("computerNamePrefix", "{vmss-name}")
)),
Map.entry("storageProfile", Map.ofEntries(
Map.entry("imageReference", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}")),
Map.entry("osDisk", Map.ofEntries(
Map.entry("caching", "ReadWrite"),
Map.entry("createOption", "FromImage"),
Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
))
))
))
.vmScaleSetName("{vmss-name}")
.build());
}
}

Create a scale set from a generalized shared image.

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
{
Location = "westus",
Overprovision = true,
ResourceGroupName = "myResourceGroup",
Sku = new AzureNative.Compute.Inputs.SkuArgs
{
Capacity = 3,
Name = "Standard_D1_v2",
Tier = "Standard",
},
UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
{
Mode = AzureNative.Compute.UpgradeMode.Manual,
},
VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
{
NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
{
NetworkInterfaceConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
{
EnableIPForwarding = true,
IpConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
{
Name = "{vmss-name}",
Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
},
},
},
Name = "{vmss-name}",
Primary = true,
},
},
},
OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
{
AdminPassword = "{your-password}",
AdminUsername = "{your-username}",
ComputerNamePrefix = "{vmss-name}",
},
StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
{
ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage",
},
OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
{
Caching = AzureNative.Compute.CachingTypes.ReadWrite,
CreateOption = "FromImage",
ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
{
StorageAccountType = "Standard_LRS",
},
},
},
},
VmScaleSetName = "{vmss-name}",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
.location("westus")
.overprovision(true)
.resourceGroupName("myResourceGroup")
.sku(Map.ofEntries(
Map.entry("capacity", 3),
Map.entry("name", "Standard_D1_v2"),
Map.entry("tier", "Standard")
))
.upgradePolicy(Map.of("mode", "Manual"))
.virtualMachineProfile(Map.ofEntries(
Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
Map.entry("enableIPForwarding", true),
Map.entry("ipConfigurations", Map.ofEntries(
Map.entry("name", "{vmss-name}"),
Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
)),
Map.entry("name", "{vmss-name}"),
Map.entry("primary", true)
))),
Map.entry("osProfile", Map.ofEntries(
Map.entry("adminPassword", "{your-password}"),
Map.entry("adminUsername", "{your-username}"),
Map.entry("computerNamePrefix", "{vmss-name}")
)),
Map.entry("storageProfile", Map.ofEntries(
Map.entry("imageReference", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage")),
Map.entry("osDisk", Map.ofEntries(
Map.entry("caching", "ReadWrite"),
Map.entry("createOption", "FromImage"),
Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
))
))
))
.vmScaleSetName("{vmss-name}")
.build());
}
}

Create a scale set from a specialized shared image.

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
{
Location = "westus",
Overprovision = true,
ResourceGroupName = "myResourceGroup",
Sku = new AzureNative.Compute.Inputs.SkuArgs
{
Capacity = 3,
Name = "Standard_D1_v2",
Tier = "Standard",
},
UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
{
Mode = AzureNative.Compute.UpgradeMode.Manual,
},
VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
{
NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
{
NetworkInterfaceConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
{
EnableIPForwarding = true,
IpConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
{
Name = "{vmss-name}",
Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
},
},
},
Name = "{vmss-name}",
Primary = true,
},
},
},
StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
{
ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage",
},
OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
{
Caching = AzureNative.Compute.CachingTypes.ReadWrite,
CreateOption = "FromImage",
ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
{
StorageAccountType = "Standard_LRS",
},
},
},
},
VmScaleSetName = "{vmss-name}",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
.location("westus")
.overprovision(true)
.resourceGroupName("myResourceGroup")
.sku(Map.ofEntries(
Map.entry("capacity", 3),
Map.entry("name", "Standard_D1_v2"),
Map.entry("tier", "Standard")
))
.upgradePolicy(Map.of("mode", "Manual"))
.virtualMachineProfile(Map.ofEntries(
Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
Map.entry("enableIPForwarding", true),
Map.entry("ipConfigurations", Map.ofEntries(
Map.entry("name", "{vmss-name}"),
Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
)),
Map.entry("name", "{vmss-name}"),
Map.entry("primary", true)
))),
Map.entry("storageProfile", Map.ofEntries(
Map.entry("imageReference", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage")),
Map.entry("osDisk", Map.ofEntries(
Map.entry("caching", "ReadWrite"),
Map.entry("createOption", "FromImage"),
Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
))
))
))
.vmScaleSetName("{vmss-name}")
.build());
}
}

Create a scale set with DiskEncryptionSet resource in os disk and data disk.

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
{
Location = "westus",
Overprovision = true,
ResourceGroupName = "myResourceGroup",
Sku = new AzureNative.Compute.Inputs.SkuArgs
{
Capacity = 3,
Name = "Standard_DS1_v2",
Tier = "Standard",
},
UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
{
Mode = AzureNative.Compute.UpgradeMode.Manual,
},
VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
{
NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
{
NetworkInterfaceConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
{
EnableIPForwarding = true,
IpConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
{
Name = "{vmss-name}",
Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
},
},
},
Name = "{vmss-name}",
Primary = true,
},
},
},
OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
{
AdminPassword = "{your-password}",
AdminUsername = "{your-username}",
ComputerNamePrefix = "{vmss-name}",
},
StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
{
DataDisks = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetDataDiskArgs
{
Caching = AzureNative.Compute.CachingTypes.ReadWrite,
CreateOption = "Empty",
DiskSizeGB = 1023,
Lun = 0,
ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
{
DiskEncryptionSet = new AzureNative.Compute.Inputs.DiskEncryptionSetParametersArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}",
},
StorageAccountType = "Standard_LRS",
},
},
},
ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}",
},
OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
{
Caching = AzureNative.Compute.CachingTypes.ReadWrite,
CreateOption = "FromImage",
ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
{
DiskEncryptionSet = new AzureNative.Compute.Inputs.DiskEncryptionSetParametersArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}",
},
StorageAccountType = "Standard_LRS",
},
},
},
},
VmScaleSetName = "{vmss-name}",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
.location("westus")
.overprovision(true)
.resourceGroupName("myResourceGroup")
.sku(Map.ofEntries(
Map.entry("capacity", 3),
Map.entry("name", "Standard_DS1_v2"),
Map.entry("tier", "Standard")
))
.upgradePolicy(Map.of("mode", "Manual"))
.virtualMachineProfile(Map.ofEntries(
Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
Map.entry("enableIPForwarding", true),
Map.entry("ipConfigurations", Map.ofEntries(
Map.entry("name", "{vmss-name}"),
Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
)),
Map.entry("name", "{vmss-name}"),
Map.entry("primary", true)
))),
Map.entry("osProfile", Map.ofEntries(
Map.entry("adminPassword", "{your-password}"),
Map.entry("adminUsername", "{your-username}"),
Map.entry("computerNamePrefix", "{vmss-name}")
)),
Map.entry("storageProfile", Map.ofEntries(
Map.entry("dataDisks", Map.ofEntries(
Map.entry("caching", "ReadWrite"),
Map.entry("createOption", "Empty"),
Map.entry("diskSizeGB", 1023),
Map.entry("lun", 0),
Map.entry("managedDisk", Map.ofEntries(
Map.entry("diskEncryptionSet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}")),
Map.entry("storageAccountType", "Standard_LRS")
))
)),
Map.entry("imageReference", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}")),
Map.entry("osDisk", Map.ofEntries(
Map.entry("caching", "ReadWrite"),
Map.entry("createOption", "FromImage"),
Map.entry("managedDisk", Map.ofEntries(
Map.entry("diskEncryptionSet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}")),
Map.entry("storageAccountType", "Standard_LRS")
))
))
))
))
.vmScaleSetName("{vmss-name}")
.build());
}
}

Create a scale set with Fpga Network Interfaces.

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
{
Location = "westus",
Overprovision = true,
ResourceGroupName = "myResourceGroup",
Sku = new AzureNative.Compute.Inputs.SkuArgs
{
Capacity = 3,
Name = "Standard_D1_v2",
Tier = "Standard",
},
UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
{
Mode = AzureNative.Compute.UpgradeMode.Manual,
},
VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
{
NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
{
NetworkInterfaceConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
{
EnableIPForwarding = true,
IpConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
{
Name = "{vmss-name}",
Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
},
},
},
Name = "{vmss-name}",
Primary = true,
},
new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
{
EnableAcceleratedNetworking = false,
EnableFpga = true,
EnableIPForwarding = false,
IpConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
{
Name = "{fpgaNic-Name}",
Primary = true,
PrivateIPAddressVersion = "IPv4",
Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-fpga-subnet-name}",
},
},
},
Name = "{fpgaNic-Name}",
Primary = false,
},
},
},
OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
{
AdminPassword = "{your-password}",
AdminUsername = "{your-username}",
ComputerNamePrefix = "{vmss-name}",
},
StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
{
ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}",
},
OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
{
Caching = AzureNative.Compute.CachingTypes.ReadWrite,
CreateOption = "FromImage",
ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
{
StorageAccountType = "Standard_LRS",
},
},
},
},
VmScaleSetName = "{vmss-name}",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
.location("westus")
.overprovision(true)
.resourceGroupName("myResourceGroup")
.sku(Map.ofEntries(
Map.entry("capacity", 3),
Map.entry("name", "Standard_D1_v2"),
Map.entry("tier", "Standard")
))
.upgradePolicy(Map.of("mode", "Manual"))
.virtualMachineProfile(Map.ofEntries(
Map.entry("networkProfile", Map.of("networkInterfaceConfigurations",
Map.ofEntries(
Map.entry("enableIPForwarding", true),
Map.entry("ipConfigurations", Map.ofEntries(
Map.entry("name", "{vmss-name}"),
Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
)),
Map.entry("name", "{vmss-name}"),
Map.entry("primary", true)
),
Map.ofEntries(
Map.entry("enableAcceleratedNetworking", false),
Map.entry("enableFpga", true),
Map.entry("enableIPForwarding", false),
Map.entry("ipConfigurations", Map.ofEntries(
Map.entry("name", "{fpgaNic-Name}"),
Map.entry("primary", true),
Map.entry("privateIPAddressVersion", "IPv4"),
Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-fpga-subnet-name}"))
)),
Map.entry("name", "{fpgaNic-Name}"),
Map.entry("primary", false)
))),
Map.entry("osProfile", Map.ofEntries(
Map.entry("adminPassword", "{your-password}"),
Map.entry("adminUsername", "{your-username}"),
Map.entry("computerNamePrefix", "{vmss-name}")
)),
Map.entry("storageProfile", Map.ofEntries(
Map.entry("imageReference", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}")),
Map.entry("osDisk", Map.ofEntries(
Map.entry("caching", "ReadWrite"),
Map.entry("createOption", "FromImage"),
Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
))
))
))
.vmScaleSetName("{vmss-name}")
.build());
}
}

Create a scale set with Host Encryption using encryptionAtHost property.

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
{
Location = "westus",
Overprovision = true,
Plan = new AzureNative.Compute.Inputs.PlanArgs
{
Name = "windows2016",
Product = "windows-data-science-vm",
Publisher = "microsoft-ads",
},
ResourceGroupName = "myResourceGroup",
Sku = new AzureNative.Compute.Inputs.SkuArgs
{
Capacity = 3,
Name = "Standard_DS1_v2",
Tier = "Standard",
},
UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
{
Mode = AzureNative.Compute.UpgradeMode.Manual,
},
VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
{
NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
{
NetworkInterfaceConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
{
EnableIPForwarding = true,
IpConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
{
Name = "{vmss-name}",
Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
},
},
},
Name = "{vmss-name}",
Primary = true,
},
},
},
OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
{
AdminPassword = "{your-password}",
AdminUsername = "{your-username}",
ComputerNamePrefix = "{vmss-name}",
},
SecurityProfile = new AzureNative.Compute.Inputs.SecurityProfileArgs
{
EncryptionAtHost = true,
},
StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
{
ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
{
Offer = "windows-data-science-vm",
Publisher = "microsoft-ads",
Sku = "windows2016",
Version = "latest",
},
OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
{
Caching = AzureNative.Compute.CachingTypes.ReadOnly,
CreateOption = "FromImage",
ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
{
StorageAccountType = "Standard_LRS",
},
},
},
},
VmScaleSetName = "{vmss-name}",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
.location("westus")
.overprovision(true)
.plan(Map.ofEntries(
Map.entry("name", "windows2016"),
Map.entry("product", "windows-data-science-vm"),
Map.entry("publisher", "microsoft-ads")
))
.resourceGroupName("myResourceGroup")
.sku(Map.ofEntries(
Map.entry("capacity", 3),
Map.entry("name", "Standard_DS1_v2"),
Map.entry("tier", "Standard")
))
.upgradePolicy(Map.of("mode", "Manual"))
.virtualMachineProfile(Map.ofEntries(
Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
Map.entry("enableIPForwarding", true),
Map.entry("ipConfigurations", Map.ofEntries(
Map.entry("name", "{vmss-name}"),
Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
)),
Map.entry("name", "{vmss-name}"),
Map.entry("primary", true)
))),
Map.entry("osProfile", Map.ofEntries(
Map.entry("adminPassword", "{your-password}"),
Map.entry("adminUsername", "{your-username}"),
Map.entry("computerNamePrefix", "{vmss-name}")
)),
Map.entry("securityProfile", Map.of("encryptionAtHost", true)),
Map.entry("storageProfile", Map.ofEntries(
Map.entry("imageReference", Map.ofEntries(
Map.entry("offer", "windows-data-science-vm"),
Map.entry("publisher", "microsoft-ads"),
Map.entry("sku", "windows2016"),
Map.entry("version", "latest")
)),
Map.entry("osDisk", Map.ofEntries(
Map.entry("caching", "ReadOnly"),
Map.entry("createOption", "FromImage"),
Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
))
))
))
.vmScaleSetName("{vmss-name}")
.build());
}
}

Create a scale set with Uefi Settings of secureBoot and vTPM.

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
{
Location = "westus",
Overprovision = true,
ResourceGroupName = "myResourceGroup",
Sku = new AzureNative.Compute.Inputs.SkuArgs
{
Capacity = 3,
Name = "Standard_D2s_v3",
Tier = "Standard",
},
UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
{
Mode = AzureNative.Compute.UpgradeMode.Manual,
},
VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
{
NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
{
NetworkInterfaceConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
{
EnableIPForwarding = true,
IpConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
{
Name = "{vmss-name}",
Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
},
},
},
Name = "{vmss-name}",
Primary = true,
},
},
},
OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
{
AdminPassword = "{your-password}",
AdminUsername = "{your-username}",
ComputerNamePrefix = "{vmss-name}",
},
SecurityProfile = new AzureNative.Compute.Inputs.SecurityProfileArgs
{
SecurityType = "TrustedLaunch",
UefiSettings = new AzureNative.Compute.Inputs.UefiSettingsArgs
{
SecureBootEnabled = true,
VTpmEnabled = true,
},
},
StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
{
ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
{
Offer = "windowsserver-gen2preview-preview",
Publisher = "MicrosoftWindowsServer",
Sku = "windows10-tvm",
Version = "18363.592.2001092016",
},
OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
{
Caching = AzureNative.Compute.CachingTypes.ReadOnly,
CreateOption = "FromImage",
ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
{
StorageAccountType = "StandardSSD_LRS",
},
},
},
},
VmScaleSetName = "{vmss-name}",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
.location("westus")
.overprovision(true)
.resourceGroupName("myResourceGroup")
.sku(Map.ofEntries(
Map.entry("capacity", 3),
Map.entry("name", "Standard_D2s_v3"),
Map.entry("tier", "Standard")
))
.upgradePolicy(Map.of("mode", "Manual"))
.virtualMachineProfile(Map.ofEntries(
Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
Map.entry("enableIPForwarding", true),
Map.entry("ipConfigurations", Map.ofEntries(
Map.entry("name", "{vmss-name}"),
Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
)),
Map.entry("name", "{vmss-name}"),
Map.entry("primary", true)
))),
Map.entry("osProfile", Map.ofEntries(
Map.entry("adminPassword", "{your-password}"),
Map.entry("adminUsername", "{your-username}"),
Map.entry("computerNamePrefix", "{vmss-name}")
)),
Map.entry("securityProfile", Map.ofEntries(
Map.entry("securityType", "TrustedLaunch"),
Map.entry("uefiSettings", Map.ofEntries(
Map.entry("secureBootEnabled", true),
Map.entry("vTpmEnabled", true)
))
)),
Map.entry("storageProfile", Map.ofEntries(
Map.entry("imageReference", Map.ofEntries(
Map.entry("offer", "windowsserver-gen2preview-preview"),
Map.entry("publisher", "MicrosoftWindowsServer"),
Map.entry("sku", "windows10-tvm"),
Map.entry("version", "18363.592.2001092016")
)),
Map.entry("osDisk", Map.ofEntries(
Map.entry("caching", "ReadOnly"),
Map.entry("createOption", "FromImage"),
Map.entry("managedDisk", Map.of("storageAccountType", "StandardSSD_LRS"))
))
))
))
.vmScaleSetName("{vmss-name}")
.build());
}
}

Create a scale set with a marketplace image plan.

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
{
Location = "westus",
Overprovision = true,
Plan = new AzureNative.Compute.Inputs.PlanArgs
{
Name = "windows2016",
Product = "windows-data-science-vm",
Publisher = "microsoft-ads",
},
ResourceGroupName = "myResourceGroup",
Sku = new AzureNative.Compute.Inputs.SkuArgs
{
Capacity = 3,
Name = "Standard_D1_v2",
Tier = "Standard",
},
UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
{
Mode = AzureNative.Compute.UpgradeMode.Manual,
},
VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
{
NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
{
NetworkInterfaceConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
{
EnableIPForwarding = true,
IpConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
{
Name = "{vmss-name}",
Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
},
},
},
Name = "{vmss-name}",
Primary = true,
},
},
},
OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
{
AdminPassword = "{your-password}",
AdminUsername = "{your-username}",
ComputerNamePrefix = "{vmss-name}",
},
StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
{
ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
{
Offer = "windows-data-science-vm",
Publisher = "microsoft-ads",
Sku = "windows2016",
Version = "latest",
},
OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
{
Caching = AzureNative.Compute.CachingTypes.ReadWrite,
CreateOption = "FromImage",
ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
{
StorageAccountType = "Standard_LRS",
},
},
},
},
VmScaleSetName = "{vmss-name}",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
.location("westus")
.overprovision(true)
.plan(Map.ofEntries(
Map.entry("name", "windows2016"),
Map.entry("product", "windows-data-science-vm"),
Map.entry("publisher", "microsoft-ads")
))
.resourceGroupName("myResourceGroup")
.sku(Map.ofEntries(
Map.entry("capacity", 3),
Map.entry("name", "Standard_D1_v2"),
Map.entry("tier", "Standard")
))
.upgradePolicy(Map.of("mode", "Manual"))
.virtualMachineProfile(Map.ofEntries(
Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
Map.entry("enableIPForwarding", true),
Map.entry("ipConfigurations", Map.ofEntries(
Map.entry("name", "{vmss-name}"),
Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
)),
Map.entry("name", "{vmss-name}"),
Map.entry("primary", true)
))),
Map.entry("osProfile", Map.ofEntries(
Map.entry("adminPassword", "{your-password}"),
Map.entry("adminUsername", "{your-username}"),
Map.entry("computerNamePrefix", "{vmss-name}")
)),
Map.entry("storageProfile", Map.ofEntries(
Map.entry("imageReference", Map.ofEntries(
Map.entry("offer", "windows-data-science-vm"),
Map.entry("publisher", "microsoft-ads"),
Map.entry("sku", "windows2016"),
Map.entry("version", "latest")
)),
Map.entry("osDisk", Map.ofEntries(
Map.entry("caching", "ReadWrite"),
Map.entry("createOption", "FromImage"),
Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
))
))
))
.vmScaleSetName("{vmss-name}")
.build());
}
}

Create a scale set with an azure application gateway.

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
{
Location = "westus",
Overprovision = true,
ResourceGroupName = "myResourceGroup",
Sku = new AzureNative.Compute.Inputs.SkuArgs
{
Capacity = 3,
Name = "Standard_D1_v2",
Tier = "Standard",
},
UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
{
Mode = AzureNative.Compute.UpgradeMode.Manual,
},
VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
{
NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
{
NetworkInterfaceConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
{
EnableIPForwarding = true,
IpConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
{
ApplicationGatewayBackendAddressPools = new[]
{
new AzureNative.Compute.Inputs.SubResourceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/applicationGateways/{existing-application-gateway-name}/backendAddressPools/{existing-backend-address-pool-name}",
},
},
Name = "{vmss-name}",
Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
},
},
},
Name = "{vmss-name}",
Primary = true,
},
},
},
OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
{
AdminPassword = "{your-password}",
AdminUsername = "{your-username}",
ComputerNamePrefix = "{vmss-name}",
},
StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
{
ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
{
Offer = "WindowsServer",
Publisher = "MicrosoftWindowsServer",
Sku = "2016-Datacenter",
Version = "latest",
},
OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
{
Caching = AzureNative.Compute.CachingTypes.ReadWrite,
CreateOption = "FromImage",
ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
{
StorageAccountType = "Standard_LRS",
},
},
},
},
VmScaleSetName = "{vmss-name}",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
.location("westus")
.overprovision(true)
.resourceGroupName("myResourceGroup")
.sku(Map.ofEntries(
Map.entry("capacity", 3),
Map.entry("name", "Standard_D1_v2"),
Map.entry("tier", "Standard")
))
.upgradePolicy(Map.of("mode", "Manual"))
.virtualMachineProfile(Map.ofEntries(
Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
Map.entry("enableIPForwarding", true),
Map.entry("ipConfigurations", Map.ofEntries(
Map.entry("applicationGatewayBackendAddressPools", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/applicationGateways/{existing-application-gateway-name}/backendAddressPools/{existing-backend-address-pool-name}")),
Map.entry("name", "{vmss-name}"),
Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
)),
Map.entry("name", "{vmss-name}"),
Map.entry("primary", true)
))),
Map.entry("osProfile", Map.ofEntries(
Map.entry("adminPassword", "{your-password}"),
Map.entry("adminUsername", "{your-username}"),
Map.entry("computerNamePrefix", "{vmss-name}")
)),
Map.entry("storageProfile", Map.ofEntries(
Map.entry("imageReference", Map.ofEntries(
Map.entry("offer", "WindowsServer"),
Map.entry("publisher", "MicrosoftWindowsServer"),
Map.entry("sku", "2016-Datacenter"),
Map.entry("version", "latest")
)),
Map.entry("osDisk", Map.ofEntries(
Map.entry("caching", "ReadWrite"),
Map.entry("createOption", "FromImage"),
Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
))
))
))
.vmScaleSetName("{vmss-name}")
.build());
}
}

Create a scale set with an azure load balancer.

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
{
Location = "westus",
Overprovision = true,
ResourceGroupName = "myResourceGroup",
Sku = new AzureNative.Compute.Inputs.SkuArgs
{
Capacity = 3,
Name = "Standard_D1_v2",
Tier = "Standard",
},
UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
{
Mode = AzureNative.Compute.UpgradeMode.Manual,
},
VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
{
NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
{
NetworkInterfaceConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
{
EnableIPForwarding = true,
IpConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
{
LoadBalancerBackendAddressPools = new[]
{
new AzureNative.Compute.Inputs.SubResourceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/{existing-load-balancer-name}/backendAddressPools/{existing-backend-address-pool-name}",
},
},
LoadBalancerInboundNatPools = new[]
{
new AzureNative.Compute.Inputs.SubResourceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/{existing-load-balancer-name}/inboundNatPools/{existing-nat-pool-name}",
},
},
Name = "{vmss-name}",
PublicIPAddressConfiguration = new AzureNative.Compute.Inputs.VirtualMachineScaleSetPublicIPAddressConfigurationArgs
{
Name = "{vmss-name}",
PublicIPAddressVersion = "IPv4",
},
Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
},
},
},
Name = "{vmss-name}",
Primary = true,
},
},
},
OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
{
AdminPassword = "{your-password}",
AdminUsername = "{your-username}",
ComputerNamePrefix = "{vmss-name}",
},
StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
{
ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
{
Offer = "WindowsServer",
Publisher = "MicrosoftWindowsServer",
Sku = "2016-Datacenter",
Version = "latest",
},
OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
{
Caching = AzureNative.Compute.CachingTypes.ReadWrite,
CreateOption = "FromImage",
ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
{
StorageAccountType = "Standard_LRS",
},
},
},
},
VmScaleSetName = "{vmss-name}",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
.location("westus")
.overprovision(true)
.resourceGroupName("myResourceGroup")
.sku(Map.ofEntries(
Map.entry("capacity", 3),
Map.entry("name", "Standard_D1_v2"),
Map.entry("tier", "Standard")
))
.upgradePolicy(Map.of("mode", "Manual"))
.virtualMachineProfile(Map.ofEntries(
Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
Map.entry("enableIPForwarding", true),
Map.entry("ipConfigurations", Map.ofEntries(
Map.entry("loadBalancerBackendAddressPools", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/{existing-load-balancer-name}/backendAddressPools/{existing-backend-address-pool-name}")),
Map.entry("loadBalancerInboundNatPools", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/{existing-load-balancer-name}/inboundNatPools/{existing-nat-pool-name}")),
Map.entry("name", "{vmss-name}"),
Map.entry("publicIPAddressConfiguration", Map.ofEntries(
Map.entry("name", "{vmss-name}"),
Map.entry("publicIPAddressVersion", "IPv4")
)),
Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
)),
Map.entry("name", "{vmss-name}"),
Map.entry("primary", true)
))),
Map.entry("osProfile", Map.ofEntries(
Map.entry("adminPassword", "{your-password}"),
Map.entry("adminUsername", "{your-username}"),
Map.entry("computerNamePrefix", "{vmss-name}")
)),
Map.entry("storageProfile", Map.ofEntries(
Map.entry("imageReference", Map.ofEntries(
Map.entry("offer", "WindowsServer"),
Map.entry("publisher", "MicrosoftWindowsServer"),
Map.entry("sku", "2016-Datacenter"),
Map.entry("version", "latest")
)),
Map.entry("osDisk", Map.ofEntries(
Map.entry("caching", "ReadWrite"),
Map.entry("createOption", "FromImage"),
Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
))
))
))
.vmScaleSetName("{vmss-name}")
.build());
}
}

Create a scale set with automatic repairs enabled

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
{
AutomaticRepairsPolicy = new AzureNative.Compute.Inputs.AutomaticRepairsPolicyArgs
{
Enabled = true,
GracePeriod = "PT30M",
},
Location = "westus",
Overprovision = true,
ResourceGroupName = "myResourceGroup",
Sku = new AzureNative.Compute.Inputs.SkuArgs
{
Capacity = 3,
Name = "Standard_D1_v2",
Tier = "Standard",
},
UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
{
Mode = AzureNative.Compute.UpgradeMode.Manual,
},
VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
{
NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
{
NetworkInterfaceConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
{
EnableIPForwarding = true,
IpConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
{
Name = "{vmss-name}",
Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
},
},
},
Name = "{vmss-name}",
Primary = true,
},
},
},
OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
{
AdminPassword = "{your-password}",
AdminUsername = "{your-username}",
ComputerNamePrefix = "{vmss-name}",
},
StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
{
ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
{
Offer = "WindowsServer",
Publisher = "MicrosoftWindowsServer",
Sku = "2016-Datacenter",
Version = "latest",
},
OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
{
Caching = AzureNative.Compute.CachingTypes.ReadWrite,
CreateOption = "FromImage",
ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
{
StorageAccountType = "Standard_LRS",
},
},
},
},
VmScaleSetName = "{vmss-name}",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
.automaticRepairsPolicy(Map.ofEntries(
Map.entry("enabled", true),
Map.entry("gracePeriod", "PT30M")
))
.location("westus")
.overprovision(true)
.resourceGroupName("myResourceGroup")
.sku(Map.ofEntries(
Map.entry("capacity", 3),
Map.entry("name", "Standard_D1_v2"),
Map.entry("tier", "Standard")
))
.upgradePolicy(Map.of("mode", "Manual"))
.virtualMachineProfile(Map.ofEntries(
Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
Map.entry("enableIPForwarding", true),
Map.entry("ipConfigurations", Map.ofEntries(
Map.entry("name", "{vmss-name}"),
Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
)),
Map.entry("name", "{vmss-name}"),
Map.entry("primary", true)
))),
Map.entry("osProfile", Map.ofEntries(
Map.entry("adminPassword", "{your-password}"),
Map.entry("adminUsername", "{your-username}"),
Map.entry("computerNamePrefix", "{vmss-name}")
)),
Map.entry("storageProfile", Map.ofEntries(
Map.entry("imageReference", Map.ofEntries(
Map.entry("offer", "WindowsServer"),
Map.entry("publisher", "MicrosoftWindowsServer"),
Map.entry("sku", "2016-Datacenter"),
Map.entry("version", "latest")
)),
Map.entry("osDisk", Map.ofEntries(
Map.entry("caching", "ReadWrite"),
Map.entry("createOption", "FromImage"),
Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
))
))
))
.vmScaleSetName("{vmss-name}")
.build());
}
}

Create a scale set with boot diagnostics.

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
{
Location = "westus",
Overprovision = true,
ResourceGroupName = "myResourceGroup",
Sku = new AzureNative.Compute.Inputs.SkuArgs
{
Capacity = 3,
Name = "Standard_D1_v2",
Tier = "Standard",
},
UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
{
Mode = AzureNative.Compute.UpgradeMode.Manual,
},
VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
{
DiagnosticsProfile = new AzureNative.Compute.Inputs.DiagnosticsProfileArgs
{
BootDiagnostics = new AzureNative.Compute.Inputs.BootDiagnosticsArgs
{
Enabled = true,
StorageUri = "http://{existing-storage-account-name}.blob.core.windows.net",
},
},
NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
{
NetworkInterfaceConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
{
EnableIPForwarding = true,
IpConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
{
Name = "{vmss-name}",
Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
},
},
},
Name = "{vmss-name}",
Primary = true,
},
},
},
OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
{
AdminPassword = "{your-password}",
AdminUsername = "{your-username}",
ComputerNamePrefix = "{vmss-name}",
},
StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
{
ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
{
Offer = "WindowsServer",
Publisher = "MicrosoftWindowsServer",
Sku = "2016-Datacenter",
Version = "latest",
},
OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
{
Caching = AzureNative.Compute.CachingTypes.ReadWrite,
CreateOption = "FromImage",
ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
{
StorageAccountType = "Standard_LRS",
},
},
},
},
VmScaleSetName = "{vmss-name}",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
.location("westus")
.overprovision(true)
.resourceGroupName("myResourceGroup")
.sku(Map.ofEntries(
Map.entry("capacity", 3),
Map.entry("name", "Standard_D1_v2"),
Map.entry("tier", "Standard")
))
.upgradePolicy(Map.of("mode", "Manual"))
.virtualMachineProfile(Map.ofEntries(
Map.entry("diagnosticsProfile", Map.of("bootDiagnostics", Map.ofEntries(
Map.entry("enabled", true),
Map.entry("storageUri", "http://{existing-storage-account-name}.blob.core.windows.net")
))),
Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
Map.entry("enableIPForwarding", true),
Map.entry("ipConfigurations", Map.ofEntries(
Map.entry("name", "{vmss-name}"),
Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
)),
Map.entry("name", "{vmss-name}"),
Map.entry("primary", true)
))),
Map.entry("osProfile", Map.ofEntries(
Map.entry("adminPassword", "{your-password}"),
Map.entry("adminUsername", "{your-username}"),
Map.entry("computerNamePrefix", "{vmss-name}")
)),
Map.entry("storageProfile", Map.ofEntries(
Map.entry("imageReference", Map.ofEntries(
Map.entry("offer", "WindowsServer"),
Map.entry("publisher", "MicrosoftWindowsServer"),
Map.entry("sku", "2016-Datacenter"),
Map.entry("version", "latest")
)),
Map.entry("osDisk", Map.ofEntries(
Map.entry("caching", "ReadWrite"),
Map.entry("createOption", "FromImage"),
Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
))
))
))
.vmScaleSetName("{vmss-name}")
.build());
}
}

Create a scale set with empty data disks on each vm.

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
{
Location = "westus",
Overprovision = true,
ResourceGroupName = "myResourceGroup",
Sku = new AzureNative.Compute.Inputs.SkuArgs
{
Capacity = 3,
Name = "Standard_D2_v2",
Tier = "Standard",
},
UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
{
Mode = AzureNative.Compute.UpgradeMode.Manual,
},
VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
{
NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
{
NetworkInterfaceConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
{
EnableIPForwarding = true,
IpConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
{
Name = "{vmss-name}",
Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
},
},
},
Name = "{vmss-name}",
Primary = true,
},
},
},
OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
{
AdminPassword = "{your-password}",
AdminUsername = "{your-username}",
ComputerNamePrefix = "{vmss-name}",
},
StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
{
DataDisks = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetDataDiskArgs
{
CreateOption = "Empty",
DiskSizeGB = 1023,
Lun = 0,
},
new AzureNative.Compute.Inputs.VirtualMachineScaleSetDataDiskArgs
{
CreateOption = "Empty",
DiskSizeGB = 1023,
Lun = 1,
},
},
ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
{
Offer = "WindowsServer",
Publisher = "MicrosoftWindowsServer",
Sku = "2016-Datacenter",
Version = "latest",
},
OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
{
Caching = AzureNative.Compute.CachingTypes.ReadWrite,
CreateOption = "FromImage",
DiskSizeGB = 512,
ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
{
StorageAccountType = "Standard_LRS",
},
},
},
},
VmScaleSetName = "{vmss-name}",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
.location("westus")
.overprovision(true)
.resourceGroupName("myResourceGroup")
.sku(Map.ofEntries(
Map.entry("capacity", 3),
Map.entry("name", "Standard_D2_v2"),
Map.entry("tier", "Standard")
))
.upgradePolicy(Map.of("mode", "Manual"))
.virtualMachineProfile(Map.ofEntries(
Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
Map.entry("enableIPForwarding", true),
Map.entry("ipConfigurations", Map.ofEntries(
Map.entry("name", "{vmss-name}"),
Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
)),
Map.entry("name", "{vmss-name}"),
Map.entry("primary", true)
))),
Map.entry("osProfile", Map.ofEntries(
Map.entry("adminPassword", "{your-password}"),
Map.entry("adminUsername", "{your-username}"),
Map.entry("computerNamePrefix", "{vmss-name}")
)),
Map.entry("storageProfile", Map.ofEntries(
Map.entry("dataDisks",
Map.ofEntries(
Map.entry("createOption", "Empty"),
Map.entry("diskSizeGB", 1023),
Map.entry("lun", 0)
),
Map.ofEntries(
Map.entry("createOption", "Empty"),
Map.entry("diskSizeGB", 1023),
Map.entry("lun", 1)
)),
Map.entry("imageReference", Map.ofEntries(
Map.entry("offer", "WindowsServer"),
Map.entry("publisher", "MicrosoftWindowsServer"),
Map.entry("sku", "2016-Datacenter"),
Map.entry("version", "latest")
)),
Map.entry("osDisk", Map.ofEntries(
Map.entry("caching", "ReadWrite"),
Map.entry("createOption", "FromImage"),
Map.entry("diskSizeGB", 512),
Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
))
))
))
.vmScaleSetName("{vmss-name}")
.build());
}
}

Create a scale set with ephemeral os disks using placement property.

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
{
Location = "westus",
Overprovision = true,
Plan = new AzureNative.Compute.Inputs.PlanArgs
{
Name = "windows2016",
Product = "windows-data-science-vm",
Publisher = "microsoft-ads",
},
ResourceGroupName = "myResourceGroup",
Sku = new AzureNative.Compute.Inputs.SkuArgs
{
Capacity = 3,
Name = "Standard_DS1_v2",
Tier = "Standard",
},
UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
{
Mode = AzureNative.Compute.UpgradeMode.Manual,
},
VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
{
NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
{
NetworkInterfaceConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
{
EnableIPForwarding = true,
IpConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
{
Name = "{vmss-name}",
Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
},
},
},
Name = "{vmss-name}",
Primary = true,
},
},
},
OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
{
AdminPassword = "{your-password}",
AdminUsername = "{your-username}",
ComputerNamePrefix = "{vmss-name}",
},
StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
{
ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
{
Offer = "windows-data-science-vm",
Publisher = "microsoft-ads",
Sku = "windows2016",
Version = "latest",
},
OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
{
Caching = AzureNative.Compute.CachingTypes.ReadOnly,
CreateOption = "FromImage",
DiffDiskSettings = new AzureNative.Compute.Inputs.DiffDiskSettingsArgs
{
Option = "Local",
Placement = "ResourceDisk",
},
ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
{
StorageAccountType = "Standard_LRS",
},
},
},
},
VmScaleSetName = "{vmss-name}",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
.location("westus")
.overprovision(true)
.plan(Map.ofEntries(
Map.entry("name", "windows2016"),
Map.entry("product", "windows-data-science-vm"),
Map.entry("publisher", "microsoft-ads")
))
.resourceGroupName("myResourceGroup")
.sku(Map.ofEntries(
Map.entry("capacity", 3),
Map.entry("name", "Standard_DS1_v2"),
Map.entry("tier", "Standard")
))
.upgradePolicy(Map.of("mode", "Manual"))
.virtualMachineProfile(Map.ofEntries(
Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
Map.entry("enableIPForwarding", true),
Map.entry("ipConfigurations", Map.ofEntries(
Map.entry("name", "{vmss-name}"),
Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
)),
Map.entry("name", "{vmss-name}"),
Map.entry("primary", true)
))),
Map.entry("osProfile", Map.ofEntries(
Map.entry("adminPassword", "{your-password}"),
Map.entry("adminUsername", "{your-username}"),
Map.entry("computerNamePrefix", "{vmss-name}")
)),
Map.entry("storageProfile", Map.ofEntries(
Map.entry("imageReference", Map.ofEntries(
Map.entry("offer", "windows-data-science-vm"),
Map.entry("publisher", "microsoft-ads"),
Map.entry("sku", "windows2016"),
Map.entry("version", "latest")
)),
Map.entry("osDisk", Map.ofEntries(
Map.entry("caching", "ReadOnly"),
Map.entry("createOption", "FromImage"),
Map.entry("diffDiskSettings", Map.ofEntries(
Map.entry("option", "Local"),
Map.entry("placement", "ResourceDisk")
)),
Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
))
))
))
.vmScaleSetName("{vmss-name}")
.build());
}
}

Create a scale set with ephemeral os disks.

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
{
Location = "westus",
Overprovision = true,
Plan = new AzureNative.Compute.Inputs.PlanArgs
{
Name = "windows2016",
Product = "windows-data-science-vm",
Publisher = "microsoft-ads",
},
ResourceGroupName = "myResourceGroup",
Sku = new AzureNative.Compute.Inputs.SkuArgs
{
Capacity = 3,
Name = "Standard_DS1_v2",
Tier = "Standard",
},
UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
{
Mode = AzureNative.Compute.UpgradeMode.Manual,
},
VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
{
NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
{
NetworkInterfaceConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
{
EnableIPForwarding = true,
IpConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
{
Name = "{vmss-name}",
Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
},
},
},
Name = "{vmss-name}",
Primary = true,
},
},
},
OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
{
AdminPassword = "{your-password}",
AdminUsername = "{your-username}",
ComputerNamePrefix = "{vmss-name}",
},
StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
{
ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
{
Offer = "windows-data-science-vm",
Publisher = "microsoft-ads",
Sku = "windows2016",
Version = "latest",
},
OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
{
Caching = AzureNative.Compute.CachingTypes.ReadOnly,
CreateOption = "FromImage",
DiffDiskSettings = new AzureNative.Compute.Inputs.DiffDiskSettingsArgs
{
Option = "Local",
},
ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
{
StorageAccountType = "Standard_LRS",
},
},
},
},
VmScaleSetName = "{vmss-name}",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
.location("westus")
.overprovision(true)
.plan(Map.ofEntries(
Map.entry("name", "windows2016"),
Map.entry("product", "windows-data-science-vm"),
Map.entry("publisher", "microsoft-ads")
))
.resourceGroupName("myResourceGroup")
.sku(Map.ofEntries(
Map.entry("capacity", 3),
Map.entry("name", "Standard_DS1_v2"),
Map.entry("tier", "Standard")
))
.upgradePolicy(Map.of("mode", "Manual"))
.virtualMachineProfile(Map.ofEntries(
Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
Map.entry("enableIPForwarding", true),
Map.entry("ipConfigurations", Map.ofEntries(
Map.entry("name", "{vmss-name}"),
Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
)),
Map.entry("name", "{vmss-name}"),
Map.entry("primary", true)
))),
Map.entry("osProfile", Map.ofEntries(
Map.entry("adminPassword", "{your-password}"),
Map.entry("adminUsername", "{your-username}"),
Map.entry("computerNamePrefix", "{vmss-name}")
)),
Map.entry("storageProfile", Map.ofEntries(
Map.entry("imageReference", Map.ofEntries(
Map.entry("offer", "windows-data-science-vm"),
Map.entry("publisher", "microsoft-ads"),
Map.entry("sku", "windows2016"),
Map.entry("version", "latest")
)),
Map.entry("osDisk", Map.ofEntries(
Map.entry("caching", "ReadOnly"),
Map.entry("createOption", "FromImage"),
Map.entry("diffDiskSettings", Map.of("option", "Local")),
Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
))
))
))
.vmScaleSetName("{vmss-name}")
.build());
}
}

Create a scale set with extension time budget.

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
{
Location = "westus",
Overprovision = true,
ResourceGroupName = "myResourceGroup",
Sku = new AzureNative.Compute.Inputs.SkuArgs
{
Capacity = 3,
Name = "Standard_D1_v2",
Tier = "Standard",
},
UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
{
Mode = AzureNative.Compute.UpgradeMode.Manual,
},
VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
{
DiagnosticsProfile = new AzureNative.Compute.Inputs.DiagnosticsProfileArgs
{
BootDiagnostics = new AzureNative.Compute.Inputs.BootDiagnosticsArgs
{
Enabled = true,
StorageUri = "http://{existing-storage-account-name}.blob.core.windows.net",
},
},
ExtensionProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetExtensionProfileArgs
{
Extensions = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetExtensionArgs
{
AutoUpgradeMinorVersion = false,
Name = "{extension-name}",
Publisher = "{extension-Publisher}",
Settings = null,
Type = "{extension-Type}",
TypeHandlerVersion = "{handler-version}",
},
},
ExtensionsTimeBudget = "PT1H20M",
},
NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
{
NetworkInterfaceConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
{
EnableIPForwarding = true,
IpConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
{
Name = "{vmss-name}",
Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
},
},
},
Name = "{vmss-name}",
Primary = true,
},
},
},
OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
{
AdminPassword = "{your-password}",
AdminUsername = "{your-username}",
ComputerNamePrefix = "{vmss-name}",
},
StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
{
ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
{
Offer = "WindowsServer",
Publisher = "MicrosoftWindowsServer",
Sku = "2016-Datacenter",
Version = "latest",
},
OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
{
Caching = AzureNative.Compute.CachingTypes.ReadWrite,
CreateOption = "FromImage",
ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
{
StorageAccountType = "Standard_LRS",
},
},
},
},
VmScaleSetName = "{vmss-name}",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
.location("westus")
.overprovision(true)
.resourceGroupName("myResourceGroup")
.sku(Map.ofEntries(
Map.entry("capacity", 3),
Map.entry("name", "Standard_D1_v2"),
Map.entry("tier", "Standard")
))
.upgradePolicy(Map.of("mode", "Manual"))
.virtualMachineProfile(Map.ofEntries(
Map.entry("diagnosticsProfile", Map.of("bootDiagnostics", Map.ofEntries(
Map.entry("enabled", true),
Map.entry("storageUri", "http://{existing-storage-account-name}.blob.core.windows.net")
))),
Map.entry("extensionProfile", Map.ofEntries(
Map.entry("extensions", Map.ofEntries(
Map.entry("autoUpgradeMinorVersion", false),
Map.entry("name", "{extension-name}"),
Map.entry("publisher", "{extension-Publisher}"),
Map.entry("settings", ),
Map.entry("type", "{extension-Type}"),
Map.entry("typeHandlerVersion", "{handler-version}")
)),
Map.entry("extensionsTimeBudget", "PT1H20M")
)),
Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
Map.entry("enableIPForwarding", true),
Map.entry("ipConfigurations", Map.ofEntries(
Map.entry("name", "{vmss-name}"),
Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
)),
Map.entry("name", "{vmss-name}"),
Map.entry("primary", true)
))),
Map.entry("osProfile", Map.ofEntries(
Map.entry("adminPassword", "{your-password}"),
Map.entry("adminUsername", "{your-username}"),
Map.entry("computerNamePrefix", "{vmss-name}")
)),
Map.entry("storageProfile", Map.ofEntries(
Map.entry("imageReference", Map.ofEntries(
Map.entry("offer", "WindowsServer"),
Map.entry("publisher", "MicrosoftWindowsServer"),
Map.entry("sku", "2016-Datacenter"),
Map.entry("version", "latest")
)),
Map.entry("osDisk", Map.ofEntries(
Map.entry("caching", "ReadWrite"),
Map.entry("createOption", "FromImage"),
Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
))
))
))
.vmScaleSetName("{vmss-name}")
.build());
}
}

Create a scale set with managed boot diagnostics.

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
{
Location = "westus",
Overprovision = true,
ResourceGroupName = "myResourceGroup",
Sku = new AzureNative.Compute.Inputs.SkuArgs
{
Capacity = 3,
Name = "Standard_D1_v2",
Tier = "Standard",
},
UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
{
Mode = AzureNative.Compute.UpgradeMode.Manual,
},
VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
{
DiagnosticsProfile = new AzureNative.Compute.Inputs.DiagnosticsProfileArgs
{
BootDiagnostics = new AzureNative.Compute.Inputs.BootDiagnosticsArgs
{
Enabled = true,
},
},
NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
{
NetworkInterfaceConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
{
EnableIPForwarding = true,
IpConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
{
Name = "{vmss-name}",
Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
},
},
},
Name = "{vmss-name}",
Primary = true,
},
},
},
OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
{
AdminPassword = "{your-password}",
AdminUsername = "{your-username}",
ComputerNamePrefix = "{vmss-name}",
},
StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
{
ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
{
Offer = "WindowsServer",
Publisher = "MicrosoftWindowsServer",
Sku = "2016-Datacenter",
Version = "latest",
},
OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
{
Caching = AzureNative.Compute.CachingTypes.ReadWrite,
CreateOption = "FromImage",
ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
{
StorageAccountType = "Standard_LRS",
},
},
},
},
VmScaleSetName = "{vmss-name}",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
.location("westus")
.overprovision(true)
.resourceGroupName("myResourceGroup")
.sku(Map.ofEntries(
Map.entry("capacity", 3),
Map.entry("name", "Standard_D1_v2"),
Map.entry("tier", "Standard")
))
.upgradePolicy(Map.of("mode", "Manual"))
.virtualMachineProfile(Map.ofEntries(
Map.entry("diagnosticsProfile", Map.of("bootDiagnostics", Map.of("enabled", true))),
Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
Map.entry("enableIPForwarding", true),
Map.entry("ipConfigurations", Map.ofEntries(
Map.entry("name", "{vmss-name}"),
Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
)),
Map.entry("name", "{vmss-name}"),
Map.entry("primary", true)
))),
Map.entry("osProfile", Map.ofEntries(
Map.entry("adminPassword", "{your-password}"),
Map.entry("adminUsername", "{your-username}"),
Map.entry("computerNamePrefix", "{vmss-name}")
)),
Map.entry("storageProfile", Map.ofEntries(
Map.entry("imageReference", Map.ofEntries(
Map.entry("offer", "WindowsServer"),
Map.entry("publisher", "MicrosoftWindowsServer"),
Map.entry("sku", "2016-Datacenter"),
Map.entry("version", "latest")
)),
Map.entry("osDisk", Map.ofEntries(
Map.entry("caching", "ReadWrite"),
Map.entry("createOption", "FromImage"),
Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
))
))
))
.vmScaleSetName("{vmss-name}")
.build());
}
}

Create a scale set with password authentication.

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
{
Location = "westus",
Overprovision = true,
ResourceGroupName = "myResourceGroup",
Sku = new AzureNative.Compute.Inputs.SkuArgs
{
Capacity = 3,
Name = "Standard_D1_v2",
Tier = "Standard",
},
UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
{
Mode = AzureNative.Compute.UpgradeMode.Manual,
},
VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
{
NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
{
NetworkInterfaceConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
{
EnableIPForwarding = true,
IpConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
{
Name = "{vmss-name}",
Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
},
},
},
Name = "{vmss-name}",
Primary = true,
},
},
},
OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
{
AdminPassword = "{your-password}",
AdminUsername = "{your-username}",
ComputerNamePrefix = "{vmss-name}",
},
StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
{
ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
{
Offer = "WindowsServer",
Publisher = "MicrosoftWindowsServer",
Sku = "2016-Datacenter",
Version = "latest",
},
OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
{
Caching = AzureNative.Compute.CachingTypes.ReadWrite,
CreateOption = "FromImage",
ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
{
StorageAccountType = "Standard_LRS",
},
},
},
},
VmScaleSetName = "{vmss-name}",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
.location("westus")
.overprovision(true)
.resourceGroupName("myResourceGroup")
.sku(Map.ofEntries(
Map.entry("capacity", 3),
Map.entry("name", "Standard_D1_v2"),
Map.entry("tier", "Standard")
))
.upgradePolicy(Map.of("mode", "Manual"))
.virtualMachineProfile(Map.ofEntries(
Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
Map.entry("enableIPForwarding", true),
Map.entry("ipConfigurations", Map.ofEntries(
Map.entry("name", "{vmss-name}"),
Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
)),
Map.entry("name", "{vmss-name}"),
Map.entry("primary", true)
))),
Map.entry("osProfile", Map.ofEntries(
Map.entry("adminPassword", "{your-password}"),
Map.entry("adminUsername", "{your-username}"),
Map.entry("computerNamePrefix", "{vmss-name}")
)),
Map.entry("storageProfile", Map.ofEntries(
Map.entry("imageReference", Map.ofEntries(
Map.entry("offer", "WindowsServer"),
Map.entry("publisher", "MicrosoftWindowsServer"),
Map.entry("sku", "2016-Datacenter"),
Map.entry("version", "latest")
)),
Map.entry("osDisk", Map.ofEntries(
Map.entry("caching", "ReadWrite"),
Map.entry("createOption", "FromImage"),
Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
))
))
))
.vmScaleSetName("{vmss-name}")
.build());
}
}

Create a scale set with premium storage.

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
{
Location = "westus",
Overprovision = true,
ResourceGroupName = "myResourceGroup",
Sku = new AzureNative.Compute.Inputs.SkuArgs
{
Capacity = 3,
Name = "Standard_D1_v2",
Tier = "Standard",
},
UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
{
Mode = AzureNative.Compute.UpgradeMode.Manual,
},
VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
{
NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
{
NetworkInterfaceConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
{
EnableIPForwarding = true,
IpConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
{
Name = "{vmss-name}",
Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
},
},
},
Name = "{vmss-name}",
Primary = true,
},
},
},
OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
{
AdminPassword = "{your-password}",
AdminUsername = "{your-username}",
ComputerNamePrefix = "{vmss-name}",
},
StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
{
ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
{
Offer = "WindowsServer",
Publisher = "MicrosoftWindowsServer",
Sku = "2016-Datacenter",
Version = "latest",
},
OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
{
Caching = AzureNative.Compute.CachingTypes.ReadWrite,
CreateOption = "FromImage",
ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
{
StorageAccountType = "Premium_LRS",
},
},
},
},
VmScaleSetName = "{vmss-name}",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
.location("westus")
.overprovision(true)
.resourceGroupName("myResourceGroup")
.sku(Map.ofEntries(
Map.entry("capacity", 3),
Map.entry("name", "Standard_D1_v2"),
Map.entry("tier", "Standard")
))
.upgradePolicy(Map.of("mode", "Manual"))
.virtualMachineProfile(Map.ofEntries(
Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
Map.entry("enableIPForwarding", true),
Map.entry("ipConfigurations", Map.ofEntries(
Map.entry("name", "{vmss-name}"),
Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
)),
Map.entry("name", "{vmss-name}"),
Map.entry("primary", true)
))),
Map.entry("osProfile", Map.ofEntries(
Map.entry("adminPassword", "{your-password}"),
Map.entry("adminUsername", "{your-username}"),
Map.entry("computerNamePrefix", "{vmss-name}")
)),
Map.entry("storageProfile", Map.ofEntries(
Map.entry("imageReference", Map.ofEntries(
Map.entry("offer", "WindowsServer"),
Map.entry("publisher", "MicrosoftWindowsServer"),
Map.entry("sku", "2016-Datacenter"),
Map.entry("version", "latest")
)),
Map.entry("osDisk", Map.ofEntries(
Map.entry("caching", "ReadWrite"),
Map.entry("createOption", "FromImage"),
Map.entry("managedDisk", Map.of("storageAccountType", "Premium_LRS"))
))
))
))
.vmScaleSetName("{vmss-name}")
.build());
}
}

Create a scale set with ssh authentication.

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
{
Location = "westus",
Overprovision = true,
ResourceGroupName = "myResourceGroup",
Sku = new AzureNative.Compute.Inputs.SkuArgs
{
Capacity = 3,
Name = "Standard_D1_v2",
Tier = "Standard",
},
UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
{
Mode = AzureNative.Compute.UpgradeMode.Manual,
},
VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
{
NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
{
NetworkInterfaceConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
{
EnableIPForwarding = true,
IpConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
{
Name = "{vmss-name}",
Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
},
},
},
Name = "{vmss-name}",
Primary = true,
},
},
},
OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
{
AdminUsername = "{your-username}",
ComputerNamePrefix = "{vmss-name}",
LinuxConfiguration = new AzureNative.Compute.Inputs.LinuxConfigurationArgs
{
DisablePasswordAuthentication = true,
Ssh = new AzureNative.Compute.Inputs.SshConfigurationArgs
{
PublicKeys = new[]
{
new AzureNative.Compute.Inputs.SshPublicKeyArgs
{
KeyData = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeClRAk2ipUs/l5voIsDC5q9RI+YSRd1Bvd/O+axgY4WiBzG+4FwJWZm/mLLe5DoOdHQwmU2FrKXZSW4w2sYE70KeWnrFViCOX5MTVvJgPE8ClugNl8RWth/tU849DvM9sT7vFgfVSHcAS2yDRyDlueii+8nF2ym8XWAPltFVCyLHRsyBp5YPqK8JFYIa1eybKsY3hEAxRCA+/7bq8et+Gj3coOsuRmrehav7rE6N12Pb80I6ofa6SM5XNYq4Xk0iYNx7R3kdz0Jj9XgZYWjAHjJmT0gTRoOnt6upOuxK7xI/ykWrllgpXrCPu3Ymz+c+ujaqcxDopnAl2lmf69/J1",
Path = "/home/{your-username}/.ssh/authorized_keys",
},
},
},
},
},
StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
{
ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
{
Offer = "WindowsServer",
Publisher = "MicrosoftWindowsServer",
Sku = "2016-Datacenter",
Version = "latest",
},
OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
{
Caching = AzureNative.Compute.CachingTypes.ReadWrite,
CreateOption = "FromImage",
ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
{
StorageAccountType = "Standard_LRS",
},
},
},
},
VmScaleSetName = "{vmss-name}",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
.location("westus")
.overprovision(true)
.resourceGroupName("myResourceGroup")
.sku(Map.ofEntries(
Map.entry("capacity", 3),
Map.entry("name", "Standard_D1_v2"),
Map.entry("tier", "Standard")
))
.upgradePolicy(Map.of("mode", "Manual"))
.virtualMachineProfile(Map.ofEntries(
Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
Map.entry("enableIPForwarding", true),
Map.entry("ipConfigurations", Map.ofEntries(
Map.entry("name", "{vmss-name}"),
Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
)),
Map.entry("name", "{vmss-name}"),
Map.entry("primary", true)
))),
Map.entry("osProfile", Map.ofEntries(
Map.entry("adminUsername", "{your-username}"),
Map.entry("computerNamePrefix", "{vmss-name}"),
Map.entry("linuxConfiguration", Map.ofEntries(
Map.entry("disablePasswordAuthentication", true),
Map.entry("ssh", Map.of("publicKeys", Map.ofEntries(
Map.entry("keyData", "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeClRAk2ipUs/l5voIsDC5q9RI+YSRd1Bvd/O+axgY4WiBzG+4FwJWZm/mLLe5DoOdHQwmU2FrKXZSW4w2sYE70KeWnrFViCOX5MTVvJgPE8ClugNl8RWth/tU849DvM9sT7vFgfVSHcAS2yDRyDlueii+8nF2ym8XWAPltFVCyLHRsyBp5YPqK8JFYIa1eybKsY3hEAxRCA+/7bq8et+Gj3coOsuRmrehav7rE6N12Pb80I6ofa6SM5XNYq4Xk0iYNx7R3kdz0Jj9XgZYWjAHjJmT0gTRoOnt6upOuxK7xI/ykWrllgpXrCPu3Ymz+c+ujaqcxDopnAl2lmf69/J1"),
Map.entry("path", "/home/{your-username}/.ssh/authorized_keys")
)))
))
)),
Map.entry("storageProfile", Map.ofEntries(
Map.entry("imageReference", Map.ofEntries(
Map.entry("offer", "WindowsServer"),
Map.entry("publisher", "MicrosoftWindowsServer"),
Map.entry("sku", "2016-Datacenter"),
Map.entry("version", "latest")
)),
Map.entry("osDisk", Map.ofEntries(
Map.entry("caching", "ReadWrite"),
Map.entry("createOption", "FromImage"),
Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
))
))
))
.vmScaleSetName("{vmss-name}")
.build());
}
}

Create a scale set with terminate scheduled events enabled.

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
{
Location = "westus",
Overprovision = true,
ResourceGroupName = "myResourceGroup",
Sku = new AzureNative.Compute.Inputs.SkuArgs
{
Capacity = 3,
Name = "Standard_D1_v2",
Tier = "Standard",
},
UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
{
Mode = AzureNative.Compute.UpgradeMode.Manual,
},
VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
{
NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
{
NetworkInterfaceConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
{
EnableIPForwarding = true,
IpConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
{
Name = "{vmss-name}",
Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
},
},
},
Name = "{vmss-name}",
Primary = true,
},
},
},
OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
{
AdminPassword = "{your-password}",
AdminUsername = "{your-username}",
ComputerNamePrefix = "{vmss-name}",
},
ScheduledEventsProfile = new AzureNative.Compute.Inputs.ScheduledEventsProfileArgs
{
TerminateNotificationProfile = new AzureNative.Compute.Inputs.TerminateNotificationProfileArgs
{
Enable = true,
NotBeforeTimeout = "PT5M",
},
},
StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
{
ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
{
Offer = "WindowsServer",
Publisher = "MicrosoftWindowsServer",
Sku = "2016-Datacenter",
Version = "latest",
},
OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
{
Caching = AzureNative.Compute.CachingTypes.ReadWrite,
CreateOption = "FromImage",
ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
{
StorageAccountType = "Standard_LRS",
},
},
},
},
VmScaleSetName = "{vmss-name}",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
.location("westus")
.overprovision(true)
.resourceGroupName("myResourceGroup")
.sku(Map.ofEntries(
Map.entry("capacity", 3),
Map.entry("name", "Standard_D1_v2"),
Map.entry("tier", "Standard")
))
.upgradePolicy(Map.of("mode", "Manual"))
.virtualMachineProfile(Map.ofEntries(
Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
Map.entry("enableIPForwarding", true),
Map.entry("ipConfigurations", Map.ofEntries(
Map.entry("name", "{vmss-name}"),
Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
)),
Map.entry("name", "{vmss-name}"),
Map.entry("primary", true)
))),
Map.entry("osProfile", Map.ofEntries(
Map.entry("adminPassword", "{your-password}"),
Map.entry("adminUsername", "{your-username}"),
Map.entry("computerNamePrefix", "{vmss-name}")
)),
Map.entry("scheduledEventsProfile", Map.of("terminateNotificationProfile", Map.ofEntries(
Map.entry("enable", true),
Map.entry("notBeforeTimeout", "PT5M")
))),
Map.entry("storageProfile", Map.ofEntries(
Map.entry("imageReference", Map.ofEntries(
Map.entry("offer", "WindowsServer"),
Map.entry("publisher", "MicrosoftWindowsServer"),
Map.entry("sku", "2016-Datacenter"),
Map.entry("version", "latest")
)),
Map.entry("osDisk", Map.ofEntries(
Map.entry("caching", "ReadWrite"),
Map.entry("createOption", "FromImage"),
Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
))
))
))
.vmScaleSetName("{vmss-name}")
.build());
}
}

Create a scale set with userData.

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
{
Location = "westus",
Overprovision = true,
ResourceGroupName = "myResourceGroup",
Sku = new AzureNative.Compute.Inputs.SkuArgs
{
Capacity = 3,
Name = "Standard_D1_v2",
Tier = "Standard",
},
UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
{
Mode = AzureNative.Compute.UpgradeMode.Manual,
},
VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
{
NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
{
NetworkInterfaceConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
{
EnableIPForwarding = true,
IpConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
{
Name = "{vmss-name}",
Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
},
},
},
Name = "{vmss-name}",
Primary = true,
},
},
},
OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
{
AdminPassword = "{your-password}",
AdminUsername = "{your-username}",
ComputerNamePrefix = "{vmss-name}",
},
StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
{
ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
{
Offer = "WindowsServer",
Publisher = "MicrosoftWindowsServer",
Sku = "2016-Datacenter",
Version = "latest",
},
OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
{
Caching = AzureNative.Compute.CachingTypes.ReadWrite,
CreateOption = "FromImage",
ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
{
StorageAccountType = "Standard_LRS",
},
},
},
UserData = "RXhhbXBsZSBVc2VyRGF0YQ==",
},
VmScaleSetName = "{vmss-name}",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
.location("westus")
.overprovision(true)
.resourceGroupName("myResourceGroup")
.sku(Map.ofEntries(
Map.entry("capacity", 3),
Map.entry("name", "Standard_D1_v2"),
Map.entry("tier", "Standard")
))
.upgradePolicy(Map.of("mode", "Manual"))
.virtualMachineProfile(Map.ofEntries(
Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
Map.entry("enableIPForwarding", true),
Map.entry("ipConfigurations", Map.ofEntries(
Map.entry("name", "{vmss-name}"),
Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
)),
Map.entry("name", "{vmss-name}"),
Map.entry("primary", true)
))),
Map.entry("osProfile", Map.ofEntries(
Map.entry("adminPassword", "{your-password}"),
Map.entry("adminUsername", "{your-username}"),
Map.entry("computerNamePrefix", "{vmss-name}")
)),
Map.entry("storageProfile", Map.ofEntries(
Map.entry("imageReference", Map.ofEntries(
Map.entry("offer", "WindowsServer"),
Map.entry("publisher", "MicrosoftWindowsServer"),
Map.entry("sku", "2016-Datacenter"),
Map.entry("version", "latest")
)),
Map.entry("osDisk", Map.ofEntries(
Map.entry("caching", "ReadWrite"),
Map.entry("createOption", "FromImage"),
Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
))
)),
Map.entry("userData", "RXhhbXBsZSBVc2VyRGF0YQ==")
))
.vmScaleSetName("{vmss-name}")
.build());
}
}

Create a scale set with virtual machines in different zones.

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
{
Location = "centralus",
Overprovision = true,
ResourceGroupName = "myResourceGroup",
Sku = new AzureNative.Compute.Inputs.SkuArgs
{
Capacity = 2,
Name = "Standard_A1_v2",
Tier = "Standard",
},
UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
{
Mode = AzureNative.Compute.UpgradeMode.Automatic,
},
VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
{
NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
{
NetworkInterfaceConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
{
EnableIPForwarding = true,
IpConfigurations = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
{
Name = "{vmss-name}",
Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
{
Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
},
},
},
Name = "{vmss-name}",
Primary = true,
},
},
},
OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
{
AdminPassword = "{your-password}",
AdminUsername = "{your-username}",
ComputerNamePrefix = "{vmss-name}",
},
StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
{
DataDisks = new[]
{
new AzureNative.Compute.Inputs.VirtualMachineScaleSetDataDiskArgs
{
CreateOption = "Empty",
DiskSizeGB = 1023,
Lun = 0,
},
new AzureNative.Compute.Inputs.VirtualMachineScaleSetDataDiskArgs
{
CreateOption = "Empty",
DiskSizeGB = 1023,
Lun = 1,
},
},
ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
{
Offer = "WindowsServer",
Publisher = "MicrosoftWindowsServer",
Sku = "2016-Datacenter",
Version = "latest",
},
OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
{
Caching = AzureNative.Compute.CachingTypes.ReadWrite,
CreateOption = "FromImage",
DiskSizeGB = 512,
ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
{
StorageAccountType = "Standard_LRS",
},
},
},
},
VmScaleSetName = "{vmss-name}",
Zones = new[]
{
"1",
"3",
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
.location("centralus")
.overprovision(true)
.resourceGroupName("myResourceGroup")
.sku(Map.ofEntries(
Map.entry("capacity", 2),
Map.entry("name", "Standard_A1_v2"),
Map.entry("tier", "Standard")
))
.upgradePolicy(Map.of("mode", "Automatic"))
.virtualMachineProfile(Map.ofEntries(
Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
Map.entry("enableIPForwarding", true),
Map.entry("ipConfigurations", Map.ofEntries(
Map.entry("name", "{vmss-name}"),
Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
)),
Map.entry("name", "{vmss-name}"),
Map.entry("primary", true)
))),
Map.entry("osProfile", Map.ofEntries(
Map.entry("adminPassword", "{your-password}"),
Map.entry("adminUsername", "{your-username}"),
Map.entry("computerNamePrefix", "{vmss-name}")
)),
Map.entry("storageProfile", Map.ofEntries(
Map.entry("dataDisks",
Map.ofEntries(
Map.entry("createOption", "Empty"),
Map.entry("diskSizeGB", 1023),
Map.entry("lun", 0)
),
Map.ofEntries(
Map.entry("createOption", "Empty"),
Map.entry("diskSizeGB", 1023),
Map.entry("lun", 1)
)),
Map.entry("imageReference", Map.ofEntries(
Map.entry("offer", "WindowsServer"),
Map.entry("publisher", "MicrosoftWindowsServer"),
Map.entry("sku", "2016-Datacenter"),
Map.entry("version", "latest")
)),
Map.entry("osDisk", Map.ofEntries(
Map.entry("caching", "ReadWrite"),
Map.entry("createOption", "FromImage"),
Map.entry("diskSizeGB", 512),
Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
))
))
))
.vmScaleSetName("{vmss-name}")
.zones(
"1",
"3")
.build());
}
}

Import

An existing resource can be imported using its type token, name, and identifier, e.g.

$ pulumi import azure-native:compute:VirtualMachineScaleSet {vmss-name} /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}

Constructors

Link copied to clipboard
constructor(additionalCapabilities: Output<AdditionalCapabilitiesArgs>? = null, automaticRepairsPolicy: Output<AutomaticRepairsPolicyArgs>? = null, doNotRunExtensionsOnOverprovisionedVMs: Output<Boolean>? = null, extendedLocation: Output<ExtendedLocationArgs>? = null, hostGroup: Output<SubResourceArgs>? = null, identity: Output<VirtualMachineScaleSetIdentityArgs>? = null, location: Output<String>? = null, orchestrationMode: Output<Either<String, OrchestrationMode>>? = null, overprovision: Output<Boolean>? = null, plan: Output<PlanArgs>? = null, platformFaultDomainCount: Output<Int>? = null, proximityPlacementGroup: Output<SubResourceArgs>? = null, resourceGroupName: Output<String>? = null, scaleInPolicy: Output<ScaleInPolicyArgs>? = null, singlePlacementGroup: Output<Boolean>? = null, sku: Output<SkuArgs>? = null, tags: Output<Map<String, String>>? = null, upgradePolicy: Output<UpgradePolicyArgs>? = null, virtualMachineProfile: Output<VirtualMachineScaleSetVMProfileArgs>? = null, vmScaleSetName: Output<String>? = null, zoneBalance: Output<Boolean>? = null, zones: Output<List<String>>? = null)

Properties

Link copied to clipboard

Specifies additional capabilities enabled or disabled on the Virtual Machines in the Virtual Machine Scale Set. For instance: whether the Virtual Machines have the capability to support attaching managed data disks with UltraSSD_LRS storage account type.

Link copied to clipboard

Policy for automatic repairs.

Link copied to clipboard

When Overprovision is enabled, extensions are launched only on the requested number of VMs which are finally kept. This property will hence ensure that the extensions do not run on the extra overprovisioned VMs.

Link copied to clipboard

The extended location of the Virtual Machine Scale Set.

Link copied to clipboard
val hostGroup: Output<SubResourceArgs>? = null

Specifies information about the dedicated host group that the virtual machine scale set resides in.

Minimum api-version: 2020-06-01.

Link copied to clipboard

The identity of the virtual machine scale set, if configured.

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

Resource location

Link copied to clipboard
val orchestrationMode: Output<Either<String, OrchestrationMode>>? = null

Specifies the orchestration mode for the virtual machine scale set.

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

Specifies whether the Virtual Machine Scale Set should be overprovisioned.

Link copied to clipboard
val plan: Output<PlanArgs>? = null

Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use. In the Azure portal, find the marketplace image that you want to use and then click Want to deploy programmatically, Get Started ->. Enter any required information and then click Save.

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

Fault Domain count for each placement group.

Link copied to clipboard

Specifies information about the proximity placement group that the virtual machine scale set should be assigned to.

Minimum api-version: 2018-04-01.

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

The name of the resource group.

Link copied to clipboard
val scaleInPolicy: Output<ScaleInPolicyArgs>? = null

Specifies the scale-in policy that decides which virtual machines are chosen for removal when a Virtual Machine Scale Set is scaled-in.

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

When true this limits the scale set to a single placement group, of max size 100 virtual machines. NOTE: If singlePlacementGroup is true, it may be modified to false. However, if singlePlacementGroup is false, it may not be modified to true.

Link copied to clipboard
val sku: Output<SkuArgs>? = null

The virtual machine scale set sku.

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

Resource tags

Link copied to clipboard
val upgradePolicy: Output<UpgradePolicyArgs>? = null

The upgrade policy.

Link copied to clipboard

The virtual machine profile.

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

The name of the VM scale set to create or update.

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

Whether to force strictly even Virtual Machine distribution cross x-zones in case there is zone outage.

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

The virtual machine scale set zones. NOTE: Availability zones can only be set when you create the scale set

Functions

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