ManagedClusterArgs

data class ManagedClusterArgs(val addonFeatures: Output<List<Either<String, ManagedClusterAddOnFeature>>>? = null, val adminPassword: Output<String>? = null, val adminUserName: Output<String>? = null, val allowRdpAccess: Output<Boolean>? = null, val applicationTypeVersionsCleanupPolicy: Output<ApplicationTypeVersionsCleanupPolicyArgs>? = null, val auxiliarySubnets: Output<List<SubnetArgs>>? = null, val azureActiveDirectory: Output<AzureActiveDirectoryArgs>? = null, val clientConnectionPort: Output<Int>? = null, val clients: Output<List<ClientCertificateArgs>>? = null, val clusterCodeVersion: Output<String>? = null, val clusterName: Output<String>? = null, val clusterUpgradeCadence: Output<Either<String, ClusterUpgradeCadence>>? = null, val clusterUpgradeMode: Output<Either<String, ClusterUpgradeMode>>? = null, val ddosProtectionPlanId: Output<String>? = null, val dnsName: Output<String>? = null, val enableAutoOSUpgrade: Output<Boolean>? = null, val enableHttpGatewayExclusiveAuthMode: Output<Boolean>? = null, val enableIpv6: Output<Boolean>? = null, val enableServicePublicIP: Output<Boolean>? = null, val fabricSettings: Output<List<SettingsSectionDescriptionArgs>>? = null, val httpGatewayConnectionPort: Output<Int>? = null, val httpGatewayTokenAuthConnectionPort: Output<Int>? = null, val ipTags: Output<List<IpTagArgs>>? = null, val loadBalancingRules: Output<List<LoadBalancingRuleArgs>>? = null, val location: Output<String>? = null, val networkSecurityRules: Output<List<NetworkSecurityRuleArgs>>? = null, val publicIPPrefixId: Output<String>? = null, val publicIPv6PrefixId: Output<String>? = null, val resourceGroupName: Output<String>? = null, val serviceEndpoints: Output<List<ServiceEndpointArgs>>? = null, val sku: Output<SkuArgs>? = null, val subnetId: Output<String>? = null, val tags: Output<Map<String, String>>? = null, val upgradeDescription: Output<ClusterUpgradePolicyArgs>? = null, val useCustomVnet: Output<Boolean>? = null, val zonalResiliency: Output<Boolean>? = null, val zonalUpdateMode: Output<Either<String, ZonalUpdateMode>>? = null) : ConvertibleToJava<ManagedClusterArgs>

The managed cluster resource Uses Azure REST API version 2024-04-01. In version 2.x of the Azure Native provider, it used API version 2023-03-01-preview. Other available API versions: 2023-03-01-preview, 2023-07-01-preview, 2023-09-01-preview, 2023-11-01-preview, 2023-12-01-preview, 2024-02-01-preview, 2024-06-01-preview, 2024-09-01-preview, 2024-11-01-preview. These can be accessed by generating a local SDK package using the CLI command pulumi package add azure-native servicefabric [ApiVersion]. See the ../../../version-guide/#accessing-any-api-version-via-local-packages for details.

Example Usage

