@@ -2199,6 +2199,211 @@ function Test-LoadBalancerCRUD-InternalBasicSku
2199
2199
}
2200
2200
}
2201
2201
2202
+ <#
2203
+ . SYNOPSIS
2204
+ Tests Gateway LoadBalancer Provider with one pool.
2205
+ #>
2206
+ function Test-GatewayLoadBalancer-ProviderOnePool
2207
+ {
2208
+ # Setup
2209
+ $rgname = Get-ResourceGroupName
2210
+ $vnetName = Get-ResourceName
2211
+ $subnetName = Get-ResourceName
2212
+ $lbName = Get-ResourceName
2213
+ $frontendName = Get-ResourceName
2214
+ $backendAddressPoolName = Get-ResourceName
2215
+ $probeName = Get-ResourceName
2216
+ $lbruleName = Get-ResourceName
2217
+ $rglocation = " eastus2euap"
2218
+ $resourceTypeParent = " Microsoft.Network/loadBalancers"
2219
+ $location = " eastus2euap"
2220
+
2221
+ try
2222
+ {
2223
+ # Create the resource group
2224
+ $resourceGroup = New-AzResourceGroup - Name $rgname - Location $rglocation - Tags @ { testtag = " testval" }
2225
+
2226
+ # Create the Virtual Network
2227
+ $subnet = New-AzVirtualNetworkSubnetConfig - Name $subnetName - AddressPrefix 172.20 .0.0 / 24
2228
+ $vnet = New-AzVirtualNetwork - Name $vnetName - ResourceGroupName $rgname - Location $location - AddressPrefix 172.20 .0.0 / 16 - Subnet $subnet
2229
+
2230
+ # Create LoadBalancer
2231
+ $frontend = New-AzLoadBalancerFrontendIpConfig - Name $frontendName - Subnet $vnet.Subnets [0 ]
2232
+ $tunnelInterface1 = New-AzLoadBalancerBackendAddressPoolTunnelInterfaceConfig - Protocol Vxlan - Type Internal - Port 2000 - Identifier 800
2233
+ $tunnelInterface2 = New-AzLoadBalancerBackendAddressPoolTunnelInterfaceConfig - Protocol Vxlan - Type External - Port 2001 - Identifier 801
2234
+ $backendAddressPool = New-AzLoadBalancerBackendAddressPoolConfig - Name $backendAddressPoolName - TunnelInterface $tunnelInterface1 , $tunnelInterface2
2235
+ $probe = New-AzLoadBalancerProbeConfig - Name $probeName - RequestPath healthcheck.aspx - Protocol http - Port 80 - IntervalInSeconds 15 - ProbeCount 2
2236
+ $lbrule = New-AzLoadBalancerRuleConfig - Name $lbruleName - FrontendIPConfiguration $frontend - BackendAddressPool $backendAddressPool - Probe $probe - Protocol All - FrontendPort 0 - BackendPort 0 - LoadDistribution SourceIP - DisableOutboundSNAT
2237
+ $actualLb = New-AzLoadBalancer - Name $lbName - ResourceGroupName $rgname - Location $location - FrontendIpConfiguration $frontend - BackendAddressPool $backendAddressPool - Probe $probe - LoadBalancingRule $lbrule - Sku Gateway
2238
+
2239
+ $expectedLb = Get-AzLoadBalancer - Name $lbName - ResourceGroupName $rgname
2240
+
2241
+ # Verification
2242
+ Assert-AreEqual $expectedLb.ResourceGroupName $actualLb.ResourceGroupName
2243
+ Assert-AreEqual $expectedLb.Name $actualLb.Name
2244
+ Assert-AreEqual $expectedLb.Location $actualLb.Location
2245
+ Assert-AreEqualObjectProperties $expectedLb.Sku $actualLb.Sku
2246
+ Assert-AreEqual " Succeeded" $expectedLb.ProvisioningState
2247
+ Assert-AreEqual 1 @ ($expectedLb.FrontendIPConfigurations ).Count
2248
+
2249
+ Assert-AreEqual $frontendName $expectedLb.FrontendIPConfigurations [0 ].Name
2250
+ Assert-AreEqual $vnet.Subnets [0 ].Id $expectedLb.FrontendIPConfigurations [0 ].Subnet.Id
2251
+ Assert-NotNull $expectedLb.FrontendIPConfigurations [0 ].PrivateIpAddress
2252
+
2253
+ Assert-AreEqual $backendAddressPoolName $expectedLb.BackendAddressPools [0 ].Name
2254
+
2255
+ Assert-AreEqual 1 @ ($expectedLb.BackendAddressPools ).Count
2256
+ Assert-AreEqual 2 @ ($expectedLb.BackendAddressPools [0 ].TunnelInterfaces).Count
2257
+
2258
+ Assert-AreEqual $tunnelInterface1.Protocol $expectedLb.BackendAddressPools [0 ].TunnelInterfaces[0 ].Protocol
2259
+ Assert-AreEqual $tunnelInterface1.Type $expectedLb.BackendAddressPools [0 ].TunnelInterfaces[0 ].Type
2260
+ Assert-AreEqual $tunnelInterface1.Port $expectedLb.BackendAddressPools [0 ].TunnelInterfaces[0 ].Port
2261
+ Assert-AreEqual $tunnelInterface1.Identifier $expectedLb.BackendAddressPools [0 ].TunnelInterfaces[0 ].Identifier
2262
+
2263
+ Assert-AreEqual $tunnelInterface2.Protocol $expectedLb.BackendAddressPools [0 ].TunnelInterfaces[1 ].Protocol
2264
+ Assert-AreEqual $tunnelInterface2.Type $expectedLb.BackendAddressPools [0 ].TunnelInterfaces[1 ].Type
2265
+ Assert-AreEqual $tunnelInterface2.Port $expectedLb.BackendAddressPools [0 ].TunnelInterfaces[1 ].Port
2266
+ Assert-AreEqual $tunnelInterface2.Identifier $expectedLb.BackendAddressPools [0 ].TunnelInterfaces[1 ].Identifier
2267
+ }
2268
+ finally
2269
+ {
2270
+ # Cleanup
2271
+ Clean - ResourceGroup $rgname
2272
+ }
2273
+ }
2274
+
2275
+ <#
2276
+ . SYNOPSIS
2277
+ Tests Gateway LoadBalancer Provider with two pools.
2278
+ #>
2279
+ function Test-GatewayLoadBalancer-ProviderTwoPool
2280
+ {
2281
+ # Setup
2282
+ $rgname = Get-ResourceGroupName
2283
+ $vnetName = Get-ResourceName
2284
+ $subnetName = Get-ResourceName
2285
+ $lbName = Get-ResourceName
2286
+ $frontendName = Get-ResourceName
2287
+ $backendAddressPoolName1 = Get-ResourceName
2288
+ $backendAddressPoolName2 = Get-ResourceName
2289
+ $probeName = Get-ResourceName
2290
+ $lbruleName = Get-ResourceName
2291
+ $rglocation = " eastus2euap"
2292
+ $resourceTypeParent = " Microsoft.Network/loadBalancers"
2293
+ $location = " eastus2euap"
2294
+
2295
+ try
2296
+ {
2297
+ # Create the resource group
2298
+ $resourceGroup = New-AzResourceGroup - Name $rgname - Location $rglocation - Tags @ { testtag = " testval" }
2299
+
2300
+ # Create the Virtual Network
2301
+ $subnet = New-AzVirtualNetworkSubnetConfig - Name $subnetName - AddressPrefix 172.20 .0.0 / 24
2302
+ $vnet = New-AzVirtualNetwork - Name $vnetName - ResourceGroupName $rgname - Location $location - AddressPrefix 172.20 .0.0 / 16 - Subnet $subnet
2303
+
2304
+ # Create LoadBalancer
2305
+ $frontend = New-AzLoadBalancerFrontendIpConfig - Name $frontendName - Subnet $vnet.Subnets [0 ]
2306
+ $tunnelInterface1 = New-AzLoadBalancerBackendAddressPoolTunnelInterfaceConfig - Protocol Vxlan - Type Internal - Port 2000 - Identifier 800
2307
+ $tunnelInterface2 = New-AzLoadBalancerBackendAddressPoolTunnelInterfaceConfig - Protocol Vxlan - Type External - Port 2001 - Identifier 801
2308
+ $backendAddressPool1 = New-AzLoadBalancerBackendAddressPoolConfig - Name $backendAddressPoolName1 - TunnelInterface $tunnelInterface1
2309
+ $backendAddressPool2 = New-AzLoadBalancerBackendAddressPoolConfig - Name $backendAddressPoolName2 - TunnelInterface $tunnelInterface2
2310
+ $probe = New-AzLoadBalancerProbeConfig - Name $probeName - RequestPath healthcheck.aspx - Protocol http - Port 80 - IntervalInSeconds 15 - ProbeCount 2
2311
+ $lbrule = New-AzLoadBalancerRuleConfig - Name $lbruleName - FrontendIPConfiguration $frontend - BackendAddressPool $backendAddressPool1 , $backendAddressPool2 - Probe $probe - Protocol All - FrontendPort 0 - BackendPort 0 - LoadDistribution SourceIP - DisableOutboundSNAT
2312
+
2313
+ $actualLb = New-AzLoadBalancer - Name $lbName - ResourceGroupName $rgname - Location $location - FrontendIpConfiguration $frontend - Probe $probe - LoadBalancingRule $lbrule - Sku Gateway - BackendAddressPool $backendAddressPool1 , $backendAddressPool2
2314
+
2315
+ $expectedLb = Get-AzLoadBalancer - Name $lbName - ResourceGroupName $rgname
2316
+
2317
+ # Verification
2318
+ Assert-AreEqual $expectedLb.ResourceGroupName $actualLb.ResourceGroupName
2319
+ Assert-AreEqual $expectedLb.Name $actualLb.Name
2320
+ Assert-AreEqual $expectedLb.Location $actualLb.Location
2321
+ Assert-AreEqualObjectProperties $expectedLb.Sku $actualLb.Sku
2322
+ Assert-AreEqual " Succeeded" $expectedLb.ProvisioningState
2323
+ Assert-AreEqual 1 @ ($expectedLb.FrontendIPConfigurations ).Count
2324
+
2325
+ Assert-AreEqual $frontendName $expectedLb.FrontendIPConfigurations [0 ].Name
2326
+ Assert-AreEqual $vnet.Subnets [0 ].Id $expectedLb.FrontendIPConfigurations [0 ].Subnet.Id
2327
+ Assert-NotNull $expectedLb.FrontendIPConfigurations [0 ].PrivateIpAddress
2328
+
2329
+ Assert-AreEqual 2 @ ($expectedLb.BackendAddressPools ).Count
2330
+ Assert-AreEqual 1 @ ($expectedLb.BackendAddressPools [0 ].TunnelInterfaces).Count
2331
+ Assert-AreEqual $tunnelInterface1.Protocol $expectedLb.BackendAddressPools [0 ].TunnelInterfaces[0 ].Protocol
2332
+ Assert-AreEqual $tunnelInterface1.Type $expectedLb.BackendAddressPools [0 ].TunnelInterfaces[0 ].Type
2333
+ Assert-AreEqual $tunnelInterface1.Port $expectedLb.BackendAddressPools [0 ].TunnelInterfaces[0 ].Port
2334
+ Assert-AreEqual $tunnelInterface1.Identifier $expectedLb.BackendAddressPools [0 ].TunnelInterfaces[0 ].Identifier
2335
+
2336
+ Assert-AreEqual 1 @ ($expectedLb.BackendAddressPools [1 ].TunnelInterfaces).Count
2337
+ Assert-AreEqual $tunnelInterface2.Protocol $expectedLb.BackendAddressPools [1 ].TunnelInterfaces[0 ].Protocol
2338
+ Assert-AreEqual $tunnelInterface2.Type $expectedLb.BackendAddressPools [1 ].TunnelInterfaces[0 ].Type
2339
+ Assert-AreEqual $tunnelInterface2.Port $expectedLb.BackendAddressPools [1 ].TunnelInterfaces[0 ].Port
2340
+ Assert-AreEqual $tunnelInterface2.Identifier $expectedLb.BackendAddressPools [1 ].TunnelInterfaces[0 ].Identifier
2341
+ }
2342
+ finally
2343
+ {
2344
+ # Cleanup
2345
+ Clean - ResourceGroup $rgname
2346
+ }
2347
+ }
2348
+
2349
+ <#
2350
+ . SYNOPSIS
2351
+ Tests Gateway LoadBalancer Consumer ref Provider.
2352
+ #>
2353
+ function Test-GatewayLoadBalancer-ConsumerLb
2354
+ {
2355
+ # Setup Provider
2356
+ $rgname = Get-ResourceGroupName
2357
+ $vnetProviderName = Get-ResourceName
2358
+ $subnetProviderName = Get-ResourceName
2359
+ $lbProviderName = Get-ResourceName
2360
+ $frontendProviderName = Get-ResourceName
2361
+
2362
+ # Setup Provider
2363
+ $pipConusmerName = Get-ResourceName
2364
+ $subnetConsumerName = Get-ResourceName
2365
+ $lbConsumerName = Get-ResourceName
2366
+ $frontendConsumerName = Get-ResourceName
2367
+ $domainNameLabel = Get-ResourceName
2368
+
2369
+ $rglocation = Get-ProviderLocation ResourceManagement
2370
+ $resourceTypeParent = " Microsoft.Network/loadBalancers"
2371
+ $location = Get-ProviderLocation $resourceTypeParent
2372
+
2373
+ try
2374
+ {
2375
+ # Create resource group
2376
+ $resourceGroup = New-AzResourceGroup - Name $rgname - Location $rglocation - Tags @ { testtag = " testval" }
2377
+
2378
+ # Create Provider Virtual Network
2379
+ $subnet = New-AzVirtualNetworkSubnetConfig - Name $subnetProviderName - AddressPrefix 10.0 .1.0 / 24
2380
+ $vnet = New-AzVirtualNetwork - Name $vnetProviderName - ResourceGroupName $rgname - Location $location - AddressPrefix 10.0 .0.0 / 16 - Subnet $subnet
2381
+
2382
+ # Create Provider LoadBalancer
2383
+ $frontendProvider = New-AzLoadBalancerFrontendIpConfig - Name $frontendProviderName - Subnet $vnet.Subnets [0 ]
2384
+ $lbProvider = New-AzLoadBalancer - Name $lbProviderName - ResourceGroupName $rgname - Location $location - FrontendIpConfiguration $frontendProvider - Sku Gateway
2385
+
2386
+ # Create Consumer publicip
2387
+ $publicipConsumer = New-AzPublicIpAddress - ResourceGroupName $rgname - Name $pipConusmerName - location $location - AllocationMethod Static - DomainNameLabel $domainNameLabel - Sku Standard
2388
+
2389
+ # Create Consumer LoadBalancer
2390
+ $lbConsumer = New-AzLoadBalancer - Name $lbConsumerName - ResourceGroupName $rgname - Location $location - Sku Standard
2391
+ Add-AzLoadBalancerFrontendIpConfig - GatewayLoadBalancerId $frontendProvider.Id - LoadBalancer $lbConsumer - Name $frontendConsumerName
2392
+ $lbConsumer = Set-AzLoadBalancer - LoadBalancer $lbConsumer
2393
+
2394
+ $expectedLbConsumer = Get-AzLoadBalancer - Name $lbConsumerName - ResourceGroupName $rgname
2395
+
2396
+ # Verification
2397
+ Assert-NotNull $expectedLbConsumer.frontendIpConfigurations
2398
+ Assert-NotNull $expectedLbConsumer.frontendIpConfigurations [0 ]
2399
+ }
2400
+ finally
2401
+ {
2402
+ # Cleanup
2403
+ Clean - ResourceGroup $rgname
2404
+ }
2405
+ }
2406
+
2202
2407
<#
2203
2408
. SYNOPSIS
2204
2409
Tests creating a public Load balancer with standard sku.
@@ -2650,7 +2855,7 @@ function Test-CreateSubresourcesOnEmptyLoadBalancer
2650
2855
2651
2856
$lb = Add-AzLoadBalancerBackendAddressPoolConfig - Name $poolName - LoadBalancer $lb
2652
2857
$lb = Add-AzLoadBalancerProbeConfig - Name $probeName - LoadBalancer $lb - Port 2000 - IntervalInSeconds 60 - ProbeCount 3 - Protocol Tcp
2653
- $lb = Add-AzLoadBalancerRuleConfig - Name $ruleName - LoadBalancer $lb - FrontendIpConfiguration $ipConfig - Protocol Tcp - FrontendPort 1024 - BackendPort 2048
2858
+ $lb = Add-AzLoadBalancerRuleConfig - Name $ruleName - LoadBalancer $lb - FrontendIPConfigurationId $lb .FrontendIPConfigurations [ 0 ].Id - BackendAddressPoolId $lb .BackendAddressPools [ 0 ].Id - ProbeId $lb .Probes [ 0 ].Id - Protocol Tcp - FrontendPort 82 - BackendPort 83 - IdleTimeoutInMinutes 15 - LoadDistribution SourceIP
2654
2859
$lb = Add-AzLoadBalancerInboundNatRuleConfig - Name $natRuleName - LoadBalancer $lb - FrontendIpConfiguration $ipConfig - FrontendPort 128 - BackendPort 256
2655
2860
2656
2861
# Update load balancer
0 commit comments