Node Type Args
Describes a node type in the cluster, each node type represents sub set of nodes in the cluster. Azure REST API version: 2023-03-01-preview. Prior API version in Azure Native 1.x: 2020-01-01-preview. Other available API versions: 2021-09-01-privatepreview, 2023-07-01-preview, 2023-09-01-preview.
Example Usage
Put a node type with auto-scale parameters
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var nodeType = new AzureNative.ServiceFabric.NodeType("nodeType", new()
{
Capacities =
{
{ "ClientConnections", "65536" },
},
ClusterName = "myCluster",
DataDiskSizeGB = 200,
DataDiskType = "Premium_LRS",
IsPrimary = false,
IsStateless = true,
MultiplePlacementGroups = true,
NodeTypeName = "BE",
PlacementProperties =
{
{ "HasSSD", "true" },
{ "NodeColor", "green" },
{ "SomeProperty", "5" },
},
ResourceGroupName = "resRg",
VmExtensions = new[]
{
new AzureNative.ServiceFabric.Inputs.VMSSExtensionArgs
{
AutoUpgradeMinorVersion = true,
Name = "Microsoft.Azure.Geneva.GenevaMonitoring",
Publisher = "Microsoft.Azure.Geneva",
Settings = null,
Type = "GenevaMonitoring",
TypeHandlerVersion = "2.0",
},
},
VmImageOffer = "WindowsServer",
VmImagePublisher = "MicrosoftWindowsServer",
VmImageSku = "2016-Datacenter-Server-Core",
VmImageVersion = "latest",
VmInstanceCount = -1,
VmManagedIdentity = new AzureNative.ServiceFabric.Inputs.VmManagedIdentityArgs
{
UserAssignedIdentities = new[]
{
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity",
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity2",
},
},
VmSecrets = new[]
{
new AzureNative.ServiceFabric.Inputs.VaultSecretGroupArgs
{
SourceVault = new AzureNative.ServiceFabric.Inputs.SubResourceArgs
{
Id = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.KeyVault/vaults/myVault",
},
VaultCertificates = new[]
{
new AzureNative.ServiceFabric.Inputs.VaultCertificateArgs
{
CertificateStore = "My",
CertificateUrl = "https://myVault.vault.azure.net:443/secrets/myCert/ef1a31d39e1f46bca33def54b6cda54c",
},
},
},
},
VmSize = "Standard_DS3",
});
});
package main
import (
"github.com/pulumi/pulumi-azure-native-sdk/servicefabric/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := servicefabric.NewNodeType(ctx, "nodeType", &servicefabric.NodeTypeArgs{
Capacities: pulumi.StringMap{
"ClientConnections": pulumi.String("65536"),
},
ClusterName: pulumi.String("myCluster"),
DataDiskSizeGB: pulumi.Int(200),
DataDiskType: pulumi.String("Premium_LRS"),
IsPrimary: pulumi.Bool(false),
IsStateless: pulumi.Bool(true),
MultiplePlacementGroups: pulumi.Bool(true),
NodeTypeName: pulumi.String("BE"),
PlacementProperties: pulumi.StringMap{
"HasSSD": pulumi.String("true"),
"NodeColor": pulumi.String("green"),
"SomeProperty": pulumi.String("5"),
},
ResourceGroupName: pulumi.String("resRg"),
VmExtensions: []servicefabric.VMSSExtensionArgs{
{
AutoUpgradeMinorVersion: pulumi.Bool(true),
Name: pulumi.String("Microsoft.Azure.Geneva.GenevaMonitoring"),
Publisher: pulumi.String("Microsoft.Azure.Geneva"),
Settings: nil,
Type: pulumi.String("GenevaMonitoring"),
TypeHandlerVersion: pulumi.String("2.0"),
},
},
VmImageOffer: pulumi.String("WindowsServer"),
VmImagePublisher: pulumi.String("MicrosoftWindowsServer"),
VmImageSku: pulumi.String("2016-Datacenter-Server-Core"),
VmImageVersion: pulumi.String("latest"),
VmInstanceCount: -1,
VmManagedIdentity: &servicefabric.VmManagedIdentityArgs{
UserAssignedIdentities: pulumi.StringArray{
pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity"),
pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity2"),
},
},
VmSecrets: []servicefabric.VaultSecretGroupArgs{
{
SourceVault: {
Id: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.KeyVault/vaults/myVault"),
},
VaultCertificates: servicefabric.VaultCertificateArray{
{
CertificateStore: pulumi.String("My"),
CertificateUrl: pulumi.String("https://myVault.vault.azure.net:443/secrets/myCert/ef1a31d39e1f46bca33def54b6cda54c"),
},
},
},
},
VmSize: pulumi.String("Standard_DS3"),
})
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.servicefabric.NodeType;
import com.pulumi.azurenative.servicefabric.NodeTypeArgs;
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 nodeType = new NodeType("nodeType", NodeTypeArgs.builder()
.capacities(Map.of("ClientConnections", "65536"))
.clusterName("myCluster")
.dataDiskSizeGB(200)
.dataDiskType("Premium_LRS")
.isPrimary(false)
.isStateless(true)
.multiplePlacementGroups(true)
.nodeTypeName("BE")
.placementProperties(Map.ofEntries(
Map.entry("HasSSD", "true"),
Map.entry("NodeColor", "green"),
Map.entry("SomeProperty", "5")
))
.resourceGroupName("resRg")
.vmExtensions(Map.ofEntries(
Map.entry("autoUpgradeMinorVersion", true),
Map.entry("name", "Microsoft.Azure.Geneva.GenevaMonitoring"),
Map.entry("publisher", "Microsoft.Azure.Geneva"),
Map.entry("settings", ),
Map.entry("type", "GenevaMonitoring"),
Map.entry("typeHandlerVersion", "2.0")
))
.vmImageOffer("WindowsServer")
.vmImagePublisher("MicrosoftWindowsServer")
.vmImageSku("2016-Datacenter-Server-Core")
.vmImageVersion("latest")
.vmInstanceCount("TODO: GenUnaryOpExpression")
.vmManagedIdentity(Map.of("userAssignedIdentities",
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity",
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity2"))
.vmSecrets(Map.ofEntries(
Map.entry("sourceVault", Map.of("id", "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.KeyVault/vaults/myVault")),
Map.entry("vaultCertificates", Map.ofEntries(
Map.entry("certificateStore", "My"),
Map.entry("certificateUrl", "https://myVault.vault.azure.net:443/secrets/myCert/ef1a31d39e1f46bca33def54b6cda54c")
))
))
.vmSize("Standard_DS3")
.build());
}
}
Put a node type with maximum parameters
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var nodeType = new AzureNative.ServiceFabric.NodeType("nodeType", new()
{
AdditionalDataDisks = new[]
{
new AzureNative.ServiceFabric.Inputs.VmssDataDiskArgs
{
DiskLetter = "F",
DiskSizeGB = 256,
DiskType = "StandardSSD_LRS",
Lun = 1,
},
new AzureNative.ServiceFabric.Inputs.VmssDataDiskArgs
{
DiskLetter = "G",
DiskSizeGB = 150,
DiskType = "Premium_LRS",
Lun = 2,
},
},
Capacities =
{
{ "ClientConnections", "65536" },
},
ClusterName = "myCluster",
DataDiskLetter = "S",
DataDiskSizeGB = 200,
DataDiskType = "Premium_LRS",
EnableAcceleratedNetworking = true,
EnableEncryptionAtHost = true,
EnableNodePublicIP = true,
EnableOverProvisioning = false,
EvictionPolicy = "Deallocate",
FrontendConfigurations = new[]
{
new AzureNative.ServiceFabric.Inputs.FrontendConfigurationArgs
{
ApplicationGatewayBackendAddressPoolId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.Network/applicationGateways/appgw-test/backendAddressPools/appgwBepoolTest",
LoadBalancerBackendAddressPoolId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.Network/loadBalancers/test-LB/backendAddressPools/LoadBalancerBEAddressPool",
LoadBalancerInboundNatPoolId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.Network/loadBalancers/test-LB/inboundNatPools/LoadBalancerNATPool",
},
},
IsPrimary = false,
IsSpotVM = true,
IsStateless = true,
MultiplePlacementGroups = true,
NatGatewayId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.Network/natGateways/myNatGateway",
NodeTypeName = "BE",
PlacementProperties =
{
{ "HasSSD", "true" },
{ "NodeColor", "green" },
{ "SomeProperty", "5" },
},
ResourceGroupName = "resRg",
SecureBootEnabled = true,
SecurityType = "TrustedLaunch",
SpotRestoreTimeout = "PT30M",
SubnetId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1",
UseDefaultPublicLoadBalancer = true,
UseEphemeralOSDisk = true,
VmExtensions = new[]
{
new AzureNative.ServiceFabric.Inputs.VMSSExtensionArgs
{
AutoUpgradeMinorVersion = true,
EnableAutomaticUpgrade = true,
ForceUpdateTag = "v.1.0",
Name = "Microsoft.Azure.Geneva.GenevaMonitoring",
Publisher = "Microsoft.Azure.Geneva",
Settings = null,
Type = "GenevaMonitoring",
TypeHandlerVersion = "2.0",
},
},
VmImageOffer = "WindowsServer",
VmImagePublisher = "MicrosoftWindowsServer",
VmImageSku = "2016-Datacenter-Server-Core",
VmImageVersion = "latest",
VmInstanceCount = 10,
VmManagedIdentity = new AzureNative.ServiceFabric.Inputs.VmManagedIdentityArgs
{
UserAssignedIdentities = new[]
{
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity",
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity2",
},
},
VmSecrets = new[]
{
new AzureNative.ServiceFabric.Inputs.VaultSecretGroupArgs
{
SourceVault = new AzureNative.ServiceFabric.Inputs.SubResourceArgs
{
Id = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.KeyVault/vaults/myVault",
},
VaultCertificates = new[]
{
new AzureNative.ServiceFabric.Inputs.VaultCertificateArgs
{
CertificateStore = "My",
CertificateUrl = "https://myVault.vault.azure.net:443/secrets/myCert/ef1a31d39e1f46bca33def54b6cda54c",
},
},
},
},
VmSetupActions = new[]
{
"EnableContainers",
"EnableHyperV",
},
VmSize = "Standard_DS3",
});
});
package main
import (
"github.com/pulumi/pulumi-azure-native-sdk/servicefabric/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := servicefabric.NewNodeType(ctx, "nodeType", &servicefabric.NodeTypeArgs{
AdditionalDataDisks: []servicefabric.VmssDataDiskArgs{
{
DiskLetter: pulumi.String("F"),
DiskSizeGB: pulumi.Int(256),
DiskType: pulumi.String("StandardSSD_LRS"),
Lun: pulumi.Int(1),
},
{
DiskLetter: pulumi.String("G"),
DiskSizeGB: pulumi.Int(150),
DiskType: pulumi.String("Premium_LRS"),
Lun: pulumi.Int(2),
},
},
Capacities: pulumi.StringMap{
"ClientConnections": pulumi.String("65536"),
},
ClusterName: pulumi.String("myCluster"),
DataDiskLetter: pulumi.String("S"),
DataDiskSizeGB: pulumi.Int(200),
DataDiskType: pulumi.String("Premium_LRS"),
EnableAcceleratedNetworking: pulumi.Bool(true),
EnableEncryptionAtHost: pulumi.Bool(true),
EnableNodePublicIP: pulumi.Bool(true),
EnableOverProvisioning: pulumi.Bool(false),
EvictionPolicy: pulumi.String("Deallocate"),
FrontendConfigurations: []servicefabric.FrontendConfigurationArgs{
{
ApplicationGatewayBackendAddressPoolId: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.Network/applicationGateways/appgw-test/backendAddressPools/appgwBepoolTest"),
LoadBalancerBackendAddressPoolId: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.Network/loadBalancers/test-LB/backendAddressPools/LoadBalancerBEAddressPool"),
LoadBalancerInboundNatPoolId: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.Network/loadBalancers/test-LB/inboundNatPools/LoadBalancerNATPool"),
},
},
IsPrimary: pulumi.Bool(false),
IsSpotVM: pulumi.Bool(true),
IsStateless: pulumi.Bool(true),
MultiplePlacementGroups: pulumi.Bool(true),
NatGatewayId: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.Network/natGateways/myNatGateway"),
NodeTypeName: pulumi.String("BE"),
PlacementProperties: pulumi.StringMap{
"HasSSD": pulumi.String("true"),
"NodeColor": pulumi.String("green"),
"SomeProperty": pulumi.String("5"),
},
ResourceGroupName: pulumi.String("resRg"),
SecureBootEnabled: pulumi.Bool(true),
SecurityType: pulumi.String("TrustedLaunch"),
SpotRestoreTimeout: pulumi.String("PT30M"),
SubnetId: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1"),
UseDefaultPublicLoadBalancer: pulumi.Bool(true),
UseEphemeralOSDisk: pulumi.Bool(true),
VmExtensions: []servicefabric.VMSSExtensionArgs{
{
AutoUpgradeMinorVersion: pulumi.Bool(true),
EnableAutomaticUpgrade: pulumi.Bool(true),
ForceUpdateTag: pulumi.String("v.1.0"),
Name: pulumi.String("Microsoft.Azure.Geneva.GenevaMonitoring"),
Publisher: pulumi.String("Microsoft.Azure.Geneva"),
Settings: nil,
Type: pulumi.String("GenevaMonitoring"),
TypeHandlerVersion: pulumi.String("2.0"),
},
},
VmImageOffer: pulumi.String("WindowsServer"),
VmImagePublisher: pulumi.String("MicrosoftWindowsServer"),
VmImageSku: pulumi.String("2016-Datacenter-Server-Core"),
VmImageVersion: pulumi.String("latest"),
VmInstanceCount: pulumi.Int(10),
VmManagedIdentity: &servicefabric.VmManagedIdentityArgs{
UserAssignedIdentities: pulumi.StringArray{
pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity"),
pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity2"),
},
},
VmSecrets: []servicefabric.VaultSecretGroupArgs{
{
SourceVault: {
Id: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.KeyVault/vaults/myVault"),
},
VaultCertificates: servicefabric.VaultCertificateArray{
{
CertificateStore: pulumi.String("My"),
CertificateUrl: pulumi.String("https://myVault.vault.azure.net:443/secrets/myCert/ef1a31d39e1f46bca33def54b6cda54c"),
},
},
},
},
VmSetupActions: pulumi.StringArray{
pulumi.String("EnableContainers"),
pulumi.String("EnableHyperV"),
},
VmSize: pulumi.String("Standard_DS3"),
})
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.servicefabric.NodeType;
import com.pulumi.azurenative.servicefabric.NodeTypeArgs;
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 nodeType = new NodeType("nodeType", NodeTypeArgs.builder()
.additionalDataDisks(
Map.ofEntries(
Map.entry("diskLetter", "F"),
Map.entry("diskSizeGB", 256),
Map.entry("diskType", "StandardSSD_LRS"),
Map.entry("lun", 1)
),
Map.ofEntries(
Map.entry("diskLetter", "G"),
Map.entry("diskSizeGB", 150),
Map.entry("diskType", "Premium_LRS"),
Map.entry("lun", 2)
))
.capacities(Map.of("ClientConnections", "65536"))
.clusterName("myCluster")
.dataDiskLetter("S")
.dataDiskSizeGB(200)
.dataDiskType("Premium_LRS")
.enableAcceleratedNetworking(true)
.enableEncryptionAtHost(true)
.enableNodePublicIP(true)
.enableOverProvisioning(false)
.evictionPolicy("Deallocate")
.frontendConfigurations(Map.ofEntries(
Map.entry("applicationGatewayBackendAddressPoolId", "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.Network/applicationGateways/appgw-test/backendAddressPools/appgwBepoolTest"),
Map.entry("loadBalancerBackendAddressPoolId", "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.Network/loadBalancers/test-LB/backendAddressPools/LoadBalancerBEAddressPool"),
Map.entry("loadBalancerInboundNatPoolId", "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.Network/loadBalancers/test-LB/inboundNatPools/LoadBalancerNATPool")
))
.isPrimary(false)
.isSpotVM(true)
.isStateless(true)
.multiplePlacementGroups(true)
.natGatewayId("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.Network/natGateways/myNatGateway")
.nodeTypeName("BE")
.placementProperties(Map.ofEntries(
Map.entry("HasSSD", "true"),
Map.entry("NodeColor", "green"),
Map.entry("SomeProperty", "5")
))
.resourceGroupName("resRg")
.secureBootEnabled(true)
.securityType("TrustedLaunch")
.spotRestoreTimeout("PT30M")
.subnetId("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1")
.useDefaultPublicLoadBalancer(true)
.useEphemeralOSDisk(true)
.vmExtensions(Map.ofEntries(
Map.entry("autoUpgradeMinorVersion", true),
Map.entry("enableAutomaticUpgrade", true),
Map.entry("forceUpdateTag", "v.1.0"),
Map.entry("name", "Microsoft.Azure.Geneva.GenevaMonitoring"),
Map.entry("publisher", "Microsoft.Azure.Geneva"),
Map.entry("settings", ),
Map.entry("type", "GenevaMonitoring"),
Map.entry("typeHandlerVersion", "2.0")
))
.vmImageOffer("WindowsServer")
.vmImagePublisher("MicrosoftWindowsServer")
.vmImageSku("2016-Datacenter-Server-Core")
.vmImageVersion("latest")
.vmInstanceCount(10)
.vmManagedIdentity(Map.of("userAssignedIdentities",
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity",
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity2"))
.vmSecrets(Map.ofEntries(
Map.entry("sourceVault", Map.of("id", "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.KeyVault/vaults/myVault")),
Map.entry("vaultCertificates", Map.ofEntries(
Map.entry("certificateStore", "My"),
Map.entry("certificateUrl", "https://myVault.vault.azure.net:443/secrets/myCert/ef1a31d39e1f46bca33def54b6cda54c")
))
))
.vmSetupActions(
"EnableContainers",
"EnableHyperV")
.vmSize("Standard_DS3")
.build());
}
}
Put a node type with minimum parameters
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var nodeType = new AzureNative.ServiceFabric.NodeType("nodeType", new()
{
ClusterName = "myCluster",
DataDiskSizeGB = 200,
IsPrimary = false,
NodeTypeName = "BE",
ResourceGroupName = "resRg",
VmImageOffer = "WindowsServer",
VmImagePublisher = "MicrosoftWindowsServer",
VmImageSku = "2016-Datacenter-Server-Core",
VmImageVersion = "latest",
VmInstanceCount = 10,
VmSize = "Standard_D3",
});
});
package main
import (
"github.com/pulumi/pulumi-azure-native-sdk/servicefabric/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := servicefabric.NewNodeType(ctx, "nodeType", &servicefabric.NodeTypeArgs{
ClusterName: pulumi.String("myCluster"),
DataDiskSizeGB: pulumi.Int(200),
IsPrimary: pulumi.Bool(false),
NodeTypeName: pulumi.String("BE"),
ResourceGroupName: pulumi.String("resRg"),
VmImageOffer: pulumi.String("WindowsServer"),
VmImagePublisher: pulumi.String("MicrosoftWindowsServer"),
VmImageSku: pulumi.String("2016-Datacenter-Server-Core"),
VmImageVersion: pulumi.String("latest"),
VmInstanceCount: pulumi.Int(10),
VmSize: pulumi.String("Standard_D3"),
})
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.servicefabric.NodeType;
import com.pulumi.azurenative.servicefabric.NodeTypeArgs;
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 nodeType = new NodeType("nodeType", NodeTypeArgs.builder()
.clusterName("myCluster")
.dataDiskSizeGB(200)
.isPrimary(false)
.nodeTypeName("BE")
.resourceGroupName("resRg")
.vmImageOffer("WindowsServer")
.vmImagePublisher("MicrosoftWindowsServer")
.vmImageSku("2016-Datacenter-Server-Core")
.vmImageVersion("latest")
.vmInstanceCount(10)
.vmSize("Standard_D3")
.build());
}
}
Put an stateless node type with temporary disk for service fabric
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var nodeType = new AzureNative.ServiceFabric.NodeType("nodeType", new()
{
ClusterName = "myCluster",
EnableEncryptionAtHost = true,
IsPrimary = false,
IsStateless = true,
MultiplePlacementGroups = true,
NodeTypeName = "BE",
ResourceGroupName = "resRg",
UseTempDataDisk = true,
VmExtensions = new[]
{
new AzureNative.ServiceFabric.Inputs.VMSSExtensionArgs
{
AutoUpgradeMinorVersion = true,
Name = "Microsoft.Azure.Geneva.GenevaMonitoring",
Publisher = "Microsoft.Azure.Geneva",
Settings = null,
Type = "GenevaMonitoring",
TypeHandlerVersion = "2.0",
},
},
VmImageOffer = "WindowsServer",
VmImagePublisher = "MicrosoftWindowsServer",
VmImageSku = "2016-Datacenter-Server-Core",
VmImageVersion = "latest",
VmInstanceCount = 10,
VmSize = "Standard_DS3",
});
});
package main
import (
"github.com/pulumi/pulumi-azure-native-sdk/servicefabric/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := servicefabric.NewNodeType(ctx, "nodeType", &servicefabric.NodeTypeArgs{
ClusterName: pulumi.String("myCluster"),
EnableEncryptionAtHost: pulumi.Bool(true),
IsPrimary: pulumi.Bool(false),
IsStateless: pulumi.Bool(true),
MultiplePlacementGroups: pulumi.Bool(true),
NodeTypeName: pulumi.String("BE"),
ResourceGroupName: pulumi.String("resRg"),
UseTempDataDisk: pulumi.Bool(true),
VmExtensions: []servicefabric.VMSSExtensionArgs{
{
AutoUpgradeMinorVersion: pulumi.Bool(true),
Name: pulumi.String("Microsoft.Azure.Geneva.GenevaMonitoring"),
Publisher: pulumi.String("Microsoft.Azure.Geneva"),
Settings: nil,
Type: pulumi.String("GenevaMonitoring"),
TypeHandlerVersion: pulumi.String("2.0"),
},
},
VmImageOffer: pulumi.String("WindowsServer"),
VmImagePublisher: pulumi.String("MicrosoftWindowsServer"),
VmImageSku: pulumi.String("2016-Datacenter-Server-Core"),
VmImageVersion: pulumi.String("latest"),
VmInstanceCount: pulumi.Int(10),
VmSize: pulumi.String("Standard_DS3"),
})
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.servicefabric.NodeType;
import com.pulumi.azurenative.servicefabric.NodeTypeArgs;
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 nodeType = new NodeType("nodeType", NodeTypeArgs.builder()
.clusterName("myCluster")
.enableEncryptionAtHost(true)
.isPrimary(false)
.isStateless(true)
.multiplePlacementGroups(true)
.nodeTypeName("BE")
.resourceGroupName("resRg")
.useTempDataDisk(true)
.vmExtensions(Map.ofEntries(
Map.entry("autoUpgradeMinorVersion", true),
Map.entry("name", "Microsoft.Azure.Geneva.GenevaMonitoring"),
Map.entry("publisher", "Microsoft.Azure.Geneva"),
Map.entry("settings", ),
Map.entry("type", "GenevaMonitoring"),
Map.entry("typeHandlerVersion", "2.0")
))
.vmImageOffer("WindowsServer")
.vmImagePublisher("MicrosoftWindowsServer")
.vmImageSku("2016-Datacenter-Server-Core")
.vmImageVersion("latest")
.vmInstanceCount(10)
.vmSize("Standard_DS3")
.build());
}
}
Put node type with custom vm image
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var nodeType = new AzureNative.ServiceFabric.NodeType("nodeType", new()
{
ClusterName = "myCluster",
DataDiskSizeGB = 200,
IsPrimary = false,
NodeTypeName = "BE",
ResourceGroupName = "resRg",
VmImageResourceId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-custom-image/providers/Microsoft.Compute/galleries/myCustomImages/images/Win2019DC",
VmInstanceCount = 10,
VmSize = "Standard_D3",
});
});
package main
import (
"github.com/pulumi/pulumi-azure-native-sdk/servicefabric/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := servicefabric.NewNodeType(ctx, "nodeType", &servicefabric.NodeTypeArgs{
ClusterName: pulumi.String("myCluster"),
DataDiskSizeGB: pulumi.Int(200),
IsPrimary: pulumi.Bool(false),
NodeTypeName: pulumi.String("BE"),
ResourceGroupName: pulumi.String("resRg"),
VmImageResourceId: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-custom-image/providers/Microsoft.Compute/galleries/myCustomImages/images/Win2019DC"),
VmInstanceCount: pulumi.Int(10),
VmSize: pulumi.String("Standard_D3"),
})
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.servicefabric.NodeType;
import com.pulumi.azurenative.servicefabric.NodeTypeArgs;
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 nodeType = new NodeType("nodeType", NodeTypeArgs.builder()
.clusterName("myCluster")
.dataDiskSizeGB(200)
.isPrimary(false)
.nodeTypeName("BE")
.resourceGroupName("resRg")
.vmImageResourceId("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-custom-image/providers/Microsoft.Compute/galleries/myCustomImages/images/Win2019DC")
.vmInstanceCount(10)
.vmSize("Standard_D3")
.build());
}
}
Put node type with dedicated hosts
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var nodeType = new AzureNative.ServiceFabric.NodeType("nodeType", new()
{
Capacities = null,
ClusterName = "myCluster",
DataDiskSizeGB = 200,
DataDiskType = "StandardSSD_LRS",
HostGroupId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testhostgroupRG/providers/Microsoft.Compute/hostGroups/testHostGroup",
IsPrimary = false,
NodeTypeName = "BE",
PlacementProperties = null,
ResourceGroupName = "resRg",
VmImageOffer = "WindowsServer",
VmImagePublisher = "MicrosoftWindowsServer",
VmImageSku = "2019-Datacenter",
VmImageVersion = "latest",
VmInstanceCount = 10,
VmSize = "Standard_D8s_v3",
Zones = new[]
{
"1",
},
});
});
package main
import (
"github.com/pulumi/pulumi-azure-native-sdk/servicefabric/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := servicefabric.NewNodeType(ctx, "nodeType", &servicefabric.NodeTypeArgs{
Capacities: nil,
ClusterName: pulumi.String("myCluster"),
DataDiskSizeGB: pulumi.Int(200),
DataDiskType: pulumi.String("StandardSSD_LRS"),
HostGroupId: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testhostgroupRG/providers/Microsoft.Compute/hostGroups/testHostGroup"),
IsPrimary: pulumi.Bool(false),
NodeTypeName: pulumi.String("BE"),
PlacementProperties: nil,
ResourceGroupName: pulumi.String("resRg"),
VmImageOffer: pulumi.String("WindowsServer"),
VmImagePublisher: pulumi.String("MicrosoftWindowsServer"),
VmImageSku: pulumi.String("2019-Datacenter"),
VmImageVersion: pulumi.String("latest"),
VmInstanceCount: pulumi.Int(10),
VmSize: pulumi.String("Standard_D8s_v3"),
Zones: pulumi.StringArray{
pulumi.String("1"),
},
})
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.servicefabric.NodeType;
import com.pulumi.azurenative.servicefabric.NodeTypeArgs;
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 nodeType = new NodeType("nodeType", NodeTypeArgs.builder()
.capacities()
.clusterName("myCluster")
.dataDiskSizeGB(200)
.dataDiskType("StandardSSD_LRS")
.hostGroupId("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testhostgroupRG/providers/Microsoft.Compute/hostGroups/testHostGroup")
.isPrimary(false)
.nodeTypeName("BE")
.placementProperties()
.resourceGroupName("resRg")
.vmImageOffer("WindowsServer")
.vmImagePublisher("MicrosoftWindowsServer")
.vmImageSku("2019-Datacenter")
.vmImageVersion("latest")
.vmInstanceCount(10)
.vmSize("Standard_D8s_v3")
.zones("1")
.build());
}
}
Put node type with shared galleries custom vm image
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var nodeType = new AzureNative.ServiceFabric.NodeType("nodeType", new()
{
ClusterName = "myCluster",
DataDiskSizeGB = 200,
IsPrimary = false,
NodeTypeName = "BE",
ResourceGroupName = "resRg",
VmInstanceCount = 10,
VmSharedGalleryImageId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-custom-image/providers/Microsoft.Compute/sharedGalleries/35349201-a0b3-405e-8a23-9f1450984307-SFSHAREDGALLERY/images/TestNoProdContainerDImage/versions/latest",
VmSize = "Standard_D3",
});
});
package main
import (
"github.com/pulumi/pulumi-azure-native-sdk/servicefabric/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := servicefabric.NewNodeType(ctx, "nodeType", &servicefabric.NodeTypeArgs{
ClusterName: pulumi.String("myCluster"),
DataDiskSizeGB: pulumi.Int(200),
IsPrimary: pulumi.Bool(false),
NodeTypeName: pulumi.String("BE"),
ResourceGroupName: pulumi.String("resRg"),
VmInstanceCount: pulumi.Int(10),
VmSharedGalleryImageId: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-custom-image/providers/Microsoft.Compute/sharedGalleries/35349201-a0b3-405e-8a23-9f1450984307-SFSHAREDGALLERY/images/TestNoProdContainerDImage/versions/latest"),
VmSize: pulumi.String("Standard_D3"),
})
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.servicefabric.NodeType;
import com.pulumi.azurenative.servicefabric.NodeTypeArgs;
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 nodeType = new NodeType("nodeType", NodeTypeArgs.builder()
.clusterName("myCluster")
.dataDiskSizeGB(200)
.isPrimary(false)
.nodeTypeName("BE")
.resourceGroupName("resRg")
.vmInstanceCount(10)
.vmSharedGalleryImageId("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-custom-image/providers/Microsoft.Compute/sharedGalleries/35349201-a0b3-405e-8a23-9f1450984307-SFSHAREDGALLERY/images/TestNoProdContainerDImage/versions/latest")
.vmSize("Standard_D3")
.build());
}
}
Put node type with vm image plan
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var nodeType = new AzureNative.ServiceFabric.NodeType("nodeType", new()
{
ClusterName = "myCluster",
DataDiskSizeGB = 200,
IsPrimary = false,
NodeTypeName = "BE",
ResourceGroupName = "resRg",
VmImageOffer = "windows_2022_test",
VmImagePlan = new AzureNative.ServiceFabric.Inputs.VmImagePlanArgs
{
Name = "win_2022_test_20_10_gen2",
Product = "windows_2022_test",
Publisher = "testpublisher",
},
VmImagePublisher = "testpublisher",
VmImageSku = "win_2022_test_20_10_gen2",
VmImageVersion = "latest",
VmInstanceCount = 10,
VmSize = "Standard_D3",
});
});
package main
import (
"github.com/pulumi/pulumi-azure-native-sdk/servicefabric/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := servicefabric.NewNodeType(ctx, "nodeType", &servicefabric.NodeTypeArgs{
ClusterName: pulumi.String("myCluster"),
DataDiskSizeGB: pulumi.Int(200),
IsPrimary: pulumi.Bool(false),
NodeTypeName: pulumi.String("BE"),
ResourceGroupName: pulumi.String("resRg"),
VmImageOffer: pulumi.String("windows_2022_test"),
VmImagePlan: &servicefabric.VmImagePlanArgs{
Name: pulumi.String("win_2022_test_20_10_gen2"),
Product: pulumi.String("windows_2022_test"),
Publisher: pulumi.String("testpublisher"),
},
VmImagePublisher: pulumi.String("testpublisher"),
VmImageSku: pulumi.String("win_2022_test_20_10_gen2"),
VmImageVersion: pulumi.String("latest"),
VmInstanceCount: pulumi.Int(10),
VmSize: pulumi.String("Standard_D3"),
})
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.servicefabric.NodeType;
import com.pulumi.azurenative.servicefabric.NodeTypeArgs;
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 nodeType = new NodeType("nodeType", NodeTypeArgs.builder()
.clusterName("myCluster")
.dataDiskSizeGB(200)
.isPrimary(false)
.nodeTypeName("BE")
.resourceGroupName("resRg")
.vmImageOffer("windows_2022_test")
.vmImagePlan(Map.ofEntries(
Map.entry("name", "win_2022_test_20_10_gen2"),
Map.entry("product", "windows_2022_test"),
Map.entry("publisher", "testpublisher")
))
.vmImagePublisher("testpublisher")
.vmImageSku("win_2022_test_20_10_gen2")
.vmImageVersion("latest")
.vmInstanceCount(10)
.vmSize("Standard_D3")
.build());
}
}
Import
An existing resource can be imported using its type token, name, and identifier, e.g.
$ pulumi import azure-native:servicefabric:NodeType BE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}/nodeTypes/{nodeTypeName}
Constructors
Functions
Properties
Specifies whether the use public load balancer. If not specified and the node type doesn't have its own frontend configuration, it will be attached to the default load balancer. If the node type uses its own Load balancer and useDefaultPublicLoadBalancer is true, then the frontend has to be an Internal Load Balancer. If the node type uses its own Load balancer and useDefaultPublicLoadBalancer is false or not set, then the custom load balancer must include a public load balancer to provide outbound connectivity.
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.