Put a cluster with maximum parameters

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var managedCluster = new AzureNative.ServiceFabric.ManagedCluster("managedCluster", new()
{
AddonFeatures = new[]
{
AzureNative.ServiceFabric.ManagedClusterAddOnFeature.DnsService,
AzureNative.ServiceFabric.ManagedClusterAddOnFeature.BackupRestoreService,
AzureNative.ServiceFabric.ManagedClusterAddOnFeature.ResourceMonitorService,
},
AdminPassword = "{vm-password}",
AdminUserName = "vmadmin",
AllowRdpAccess = true,
ApplicationTypeVersionsCleanupPolicy = new AzureNative.ServiceFabric.Inputs.ApplicationTypeVersionsCleanupPolicyArgs
{
MaxUnusedVersionsToKeep = 3,
},
AuxiliarySubnets = new[]
{
new AzureNative.ServiceFabric.Inputs.SubnetArgs
{
EnableIpv6 = true,
Name = "testSubnet1",
NetworkSecurityGroupId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.Network/networkSecurityGroups/sn1",
PrivateEndpointNetworkPolicies = AzureNative.ServiceFabric.PrivateEndpointNetworkPolicies.Enabled,
PrivateLinkServiceNetworkPolicies = AzureNative.ServiceFabric.PrivateLinkServiceNetworkPolicies.Enabled,
},
},
ClientConnectionPort = 19000,
ClusterCodeVersion = "7.1.168.9494",
ClusterName = "myCluster",
ClusterUpgradeMode = AzureNative.ServiceFabric.ClusterUpgradeMode.Manual,
DdosProtectionPlanId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.Network/ddosProtectionPlans/myDDoSProtectionPlan",
DnsName = "myCluster",
EnableAutoOSUpgrade = true,
EnableHttpGatewayExclusiveAuthMode = true,
EnableIpv6 = true,
FabricSettings = new[]
{
new AzureNative.ServiceFabric.Inputs.SettingsSectionDescriptionArgs
{
Name = "ManagedIdentityTokenService",
Parameters = new[]
{
new AzureNative.ServiceFabric.Inputs.SettingsParameterDescriptionArgs
{
Name = "IsEnabled",
Value = "true",
},
},
},
},
HttpGatewayConnectionPort = 19080,
HttpGatewayTokenAuthConnectionPort = 19081,
IpTags = new[]
{
new AzureNative.ServiceFabric.Inputs.IpTagArgs
{
IpTagType = "FirstPartyUsage",
Tag = "SQL",
},
},
LoadBalancingRules = new[]
{
new AzureNative.ServiceFabric.Inputs.LoadBalancingRuleArgs
{
BackendPort = 80,
FrontendPort = 80,
ProbePort = 80,
ProbeProtocol = AzureNative.ServiceFabric.ProbeProtocol.Http,
Protocol = "http",
},
new AzureNative.ServiceFabric.Inputs.LoadBalancingRuleArgs
{
BackendPort = 443,
FrontendPort = 443,
ProbePort = 443,
ProbeProtocol = AzureNative.ServiceFabric.ProbeProtocol.Http,
Protocol = "http",
},
new AzureNative.ServiceFabric.Inputs.LoadBalancingRuleArgs
{
BackendPort = 10000,
FrontendPort = 10000,
LoadDistribution = "Default",
ProbePort = 10000,
ProbeProtocol = AzureNative.ServiceFabric.ProbeProtocol.Http,
Protocol = AzureNative.ServiceFabric.Protocol.Tcp,
},
},
Location = "eastus",
NetworkSecurityRules = new[]
{
new AzureNative.ServiceFabric.Inputs.NetworkSecurityRuleArgs
{
Access = AzureNative.ServiceFabric.Access.Allow,
Description = "Test description",
DestinationAddressPrefixes = new[]
{
"*",
},
DestinationPortRanges = new[]
{
"*",
},
Direction = AzureNative.ServiceFabric.Direction.Inbound,
Name = "TestName",
Priority = 1010,
Protocol = AzureNative.ServiceFabric.NsgProtocol.Tcp,
SourceAddressPrefixes = new[]
{
"*",
},
SourcePortRanges = new[]
{
"*",
},
},
new AzureNative.ServiceFabric.Inputs.NetworkSecurityRuleArgs
{
Access = AzureNative.ServiceFabric.Access.Allow,
DestinationAddressPrefix = "*",
DestinationPortRange = "33500-33699",
Direction = AzureNative.ServiceFabric.Direction.Inbound,
Name = "AllowARM",
Priority = 2002,
Protocol = "*",
SourceAddressPrefix = "AzureResourceManager",
SourcePortRange = "*",
},
},
PublicIPPrefixId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resRg/providers/Microsoft.Network/publicIPPrefixes/myPublicIPPrefix",
PublicIPv6PrefixId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resRg/providers/Microsoft.Network/publicIPPrefixes/myPublicIPv6Prefix",
ResourceGroupName = "resRg",
ServiceEndpoints = new[]
{
new AzureNative.ServiceFabric.Inputs.ServiceEndpointArgs
{
Locations = new[]
{
"eastus2",
"usnorth",
},
Service = "Microsoft.Storage",
},
},
Sku = new AzureNative.ServiceFabric.Inputs.SkuArgs
{
Name = AzureNative.ServiceFabric.SkuName.Basic,
},
Tags = null,
UpgradeDescription = new AzureNative.ServiceFabric.Inputs.ClusterUpgradePolicyArgs
{
DeltaHealthPolicy = new AzureNative.ServiceFabric.Inputs.ClusterUpgradeDeltaHealthPolicyArgs
{
MaxPercentDeltaUnhealthyApplications = 40,
MaxPercentDeltaUnhealthyNodes = 20,
MaxPercentUpgradeDomainDeltaUnhealthyNodes = 40,
},
ForceRestart = false,
HealthPolicy = new AzureNative.ServiceFabric.Inputs.ClusterHealthPolicyArgs
{
MaxPercentUnhealthyApplications = 30,
MaxPercentUnhealthyNodes = 10,
},
MonitoringPolicy = new AzureNative.ServiceFabric.Inputs.ClusterMonitoringPolicyArgs
{
HealthCheckRetryTimeout = "00:55:00",
HealthCheckStableDuration = "00:45:00",
HealthCheckWaitDuration = "00:05:00",
UpgradeDomainTimeout = "03:00:00",
UpgradeTimeout = "12:00:00",
},
},
UseCustomVnet = true,
ZonalResiliency = true,
ZonalUpdateMode = AzureNative.ServiceFabric.ZonalUpdateMode.Fast,
});
});
package main
import (
servicefabric "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.NewManagedCluster(ctx, "managedCluster", &servicefabric.ManagedClusterArgs{
AddonFeatures: pulumi.StringArray{
pulumi.String(servicefabric.ManagedClusterAddOnFeatureDnsService),
pulumi.String(servicefabric.ManagedClusterAddOnFeatureBackupRestoreService),
pulumi.String(servicefabric.ManagedClusterAddOnFeatureResourceMonitorService),
},
AdminPassword: pulumi.String("{vm-password}"),
AdminUserName: pulumi.String("vmadmin"),
AllowRdpAccess: pulumi.Bool(true),
ApplicationTypeVersionsCleanupPolicy: &servicefabric.ApplicationTypeVersionsCleanupPolicyArgs{
MaxUnusedVersionsToKeep: pulumi.Int(3),
},
AuxiliarySubnets: servicefabric.SubnetArray{
&servicefabric.SubnetArgs{
EnableIpv6: pulumi.Bool(true),
Name: pulumi.String("testSubnet1"),
NetworkSecurityGroupId: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.Network/networkSecurityGroups/sn1"),
PrivateEndpointNetworkPolicies: pulumi.String(servicefabric.PrivateEndpointNetworkPoliciesEnabled),
PrivateLinkServiceNetworkPolicies: pulumi.String(servicefabric.PrivateLinkServiceNetworkPoliciesEnabled),
},
},
ClientConnectionPort: pulumi.Int(19000),
ClusterCodeVersion: pulumi.String("7.1.168.9494"),
ClusterName: pulumi.String("myCluster"),
ClusterUpgradeMode: pulumi.String(servicefabric.ClusterUpgradeModeManual),
DdosProtectionPlanId: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.Network/ddosProtectionPlans/myDDoSProtectionPlan"),
DnsName: pulumi.String("myCluster"),
EnableAutoOSUpgrade: pulumi.Bool(true),
EnableHttpGatewayExclusiveAuthMode: pulumi.Bool(true),
EnableIpv6: pulumi.Bool(true),
FabricSettings: servicefabric.SettingsSectionDescriptionArray{
&servicefabric.SettingsSectionDescriptionArgs{
Name: pulumi.String("ManagedIdentityTokenService"),
Parameters: servicefabric.SettingsParameterDescriptionArray{
&servicefabric.SettingsParameterDescriptionArgs{
Name: pulumi.String("IsEnabled"),
Value: pulumi.String("true"),
},
},
},
},
HttpGatewayConnectionPort: pulumi.Int(19080),
HttpGatewayTokenAuthConnectionPort: pulumi.Int(19081),
IpTags: servicefabric.IpTagArray{
&servicefabric.IpTagArgs{
IpTagType: pulumi.String("FirstPartyUsage"),
Tag: pulumi.String("SQL"),
},
},
LoadBalancingRules: servicefabric.LoadBalancingRuleArray{
&servicefabric.LoadBalancingRuleArgs{
BackendPort: pulumi.Int(80),
FrontendPort: pulumi.Int(80),
ProbePort: pulumi.Int(80),
ProbeProtocol: pulumi.String(servicefabric.ProbeProtocolHttp),
Protocol: pulumi.String("http"),
},
&servicefabric.LoadBalancingRuleArgs{
BackendPort: pulumi.Int(443),
FrontendPort: pulumi.Int(443),
ProbePort: pulumi.Int(443),
ProbeProtocol: pulumi.String(servicefabric.ProbeProtocolHttp),
Protocol: pulumi.String("http"),
},
&servicefabric.LoadBalancingRuleArgs{
BackendPort: pulumi.Int(10000),
FrontendPort: pulumi.Int(10000),
LoadDistribution: pulumi.String("Default"),
ProbePort: pulumi.Int(10000),
ProbeProtocol: pulumi.String(servicefabric.ProbeProtocolHttp),
Protocol: pulumi.String(servicefabric.ProtocolTcp),
},
},
Location: pulumi.String("eastus"),
NetworkSecurityRules: servicefabric.NetworkSecurityRuleArray{
&servicefabric.NetworkSecurityRuleArgs{
Access: pulumi.String(servicefabric.AccessAllow),
Description: pulumi.String("Test description"),
DestinationAddressPrefixes: pulumi.StringArray{
pulumi.String("*"),
},
DestinationPortRanges: pulumi.StringArray{
pulumi.String("*"),
},
Direction: pulumi.String(servicefabric.DirectionInbound),
Name: pulumi.String("TestName"),
Priority: pulumi.Int(1010),
Protocol: pulumi.String(servicefabric.NsgProtocolTcp),
SourceAddressPrefixes: pulumi.StringArray{
pulumi.String("*"),
},
SourcePortRanges: pulumi.StringArray{
pulumi.String("*"),
},
},
&servicefabric.NetworkSecurityRuleArgs{
Access: pulumi.String(servicefabric.AccessAllow),
DestinationAddressPrefix: pulumi.String("*"),
DestinationPortRange: pulumi.String("33500-33699"),
Direction: pulumi.String(servicefabric.DirectionInbound),
Name: pulumi.String("AllowARM"),
Priority: pulumi.Int(2002),
Protocol: pulumi.String("*"),
SourceAddressPrefix: pulumi.String("AzureResourceManager"),
SourcePortRange: pulumi.String("*"),
},
},
PublicIPPrefixId: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resRg/providers/Microsoft.Network/publicIPPrefixes/myPublicIPPrefix"),
PublicIPv6PrefixId: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resRg/providers/Microsoft.Network/publicIPPrefixes/myPublicIPv6Prefix"),
ResourceGroupName: pulumi.String("resRg"),
ServiceEndpoints: servicefabric.ServiceEndpointArray{
&servicefabric.ServiceEndpointArgs{
Locations: pulumi.StringArray{
pulumi.String("eastus2"),
pulumi.String("usnorth"),
},
Service: pulumi.String("Microsoft.Storage"),
},
},
Sku: &servicefabric.SkuArgs{
Name: pulumi.String(servicefabric.SkuNameBasic),
},
Tags: pulumi.StringMap{},
UpgradeDescription: &servicefabric.ClusterUpgradePolicyArgs{
DeltaHealthPolicy: &servicefabric.ClusterUpgradeDeltaHealthPolicyArgs{
MaxPercentDeltaUnhealthyApplications: pulumi.Int(40),
MaxPercentDeltaUnhealthyNodes: pulumi.Int(20),
MaxPercentUpgradeDomainDeltaUnhealthyNodes: pulumi.Int(40),
},
ForceRestart: pulumi.Bool(false),
HealthPolicy: &servicefabric.ClusterHealthPolicyArgs{
MaxPercentUnhealthyApplications: pulumi.Int(30),
MaxPercentUnhealthyNodes: pulumi.Int(10),
},
MonitoringPolicy: &servicefabric.ClusterMonitoringPolicyArgs{
HealthCheckRetryTimeout: pulumi.String("00:55:00"),
HealthCheckStableDuration: pulumi.String("00:45:00"),
HealthCheckWaitDuration: pulumi.String("00:05:00"),
UpgradeDomainTimeout: pulumi.String("03:00:00"),
UpgradeTimeout: pulumi.String("12:00:00"),
},
},
UseCustomVnet: pulumi.Bool(true),
ZonalResiliency: pulumi.Bool(true),
ZonalUpdateMode: pulumi.String(servicefabric.ZonalUpdateModeFast),
})
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.ManagedCluster;
import com.pulumi.azurenative.servicefabric.ManagedClusterArgs;
import com.pulumi.azurenative.servicefabric.inputs.ApplicationTypeVersionsCleanupPolicyArgs;
import com.pulumi.azurenative.servicefabric.inputs.SubnetArgs;
import com.pulumi.azurenative.servicefabric.inputs.SettingsSectionDescriptionArgs;
import com.pulumi.azurenative.servicefabric.inputs.IpTagArgs;
import com.pulumi.azurenative.servicefabric.inputs.LoadBalancingRuleArgs;
import com.pulumi.azurenative.servicefabric.inputs.NetworkSecurityRuleArgs;
import com.pulumi.azurenative.servicefabric.inputs.ServiceEndpointArgs;
import com.pulumi.azurenative.servicefabric.inputs.SkuArgs;
import com.pulumi.azurenative.servicefabric.inputs.ClusterUpgradePolicyArgs;
import com.pulumi.azurenative.servicefabric.inputs.ClusterUpgradeDeltaHealthPolicyArgs;
import com.pulumi.azurenative.servicefabric.inputs.ClusterHealthPolicyArgs;
import com.pulumi.azurenative.servicefabric.inputs.ClusterMonitoringPolicyArgs;
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 managedCluster = new ManagedCluster("managedCluster", ManagedClusterArgs.builder()
.addonFeatures(
"DnsService",
"BackupRestoreService",
"ResourceMonitorService")
.adminPassword("{vm-password}")
.adminUserName("vmadmin")
.allowRdpAccess(true)
.applicationTypeVersionsCleanupPolicy(ApplicationTypeVersionsCleanupPolicyArgs.builder()
.maxUnusedVersionsToKeep(3)
.build())
.auxiliarySubnets(SubnetArgs.builder()
.enableIpv6(true)
.name("testSubnet1")
.networkSecurityGroupId("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.Network/networkSecurityGroups/sn1")
.privateEndpointNetworkPolicies("enabled")
.privateLinkServiceNetworkPolicies("enabled")
.build())
.clientConnectionPort(19000)
.clusterCodeVersion("7.1.168.9494")
.clusterName("myCluster")
.clusterUpgradeMode("Manual")
.ddosProtectionPlanId("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.Network/ddosProtectionPlans/myDDoSProtectionPlan")
.dnsName("myCluster")
.enableAutoOSUpgrade(true)
.enableHttpGatewayExclusiveAuthMode(true)
.enableIpv6(true)
.fabricSettings(SettingsSectionDescriptionArgs.builder()
.name("ManagedIdentityTokenService")
.parameters(SettingsParameterDescriptionArgs.builder()
.name("IsEnabled")
.value("true")
.build())
.build())
.httpGatewayConnectionPort(19080)
.httpGatewayTokenAuthConnectionPort(19081)
.ipTags(IpTagArgs.builder()
.ipTagType("FirstPartyUsage")
.tag("SQL")
.build())
.loadBalancingRules(
LoadBalancingRuleArgs.builder()
.backendPort(80)
.frontendPort(80)
.probePort(80)
.probeProtocol("http")
.protocol("http")
.build(),
LoadBalancingRuleArgs.builder()
.backendPort(443)
.frontendPort(443)
.probePort(443)
.probeProtocol("http")
.protocol("http")
.build(),
LoadBalancingRuleArgs.builder()
.backendPort(10000)
.frontendPort(10000)
.loadDistribution("Default")
.probePort(10000)
.probeProtocol("http")
.protocol("tcp")
.build())
.location("eastus")
.networkSecurityRules(
NetworkSecurityRuleArgs.builder()
.access("allow")
.description("Test description")
.destinationAddressPrefixes("*")
.destinationPortRanges("*")
.direction("inbound")
.name("TestName")
.priority(1010)
.protocol("tcp")
.sourceAddressPrefixes("*")
.sourcePortRanges("*")
.build(),
NetworkSecurityRuleArgs.builder()
.access("allow")
.destinationAddressPrefix("*")
.destinationPortRange("33500-33699")
.direction("inbound")
.name("AllowARM")
.priority(2002)
.protocol("*")
.sourceAddressPrefix("AzureResourceManager")
.sourcePortRange("*")
.build())
.publicIPPrefixId("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resRg/providers/Microsoft.Network/publicIPPrefixes/myPublicIPPrefix")
.publicIPv6PrefixId("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resRg/providers/Microsoft.Network/publicIPPrefixes/myPublicIPv6Prefix")
.resourceGroupName("resRg")
.serviceEndpoints(ServiceEndpointArgs.builder()
.locations(
"eastus2",
"usnorth")
.service("Microsoft.Storage")
.build())
.sku(SkuArgs.builder()
.name("Basic")
.build())
.tags()
.upgradeDescription(ClusterUpgradePolicyArgs.builder()
.deltaHealthPolicy(ClusterUpgradeDeltaHealthPolicyArgs.builder()
.maxPercentDeltaUnhealthyApplications(40)
.maxPercentDeltaUnhealthyNodes(20)
.maxPercentUpgradeDomainDeltaUnhealthyNodes(40)
.build())
.forceRestart(false)
.healthPolicy(ClusterHealthPolicyArgs.builder()
.maxPercentUnhealthyApplications(30)
.maxPercentUnhealthyNodes(10)
.build())
.monitoringPolicy(ClusterMonitoringPolicyArgs.builder()
.healthCheckRetryTimeout("00:55:00")
.healthCheckStableDuration("00:45:00")
.healthCheckWaitDuration("00:05:00")
.upgradeDomainTimeout("03:00:00")
.upgradeTimeout("12:00:00")
.build())
.build())
.useCustomVnet(true)
.zonalResiliency(true)
.zonalUpdateMode("Fast")
.build());
}
}

