Network Fabric
The Network Fabric resource definition. Uses Azure REST API version 2023-06-15. In version 2.x of the Azure Native provider, it used API version 2023-02-01-preview. Other available API versions: 2023-02-01-preview. These can be accessed by generating a local SDK package using the CLI command pulumi package add azure-native managednetworkfabric [ApiVersion]
. See the ../../../version-guide/#accessing-any-api-version-via-local-packages for details.
Example Usage
NetworkFabrics_Create_MaximumSet_Gen
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var networkFabric = new AzureNative.ManagedNetworkFabric.NetworkFabric("networkFabric", new()
{
Annotation = "annotation",
FabricASN = 29249,
FabricVersion = "1.x.x",
Ipv4Prefix = "10.18.0.0/19",
Ipv6Prefix = "3FFE:FFFF:0:CD40::/59",
Location = "eastuseuap",
ManagementNetworkConfiguration = new AzureNative.ManagedNetworkFabric.Inputs.ManagementNetworkConfigurationPropertiesArgs
{
InfrastructureVpnConfiguration = new AzureNative.ManagedNetworkFabric.Inputs.VpnConfigurationPropertiesArgs
{
NetworkToNetworkInterconnectId = "/subscriptions/1234ABCD-0A1B-1234-5678-123456ABCDEF/resourceGroups/example-rg/providers/Microsoft.ManagedNetworkFabric/networkFabrics/example-fabric/networkToNetworkInterconnects/example-nni",
OptionAProperties = new AzureNative.ManagedNetworkFabric.Inputs.VpnConfigurationPropertiesOptionAPropertiesArgs
{
BfdConfiguration = new AzureNative.ManagedNetworkFabric.Inputs.BfdConfigurationArgs
{
IntervalInMilliSeconds = 300,
Multiplier = 10,
},
Mtu = 1501,
PeerASN = 1235,
PrimaryIpv4Prefix = "10.0.0.12/30",
PrimaryIpv6Prefix = "4FFE:FFFF:0:CD30::a8/127",
SecondaryIpv4Prefix = "20.0.0.13/30",
SecondaryIpv6Prefix = "6FFE:FFFF:0:CD30::ac/127",
VlanId = 3001,
},
OptionBProperties = new AzureNative.ManagedNetworkFabric.Inputs.FabricOptionBPropertiesArgs
{
ExportRouteTargets = new[]
{
"65046:10050",
},
ImportRouteTargets = new[]
{
"65046:10050",
},
RouteTargets = new AzureNative.ManagedNetworkFabric.Inputs.RouteTargetInformationArgs
{
ExportIpv4RouteTargets = new[]
{
"65046:10039",
},
ExportIpv6RouteTargets = new[]
{
"65046:10039",
},
ImportIpv4RouteTargets = new[]
{
"65046:10039",
},
ImportIpv6RouteTargets = new[]
{
"65046:10039",
},
},
},
PeeringOption = AzureNative.ManagedNetworkFabric.PeeringOption.OptionA,
},
WorkloadVpnConfiguration = new AzureNative.ManagedNetworkFabric.Inputs.VpnConfigurationPropertiesArgs
{
NetworkToNetworkInterconnectId = "/subscriptions/1234ABCD-0A1B-1234-5678-123456ABCDEF/resourceGroups/example-rg/providers/Microsoft.ManagedNetworkFabric/networkFabrics/example-fabric/networkToNetworkInterconnects/example-nni",
OptionAProperties = new AzureNative.ManagedNetworkFabric.Inputs.VpnConfigurationPropertiesOptionAPropertiesArgs
{
BfdConfiguration = new AzureNative.ManagedNetworkFabric.Inputs.BfdConfigurationArgs
{
IntervalInMilliSeconds = 300,
Multiplier = 5,
},
Mtu = 1500,
PeerASN = 61234,
PrimaryIpv4Prefix = "10.0.0.14/30",
PrimaryIpv6Prefix = "2FFE:FFFF:0:CD30::a7/126",
SecondaryIpv4Prefix = "10.0.0.15/30",
SecondaryIpv6Prefix = "2FFE:FFFF:0:CD30::ac/126",
VlanId = 3000,
},
OptionBProperties = new AzureNative.ManagedNetworkFabric.Inputs.FabricOptionBPropertiesArgs
{
ExportRouteTargets = new[]
{
"65046:10050",
},
ImportRouteTargets = new[]
{
"65046:10050",
},
RouteTargets = new AzureNative.ManagedNetworkFabric.Inputs.RouteTargetInformationArgs
{
ExportIpv4RouteTargets = new[]
{
"65046:10039",
},
ExportIpv6RouteTargets = new[]
{
"65046:10039",
},
ImportIpv4RouteTargets = new[]
{
"65046:10039",
},
ImportIpv6RouteTargets = new[]
{
"65046:10039",
},
},
},
PeeringOption = AzureNative.ManagedNetworkFabric.PeeringOption.OptionA,
},
},
NetworkFabricControllerId = "/subscriptions/1234ABCD-0A1B-1234-5678-123456ABCDEF/resourceGroups/example-rg/providers/Microsoft.ManagedNetworkFabric/networkFabricControllers/example-fabricController",
NetworkFabricName = "example-fabric",
NetworkFabricSku = "M4-A400-A100-C16-aa",
RackCount = 4,
ResourceGroupName = "example-rg",
ServerCountPerRack = 8,
Tags =
{
{ "keyID", "keyValue" },
},
TerminalServerConfiguration = new AzureNative.ManagedNetworkFabric.Inputs.TerminalServerConfigurationArgs
{
Password = "xxxx",
PrimaryIpv4Prefix = "10.0.0.12/30",
PrimaryIpv6Prefix = "4FFE:FFFF:0:CD30::a8/127",
SecondaryIpv4Prefix = "20.0.0.13/30",
SecondaryIpv6Prefix = "6FFE:FFFF:0:CD30::ac/127",
SerialNumber = "123456",
Username = "username",
},
});
});
package main
import (
managednetworkfabric "github.com/pulumi/pulumi-azure-native-sdk/managednetworkfabric/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := managednetworkfabric.NewNetworkFabric(ctx, "networkFabric", &managednetworkfabric.NetworkFabricArgs{
Annotation: pulumi.String("annotation"),
FabricASN: pulumi.Float64(29249),
FabricVersion: pulumi.String("1.x.x"),
Ipv4Prefix: pulumi.String("10.18.0.0/19"),
Ipv6Prefix: pulumi.String("3FFE:FFFF:0:CD40::/59"),
Location: pulumi.String("eastuseuap"),
ManagementNetworkConfiguration: &managednetworkfabric.ManagementNetworkConfigurationPropertiesArgs{
InfrastructureVpnConfiguration: &managednetworkfabric.VpnConfigurationPropertiesArgs{
NetworkToNetworkInterconnectId: pulumi.String("/subscriptions/1234ABCD-0A1B-1234-5678-123456ABCDEF/resourceGroups/example-rg/providers/Microsoft.ManagedNetworkFabric/networkFabrics/example-fabric/networkToNetworkInterconnects/example-nni"),
OptionAProperties: &managednetworkfabric.VpnConfigurationPropertiesOptionAPropertiesArgs{
BfdConfiguration: &managednetworkfabric.BfdConfigurationArgs{
IntervalInMilliSeconds: pulumi.Int(300),
Multiplier: pulumi.Int(10),
},
Mtu: pulumi.Int(1501),
PeerASN: pulumi.Float64(1235),
PrimaryIpv4Prefix: pulumi.String("10.0.0.12/30"),
PrimaryIpv6Prefix: pulumi.String("4FFE:FFFF:0:CD30::a8/127"),
SecondaryIpv4Prefix: pulumi.String("20.0.0.13/30"),
SecondaryIpv6Prefix: pulumi.String("6FFE:FFFF:0:CD30::ac/127"),
VlanId: pulumi.Int(3001),
},
OptionBProperties: &managednetworkfabric.FabricOptionBPropertiesArgs{
ExportRouteTargets: pulumi.StringArray{
pulumi.String("65046:10050"),
},
ImportRouteTargets: pulumi.StringArray{
pulumi.String("65046:10050"),
},
RouteTargets: &managednetworkfabric.RouteTargetInformationArgs{
ExportIpv4RouteTargets: pulumi.StringArray{
pulumi.String("65046:10039"),
},
ExportIpv6RouteTargets: pulumi.StringArray{
pulumi.String("65046:10039"),
},
ImportIpv4RouteTargets: pulumi.StringArray{
pulumi.String("65046:10039"),
},
ImportIpv6RouteTargets: pulumi.StringArray{
pulumi.String("65046:10039"),
},
},
},
PeeringOption: pulumi.String(managednetworkfabric.PeeringOptionOptionA),
},
WorkloadVpnConfiguration: &managednetworkfabric.VpnConfigurationPropertiesArgs{
NetworkToNetworkInterconnectId: pulumi.String("/subscriptions/1234ABCD-0A1B-1234-5678-123456ABCDEF/resourceGroups/example-rg/providers/Microsoft.ManagedNetworkFabric/networkFabrics/example-fabric/networkToNetworkInterconnects/example-nni"),
OptionAProperties: &managednetworkfabric.VpnConfigurationPropertiesOptionAPropertiesArgs{
BfdConfiguration: &managednetworkfabric.BfdConfigurationArgs{
IntervalInMilliSeconds: pulumi.Int(300),
Multiplier: pulumi.Int(5),
},
Mtu: pulumi.Int(1500),
PeerASN: pulumi.Float64(61234),
PrimaryIpv4Prefix: pulumi.String("10.0.0.14/30"),
PrimaryIpv6Prefix: pulumi.String("2FFE:FFFF:0:CD30::a7/126"),
SecondaryIpv4Prefix: pulumi.String("10.0.0.15/30"),
SecondaryIpv6Prefix: pulumi.String("2FFE:FFFF:0:CD30::ac/126"),
VlanId: pulumi.Int(3000),
},
OptionBProperties: &managednetworkfabric.FabricOptionBPropertiesArgs{
ExportRouteTargets: pulumi.StringArray{
pulumi.String("65046:10050"),
},
ImportRouteTargets: pulumi.StringArray{
pulumi.String("65046:10050"),
},
RouteTargets: &managednetworkfabric.RouteTargetInformationArgs{
ExportIpv4RouteTargets: pulumi.StringArray{
pulumi.String("65046:10039"),
},
ExportIpv6RouteTargets: pulumi.StringArray{
pulumi.String("65046:10039"),
},
ImportIpv4RouteTargets: pulumi.StringArray{
pulumi.String("65046:10039"),
},
ImportIpv6RouteTargets: pulumi.StringArray{
pulumi.String("65046:10039"),
},
},
},
PeeringOption: pulumi.String(managednetworkfabric.PeeringOptionOptionA),
},
},
NetworkFabricControllerId: pulumi.String("/subscriptions/1234ABCD-0A1B-1234-5678-123456ABCDEF/resourceGroups/example-rg/providers/Microsoft.ManagedNetworkFabric/networkFabricControllers/example-fabricController"),
NetworkFabricName: pulumi.String("example-fabric"),
NetworkFabricSku: pulumi.String("M4-A400-A100-C16-aa"),
RackCount: pulumi.Int(4),
ResourceGroupName: pulumi.String("example-rg"),
ServerCountPerRack: pulumi.Int(8),
Tags: pulumi.StringMap{
"keyID": pulumi.String("keyValue"),
},
TerminalServerConfiguration: &managednetworkfabric.TerminalServerConfigurationArgs{
Password: pulumi.String("xxxx"),
PrimaryIpv4Prefix: pulumi.String("10.0.0.12/30"),
PrimaryIpv6Prefix: pulumi.String("4FFE:FFFF:0:CD30::a8/127"),
SecondaryIpv4Prefix: pulumi.String("20.0.0.13/30"),
SecondaryIpv6Prefix: pulumi.String("6FFE:FFFF:0:CD30::ac/127"),
SerialNumber: pulumi.String("123456"),
Username: pulumi.String("username"),
},
})
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.managednetworkfabric.NetworkFabric;
import com.pulumi.azurenative.managednetworkfabric.NetworkFabricArgs;
import com.pulumi.azurenative.managednetworkfabric.inputs.ManagementNetworkConfigurationPropertiesArgs;
import com.pulumi.azurenative.managednetworkfabric.inputs.VpnConfigurationPropertiesArgs;
import com.pulumi.azurenative.managednetworkfabric.inputs.VpnConfigurationPropertiesOptionAPropertiesArgs;
import com.pulumi.azurenative.managednetworkfabric.inputs.BfdConfigurationArgs;
import com.pulumi.azurenative.managednetworkfabric.inputs.FabricOptionBPropertiesArgs;
import com.pulumi.azurenative.managednetworkfabric.inputs.RouteTargetInformationArgs;
import com.pulumi.azurenative.managednetworkfabric.inputs.TerminalServerConfigurationArgs;
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 networkFabric = new NetworkFabric("networkFabric", NetworkFabricArgs.builder()
.annotation("annotation")
.fabricASN(29249)
.fabricVersion("1.x.x")
.ipv4Prefix("10.18.0.0/19")
.ipv6Prefix("3FFE:FFFF:0:CD40::/59")
.location("eastuseuap")
.managementNetworkConfiguration(ManagementNetworkConfigurationPropertiesArgs.builder()
.infrastructureVpnConfiguration(VpnConfigurationPropertiesArgs.builder()
.networkToNetworkInterconnectId("/subscriptions/1234ABCD-0A1B-1234-5678-123456ABCDEF/resourceGroups/example-rg/providers/Microsoft.ManagedNetworkFabric/networkFabrics/example-fabric/networkToNetworkInterconnects/example-nni")
.optionAProperties(VpnConfigurationPropertiesOptionAPropertiesArgs.builder()
.bfdConfiguration(BfdConfigurationArgs.builder()
.intervalInMilliSeconds(300)
.multiplier(10)
.build())
.mtu(1501)
.peerASN(1235)
.primaryIpv4Prefix("10.0.0.12/30")
.primaryIpv6Prefix("4FFE:FFFF:0:CD30::a8/127")
.secondaryIpv4Prefix("20.0.0.13/30")
.secondaryIpv6Prefix("6FFE:FFFF:0:CD30::ac/127")
.vlanId(3001)
.build())
.optionBProperties(FabricOptionBPropertiesArgs.builder()
.exportRouteTargets("65046:10050")
.importRouteTargets("65046:10050")
.routeTargets(RouteTargetInformationArgs.builder()
.exportIpv4RouteTargets("65046:10039")
.exportIpv6RouteTargets("65046:10039")
.importIpv4RouteTargets("65046:10039")
.importIpv6RouteTargets("65046:10039")
.build())
.build())
.peeringOption("OptionA")
.build())
.workloadVpnConfiguration(VpnConfigurationPropertiesArgs.builder()
.networkToNetworkInterconnectId("/subscriptions/1234ABCD-0A1B-1234-5678-123456ABCDEF/resourceGroups/example-rg/providers/Microsoft.ManagedNetworkFabric/networkFabrics/example-fabric/networkToNetworkInterconnects/example-nni")
.optionAProperties(VpnConfigurationPropertiesOptionAPropertiesArgs.builder()
.bfdConfiguration(BfdConfigurationArgs.builder()
.intervalInMilliSeconds(300)
.multiplier(5)
.build())
.mtu(1500)
.peerASN(61234)
.primaryIpv4Prefix("10.0.0.14/30")
.primaryIpv6Prefix("2FFE:FFFF:0:CD30::a7/126")
.secondaryIpv4Prefix("10.0.0.15/30")
.secondaryIpv6Prefix("2FFE:FFFF:0:CD30::ac/126")
.vlanId(3000)
.build())
.optionBProperties(FabricOptionBPropertiesArgs.builder()
.exportRouteTargets("65046:10050")
.importRouteTargets("65046:10050")
.routeTargets(RouteTargetInformationArgs.builder()
.exportIpv4RouteTargets("65046:10039")
.exportIpv6RouteTargets("65046:10039")
.importIpv4RouteTargets("65046:10039")
.importIpv6RouteTargets("65046:10039")
.build())
.build())
.peeringOption("OptionA")
.build())
.build())
.networkFabricControllerId("/subscriptions/1234ABCD-0A1B-1234-5678-123456ABCDEF/resourceGroups/example-rg/providers/Microsoft.ManagedNetworkFabric/networkFabricControllers/example-fabricController")
.networkFabricName("example-fabric")
.networkFabricSku("M4-A400-A100-C16-aa")
.rackCount(4)
.resourceGroupName("example-rg")
.serverCountPerRack(8)
.tags(Map.of("keyID", "keyValue"))
.terminalServerConfiguration(TerminalServerConfigurationArgs.builder()
.password("xxxx")
.primaryIpv4Prefix("10.0.0.12/30")
.primaryIpv6Prefix("4FFE:FFFF:0:CD30::a8/127")
.secondaryIpv4Prefix("20.0.0.13/30")
.secondaryIpv6Prefix("6FFE:FFFF:0:CD30::ac/127")
.serialNumber("123456")
.username("username")
.build())
.build());
}
}
Import
An existing resource can be imported using its type token, name, and identifier, e.g.
$ pulumi import azure-native:managednetworkfabric:NetworkFabric example-fabric /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedNetworkFabric/networkFabrics/{networkFabricName}
Properties
Administrative state of the resource.
Switch configuration description.
The Azure API version of the resource.
Configuration state of the resource.
The version of Network Fabric.
IPv4Prefix for Management Network. Example: 10.1.0.0/19.
IPv6Prefix for Management Network. Example: 3FFE:FFFF:0:CD40::/59
List of L2 Isolation Domain resource IDs under the Network Fabric.
List of L3 Isolation Domain resource IDs under the Network Fabric.
Configuration to be used to setup the management network.
Azure resource ID for the NetworkFabricController the NetworkFabric belongs.
Supported Network Fabric SKU.Example: Compute / Aggregate racks. Once the user chooses a particular SKU, only supported racks can be added to the Network Fabric. The SKU determines whether it is a single / multi rack Network Fabric.
Provides you the latest status of the NFC service, whether it is Accepted, updating, Succeeded or Failed. During this process, the states keep changing based on the status of NFC provisioning.
Number of servers.Possible values are from 1-16.
Azure Resource Manager metadata containing createdBy and modifiedBy information.
Network and credentials configuration currently applied to terminal server.