PoolArgs

data class PoolArgs(val accountName: Output<String>? = null, val applicationLicenses: Output<List<String>>? = null, val applicationPackages: Output<List<ApplicationPackageReferenceArgs>>? = null, val certificates: Output<List<CertificateReferenceArgs>>? = null, val deploymentConfiguration: Output<DeploymentConfigurationArgs>? = null, val displayName: Output<String>? = null, val identity: Output<BatchPoolIdentityArgs>? = null, val interNodeCommunication: Output<InterNodeCommunicationState>? = null, val metadata: Output<List<MetadataItemArgs>>? = null, val mountConfiguration: Output<List<MountConfigurationArgs>>? = null, val networkConfiguration: Output<NetworkConfigurationArgs>? = null, val poolName: Output<String>? = null, val resourceGroupName: Output<String>? = null, val resourceTags: Output<Map<String, String>>? = null, val scaleSettings: Output<ScaleSettingsArgs>? = null, val startTask: Output<StartTaskArgs>? = null, val tags: Output<Map<String, String>>? = null, val targetNodeCommunicationMode: Output<NodeCommunicationMode>? = null, val taskSchedulingPolicy: Output<TaskSchedulingPolicyArgs>? = null, val taskSlotsPerNode: Output<Int>? = null, val upgradePolicy: Output<UpgradePolicyArgs>? = null, val userAccounts: Output<List<UserAccountArgs>>? = null, val vmSize: Output<String>? = null) : ConvertibleToJava<PoolArgs>

Contains information about a pool. Uses Azure REST API version 2024-07-01. In version 2.x of the Azure Native provider, it used API version 2023-05-01. Other available API versions: 2023-05-01, 2023-11-01, 2024-02-01. These can be accessed by generating a local SDK package using the CLI command pulumi package add azure-native batch [ApiVersion]. See the ../../../version-guide/#accessing-any-api-version-via-local-packages for details.

Example Usage

CreatePool - Custom Image

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var pool = new AzureNative.Batch.Pool("pool", new()
{
AccountName = "sampleacct",
DeploymentConfiguration = new AzureNative.Batch.Inputs.DeploymentConfigurationArgs
{
VirtualMachineConfiguration = new AzureNative.Batch.Inputs.VirtualMachineConfigurationArgs
{
ImageReference = new AzureNative.Batch.Inputs.ImageReferenceArgs
{
Id = "/subscriptions/subid/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1",
},
NodeAgentSkuId = "batch.node.ubuntu 18.04",
},
},
PoolName = "testpool",
ResourceGroupName = "default-azurebatch-japaneast",
VmSize = "STANDARD_D4",
});
});
package main
import (
batch "github.com/pulumi/pulumi-azure-native-sdk/batch/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := batch.NewPool(ctx, "pool", &batch.PoolArgs{
AccountName: pulumi.String("sampleacct"),
DeploymentConfiguration: &batch.DeploymentConfigurationArgs{
VirtualMachineConfiguration: &batch.VirtualMachineConfigurationArgs{
ImageReference: &batch.ImageReferenceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1"),
},
NodeAgentSkuId: pulumi.String("batch.node.ubuntu 18.04"),
},
},
PoolName: pulumi.String("testpool"),
ResourceGroupName: pulumi.String("default-azurebatch-japaneast"),
VmSize: pulumi.String("STANDARD_D4"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.batch.Pool;
import com.pulumi.azurenative.batch.PoolArgs;
import com.pulumi.azurenative.batch.inputs.DeploymentConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.VirtualMachineConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.ImageReferenceArgs;
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 pool = new Pool("pool", PoolArgs.builder()
.accountName("sampleacct")
.deploymentConfiguration(DeploymentConfigurationArgs.builder()
.virtualMachineConfiguration(VirtualMachineConfigurationArgs.builder()
.imageReference(ImageReferenceArgs.builder()
.id("/subscriptions/subid/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1")
.build())
.nodeAgentSkuId("batch.node.ubuntu 18.04")
.build())
.build())
.poolName("testpool")
.resourceGroupName("default-azurebatch-japaneast")
.vmSize("STANDARD_D4")
.build());
}
}