Put a cluster with minimum parameters

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var managedCluster = new AzureNative.ServiceFabric.ManagedCluster("managedCluster", new()
{
AdminPassword = "{vm-password}",
AdminUserName = "vmadmin",
ClusterName = "myCluster",
ClusterUpgradeCadence = AzureNative.ServiceFabric.ClusterUpgradeCadence.Wave1,
ClusterUpgradeMode = AzureNative.ServiceFabric.ClusterUpgradeMode.Automatic,
DnsName = "myCluster",
FabricSettings = new[]
{
new AzureNative.ServiceFabric.Inputs.SettingsSectionDescriptionArgs
{
Name = "ManagedIdentityTokenService",
Parameters = new[]
{
new AzureNative.ServiceFabric.Inputs.SettingsParameterDescriptionArgs
{
Name = "IsEnabled",
Value = "true",
},
},
},
},
Location = "eastus",
ResourceGroupName = "resRg",
Sku = new AzureNative.ServiceFabric.Inputs.SkuArgs
{
Name = AzureNative.ServiceFabric.SkuName.Basic,
},
});
});
package main
import (
servicefabric "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.NewManagedCluster(ctx, "managedCluster", &servicefabric.ManagedClusterArgs{
AdminPassword: pulumi.String("{vm-password}"),
AdminUserName: pulumi.String("vmadmin"),
ClusterName: pulumi.String("myCluster"),
ClusterUpgradeCadence: pulumi.String(servicefabric.ClusterUpgradeCadenceWave1),
ClusterUpgradeMode: pulumi.String(servicefabric.ClusterUpgradeModeAutomatic),
DnsName: pulumi.String("myCluster"),
FabricSettings: servicefabric.SettingsSectionDescriptionArray{
&servicefabric.SettingsSectionDescriptionArgs{
Name: pulumi.String("ManagedIdentityTokenService"),
Parameters: servicefabric.SettingsParameterDescriptionArray{
&servicefabric.SettingsParameterDescriptionArgs{
Name: pulumi.String("IsEnabled"),
Value: pulumi.String("true"),
},
},
},
},
Location: pulumi.String("eastus"),
ResourceGroupName: pulumi.String("resRg"),
Sku: &servicefabric.SkuArgs{
Name: pulumi.String(servicefabric.SkuNameBasic),
},
})
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.ManagedCluster;
import com.pulumi.azurenative.servicefabric.ManagedClusterArgs;
import com.pulumi.azurenative.servicefabric.inputs.SettingsSectionDescriptionArgs;
import com.pulumi.azurenative.servicefabric.inputs.SkuArgs;
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 managedCluster = new ManagedCluster("managedCluster", ManagedClusterArgs.builder()
.adminPassword("{vm-password}")
.adminUserName("vmadmin")
.clusterName("myCluster")
.clusterUpgradeCadence("Wave1")
.clusterUpgradeMode("Automatic")
.dnsName("myCluster")
.fabricSettings(SettingsSectionDescriptionArgs.builder()
.name("ManagedIdentityTokenService")
.parameters(SettingsParameterDescriptionArgs.builder()
.name("IsEnabled")
.value("true")
.build())
.build())
.location("eastus")
.resourceGroupName("resRg")
.sku(SkuArgs.builder()
.name("Basic")
.build())
.build());
}
}

