Skip to content

Commit 769e4d1

Browse files
authored
Fix #132 lbr with no probe (#133)
* spelling * spelling * fix issue with lbr migration when lbr had no probe
1 parent 9b828b1 commit 769e4d1

File tree

9 files changed

+190
-34
lines changed

9 files changed

+190
-34
lines changed

AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/AzureBasicLoadBalancerUpgrade.psd1

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
RootModule = 'AzureBasicLoadBalancerUpgrade'
1313

1414
# Version number of this module.
15-
ModuleVersion = '2.4.15'
15+
ModuleVersion = '2.4.20'
1616

1717
# Supported PSEditions
1818
# CompatiblePSEditions = @()
@@ -21,13 +21,13 @@
2121
GUID = 'd6a9de52-b84f-40c3-b4c8-81fab6e3ec99'
2222

2323
# Author of this module
24-
Author = 'FastTrack for Azure'
24+
Author = 'Matthew Bratschun'
2525

2626
# Company or vendor of this module
2727
CompanyName = 'Microsoft'
2828

2929
# Copyright statement for this module
30-
Copyright = '(c) 2023 Microsoft. All rights reserved.'
30+
Copyright = '(c) 2025 Microsoft. All rights reserved.'
3131

3232
# Description of the functionality provided by this module
3333
Description = 'This module will migrate a Basic SKU load balancer connected to a Virtual Machine Scaleset or Virtual Machines to a Standard SKU load balancer, preserving the existing configuration and functionality.'
@@ -107,7 +107,7 @@
107107
# IconUri = ''
108108

109109
# ReleaseNotes of this module
110-
ReleaseNotes = 'Fix bug when comparing backend pool membership on empty LBs.'
110+
ReleaseNotes = 'Fix bug where load balancing rule without probe would cause migration to fail.'
111111

112112
# Prerelease string of this module
113113
# Prerelease = 'beta'

AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/modules/LoadBalacingRulesMigration/LoadBalacingRulesMigration.psd1 renamed to AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/modules/LoadBalancingRulesMigration/LoadBalancingRulesMigration.psd1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Module manifest for module 'LoadBalacingRulesMigration'
2+
# Module manifest for module 'LoadBalancingRulesMigration'
33
#
44
# Generated by: Victor Santana
55
#
@@ -9,7 +9,7 @@
99
@{
1010

1111
# Script module or binary module file associated with this manifest.
12-
RootModule = 'LoadBalacingRulesMigration'
12+
RootModule = 'LoadBalancingRulesMigration'
1313

1414
# Version number of this module.
1515
ModuleVersion = '0.1.0'

AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/modules/LoadBalacingRulesMigration/LoadBalacingRulesMigration.psm1 renamed to AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/modules/LoadBalancingRulesMigration/LoadBalancingRulesMigration.psm1

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,24 @@
11
# Load Modules
22
Import-Module ((Split-Path $PSScriptRoot -Parent) + "/Log/Log.psd1")
3-
function LoadBalacingRulesMigration {
3+
function LoadBalancingRulesMigration {
44
[CmdletBinding()]
55
param (
66
[Parameter(Mandatory = $True)][Microsoft.Azure.Commands.Network.Models.PSLoadBalancer] $BasicLoadBalancer,
77
[Parameter(Mandatory = $True)][Microsoft.Azure.Commands.Network.Models.PSLoadBalancer] $StdLoadBalancer
88
)
9-
log -Message "[LoadBalacingRulesMigration] Initiating LoadBalacing Rules Migration"
9+
log -Message "[LoadBalancingRulesMigration] Initiating LoadBalancing Rules Migration"
1010
$loadBalancingRules = $BasicLoadBalancer.LoadBalancingRules
1111
foreach ($loadBalancingRule in $loadBalancingRules) {
12-
log -Message "[LoadBalacingRulesMigration] Adding LoadBalacing Rule $($loadBalancingRule.Name) to Standard Load Balancer"
12+
log -Message "[LoadBalancingRulesMigration] Adding LoadBalancing Rule $($loadBalancingRule.Name) to Standard Load Balancer"
13+
14+
# set $probe if LBR has probe
15+
if ($loadBalancingRule.Probe -ne $null) {
16+
$probeName = ($loadBalancingRule.Probe.Id).split('/')[-1]
17+
$probe = Get-AzLoadBalancerProbeConfig -LoadBalancer $StdLoadBalancer -Name $probeName
18+
}
19+
else {
20+
$probe = $null
21+
}
1322

1423
try {
1524
$ErrorActionPreference = 'Stop'
@@ -25,26 +34,26 @@ function LoadBalacingRulesMigration {
2534
EnableTcpReset = $loadBalancingRule.EnableTcpReset
2635
FrontendIPConfiguration = (Get-AzLoadBalancerFrontendIpConfig -LoadBalancer $StdLoadBalancer -Name ($loadBalancingRule.FrontendIpConfiguration.Id).split('/')[-1])
2736
BackendAddressPool = (Get-AzLoadBalancerBackendAddressPool -LoadBalancer $StdLoadBalancer -Name ($loadBalancingRule.BackendAddressPool.Id).split('/')[-1])
28-
Probe = (Get-AzLoadBalancerProbeConfig -LoadBalancer $StdLoadBalancer -Name ($loadBalancingRule.Probe.Id).split('/')[-1])
37+
Probe = $probe
2938
}
3039
$StdLoadBalancer | Add-AzLoadBalancerRuleConfig @loadBalancingRuleConfig > $null
3140
}
3241
catch {
33-
$message = "[LoadBalacingRulesMigration] An error occured when adding Load Balancing Rule '$($loadBalancingRule.Name)' to new Standard load balancer '$($StdLoadBalancer.Name)'. To recover, address the following error, delete the standard LB, and follow the process at https://aka.ms/basiclbupgradefailure to retry migration. Error: $_"
42+
$message = "[LoadBalancingRulesMigration] An error occurred when adding Load Balancing Rule '$($loadBalancingRule.Name)' to new Standard load balancer '$($StdLoadBalancer.Name)'. To recover, address the following error, delete the standard LB, and follow the process at https://aka.ms/basiclbupgradefailure to retry migration. Error: $_"
3443
log "Error" $message -terminateOnError
3544
}
3645
}
37-
log -Message "[LoadBalacingRulesMigration] Saving Standard Load Balancer $($StdLoadBalancer.Name)"
46+
log -Message "[LoadBalancingRulesMigration] Saving Standard Load Balancer $($StdLoadBalancer.Name)"
3847

3948
try {
4049
$ErrorActionPreference = 'Stop'
4150
Set-AzLoadBalancer -LoadBalancer $StdLoadBalancer > $null
4251
}
4352
catch {
44-
$message = "[LoadBalacingRulesMigration] An error occured when adding Load Balancing Rules configuration to new Standard load balancer '$($StdLoadBalancer.Name)'. To recover address the following error, https://aka.ms/basiclbupgradefailure. `nError message: $_"
53+
$message = "[LoadBalancingRulesMigration] An error occurred when adding Load Balancing Rules configuration to new Standard load balancer '$($StdLoadBalancer.Name)'. To recover address the following error, https://aka.ms/basiclbupgradefailure. `nError message: $_"
4554
log "Error" $message -terminateOnError
4655
}
47-
log -Message "[LoadBalacingRulesMigration] LoadBalacing Rules Migration Completed"
56+
log -Message "[LoadBalancingRulesMigration] LoadBalancing Rules Migration Completed"
4857
}
4958

50-
Export-ModuleMember -Function LoadBalacingRulesMigration
59+
Export-ModuleMember -Function LoadBalancingRulesMigration

AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/modules/RemoveBasicLoadBalancer/RemoveBasicLoadBalancer.psm1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ function RemoveBasicLoadBalancer {
5858
Update-Vmss -Vmss $vmss
5959
}
6060
catch {
61-
$message = "[RemoveBasicLoadBalancerFromVmss] An error occured while updating VMSS '$($vmss.Name)' in resource group '$($vmss.ResourceGroupName)' to remove it from a backend pool on load balancer '$($BasicLoadBalancer.Name)'. Follow the steps at https://aka.ms/basiclbupgradefailure to retry the migration. `nError message: $_"
61+
$message = "[RemoveBasicLoadBalancerFromVmss] An error occurred while updating VMSS '$($vmss.Name)' in resource group '$($vmss.ResourceGroupName)' to remove it from a backend pool on load balancer '$($BasicLoadBalancer.Name)'. Follow the steps at https://aka.ms/basiclbupgradefailure to retry the migration. `nError message: $_"
6262
log 'Error' $message -terminateOnError
6363
}
6464

@@ -72,7 +72,7 @@ function RemoveBasicLoadBalancer {
7272
Remove-AzLoadBalancer -ResourceGroupName $BasicLoadBalancer.ResourceGroupName -Name $BasicLoadBalancer.Name -Force -ErrorAction Stop > $null
7373
}
7474
Catch {
75-
$message = "[RemoveBasicLoadBalancer] A failure occured when attempting to delete the basic load balancer '$($BasicLoadBalancer.Name)'. The script cannot continue as the front end addresses will not be available to reassign to the new Standard load balancer if the Basic LB has not been removed. To recover address the following error, then follow the steps at https://aka.ms/basiclbupgradefailure to retry the migration. `nError message: $_"
75+
$message = "[RemoveBasicLoadBalancer] A failure occurred when attempting to delete the basic load balancer '$($BasicLoadBalancer.Name)'. The script cannot continue as the front end addresses will not be available to reassign to the new Standard load balancer if the Basic LB has not been removed. To recover address the following error, then follow the steps at https://aka.ms/basiclbupgradefailure to retry the migration. `nError message: $_"
7676
log 'Error' $message -terminateOnError
7777
}
7878
log -Message "[RemoveBasicLoadBalancer] Removal of Basic Loadbalancer $($BasicLoadBalancer.Name) Completed"

AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/modules/ScenariosMigration/ScenariosMigration.psm1

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ Import-Module ((Split-Path $PSScriptRoot -Parent) + "/BackendPoolMigration/Backe
4444
Import-Module ((Split-Path $PSScriptRoot -Parent) + "/BackupResources/BackupResources.psd1")
4545
Import-Module ((Split-Path $PSScriptRoot -Parent) + "/GetVmssFromBasicLoadBalancer/GetVmssFromBasicLoadBalancer.psd1")
4646
Import-Module ((Split-Path $PSScriptRoot -Parent) + "/InboundNatPoolsMigration/InboundNatPoolsMigration.psd1")
47-
Import-Module ((Split-Path $PSScriptRoot -Parent) + "/LoadBalacingRulesMigration/LoadBalacingRulesMigration.psd1")
47+
Import-Module ((Split-Path $PSScriptRoot -Parent) + "/LoadBalancingRulesMigration/LoadBalancingRulesMigration.psd1")
4848
Import-Module ((Split-Path $PSScriptRoot -Parent) + "/Log/Log.psd1")
4949
Import-Module ((Split-Path $PSScriptRoot -Parent) + "/NatRulesMigration/NatRulesMigration.psd1")
5050
Import-Module ((Split-Path $PSScriptRoot -Parent) + "/NsgCreation/NsgCreation.psd1")
@@ -142,7 +142,7 @@ function PublicLBMigrationVmss {
142142

143143
# Migration of Load Balancing Rules
144144
Write-Progress -Status "Migrating Load Balancing Rules" -PercentComplete ((8 / 14) * 100) @progressParams
145-
LoadBalacingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer
145+
LoadBalancingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer
146146

147147
# Creating Outbound Rules for SNAT
148148
Write-Progress -Status "Creating Outbound Rules for SNAT" -PercentComplete ((9 / 14) * 100) @progressParams
@@ -221,7 +221,7 @@ function InternalLBMigrationVmss {
221221

222222
# Migration of Load Balancing Rules
223223
Write-Progress -Status "Migrating Load Balancing Rules" -PercentComplete ((9/14) * 100) @progressParams
224-
LoadBalacingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer
224+
LoadBalancingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer
225225

226226
# Migration of NAT Rules
227227
Write-Progress -Status "Migrating NAT Rules" -PercentComplete ((10/14) * 100) @progressParams
@@ -298,7 +298,7 @@ function RestoreExternalLBMigrationVmss {
298298

299299
# Migration of Load Balancing Rules
300300
Write-Progress -Status "Migrating Load Balancing Rules" -PercentComplete ((8/14) * 100) @progressParams
301-
LoadBalacingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer
301+
LoadBalancingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer
302302

303303
# Creating Outbound Rules for SNAT
304304
Write-Progress -Status "Creating Outbound Rules for SNAT" -PercentComplete ((9/14) * 100) @progressParams
@@ -383,7 +383,7 @@ function RestoreInternalLBMigrationVmss {
383383

384384
# Migration of Load Balancing Rules
385385
Write-Progress -Status "Migrating Load Balancing Rules" -PercentComplete ((7/14) * 100) @progressParams
386-
LoadBalacingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer
386+
LoadBalancingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer
387387

388388
# Migration of NAT Rules
389389
Write-Progress -Status "Migrating NAT Rules" -PercentComplete ((8/14) * 100) @progressParams
@@ -453,7 +453,7 @@ function PublicLBMigrationVM {
453453

454454
# Migration of Load Balancing Rules
455455
Write-Progress -Status "Migrating Load Balancing Rules" -PercentComplete ((6 / 14) * 100) @progressParams
456-
LoadBalacingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer
456+
LoadBalancingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer
457457

458458
# Creating Outbound Rules for SNAT
459459
Write-Progress -Status "Creating Outbound Rules for SNAT" -PercentComplete ((7 / 14) * 100) @progressParams
@@ -527,7 +527,7 @@ function InternalLBMigrationVM {
527527

528528
# Migration of Load Balancing Rules
529529
Write-Progress -Status "Migrating Load Balancing Rules" -PercentComplete ((6 / 14) * 100) @progressParams
530-
LoadBalacingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer
530+
LoadBalancingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer
531531

532532
# Migration of NAT Rules
533533
Write-Progress -Status "Migrating NAT Rules" -PercentComplete ((7 / 14) * 100) @progressParams
@@ -592,7 +592,7 @@ function RestoreExternalLBMigrationVM {
592592

593593
# Migration of Load Balancing Rules
594594
Write-Progress -Status "Migrating Load Balancing Rules" -PercentComplete ((6 / 14) * 100) @progressParams
595-
LoadBalacingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer
595+
LoadBalancingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer
596596

597597
# Creating Outbound Rules for SNAT
598598
Write-Progress -Status "Creating Outbound Rules for SNAT" -PercentComplete ((7 / 14) * 100) @progressParams
@@ -661,7 +661,7 @@ function RestoreInternalLBMigrationVM {
661661

662662
# Migration of Load Balancing Rules
663663
Write-Progress -Status "Migrating Load Balancing Rules" -PercentComplete ((5 / 14) * 100) @progressParams
664-
LoadBalacingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer
664+
LoadBalancingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer
665665

666666
# Migration of NAT Rules
667667
Write-Progress -Status "Migrating NAT Rules" -PercentComplete ((6 / 14) * 100) @progressParams
@@ -723,7 +723,7 @@ function PublicLBMigrationEmpty {
723723

724724
# Migration of Load Balancing Rules
725725
Write-Progress -Status "Migrating Load Balancing Rules" -PercentComplete ((5/14) * 100) @progressParams
726-
LoadBalacingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer
726+
LoadBalancingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer
727727

728728
# Creating Outbound Rules for SNAT
729729
Write-Progress -Status "Creating Outbound Rules for SNAT" -PercentComplete ((6/14) * 100) @progressParams
@@ -785,7 +785,7 @@ function InternalLBMigrationEmpty {
785785

786786
# Migration of Load Balancing Rules
787787
Write-Progress -Status "Migrating Load Balancing Rules" -PercentComplete ((7/14) * 100) @progressParams
788-
LoadBalacingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer
788+
LoadBalancingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer
789789

790790
# Migration of NAT Rules
791791
Write-Progress -Status "Migrating NAT Rules" -PercentComplete ((8/14) * 100) @progressParams
@@ -846,7 +846,7 @@ function RestoreExternalLBMigrationEmpty {
846846

847847
# Migration of Load Balancing Rules
848848
Write-Progress -Status "Migrating Load Balancing Rules" -PercentComplete ((6/14) * 100) @progressParams
849-
LoadBalacingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer
849+
LoadBalancingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer
850850

851851
# Creating Outbound Rules for SNAT
852852
Write-Progress -Status "Creating Outbound Rules for SNAT" -PercentComplete ((7/14) * 100) @progressParams
@@ -907,7 +907,7 @@ function RestoreInternalLBMigrationEmpty {
907907

908908
# Migration of Load Balancing Rules
909909
Write-Progress -Status "Migrating Load Balancing Rules" -PercentComplete ((5/14) * 100) @progressParams
910-
LoadBalacingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer
910+
LoadBalancingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer
911911

912912
# Migration of NAT Rules
913913
Write-Progress -Status "Migrating NAT Rules" -PercentComplete ((6/14) * 100) @progressParams

AzureBasicLoadBalancerUpgrade/testEnvs/modules/Microsoft.Network/loadBalancers_custom/deploy.bicep

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,9 +104,9 @@ var loadBalancingRulesVar = [for loadBalancingRule in loadBalancingRules: {
104104
frontendPort: loadBalancingRule.frontendPort
105105
idleTimeoutInMinutes: contains(loadBalancingRule, 'idleTimeoutInMinutes') ? loadBalancingRule.idleTimeoutInMinutes : 4
106106
loadDistribution: contains(loadBalancingRule, 'loadDistribution') ? loadBalancingRule.loadDistribution : 'Default'
107-
probe: {
107+
probe: (loadBalancingRule.?probeName != null) ? {
108108
id: '${az.resourceId('Microsoft.Network/loadBalancers', name)}/probes/${loadBalancingRule.probeName}'
109-
}
109+
} : null
110110
protocol: contains(loadBalancingRule, 'protocol') ? loadBalancingRule.protocol : 'Tcp'
111111
}
112112
}]

0 commit comments

Comments
 (0)