CreatePool - Full VirtualMachineConfiguration

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var pool = new AzureNative.Batch.Pool("pool", new()
{
AccountName = "sampleacct",
DeploymentConfiguration = new AzureNative.Batch.Inputs.DeploymentConfigurationArgs
{
VirtualMachineConfiguration = new AzureNative.Batch.Inputs.VirtualMachineConfigurationArgs
{
DataDisks = new[]
{
new AzureNative.Batch.Inputs.DataDiskArgs
{
Caching = AzureNative.Batch.CachingType.ReadWrite,
DiskSizeGB = 30,
Lun = 0,
StorageAccountType = AzureNative.Batch.StorageAccountType.Premium_LRS,
},
new AzureNative.Batch.Inputs.DataDiskArgs
{
Caching = AzureNative.Batch.CachingType.None,
DiskSizeGB = 200,
Lun = 1,
StorageAccountType = AzureNative.Batch.StorageAccountType.Standard_LRS,
},
},
DiskEncryptionConfiguration = new AzureNative.Batch.Inputs.DiskEncryptionConfigurationArgs
{
Targets = new[]
{
AzureNative.Batch.DiskEncryptionTarget.OsDisk,
AzureNative.Batch.DiskEncryptionTarget.TemporaryDisk,
},
},
ImageReference = new AzureNative.Batch.Inputs.ImageReferenceArgs
{
Offer = "WindowsServer",
Publisher = "MicrosoftWindowsServer",
Sku = "2016-Datacenter-SmallDisk",
Version = "latest",
},
LicenseType = "Windows_Server",
NodeAgentSkuId = "batch.node.windows amd64",
NodePlacementConfiguration = new AzureNative.Batch.Inputs.NodePlacementConfigurationArgs
{
Policy = AzureNative.Batch.NodePlacementPolicyType.Zonal,
},
OsDisk = new AzureNative.Batch.Inputs.OSDiskArgs
{
EphemeralOSDiskSettings = new AzureNative.Batch.Inputs.DiffDiskSettingsArgs
{
Placement = AzureNative.Batch.DiffDiskPlacement.CacheDisk,
},
},
WindowsConfiguration = new AzureNative.Batch.Inputs.WindowsConfigurationArgs
{
EnableAutomaticUpdates = false,
},
},
},
NetworkConfiguration = new AzureNative.Batch.Inputs.NetworkConfigurationArgs
{
EndpointConfiguration = new AzureNative.Batch.Inputs.PoolEndpointConfigurationArgs
{
InboundNatPools = new[]
{
new AzureNative.Batch.Inputs.InboundNatPoolArgs
{
BackendPort = 12001,
FrontendPortRangeEnd = 15100,
FrontendPortRangeStart = 15000,
Name = "testnat",
NetworkSecurityGroupRules = new[]
{
new AzureNative.Batch.Inputs.NetworkSecurityGroupRuleArgs
{
Access = AzureNative.Batch.NetworkSecurityGroupRuleAccess.Allow,
Priority = 150,
SourceAddressPrefix = "192.100.12.45",
SourcePortRanges = new[]
{
"1",
"2",
},
},
new AzureNative.Batch.Inputs.NetworkSecurityGroupRuleArgs
{
Access = AzureNative.Batch.NetworkSecurityGroupRuleAccess.Deny,
Priority = 3500,
SourceAddressPrefix = "*",
SourcePortRanges = new[]
{
"*",
},
},
},
Protocol = AzureNative.Batch.InboundEndpointProtocol.TCP,
},
},
},
},
PoolName = "testpool",
ResourceGroupName = "default-azurebatch-japaneast",
ScaleSettings = new AzureNative.Batch.Inputs.ScaleSettingsArgs
{
AutoScale = new AzureNative.Batch.Inputs.AutoScaleSettingsArgs
{
EvaluationInterval = "PT5M",
Formula = "$TargetDedicatedNodes=1",
},
},
VmSize = "STANDARD_D4",
});
});
package main
import (
batch "github.com/pulumi/pulumi-azure-native-sdk/batch/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := batch.NewPool(ctx, "pool", &batch.PoolArgs{
AccountName: pulumi.String("sampleacct"),
DeploymentConfiguration: &batch.DeploymentConfigurationArgs{
VirtualMachineConfiguration: &batch.VirtualMachineConfigurationArgs{
DataDisks: batch.DataDiskArray{
&batch.DataDiskArgs{
Caching: batch.CachingTypeReadWrite,
DiskSizeGB: pulumi.Int(30),
Lun: pulumi.Int(0),
StorageAccountType: batch.StorageAccountType_Premium_LRS,
},
&batch.DataDiskArgs{
Caching: batch.CachingTypeNone,
DiskSizeGB: pulumi.Int(200),
Lun: pulumi.Int(1),
StorageAccountType: batch.StorageAccountType_Standard_LRS,
},
},
DiskEncryptionConfiguration: &batch.DiskEncryptionConfigurationArgs{
Targets: batch.DiskEncryptionTargetArray{
batch.DiskEncryptionTargetOsDisk,
batch.DiskEncryptionTargetTemporaryDisk,
},
},
ImageReference: &batch.ImageReferenceArgs{
Offer: pulumi.String("WindowsServer"),
Publisher: pulumi.String("MicrosoftWindowsServer"),
Sku: pulumi.String("2016-Datacenter-SmallDisk"),
Version: pulumi.String("latest"),
},
LicenseType: pulumi.String("Windows_Server"),
NodeAgentSkuId: pulumi.String("batch.node.windows amd64"),
NodePlacementConfiguration: &batch.NodePlacementConfigurationArgs{
Policy: batch.NodePlacementPolicyTypeZonal,
},
OsDisk: &batch.OSDiskArgs{
EphemeralOSDiskSettings: &batch.DiffDiskSettingsArgs{
Placement: batch.DiffDiskPlacementCacheDisk,
},
},
WindowsConfiguration: &batch.WindowsConfigurationArgs{
EnableAutomaticUpdates: pulumi.Bool(false),
},
},
},
NetworkConfiguration: &batch.NetworkConfigurationArgs{
EndpointConfiguration: &batch.PoolEndpointConfigurationArgs{
InboundNatPools: batch.InboundNatPoolArray{
&batch.InboundNatPoolArgs{
BackendPort: pulumi.Int(12001),
FrontendPortRangeEnd: pulumi.Int(15100),
FrontendPortRangeStart: pulumi.Int(15000),
Name: pulumi.String("testnat"),
NetworkSecurityGroupRules: batch.NetworkSecurityGroupRuleArray{
&batch.NetworkSecurityGroupRuleArgs{
Access: batch.NetworkSecurityGroupRuleAccessAllow,
Priority: pulumi.Int(150),
SourceAddressPrefix: pulumi.String("192.100.12.45"),
SourcePortRanges: pulumi.StringArray{
pulumi.String("1"),
pulumi.String("2"),
},
},
&batch.NetworkSecurityGroupRuleArgs{
Access: batch.NetworkSecurityGroupRuleAccessDeny,
Priority: pulumi.Int(3500),
SourceAddressPrefix: pulumi.String("*"),
SourcePortRanges: pulumi.StringArray{
pulumi.String("*"),
},
},
},
Protocol: batch.InboundEndpointProtocolTCP,
},
},
},
},
PoolName: pulumi.String("testpool"),
ResourceGroupName: pulumi.String("default-azurebatch-japaneast"),
ScaleSettings: &batch.ScaleSettingsArgs{
AutoScale: &batch.AutoScaleSettingsArgs{
EvaluationInterval: pulumi.String("PT5M"),
Formula: pulumi.String("$TargetDedicatedNodes=1"),
},
},
VmSize: pulumi.String("STANDARD_D4"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.batch.Pool;
import com.pulumi.azurenative.batch.PoolArgs;
import com.pulumi.azurenative.batch.inputs.DeploymentConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.VirtualMachineConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.DiskEncryptionConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.ImageReferenceArgs;
import com.pulumi.azurenative.batch.inputs.NodePlacementConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.OSDiskArgs;
import com.pulumi.azurenative.batch.inputs.DiffDiskSettingsArgs;
import com.pulumi.azurenative.batch.inputs.WindowsConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.NetworkConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.PoolEndpointConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.ScaleSettingsArgs;
import com.pulumi.azurenative.batch.inputs.AutoScaleSettingsArgs;
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 pool = new Pool("pool", PoolArgs.builder()
.accountName("sampleacct")
.deploymentConfiguration(DeploymentConfigurationArgs.builder()
.virtualMachineConfiguration(VirtualMachineConfigurationArgs.builder()
.dataDisks(
DataDiskArgs.builder()
.caching("ReadWrite")
.diskSizeGB(30)
.lun(0)
.storageAccountType("Premium_LRS")
.build(),
DataDiskArgs.builder()
.caching("None")
.diskSizeGB(200)
.lun(1)
.storageAccountType("Standard_LRS")
.build())
.diskEncryptionConfiguration(DiskEncryptionConfigurationArgs.builder()
.targets(
"OsDisk",
"TemporaryDisk")
.build())
.imageReference(ImageReferenceArgs.builder()
.offer("WindowsServer")
.publisher("MicrosoftWindowsServer")
.sku("2016-Datacenter-SmallDisk")
.version("latest")
.build())
.licenseType("Windows_Server")
.nodeAgentSkuId("batch.node.windows amd64")
.nodePlacementConfiguration(NodePlacementConfigurationArgs.builder()
.policy("Zonal")
.build())
.osDisk(OSDiskArgs.builder()
.ephemeralOSDiskSettings(DiffDiskSettingsArgs.builder()
.placement("CacheDisk")
.build())
.build())
.windowsConfiguration(WindowsConfigurationArgs.builder()
.enableAutomaticUpdates(false)
.build())
.build())
.build())
.networkConfiguration(NetworkConfigurationArgs.builder()
.endpointConfiguration(PoolEndpointConfigurationArgs.builder()
.inboundNatPools(InboundNatPoolArgs.builder()
.backendPort(12001)
.frontendPortRangeEnd(15100)
.frontendPortRangeStart(15000)
.name("testnat")
.networkSecurityGroupRules(
NetworkSecurityGroupRuleArgs.builder()
.access("Allow")
.priority(150)
.sourceAddressPrefix("192.100.12.45")
.sourcePortRanges(
"1",
"2")
.build(),
NetworkSecurityGroupRuleArgs.builder()
.access("Deny")
.priority(3500)
.sourceAddressPrefix("*")
.sourcePortRanges("*")
.build())
.protocol("TCP")
.build())
.build())
.build())
.poolName("testpool")
.resourceGroupName("default-azurebatch-japaneast")
.scaleSettings(ScaleSettingsArgs.builder()
.autoScale(AutoScaleSettingsArgs.builder()
.evaluationInterval("PT5M")
.formula("$TargetDedicatedNodes=1")
.build())
.build())
.vmSize("STANDARD_D4")
.build());
}
}

CreatePool - Minimal VirtualMachineConfiguration

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var pool = new AzureNative.Batch.Pool("pool", new()
{
AccountName = "sampleacct",
DeploymentConfiguration = new AzureNative.Batch.Inputs.DeploymentConfigurationArgs
{
VirtualMachineConfiguration = new AzureNative.Batch.Inputs.VirtualMachineConfigurationArgs
{
ImageReference = new AzureNative.Batch.Inputs.ImageReferenceArgs
{
Offer = "UbuntuServer",
Publisher = "Canonical",
Sku = "18.04-LTS",
Version = "latest",
},
NodeAgentSkuId = "batch.node.ubuntu 18.04",
},
},
PoolName = "testpool",
ResourceGroupName = "default-azurebatch-japaneast",
ScaleSettings = new AzureNative.Batch.Inputs.ScaleSettingsArgs
{
AutoScale = new AzureNative.Batch.Inputs.AutoScaleSettingsArgs
{
EvaluationInterval = "PT5M",
Formula = "$TargetDedicatedNodes=1",
},
},
VmSize = "STANDARD_D4",
});
});
package main
import (
batch "github.com/pulumi/pulumi-azure-native-sdk/batch/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := batch.NewPool(ctx, "pool", &batch.PoolArgs{
AccountName: pulumi.String("sampleacct"),
DeploymentConfiguration: &batch.DeploymentConfigurationArgs{
VirtualMachineConfiguration: &batch.VirtualMachineConfigurationArgs{
ImageReference: &batch.ImageReferenceArgs{
Offer: pulumi.String("UbuntuServer"),
Publisher: pulumi.String("Canonical"),
Sku: pulumi.String("18.04-LTS"),
Version: pulumi.String("latest"),
},
NodeAgentSkuId: pulumi.String("batch.node.ubuntu 18.04"),
},
},
PoolName: pulumi.String("testpool"),
ResourceGroupName: pulumi.String("default-azurebatch-japaneast"),
ScaleSettings: &batch.ScaleSettingsArgs{
AutoScale: &batch.AutoScaleSettingsArgs{
EvaluationInterval: pulumi.String("PT5M"),
Formula: pulumi.String("$TargetDedicatedNodes=1"),
},
},
VmSize: pulumi.String("STANDARD_D4"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.batch.Pool;
import com.pulumi.azurenative.batch.PoolArgs;
import com.pulumi.azurenative.batch.inputs.DeploymentConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.VirtualMachineConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.ImageReferenceArgs;
import com.pulumi.azurenative.batch.inputs.ScaleSettingsArgs;
import com.pulumi.azurenative.batch.inputs.AutoScaleSettingsArgs;
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 pool = new Pool("pool", PoolArgs.builder()
.accountName("sampleacct")
.deploymentConfiguration(DeploymentConfigurationArgs.builder()
.virtualMachineConfiguration(VirtualMachineConfigurationArgs.builder()
.imageReference(ImageReferenceArgs.builder()
.offer("UbuntuServer")
.publisher("Canonical")
.sku("18.04-LTS")
.version("latest")
.build())
.nodeAgentSkuId("batch.node.ubuntu 18.04")
.build())
.build())
.poolName("testpool")
.resourceGroupName("default-azurebatch-japaneast")
.scaleSettings(ScaleSettingsArgs.builder()
.autoScale(AutoScaleSettingsArgs.builder()
.evaluationInterval("PT5M")
.formula("$TargetDedicatedNodes=1")
.build())
.build())
.vmSize("STANDARD_D4")
.build());
}
}