Import

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

$ pulumi import azure-native:servicefabric:ManagedCluster myCluster /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}

Constructors

Link copied to clipboard
constructor(addonFeatures: Output<List<Either<String, ManagedClusterAddOnFeature>>>? = null, adminPassword: Output<String>? = null, adminUserName: Output<String>? = null, allowRdpAccess: Output<Boolean>? = null, applicationTypeVersionsCleanupPolicy: Output<ApplicationTypeVersionsCleanupPolicyArgs>? = null, auxiliarySubnets: Output<List<SubnetArgs>>? = null, azureActiveDirectory: Output<AzureActiveDirectoryArgs>? = null, clientConnectionPort: Output<Int>? = null, clients: Output<List<ClientCertificateArgs>>? = null, clusterCodeVersion: Output<String>? = null, clusterName: Output<String>? = null, clusterUpgradeCadence: Output<Either<String, ClusterUpgradeCadence>>? = null, clusterUpgradeMode: Output<Either<String, ClusterUpgradeMode>>? = null, ddosProtectionPlanId: Output<String>? = null, dnsName: Output<String>? = null, enableAutoOSUpgrade: Output<Boolean>? = null, enableHttpGatewayExclusiveAuthMode: Output<Boolean>? = null, enableIpv6: Output<Boolean>? = null, enableServicePublicIP: Output<Boolean>? = null, fabricSettings: Output<List<SettingsSectionDescriptionArgs>>? = null, httpGatewayConnectionPort: Output<Int>? = null, httpGatewayTokenAuthConnectionPort: Output<Int>? = null, ipTags: Output<List<IpTagArgs>>? = null, loadBalancingRules: Output<List<LoadBalancingRuleArgs>>? = null, location: Output<String>? = null, networkSecurityRules: Output<List<NetworkSecurityRuleArgs>>? = null, publicIPPrefixId: Output<String>? = null, publicIPv6PrefixId: Output<String>? = null, resourceGroupName: Output<String>? = null, serviceEndpoints: Output<List<ServiceEndpointArgs>>? = null, sku: Output<SkuArgs>? = null, subnetId: Output<String>? = null, tags: Output<Map<String, String>>? = null, upgradeDescription: Output<ClusterUpgradePolicyArgs>? = null, useCustomVnet: Output<Boolean>? = null, zonalResiliency: Output<Boolean>? = null, zonalUpdateMode: Output<Either<String, ZonalUpdateMode>>? = null)

