Managed Cluster Args
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
Properties
List of add-on features to enable on the cluster.
VM admin user password.
VM admin user name.
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.
The policy used to clean up unused versions.
Auxiliary subnets for the cluster.
The AAD authentication settings of the cluster.
The port used for client connections to the cluster.
Client certificates that are allowed to manage the cluster.
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.
The name of the cluster resource.
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'.
The upgrade mode of the cluster when new Service Fabric runtime version is available.
Specify the resource id of a DDoS network protection plan that will be associated with the virtual network of the cluster.
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.
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.
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.
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.
The list of custom fabric settings to configure the cluster.
The port used for HTTP connections to the cluster.
The port used for token-auth based HTTPS connections to the cluster. Cannot be set to the same port as HttpGatewayEndpoint.
Load balancing rules that are applied to the public load balancer of the cluster.
Custom Network Security Rules that are applied to the Virtual Network of the cluster.
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.
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.
The name of the resource group.
Service endpoints for subnets in the cluster.
The policy to use when upgrading the cluster.
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.
Indicates if the cluster has zone resiliency.
Indicates the update mode for Cross Az clusters.