CreatePool - No public IP

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var pool = new AzureNative.Batch.Pool("pool", new()
{
AccountName = "sampleacct",
DeploymentConfiguration = new AzureNative.Batch.Inputs.DeploymentConfigurationArgs
{
VirtualMachineConfiguration = new AzureNative.Batch.Inputs.VirtualMachineConfigurationArgs
{
ImageReference = new AzureNative.Batch.Inputs.ImageReferenceArgs
{
Id = "/subscriptions/subid/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1",
},
NodeAgentSkuId = "batch.node.ubuntu 18.04",
},
},
NetworkConfiguration = new AzureNative.Batch.Inputs.NetworkConfigurationArgs
{
PublicIPAddressConfiguration = new AzureNative.Batch.Inputs.PublicIPAddressConfigurationArgs
{
Provision = AzureNative.Batch.IPAddressProvisioningType.NoPublicIPAddresses,
},
SubnetId = "/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123",
},
PoolName = "testpool",
ResourceGroupName = "default-azurebatch-japaneast",
VmSize = "STANDARD_D4",
});
});
package main
import (
batch "github.com/pulumi/pulumi-azure-native-sdk/batch/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := batch.NewPool(ctx, "pool", &batch.PoolArgs{
AccountName: pulumi.String("sampleacct"),
DeploymentConfiguration: &batch.DeploymentConfigurationArgs{
VirtualMachineConfiguration: &batch.VirtualMachineConfigurationArgs{
ImageReference: &batch.ImageReferenceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1"),
},
NodeAgentSkuId: pulumi.String("batch.node.ubuntu 18.04"),
},
},
NetworkConfiguration: &batch.NetworkConfigurationArgs{
PublicIPAddressConfiguration: &batch.PublicIPAddressConfigurationArgs{
Provision: batch.IPAddressProvisioningTypeNoPublicIPAddresses,
},
SubnetId: pulumi.String("/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123"),
},
PoolName: pulumi.String("testpool"),
ResourceGroupName: pulumi.String("default-azurebatch-japaneast"),
VmSize: pulumi.String("STANDARD_D4"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.batch.Pool;
import com.pulumi.azurenative.batch.PoolArgs;
import com.pulumi.azurenative.batch.inputs.DeploymentConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.VirtualMachineConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.ImageReferenceArgs;
import com.pulumi.azurenative.batch.inputs.NetworkConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.PublicIPAddressConfigurationArgs;
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 pool = new Pool("pool", PoolArgs.builder()
.accountName("sampleacct")
.deploymentConfiguration(DeploymentConfigurationArgs.builder()
.virtualMachineConfiguration(VirtualMachineConfigurationArgs.builder()
.imageReference(ImageReferenceArgs.builder()
.id("/subscriptions/subid/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1")
.build())
.nodeAgentSkuId("batch.node.ubuntu 18.04")
.build())
.build())
.networkConfiguration(NetworkConfigurationArgs.builder()
.publicIPAddressConfiguration(PublicIPAddressConfigurationArgs.builder()
.provision("NoPublicIPAddresses")
.build())
.subnetId("/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123")
.build())
.poolName("testpool")
.resourceGroupName("default-azurebatch-japaneast")
.vmSize("STANDARD_D4")
.build());
}
}

CreatePool - Public IPs

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var pool = new AzureNative.Batch.Pool("pool", new()
{
AccountName = "sampleacct",
DeploymentConfiguration = new AzureNative.Batch.Inputs.DeploymentConfigurationArgs
{
VirtualMachineConfiguration = new AzureNative.Batch.Inputs.VirtualMachineConfigurationArgs
{
ImageReference = new AzureNative.Batch.Inputs.ImageReferenceArgs
{
Id = "/subscriptions/subid/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1",
},
NodeAgentSkuId = "batch.node.ubuntu 18.04",
},
},
NetworkConfiguration = new AzureNative.Batch.Inputs.NetworkConfigurationArgs
{
PublicIPAddressConfiguration = new AzureNative.Batch.Inputs.PublicIPAddressConfigurationArgs
{
IpAddressIds = new[]
{
"/subscriptions/subid1/resourceGroups/rg13/providers/Microsoft.Network/publicIPAddresses/ip135",
},
Provision = AzureNative.Batch.IPAddressProvisioningType.UserManaged,
},
SubnetId = "/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123",
},
PoolName = "testpool",
ResourceGroupName = "default-azurebatch-japaneast",
VmSize = "STANDARD_D4",
});
});
package main
import (
batch "github.com/pulumi/pulumi-azure-native-sdk/batch/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := batch.NewPool(ctx, "pool", &batch.PoolArgs{
AccountName: pulumi.String("sampleacct"),
DeploymentConfiguration: &batch.DeploymentConfigurationArgs{
VirtualMachineConfiguration: &batch.VirtualMachineConfigurationArgs{
ImageReference: &batch.ImageReferenceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1"),
},
NodeAgentSkuId: pulumi.String("batch.node.ubuntu 18.04"),
},
},
NetworkConfiguration: &batch.NetworkConfigurationArgs{
PublicIPAddressConfiguration: &batch.PublicIPAddressConfigurationArgs{
IpAddressIds: pulumi.StringArray{
pulumi.String("/subscriptions/subid1/resourceGroups/rg13/providers/Microsoft.Network/publicIPAddresses/ip135"),
},
Provision: batch.IPAddressProvisioningTypeUserManaged,
},
SubnetId: pulumi.String("/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123"),
},
PoolName: pulumi.String("testpool"),
ResourceGroupName: pulumi.String("default-azurebatch-japaneast"),
VmSize: pulumi.String("STANDARD_D4"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.batch.Pool;
import com.pulumi.azurenative.batch.PoolArgs;
import com.pulumi.azurenative.batch.inputs.DeploymentConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.VirtualMachineConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.ImageReferenceArgs;
import com.pulumi.azurenative.batch.inputs.NetworkConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.PublicIPAddressConfigurationArgs;
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 pool = new Pool("pool", PoolArgs.builder()
.accountName("sampleacct")
.deploymentConfiguration(DeploymentConfigurationArgs.builder()
.virtualMachineConfiguration(VirtualMachineConfigurationArgs.builder()
.imageReference(ImageReferenceArgs.builder()
.id("/subscriptions/subid/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1")
.build())
.nodeAgentSkuId("batch.node.ubuntu 18.04")
.build())
.build())
.networkConfiguration(NetworkConfigurationArgs.builder()
.publicIPAddressConfiguration(PublicIPAddressConfigurationArgs.builder()
.ipAddressIds("/subscriptions/subid1/resourceGroups/rg13/providers/Microsoft.Network/publicIPAddresses/ip135")
.provision("UserManaged")
.build())
.subnetId("/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123")
.build())
.poolName("testpool")
.resourceGroupName("default-azurebatch-japaneast")
.vmSize("STANDARD_D4")
.build());
}
}