Properties

Link copied to clipboard
val addonFeatures: Output<List<Either<String, ManagedClusterAddOnFeature>>>? = null

List of add-on features to enable on the cluster.

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

VM admin user password.

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

VM admin user name.

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

Setting this to true enables RDP access to the VM. The default NSG rule opens RDP port to Internet which can be overridden with custom Network Security Rules. The default value for this setting is false.

Link copied to clipboard

The policy used to clean up unused versions.

Link copied to clipboard
val auxiliarySubnets: Output<List<SubnetArgs>>? = null

Auxiliary subnets for the cluster.

Link copied to clipboard

The AAD authentication settings of the cluster.

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

The port used for client connections to the cluster.

Link copied to clipboard
val clients: Output<List<ClientCertificateArgs>>? = null

Client certificates that are allowed to manage the cluster.

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

The Service Fabric runtime version of the cluster. This property is required when clusterUpgradeMode is set to 'Manual'. To get list of available Service Fabric versions for new clusters use ./ClusterVersion.md. To get the list of available version for existing clusters use availableClusterVersions.

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

The name of the cluster resource.

Link copied to clipboard
val clusterUpgradeCadence: Output<Either<String, ClusterUpgradeCadence>>? = null

Indicates when new cluster runtime version upgrades will be applied after they are released. By default is Wave0. Only applies when clusterUpgradeMode is set to 'Automatic'.