CreatePool - ResourceTags

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var pool = new AzureNative.Batch.Pool("pool", new()
{
AccountName = "sampleacct",
DeploymentConfiguration = new AzureNative.Batch.Inputs.DeploymentConfigurationArgs
{
VirtualMachineConfiguration = new AzureNative.Batch.Inputs.VirtualMachineConfigurationArgs
{
ImageReference = new AzureNative.Batch.Inputs.ImageReferenceArgs
{
Offer = "UbuntuServer",
Publisher = "Canonical",
Sku = "18_04-lts-gen2",
Version = "latest",
},
NodeAgentSkuId = "batch.node.ubuntu 18.04",
},
},
PoolName = "testpool",
ResourceGroupName = "default-azurebatch-japaneast",
ResourceTags =
{
{ "TagName1", "TagValue1" },
{ "TagName2", "TagValue2" },
},
ScaleSettings = new AzureNative.Batch.Inputs.ScaleSettingsArgs
{
FixedScale = new AzureNative.Batch.Inputs.FixedScaleSettingsArgs
{
TargetDedicatedNodes = 1,
TargetLowPriorityNodes = 0,
},
},
VmSize = "Standard_d4s_v3",
});
});
package main
import (
batch "github.com/pulumi/pulumi-azure-native-sdk/batch/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := batch.NewPool(ctx, "pool", &batch.PoolArgs{
AccountName: pulumi.String("sampleacct"),
DeploymentConfiguration: &batch.DeploymentConfigurationArgs{
VirtualMachineConfiguration: &batch.VirtualMachineConfigurationArgs{
ImageReference: &batch.ImageReferenceArgs{
Offer: pulumi.String("UbuntuServer"),
Publisher: pulumi.String("Canonical"),
Sku: pulumi.String("18_04-lts-gen2"),
Version: pulumi.String("latest"),
},
NodeAgentSkuId: pulumi.String("batch.node.ubuntu 18.04"),
},
},
PoolName: pulumi.String("testpool"),
ResourceGroupName: pulumi.String("default-azurebatch-japaneast"),
ResourceTags: pulumi.StringMap{
"TagName1": pulumi.String("TagValue1"),
"TagName2": pulumi.String("TagValue2"),
},
ScaleSettings: &batch.ScaleSettingsArgs{
FixedScale: &batch.FixedScaleSettingsArgs{
TargetDedicatedNodes: pulumi.Int(1),
TargetLowPriorityNodes: pulumi.Int(0),
},
},
VmSize: pulumi.String("Standard_d4s_v3"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.batch.Pool;
import com.pulumi.azurenative.batch.PoolArgs;
import com.pulumi.azurenative.batch.inputs.DeploymentConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.VirtualMachineConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.ImageReferenceArgs;
import com.pulumi.azurenative.batch.inputs.ScaleSettingsArgs;
import com.pulumi.azurenative.batch.inputs.FixedScaleSettingsArgs;
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 pool = new Pool("pool", PoolArgs.builder()
.accountName("sampleacct")
.deploymentConfiguration(DeploymentConfigurationArgs.builder()
.virtualMachineConfiguration(VirtualMachineConfigurationArgs.builder()
.imageReference(ImageReferenceArgs.builder()
.offer("UbuntuServer")
.publisher("Canonical")
.sku("18_04-lts-gen2")
.version("latest")
.build())
.nodeAgentSkuId("batch.node.ubuntu 18.04")
.build())
.build())
.poolName("testpool")
.resourceGroupName("default-azurebatch-japaneast")
.resourceTags(Map.ofEntries(
Map.entry("TagName1", "TagValue1"),
Map.entry("TagName2", "TagValue2")
))
.scaleSettings(ScaleSettingsArgs.builder()
.fixedScale(FixedScaleSettingsArgs.builder()
.targetDedicatedNodes(1)
.targetLowPriorityNodes(0)
.build())
.build())
.vmSize("Standard_d4s_v3")
.build());
}
}

CreatePool - SecurityProfile

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var pool = new AzureNative.Batch.Pool("pool", new()
{
AccountName = "sampleacct",
DeploymentConfiguration = new AzureNative.Batch.Inputs.DeploymentConfigurationArgs
{
VirtualMachineConfiguration = new AzureNative.Batch.Inputs.VirtualMachineConfigurationArgs
{
ImageReference = new AzureNative.Batch.Inputs.ImageReferenceArgs
{
Offer = "UbuntuServer",
Publisher = "Canonical",
Sku = "18_04-lts-gen2",
Version = "latest",
},
NodeAgentSkuId = "batch.node.ubuntu 18.04",
SecurityProfile = new AzureNative.Batch.Inputs.SecurityProfileArgs
{
EncryptionAtHost = true,
SecurityType = AzureNative.Batch.SecurityTypes.TrustedLaunch,
UefiSettings = new AzureNative.Batch.Inputs.UefiSettingsArgs
{
VTpmEnabled = false,
},
},
},
},
PoolName = "testpool",
ResourceGroupName = "default-azurebatch-japaneast",
ScaleSettings = new AzureNative.Batch.Inputs.ScaleSettingsArgs
{
FixedScale = new AzureNative.Batch.Inputs.FixedScaleSettingsArgs
{
TargetDedicatedNodes = 1,
TargetLowPriorityNodes = 0,
},
},
VmSize = "Standard_d4s_v3",
});
});
package main
import (
batch "github.com/pulumi/pulumi-azure-native-sdk/batch/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := batch.NewPool(ctx, "pool", &batch.PoolArgs{
AccountName: pulumi.String("sampleacct"),
DeploymentConfiguration: &batch.DeploymentConfigurationArgs{
VirtualMachineConfiguration: &batch.VirtualMachineConfigurationArgs{
ImageReference: &batch.ImageReferenceArgs{
Offer: pulumi.String("UbuntuServer"),
Publisher: pulumi.String("Canonical"),
Sku: pulumi.String("18_04-lts-gen2"),
Version: pulumi.String("latest"),
},
NodeAgentSkuId: pulumi.String("batch.node.ubuntu 18.04"),
SecurityProfile: &batch.SecurityProfileArgs{
EncryptionAtHost: pulumi.Bool(true),
SecurityType: batch.SecurityTypesTrustedLaunch,
UefiSettings: &batch.UefiSettingsArgs{
VTpmEnabled: pulumi.Bool(false),
},
},
},
},
PoolName: pulumi.String("testpool"),
ResourceGroupName: pulumi.String("default-azurebatch-japaneast"),
ScaleSettings: &batch.ScaleSettingsArgs{
FixedScale: &batch.FixedScaleSettingsArgs{
TargetDedicatedNodes: pulumi.Int(1),
TargetLowPriorityNodes: pulumi.Int(0),
},
},
VmSize: pulumi.String("Standard_d4s_v3"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.batch.Pool;
import com.pulumi.azurenative.batch.PoolArgs;
import com.pulumi.azurenative.batch.inputs.DeploymentConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.VirtualMachineConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.ImageReferenceArgs;
import com.pulumi.azurenative.batch.inputs.SecurityProfileArgs;
import com.pulumi.azurenative.batch.inputs.UefiSettingsArgs;
import com.pulumi.azurenative.batch.inputs.ScaleSettingsArgs;
import com.pulumi.azurenative.batch.inputs.FixedScaleSettingsArgs;
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 pool = new Pool("pool", PoolArgs.builder()
.accountName("sampleacct")
.deploymentConfiguration(DeploymentConfigurationArgs.builder()
.virtualMachineConfiguration(VirtualMachineConfigurationArgs.builder()
.imageReference(ImageReferenceArgs.builder()
.offer("UbuntuServer")
.publisher("Canonical")
.sku("18_04-lts-gen2")
.version("latest")
.build())
.nodeAgentSkuId("batch.node.ubuntu 18.04")
.securityProfile(SecurityProfileArgs.builder()
.encryptionAtHost(true)
.securityType("trustedLaunch")
.uefiSettings(UefiSettingsArgs.builder()
.vTpmEnabled(false)
.build())
.build())
.build())
.build())
.poolName("testpool")
.resourceGroupName("default-azurebatch-japaneast")
.scaleSettings(ScaleSettingsArgs.builder()
.fixedScale(FixedScaleSettingsArgs.builder()
.targetDedicatedNodes(1)
.targetLowPriorityNodes(0)
.build())
.build())
.vmSize("Standard_d4s_v3")
.build());
}
}