Link copied to clipboard
val clusterUpgradeMode: Output<Either<String, ClusterUpgradeMode>>? = null

The upgrade mode of the cluster when new Service Fabric runtime version is available.

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

Specify the resource id of a DDoS network protection plan that will be associated with the virtual network of the cluster.

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

The cluster dns name.

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

Setting this to true enables automatic OS upgrade for the node types that are created using any platform OS image with version 'latest'. The default value for this setting is false.

Link copied to clipboard

If true, token-based authentication is not allowed on the HttpGatewayEndpoint. This is required to support TLS versions 1.3 and above. If token-based authentication is used, HttpGatewayTokenAuthConnectionPort must be defined.

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

Setting this to true creates IPv6 address space for the default VNet used by the cluster. This setting cannot be changed once the cluster is created. The default value for this setting is false.

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

Setting this to true will link the IPv4 address as the ServicePublicIP of the IPv6 address. It can only be set to True if IPv6 is enabled on the cluster.

Link copied to clipboard

The list of custom fabric settings to configure the cluster.

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

The port used for HTTP connections to the cluster.

Link copied to clipboard

The port used for token-auth based HTTPS connections to the cluster. Cannot be set to the same port as HttpGatewayEndpoint.

Link copied to clipboard
val ipTags: Output<List<IpTagArgs>>? = null

The list of IP tags associated with the default public IP address of the cluster.

Link copied to clipboard

Load balancing rules that are applied to the public load balancer of the cluster.

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

Azure resource location.

Link copied to clipboard

Custom Network Security Rules that are applied to the Virtual Network of the cluster.

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

Specify the resource id of a public IPv4 prefix that the load balancer will allocate a public IPv4 address from. This setting cannot be changed once the cluster is created.

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

Specify the resource id of a public IPv6 prefix that the load balancer will allocate a public IPv6 address from. This setting cannot be changed once the cluster is created.

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

The name of the resource group.

Link copied to clipboard

Service endpoints for subnets in the cluster.

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

The sku of the managed cluster

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

If specified, the node types for the cluster are created in this subnet instead of the default VNet. The networkSecurityRules specified for the cluster are also applied to this subnet. This setting cannot be changed once the cluster is created.

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

Azure resource tags.

Link copied to clipboard

The policy to use when upgrading the cluster.

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

For new clusters, this parameter indicates that it uses Bring your own VNet, but the subnet is specified at node type level; and for such clusters, the subnetId property is required for node types.

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

Indicates if the cluster has zone resiliency.

Link copied to clipboard
val zonalUpdateMode: Output<Either<String, ZonalUpdateMode>>? = null

Indicates the update mode for Cross Az clusters.

Functions

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