CreatePool - Tags

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var pool = new AzureNative.Batch.Pool("pool", new()
{
AccountName = "sampleacct",
DeploymentConfiguration = new AzureNative.Batch.Inputs.DeploymentConfigurationArgs
{
VirtualMachineConfiguration = new AzureNative.Batch.Inputs.VirtualMachineConfigurationArgs
{
ImageReference = new AzureNative.Batch.Inputs.ImageReferenceArgs
{
Offer = "0001-com-ubuntu-server-jammy",
Publisher = "Canonical",
Sku = "22_04-lts",
Version = "latest",
},
NodeAgentSkuId = "batch.node.ubuntu 22.04",
},
},
PoolName = "testpool",
ResourceGroupName = "default-azurebatch-japaneast",
ScaleSettings = new AzureNative.Batch.Inputs.ScaleSettingsArgs
{
FixedScale = new AzureNative.Batch.Inputs.FixedScaleSettingsArgs
{
TargetDedicatedNodes = 1,
TargetLowPriorityNodes = 0,
},
},
Tags =
{
{ "TagName1", "TagValue1" },
{ "TagName2", "TagValue2" },
},
VmSize = "Standard_d4s_v3",
});
});
package main
import (
batch "github.com/pulumi/pulumi-azure-native-sdk/batch/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := batch.NewPool(ctx, "pool", &batch.PoolArgs{
AccountName: pulumi.String("sampleacct"),
DeploymentConfiguration: &batch.DeploymentConfigurationArgs{
VirtualMachineConfiguration: &batch.VirtualMachineConfigurationArgs{
ImageReference: &batch.ImageReferenceArgs{
Offer: pulumi.String("0001-com-ubuntu-server-jammy"),
Publisher: pulumi.String("Canonical"),
Sku: pulumi.String("22_04-lts"),
Version: pulumi.String("latest"),
},
NodeAgentSkuId: pulumi.String("batch.node.ubuntu 22.04"),
},
},
PoolName: pulumi.String("testpool"),
ResourceGroupName: pulumi.String("default-azurebatch-japaneast"),
ScaleSettings: &batch.ScaleSettingsArgs{
FixedScale: &batch.FixedScaleSettingsArgs{
TargetDedicatedNodes: pulumi.Int(1),
TargetLowPriorityNodes: pulumi.Int(0),
},
},
Tags: pulumi.StringMap{
"TagName1": pulumi.String("TagValue1"),
"TagName2": pulumi.String("TagValue2"),
},
VmSize: pulumi.String("Standard_d4s_v3"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.batch.Pool;
import com.pulumi.azurenative.batch.PoolArgs;
import com.pulumi.azurenative.batch.inputs.DeploymentConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.VirtualMachineConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.ImageReferenceArgs;
import com.pulumi.azurenative.batch.inputs.ScaleSettingsArgs;
import com.pulumi.azurenative.batch.inputs.FixedScaleSettingsArgs;
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 pool = new Pool("pool", PoolArgs.builder()
.accountName("sampleacct")
.deploymentConfiguration(DeploymentConfigurationArgs.builder()
.virtualMachineConfiguration(VirtualMachineConfigurationArgs.builder()
.imageReference(ImageReferenceArgs.builder()
.offer("0001-com-ubuntu-server-jammy")
.publisher("Canonical")
.sku("22_04-lts")
.version("latest")
.build())
.nodeAgentSkuId("batch.node.ubuntu 22.04")
.build())
.build())
.poolName("testpool")
.resourceGroupName("default-azurebatch-japaneast")
.scaleSettings(ScaleSettingsArgs.builder()
.fixedScale(FixedScaleSettingsArgs.builder()
.targetDedicatedNodes(1)
.targetLowPriorityNodes(0)
.build())
.build())
.tags(Map.ofEntries(
Map.entry("TagName1", "TagValue1"),
Map.entry("TagName2", "TagValue2")
))
.vmSize("Standard_d4s_v3")
.build());
}
}

CreatePool - UpgradePolicy

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var pool = new AzureNative.Batch.Pool("pool", new()
{
AccountName = "sampleacct",
DeploymentConfiguration = new AzureNative.Batch.Inputs.DeploymentConfigurationArgs
{
VirtualMachineConfiguration = new AzureNative.Batch.Inputs.VirtualMachineConfigurationArgs
{
ImageReference = new AzureNative.Batch.Inputs.ImageReferenceArgs
{
Offer = "WindowsServer",
Publisher = "MicrosoftWindowsServer",
Sku = "2019-datacenter-smalldisk",
Version = "latest",
},
NodeAgentSkuId = "batch.node.windows amd64",
NodePlacementConfiguration = new AzureNative.Batch.Inputs.NodePlacementConfigurationArgs
{
Policy = AzureNative.Batch.NodePlacementPolicyType.Zonal,
},
WindowsConfiguration = new AzureNative.Batch.Inputs.WindowsConfigurationArgs
{
EnableAutomaticUpdates = false,
},
},
},
PoolName = "testpool",
ResourceGroupName = "default-azurebatch-japaneast",
ScaleSettings = new AzureNative.Batch.Inputs.ScaleSettingsArgs
{
FixedScale = new AzureNative.Batch.Inputs.FixedScaleSettingsArgs
{
TargetDedicatedNodes = 2,
TargetLowPriorityNodes = 0,
},
},
UpgradePolicy = new AzureNative.Batch.Inputs.UpgradePolicyArgs
{
AutomaticOSUpgradePolicy = new AzureNative.Batch.Inputs.AutomaticOSUpgradePolicyArgs
{
DisableAutomaticRollback = true,
EnableAutomaticOSUpgrade = true,
OsRollingUpgradeDeferral = true,
UseRollingUpgradePolicy = true,
},
Mode = AzureNative.Batch.UpgradeMode.Automatic,
RollingUpgradePolicy = new AzureNative.Batch.Inputs.RollingUpgradePolicyArgs
{
EnableCrossZoneUpgrade = true,
MaxBatchInstancePercent = 20,
MaxUnhealthyInstancePercent = 20,
MaxUnhealthyUpgradedInstancePercent = 20,
PauseTimeBetweenBatches = "PT0S",
PrioritizeUnhealthyInstances = false,
RollbackFailedInstancesOnPolicyBreach = false,
},
},
VmSize = "Standard_d4s_v3",
});
});
package main
import (
batch "github.com/pulumi/pulumi-azure-native-sdk/batch/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := batch.NewPool(ctx, "pool", &batch.PoolArgs{
AccountName: pulumi.String("sampleacct"),
DeploymentConfiguration: &batch.DeploymentConfigurationArgs{
VirtualMachineConfiguration: &batch.VirtualMachineConfigurationArgs{
ImageReference: &batch.ImageReferenceArgs{
Offer: pulumi.String("WindowsServer"),
Publisher: pulumi.String("MicrosoftWindowsServer"),
Sku: pulumi.String("2019-datacenter-smalldisk"),
Version: pulumi.String("latest"),
},
NodeAgentSkuId: pulumi.String("batch.node.windows amd64"),
NodePlacementConfiguration: &batch.NodePlacementConfigurationArgs{
Policy: batch.NodePlacementPolicyTypeZonal,
},
WindowsConfiguration: &batch.WindowsConfigurationArgs{
EnableAutomaticUpdates: pulumi.Bool(false),
},
},
},
PoolName: pulumi.String("testpool"),
ResourceGroupName: pulumi.String("default-azurebatch-japaneast"),
ScaleSettings: &batch.ScaleSettingsArgs{
FixedScale: &batch.FixedScaleSettingsArgs{
TargetDedicatedNodes: pulumi.Int(2),
TargetLowPriorityNodes: pulumi.Int(0),
},
},
UpgradePolicy: &batch.UpgradePolicyArgs{
AutomaticOSUpgradePolicy: &batch.AutomaticOSUpgradePolicyArgs{
DisableAutomaticRollback: pulumi.Bool(true),
EnableAutomaticOSUpgrade: pulumi.Bool(true),
OsRollingUpgradeDeferral: pulumi.Bool(true),
UseRollingUpgradePolicy: pulumi.Bool(true),
},
Mode: batch.UpgradeModeAutomatic,
RollingUpgradePolicy: &batch.RollingUpgradePolicyArgs{
EnableCrossZoneUpgrade: pulumi.Bool(true),
MaxBatchInstancePercent: pulumi.Int(20),
MaxUnhealthyInstancePercent: pulumi.Int(20),
MaxUnhealthyUpgradedInstancePercent: pulumi.Int(20),
PauseTimeBetweenBatches: pulumi.String("PT0S"),
PrioritizeUnhealthyInstances: pulumi.Bool(false),
RollbackFailedInstancesOnPolicyBreach: pulumi.Bool(false),
},
},
VmSize: pulumi.String("Standard_d4s_v3"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.batch.Pool;
import com.pulumi.azurenative.batch.PoolArgs;
import com.pulumi.azurenative.batch.inputs.DeploymentConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.VirtualMachineConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.ImageReferenceArgs;
import com.pulumi.azurenative.batch.inputs.NodePlacementConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.WindowsConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.ScaleSettingsArgs;
import com.pulumi.azurenative.batch.inputs.FixedScaleSettingsArgs;
import com.pulumi.azurenative.batch.inputs.UpgradePolicyArgs;
import com.pulumi.azurenative.batch.inputs.AutomaticOSUpgradePolicyArgs;
import com.pulumi.azurenative.batch.inputs.RollingUpgradePolicyArgs;
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 pool = new Pool("pool", PoolArgs.builder()
.accountName("sampleacct")
.deploymentConfiguration(DeploymentConfigurationArgs.builder()
.virtualMachineConfiguration(VirtualMachineConfigurationArgs.builder()
.imageReference(ImageReferenceArgs.builder()
.offer("WindowsServer")
.publisher("MicrosoftWindowsServer")
.sku("2019-datacenter-smalldisk")
.version("latest")
.build())
.nodeAgentSkuId("batch.node.windows amd64")
.nodePlacementConfiguration(NodePlacementConfigurationArgs.builder()
.policy("Zonal")
.build())
.windowsConfiguration(WindowsConfigurationArgs.builder()
.enableAutomaticUpdates(false)
.build())
.build())
.build())
.poolName("testpool")
.resourceGroupName("default-azurebatch-japaneast")
.scaleSettings(ScaleSettingsArgs.builder()
.fixedScale(FixedScaleSettingsArgs.builder()
.targetDedicatedNodes(2)
.targetLowPriorityNodes(0)
.build())
.build())
.upgradePolicy(UpgradePolicyArgs.builder()
.automaticOSUpgradePolicy(AutomaticOSUpgradePolicyArgs.builder()
.disableAutomaticRollback(true)
.enableAutomaticOSUpgrade(true)
.osRollingUpgradeDeferral(true)
.useRollingUpgradePolicy(true)
.build())
.mode("automatic")
.rollingUpgradePolicy(RollingUpgradePolicyArgs.builder()
.enableCrossZoneUpgrade(true)
.maxBatchInstancePercent(20)
.maxUnhealthyInstancePercent(20)
.maxUnhealthyUpgradedInstancePercent(20)
.pauseTimeBetweenBatches("PT0S")
.prioritizeUnhealthyInstances(false)
.rollbackFailedInstancesOnPolicyBreach(false)
.build())
.build())
.vmSize("Standard_d4s_v3")
.build());
}
}

CreatePool - VirtualMachineConfiguration Extensions

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var pool = new AzureNative.Batch.Pool("pool", new()
{
AccountName = "sampleacct",
DeploymentConfiguration = new AzureNative.Batch.Inputs.DeploymentConfigurationArgs
{
VirtualMachineConfiguration = new AzureNative.Batch.Inputs.VirtualMachineConfigurationArgs
{
Extensions = new[]
{
new AzureNative.Batch.Inputs.VMExtensionArgs
{
AutoUpgradeMinorVersion = true,
EnableAutomaticUpgrade = true,
Name = "batchextension1",
Publisher = "Microsoft.Azure.KeyVault",
Settings = new Dictionary<string, object?>
{
["authenticationSettingsKey"] = "authenticationSettingsValue",
["secretsManagementSettingsKey"] = "secretsManagementSettingsValue",
},
Type = "KeyVaultForLinux",
TypeHandlerVersion = "2.0",
},
},
ImageReference = new AzureNative.Batch.Inputs.ImageReferenceArgs
{
Offer = "0001-com-ubuntu-server-focal",
Publisher = "Canonical",
Sku = "20_04-lts",
},
NodeAgentSkuId = "batch.node.ubuntu 20.04",
},
},
PoolName = "testpool",
ResourceGroupName = "default-azurebatch-japaneast",
ScaleSettings = new AzureNative.Batch.Inputs.ScaleSettingsArgs
{
AutoScale = new AzureNative.Batch.Inputs.AutoScaleSettingsArgs
{
EvaluationInterval = "PT5M",
Formula = "$TargetDedicatedNodes=1",
},
},
TargetNodeCommunicationMode = AzureNative.Batch.NodeCommunicationMode.Default,
VmSize = "STANDARD_D4",
});
});
package main
import (
batch "github.com/pulumi/pulumi-azure-native-sdk/batch/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := batch.NewPool(ctx, "pool", &batch.PoolArgs{
AccountName: pulumi.String("sampleacct"),
DeploymentConfiguration: &batch.DeploymentConfigurationArgs{
VirtualMachineConfiguration: &batch.VirtualMachineConfigurationArgs{
Extensions: batch.VMExtensionArray{
&batch.VMExtensionArgs{
AutoUpgradeMinorVersion: pulumi.Bool(true),
EnableAutomaticUpgrade: pulumi.Bool(true),
Name: pulumi.String("batchextension1"),
Publisher: pulumi.String("Microsoft.Azure.KeyVault"),
Settings: pulumi.Any(map[string]interface{}{
"authenticationSettingsKey": "authenticationSettingsValue",
"secretsManagementSettingsKey": "secretsManagementSettingsValue",
}),
Type: pulumi.String("KeyVaultForLinux"),
TypeHandlerVersion: pulumi.String("2.0"),
},
},
ImageReference: &batch.ImageReferenceArgs{
Offer: pulumi.String("0001-com-ubuntu-server-focal"),
Publisher: pulumi.String("Canonical"),
Sku: pulumi.String("20_04-lts"),
},
NodeAgentSkuId: pulumi.String("batch.node.ubuntu 20.04"),
},
},
PoolName: pulumi.String("testpool"),
ResourceGroupName: pulumi.String("default-azurebatch-japaneast"),
ScaleSettings: &batch.ScaleSettingsArgs{
AutoScale: &batch.AutoScaleSettingsArgs{
EvaluationInterval: pulumi.String("PT5M"),
Formula: pulumi.String("$TargetDedicatedNodes=1"),
},
},
TargetNodeCommunicationMode: batch.NodeCommunicationModeDefault,
VmSize: pulumi.String("STANDARD_D4"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.batch.Pool;
import com.pulumi.azurenative.batch.PoolArgs;
import com.pulumi.azurenative.batch.inputs.DeploymentConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.VirtualMachineConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.ImageReferenceArgs;
import com.pulumi.azurenative.batch.inputs.ScaleSettingsArgs;
import com.pulumi.azurenative.batch.inputs.AutoScaleSettingsArgs;
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 pool = new Pool("pool", PoolArgs.builder()
.accountName("sampleacct")
.deploymentConfiguration(DeploymentConfigurationArgs.builder()
.virtualMachineConfiguration(VirtualMachineConfigurationArgs.builder()
.extensions(VMExtensionArgs.builder()
.autoUpgradeMinorVersion(true)
.enableAutomaticUpgrade(true)
.name("batchextension1")
.publisher("Microsoft.Azure.KeyVault")
.settings(Map.ofEntries(
Map.entry("authenticationSettingsKey", "authenticationSettingsValue"),
Map.entry("secretsManagementSettingsKey", "secretsManagementSettingsValue")
))
.type("KeyVaultForLinux")
.typeHandlerVersion("2.0")
.build())
.imageReference(ImageReferenceArgs.builder()
.offer("0001-com-ubuntu-server-focal")
.publisher("Canonical")
.sku("20_04-lts")
.build())
.nodeAgentSkuId("batch.node.ubuntu 20.04")
.build())
.build())
.poolName("testpool")
.resourceGroupName("default-azurebatch-japaneast")
.scaleSettings(ScaleSettingsArgs.builder()
.autoScale(AutoScaleSettingsArgs.builder()
.evaluationInterval("PT5M")
.formula("$TargetDedicatedNodes=1")
.build())
.build())
.targetNodeCommunicationMode("Default")
.vmSize("STANDARD_D4")
.build());
}
}

CreatePool - VirtualMachineConfiguration OSDisk

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var pool = new AzureNative.Batch.Pool("pool", new()
{
AccountName = "sampleacct",
DeploymentConfiguration = new AzureNative.Batch.Inputs.DeploymentConfigurationArgs
{
VirtualMachineConfiguration = new AzureNative.Batch.Inputs.VirtualMachineConfigurationArgs
{
ImageReference = new AzureNative.Batch.Inputs.ImageReferenceArgs
{
Offer = "windowsserver",
Publisher = "microsoftwindowsserver",
Sku = "2022-datacenter-smalldisk",
},
NodeAgentSkuId = "batch.node.windows amd64",
OsDisk = new AzureNative.Batch.Inputs.OSDiskArgs
{
Caching = AzureNative.Batch.CachingType.ReadWrite,
DiskSizeGB = 100,
ManagedDisk = new AzureNative.Batch.Inputs.ManagedDiskArgs
{
StorageAccountType = AzureNative.Batch.StorageAccountType.StandardSSD_LRS,
},
WriteAcceleratorEnabled = false,
},
},
},
PoolName = "testpool",
ResourceGroupName = "default-azurebatch-japaneast",
ScaleSettings = new AzureNative.Batch.Inputs.ScaleSettingsArgs
{
FixedScale = new AzureNative.Batch.Inputs.FixedScaleSettingsArgs
{
TargetDedicatedNodes = 1,
TargetLowPriorityNodes = 0,
},
},
VmSize = "Standard_d2s_v3",
});
});
package main
import (
batch "github.com/pulumi/pulumi-azure-native-sdk/batch/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := batch.NewPool(ctx, "pool", &batch.PoolArgs{
AccountName: pulumi.String("sampleacct"),
DeploymentConfiguration: &batch.DeploymentConfigurationArgs{
VirtualMachineConfiguration: &batch.VirtualMachineConfigurationArgs{
ImageReference: &batch.ImageReferenceArgs{
Offer: pulumi.String("windowsserver"),
Publisher: pulumi.String("microsoftwindowsserver"),
Sku: pulumi.String("2022-datacenter-smalldisk"),
},
NodeAgentSkuId: pulumi.String("batch.node.windows amd64"),
OsDisk: &batch.OSDiskArgs{
Caching: batch.CachingTypeReadWrite,
DiskSizeGB: pulumi.Int(100),
ManagedDisk: &batch.ManagedDiskArgs{
StorageAccountType: batch.StorageAccountType_StandardSSD_LRS,
},
WriteAcceleratorEnabled: pulumi.Bool(false),
},
},
},
PoolName: pulumi.String("testpool"),
ResourceGroupName: pulumi.String("default-azurebatch-japaneast"),
ScaleSettings: &batch.ScaleSettingsArgs{
FixedScale: &batch.FixedScaleSettingsArgs{
TargetDedicatedNodes: pulumi.Int(1),
TargetLowPriorityNodes: pulumi.Int(0),
},
},
VmSize: pulumi.String("Standard_d2s_v3"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.batch.Pool;
import com.pulumi.azurenative.batch.PoolArgs;
import com.pulumi.azurenative.batch.inputs.DeploymentConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.VirtualMachineConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.ImageReferenceArgs;
import com.pulumi.azurenative.batch.inputs.OSDiskArgs;
import com.pulumi.azurenative.batch.inputs.ManagedDiskArgs;
import com.pulumi.azurenative.batch.inputs.ScaleSettingsArgs;
import com.pulumi.azurenative.batch.inputs.FixedScaleSettingsArgs;
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 pool = new Pool("pool", PoolArgs.builder()
.accountName("sampleacct")
.deploymentConfiguration(DeploymentConfigurationArgs.builder()
.virtualMachineConfiguration(VirtualMachineConfigurationArgs.builder()
.imageReference(ImageReferenceArgs.builder()
.offer("windowsserver")
.publisher("microsoftwindowsserver")
.sku("2022-datacenter-smalldisk")
.build())
.nodeAgentSkuId("batch.node.windows amd64")
.osDisk(OSDiskArgs.builder()
.caching("ReadWrite")
.diskSizeGB(100)
.managedDisk(ManagedDiskArgs.builder()
.storageAccountType("StandardSSD_LRS")
.build())
.writeAcceleratorEnabled(false)
.build())
.build())
.build())
.poolName("testpool")
.resourceGroupName("default-azurebatch-japaneast")
.scaleSettings(ScaleSettingsArgs.builder()
.fixedScale(FixedScaleSettingsArgs.builder()
.targetDedicatedNodes(1)
.targetLowPriorityNodes(0)
.build())
.build())
.vmSize("Standard_d2s_v3")
.build());
}
}

CreatePool - VirtualMachineConfiguration ServiceArtifactReference

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var pool = new AzureNative.Batch.Pool("pool", new()
{
AccountName = "sampleacct",
DeploymentConfiguration = new AzureNative.Batch.Inputs.DeploymentConfigurationArgs
{
VirtualMachineConfiguration = new AzureNative.Batch.Inputs.VirtualMachineConfigurationArgs
{
ImageReference = new AzureNative.Batch.Inputs.ImageReferenceArgs
{
Offer = "WindowsServer",
Publisher = "MicrosoftWindowsServer",
Sku = "2019-datacenter-smalldisk",
Version = "latest",
},
NodeAgentSkuId = "batch.node.windows amd64",
ServiceArtifactReference = new AzureNative.Batch.Inputs.ServiceArtifactReferenceArgs
{
Id = "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Compute/galleries/myGallery/serviceArtifacts/myServiceArtifact/vmArtifactsProfiles/vmArtifactsProfile",
},
WindowsConfiguration = new AzureNative.Batch.Inputs.WindowsConfigurationArgs
{
EnableAutomaticUpdates = false,
},
},
},
PoolName = "testpool",
ResourceGroupName = "default-azurebatch-japaneast",
ScaleSettings = new AzureNative.Batch.Inputs.ScaleSettingsArgs
{
FixedScale = new AzureNative.Batch.Inputs.FixedScaleSettingsArgs
{
TargetDedicatedNodes = 2,
TargetLowPriorityNodes = 0,
},
},
UpgradePolicy = new AzureNative.Batch.Inputs.UpgradePolicyArgs
{
AutomaticOSUpgradePolicy = new AzureNative.Batch.Inputs.AutomaticOSUpgradePolicyArgs
{
EnableAutomaticOSUpgrade = true,
},
Mode = AzureNative.Batch.UpgradeMode.Automatic,
},
VmSize = "Standard_d4s_v3",
});
});
package main
import (
batch "github.com/pulumi/pulumi-azure-native-sdk/batch/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := batch.NewPool(ctx, "pool", &batch.PoolArgs{
AccountName: pulumi.String("sampleacct"),
DeploymentConfiguration: &batch.DeploymentConfigurationArgs{
VirtualMachineConfiguration: &batch.VirtualMachineConfigurationArgs{
ImageReference: &batch.ImageReferenceArgs{
Offer: pulumi.String("WindowsServer"),
Publisher: pulumi.String("MicrosoftWindowsServer"),
Sku: pulumi.String("2019-datacenter-smalldisk"),
Version: pulumi.String("latest"),
},
NodeAgentSkuId: pulumi.String("batch.node.windows amd64"),
ServiceArtifactReference: &batch.ServiceArtifactReferenceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Compute/galleries/myGallery/serviceArtifacts/myServiceArtifact/vmArtifactsProfiles/vmArtifactsProfile"),
},
WindowsConfiguration: &batch.WindowsConfigurationArgs{
EnableAutomaticUpdates: pulumi.Bool(false),
},
},
},
PoolName: pulumi.String("testpool"),
ResourceGroupName: pulumi.String("default-azurebatch-japaneast"),
ScaleSettings: &batch.ScaleSettingsArgs{
FixedScale: &batch.FixedScaleSettingsArgs{
TargetDedicatedNodes: pulumi.Int(2),
TargetLowPriorityNodes: pulumi.Int(0),
},
},
UpgradePolicy: &batch.UpgradePolicyArgs{
AutomaticOSUpgradePolicy: &batch.AutomaticOSUpgradePolicyArgs{
EnableAutomaticOSUpgrade: pulumi.Bool(true),
},
Mode: batch.UpgradeModeAutomatic,
},
VmSize: pulumi.String("Standard_d4s_v3"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.batch.Pool;
import com.pulumi.azurenative.batch.PoolArgs;
import com.pulumi.azurenative.batch.inputs.DeploymentConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.VirtualMachineConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.ImageReferenceArgs;
import com.pulumi.azurenative.batch.inputs.ServiceArtifactReferenceArgs;
import com.pulumi.azurenative.batch.inputs.WindowsConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.ScaleSettingsArgs;
import com.pulumi.azurenative.batch.inputs.FixedScaleSettingsArgs;
import com.pulumi.azurenative.batch.inputs.UpgradePolicyArgs;
import com.pulumi.azurenative.batch.inputs.AutomaticOSUpgradePolicyArgs;
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 pool = new Pool("pool", PoolArgs.builder()
.accountName("sampleacct")
.deploymentConfiguration(DeploymentConfigurationArgs.builder()
.virtualMachineConfiguration(VirtualMachineConfigurationArgs.builder()
.imageReference(ImageReferenceArgs.builder()
.offer("WindowsServer")
.publisher("MicrosoftWindowsServer")
.sku("2019-datacenter-smalldisk")
.version("latest")
.build())
.nodeAgentSkuId("batch.node.windows amd64")
.serviceArtifactReference(ServiceArtifactReferenceArgs.builder()
.id("/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Compute/galleries/myGallery/serviceArtifacts/myServiceArtifact/vmArtifactsProfiles/vmArtifactsProfile")
.build())
.windowsConfiguration(WindowsConfigurationArgs.builder()
.enableAutomaticUpdates(false)
.build())
.build())
.build())
.poolName("testpool")
.resourceGroupName("default-azurebatch-japaneast")
.scaleSettings(ScaleSettingsArgs.builder()
.fixedScale(FixedScaleSettingsArgs.builder()
.targetDedicatedNodes(2)
.targetLowPriorityNodes(0)
.build())
.build())
.upgradePolicy(UpgradePolicyArgs.builder()
.automaticOSUpgradePolicy(AutomaticOSUpgradePolicyArgs.builder()
.enableAutomaticOSUpgrade(true)
.build())
.mode("automatic")
.build())
.vmSize("Standard_d4s_v3")
.build());
}
}

CreatePool - accelerated networking

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var pool = new AzureNative.Batch.Pool("pool", new()
{
AccountName = "sampleacct",
DeploymentConfiguration = new AzureNative.Batch.Inputs.DeploymentConfigurationArgs
{
VirtualMachineConfiguration = new AzureNative.Batch.Inputs.VirtualMachineConfigurationArgs
{
ImageReference = new AzureNative.Batch.Inputs.ImageReferenceArgs
{
Offer = "WindowsServer",
Publisher = "MicrosoftWindowsServer",
Sku = "2016-datacenter-smalldisk",
Version = "latest",
},
NodeAgentSkuId = "batch.node.windows amd64",
},
},
NetworkConfiguration = new AzureNative.Batch.Inputs.NetworkConfigurationArgs
{
EnableAcceleratedNetworking = true,
SubnetId = "/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123",
},
PoolName = "testpool",
ResourceGroupName = "default-azurebatch-japaneast",
ScaleSettings = new AzureNative.Batch.Inputs.ScaleSettingsArgs
{
FixedScale = new AzureNative.Batch.Inputs.FixedScaleSettingsArgs
{
TargetDedicatedNodes = 1,
TargetLowPriorityNodes = 0,
},
},
VmSize = "STANDARD_D1_V2",
});
});
package main
import (
batch "github.com/pulumi/pulumi-azure-native-sdk/batch/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := batch.NewPool(ctx, "pool", &batch.PoolArgs{
AccountName: pulumi.String("sampleacct"),
DeploymentConfiguration: &batch.DeploymentConfigurationArgs{
VirtualMachineConfiguration: &batch.VirtualMachineConfigurationArgs{
ImageReference: &batch.ImageReferenceArgs{
Offer: pulumi.String("WindowsServer"),
Publisher: pulumi.String("MicrosoftWindowsServer"),
Sku: pulumi.String("2016-datacenter-smalldisk"),
Version: pulumi.String("latest"),
},
NodeAgentSkuId: pulumi.String("batch.node.windows amd64"),
},
},
NetworkConfiguration: &batch.NetworkConfigurationArgs{
EnableAcceleratedNetworking: pulumi.Bool(true),
SubnetId: pulumi.String("/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123"),
},
PoolName: pulumi.String("testpool"),
ResourceGroupName: pulumi.String("default-azurebatch-japaneast"),
ScaleSettings: &batch.ScaleSettingsArgs{
FixedScale: &batch.FixedScaleSettingsArgs{
TargetDedicatedNodes: pulumi.Int(1),
TargetLowPriorityNodes: pulumi.Int(0),
},
},
VmSize: pulumi.String("STANDARD_D1_V2"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.batch.Pool;
import com.pulumi.azurenative.batch.PoolArgs;
import com.pulumi.azurenative.batch.inputs.DeploymentConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.VirtualMachineConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.ImageReferenceArgs;
import com.pulumi.azurenative.batch.inputs.NetworkConfigurationArgs;
import com.pulumi.azurenative.batch.inputs.ScaleSettingsArgs;
import com.pulumi.azurenative.batch.inputs.FixedScaleSettingsArgs;
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 pool = new Pool("pool", PoolArgs.builder()
.accountName("sampleacct")
.deploymentConfiguration(DeploymentConfigurationArgs.builder()
.virtualMachineConfiguration(VirtualMachineConfigurationArgs.builder()
.imageReference(ImageReferenceArgs.builder()
.offer("WindowsServer")
.publisher("MicrosoftWindowsServer")
.sku("2016-datacenter-smalldisk")
.version("latest")
.build())
.nodeAgentSkuId("batch.node.windows amd64")
.build())
.build())
.networkConfiguration(NetworkConfigurationArgs.builder()
.enableAcceleratedNetworking(true)
.subnetId("/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123")
.build())
.poolName("testpool")
.resourceGroupName("default-azurebatch-japaneast")
.scaleSettings(ScaleSettingsArgs.builder()
.fixedScale(FixedScaleSettingsArgs.builder()
.targetDedicatedNodes(1)
.targetLowPriorityNodes(0)
.build())
.build())
.vmSize("STANDARD_D1_V2")
.build());
}
}

Import

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

$ pulumi import azure-native:batch:Pool testpool /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/pools/{poolName}

Constructors

Link copied to clipboard
constructor(accountName: Output<String>? = null, applicationLicenses: Output<List<String>>? = null, applicationPackages: Output<List<ApplicationPackageReferenceArgs>>? = null, certificates: Output<List<CertificateReferenceArgs>>? = null, deploymentConfiguration: Output<DeploymentConfigurationArgs>? = null, displayName: Output<String>? = null, identity: Output<BatchPoolIdentityArgs>? = null, interNodeCommunication: Output<InterNodeCommunicationState>? = null, metadata: Output<List<MetadataItemArgs>>? = null, mountConfiguration: Output<List<MountConfigurationArgs>>? = null, networkConfiguration: Output<NetworkConfigurationArgs>? = null, poolName: Output<String>? = null, resourceGroupName: Output<String>? = null, resourceTags: Output<Map<String, String>>? = null, scaleSettings: Output<ScaleSettingsArgs>? = null, startTask: Output<StartTaskArgs>? = null, tags: Output<Map<String, String>>? = null, targetNodeCommunicationMode: Output<NodeCommunicationMode>? = null, taskSchedulingPolicy: Output<TaskSchedulingPolicyArgs>? = null, taskSlotsPerNode: Output<Int>? = null, upgradePolicy: Output<UpgradePolicyArgs>? = null, userAccounts: Output<List<UserAccountArgs>>? = null, vmSize: Output<String>? = null)

Properties

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

The name of the Batch account.

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

The list of application licenses must be a subset of available Batch service application licenses. If a license is requested which is not supported, pool creation will fail.

Link copied to clipboard

Changes to application package references affect all new compute nodes joining the pool, but do not affect compute nodes that are already in the pool until they are rebooted or reimaged. There is a maximum of 10 application package references on any given pool.

Link copied to clipboard

For Windows compute nodes, the Batch service installs the certificates to the specified certificate store and location. For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this location. For certificates with visibility of 'remoteUser', a 'certs' directory is created in the user's home directory (e.g., /home/{user-name}/certs) and certificates are placed in that directory. Warning: This property is deprecated and will be removed after February, 2024. Please use the Azure KeyVault Extension instead.

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

The display name need not be unique and can contain any Unicode characters up to a maximum length of 1024.

Link copied to clipboard
val identity: Output<BatchPoolIdentityArgs>? = null

The type of identity used for the Batch Pool.

Link copied to clipboard

This imposes restrictions on which nodes can be assigned to the pool. Enabling this value can reduce the chance of the requested number of nodes to be allocated in the pool. If not specified, this value defaults to 'Disabled'.

Link copied to clipboard
val metadata: Output<List<MetadataItemArgs>>? = null

The Batch service does not assign any meaning to metadata; it is solely for the use of user code.

Link copied to clipboard

This supports Azure Files, NFS, CIFS/SMB, and Blobfuse.

Link copied to clipboard

The network configuration for a pool.

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

The pool name. This must be unique within the account.

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

The name of the resource group that contains the Batch account.

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

The user-defined tags to be associated with the Azure Batch Pool. When specified, these tags are propagated to the backing Azure resources associated with the pool. This property can only be specified when the Batch account was created with the poolAllocationMode property set to 'UserSubscription'.

Link copied to clipboard
val scaleSettings: Output<ScaleSettingsArgs>? = null

Defines the desired size of the pool. This can either be 'fixedScale' where the requested targetDedicatedNodes is specified, or 'autoScale' which defines a formula which is periodically reevaluated. If this property is not specified, the pool will have a fixed scale with 0 targetDedicatedNodes.

Link copied to clipboard
val startTask: Output<StartTaskArgs>? = null

In an PATCH (update) operation, this property can be set to an empty object to remove the start task from the pool.

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

The tags of the resource.

Link copied to clipboard

If omitted, the default value is Default.

Link copied to clipboard

If not specified, the default is spread.

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

The default value is 1. The maximum value is the smaller of 4 times the number of cores of the vmSize of the pool or 256.

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

Describes an upgrade policy - automatic, manual, or rolling.

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

For information about available VM sizes, see Sizes for Virtual Machines in Azure (https://learn.microsoft.com/azure/virtual-machines/sizes/overview). Batch supports all Azure VM sizes except STANDARD_A0 and those with premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series).

Functions

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