From 769e4d1cc531dec24a298edc9d94a91fc8472359 Mon Sep 17 00:00:00 2001 From: Matthew Bratschun <25390936+mbrat2005@users.noreply.github.com> Date: Tue, 25 Feb 2025 18:59:05 -0700 Subject: [PATCH] Fix #132 lbr with no probe (#133) * spelling * spelling * fix issue with lbr migration when lbr had no probe --- .../AzureBasicLoadBalancerUpgrade.psd1 | 8 +- .../LoadBalancingRulesMigration.psd1} | 4 +- .../LoadBalancingRulesMigration.psm1} | 27 ++-- .../RemoveBasicLoadBalancer.psm1 | 4 +- .../ScenariosMigration.psm1 | 26 ++-- .../loadBalancers_custom/deploy.bicep | 4 +- .../scenarios/042-basic-lb-lbr-no-probe.bicep | 147 ++++++++++++++++++ .../testEnvs/scripts/GeneratePSD1.ps1 | 2 +- .../testEnvs/scripts/GeneratePSD1.ps1 | 2 +- 9 files changed, 190 insertions(+), 34 deletions(-) rename AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/modules/{LoadBalacingRulesMigration/LoadBalacingRulesMigration.psd1 => LoadBalancingRulesMigration/LoadBalancingRulesMigration.psd1} (97%) rename AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/modules/{LoadBalacingRulesMigration/LoadBalacingRulesMigration.psm1 => LoadBalancingRulesMigration/LoadBalancingRulesMigration.psm1} (57%) create mode 100644 AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/042-basic-lb-lbr-no-probe.bicep diff --git a/AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/AzureBasicLoadBalancerUpgrade.psd1 b/AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/AzureBasicLoadBalancerUpgrade.psd1 index fb795824..4a5b18ce 100644 --- a/AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/AzureBasicLoadBalancerUpgrade.psd1 +++ b/AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/AzureBasicLoadBalancerUpgrade.psd1 @@ -12,7 +12,7 @@ RootModule = 'AzureBasicLoadBalancerUpgrade' # Version number of this module. - ModuleVersion = '2.4.15' + ModuleVersion = '2.4.20' # Supported PSEditions # CompatiblePSEditions = @() @@ -21,13 +21,13 @@ GUID = 'd6a9de52-b84f-40c3-b4c8-81fab6e3ec99' # Author of this module - Author = 'FastTrack for Azure' + Author = 'Matthew Bratschun' # Company or vendor of this module CompanyName = 'Microsoft' # Copyright statement for this module - Copyright = '(c) 2023 Microsoft. All rights reserved.' + Copyright = '(c) 2025 Microsoft. All rights reserved.' # Description of the functionality provided by this module 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 @@ # IconUri = '' # ReleaseNotes of this module - ReleaseNotes = 'Fix bug when comparing backend pool membership on empty LBs.' + ReleaseNotes = 'Fix bug where load balancing rule without probe would cause migration to fail.' # Prerelease string of this module # Prerelease = 'beta' diff --git a/AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/modules/LoadBalacingRulesMigration/LoadBalacingRulesMigration.psd1 b/AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/modules/LoadBalancingRulesMigration/LoadBalancingRulesMigration.psd1 similarity index 97% rename from AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/modules/LoadBalacingRulesMigration/LoadBalacingRulesMigration.psd1 rename to AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/modules/LoadBalancingRulesMigration/LoadBalancingRulesMigration.psd1 index d0a5e4c7..110af854 100644 --- a/AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/modules/LoadBalacingRulesMigration/LoadBalacingRulesMigration.psd1 +++ b/AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/modules/LoadBalancingRulesMigration/LoadBalancingRulesMigration.psd1 @@ -1,5 +1,5 @@ # -# Module manifest for module 'LoadBalacingRulesMigration' +# Module manifest for module 'LoadBalancingRulesMigration' # # Generated by: Victor Santana # @@ -9,7 +9,7 @@ @{ # Script module or binary module file associated with this manifest. -RootModule = 'LoadBalacingRulesMigration' +RootModule = 'LoadBalancingRulesMigration' # Version number of this module. ModuleVersion = '0.1.0' diff --git a/AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/modules/LoadBalacingRulesMigration/LoadBalacingRulesMigration.psm1 b/AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/modules/LoadBalancingRulesMigration/LoadBalancingRulesMigration.psm1 similarity index 57% rename from AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/modules/LoadBalacingRulesMigration/LoadBalacingRulesMigration.psm1 rename to AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/modules/LoadBalancingRulesMigration/LoadBalancingRulesMigration.psm1 index 4e4645ca..433dde97 100644 --- a/AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/modules/LoadBalacingRulesMigration/LoadBalacingRulesMigration.psm1 +++ b/AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/modules/LoadBalancingRulesMigration/LoadBalancingRulesMigration.psm1 @@ -1,15 +1,24 @@ # Load Modules Import-Module ((Split-Path $PSScriptRoot -Parent) + "/Log/Log.psd1") -function LoadBalacingRulesMigration { +function LoadBalancingRulesMigration { [CmdletBinding()] param ( [Parameter(Mandatory = $True)][Microsoft.Azure.Commands.Network.Models.PSLoadBalancer] $BasicLoadBalancer, [Parameter(Mandatory = $True)][Microsoft.Azure.Commands.Network.Models.PSLoadBalancer] $StdLoadBalancer ) - log -Message "[LoadBalacingRulesMigration] Initiating LoadBalacing Rules Migration" + log -Message "[LoadBalancingRulesMigration] Initiating LoadBalancing Rules Migration" $loadBalancingRules = $BasicLoadBalancer.LoadBalancingRules foreach ($loadBalancingRule in $loadBalancingRules) { - log -Message "[LoadBalacingRulesMigration] Adding LoadBalacing Rule $($loadBalancingRule.Name) to Standard Load Balancer" + log -Message "[LoadBalancingRulesMigration] Adding LoadBalancing Rule $($loadBalancingRule.Name) to Standard Load Balancer" + + # set $probe if LBR has probe + if ($loadBalancingRule.Probe -ne $null) { + $probeName = ($loadBalancingRule.Probe.Id).split('/')[-1] + $probe = Get-AzLoadBalancerProbeConfig -LoadBalancer $StdLoadBalancer -Name $probeName + } + else { + $probe = $null + } try { $ErrorActionPreference = 'Stop' @@ -25,26 +34,26 @@ function LoadBalacingRulesMigration { EnableTcpReset = $loadBalancingRule.EnableTcpReset FrontendIPConfiguration = (Get-AzLoadBalancerFrontendIpConfig -LoadBalancer $StdLoadBalancer -Name ($loadBalancingRule.FrontendIpConfiguration.Id).split('/')[-1]) BackendAddressPool = (Get-AzLoadBalancerBackendAddressPool -LoadBalancer $StdLoadBalancer -Name ($loadBalancingRule.BackendAddressPool.Id).split('/')[-1]) - Probe = (Get-AzLoadBalancerProbeConfig -LoadBalancer $StdLoadBalancer -Name ($loadBalancingRule.Probe.Id).split('/')[-1]) + Probe = $probe } $StdLoadBalancer | Add-AzLoadBalancerRuleConfig @loadBalancingRuleConfig > $null } catch { - $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: $_" + $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: $_" log "Error" $message -terminateOnError } } - log -Message "[LoadBalacingRulesMigration] Saving Standard Load Balancer $($StdLoadBalancer.Name)" + log -Message "[LoadBalancingRulesMigration] Saving Standard Load Balancer $($StdLoadBalancer.Name)" try { $ErrorActionPreference = 'Stop' Set-AzLoadBalancer -LoadBalancer $StdLoadBalancer > $null } catch { - $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: $_" + $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: $_" log "Error" $message -terminateOnError } - log -Message "[LoadBalacingRulesMigration] LoadBalacing Rules Migration Completed" + log -Message "[LoadBalancingRulesMigration] LoadBalancing Rules Migration Completed" } -Export-ModuleMember -Function LoadBalacingRulesMigration +Export-ModuleMember -Function LoadBalancingRulesMigration diff --git a/AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/modules/RemoveBasicLoadBalancer/RemoveBasicLoadBalancer.psm1 b/AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/modules/RemoveBasicLoadBalancer/RemoveBasicLoadBalancer.psm1 index 31c36d76..67b71660 100644 --- a/AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/modules/RemoveBasicLoadBalancer/RemoveBasicLoadBalancer.psm1 +++ b/AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/modules/RemoveBasicLoadBalancer/RemoveBasicLoadBalancer.psm1 @@ -58,7 +58,7 @@ function RemoveBasicLoadBalancer { Update-Vmss -Vmss $vmss } catch { - $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: $_" + $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: $_" log 'Error' $message -terminateOnError } @@ -72,7 +72,7 @@ function RemoveBasicLoadBalancer { Remove-AzLoadBalancer -ResourceGroupName $BasicLoadBalancer.ResourceGroupName -Name $BasicLoadBalancer.Name -Force -ErrorAction Stop > $null } Catch { - $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: $_" + $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: $_" log 'Error' $message -terminateOnError } log -Message "[RemoveBasicLoadBalancer] Removal of Basic Loadbalancer $($BasicLoadBalancer.Name) Completed" diff --git a/AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/modules/ScenariosMigration/ScenariosMigration.psm1 b/AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/modules/ScenariosMigration/ScenariosMigration.psm1 index 01425874..c3f659e0 100644 --- a/AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/modules/ScenariosMigration/ScenariosMigration.psm1 +++ b/AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/modules/ScenariosMigration/ScenariosMigration.psm1 @@ -44,7 +44,7 @@ Import-Module ((Split-Path $PSScriptRoot -Parent) + "/BackendPoolMigration/Backe Import-Module ((Split-Path $PSScriptRoot -Parent) + "/BackupResources/BackupResources.psd1") Import-Module ((Split-Path $PSScriptRoot -Parent) + "/GetVmssFromBasicLoadBalancer/GetVmssFromBasicLoadBalancer.psd1") Import-Module ((Split-Path $PSScriptRoot -Parent) + "/InboundNatPoolsMigration/InboundNatPoolsMigration.psd1") -Import-Module ((Split-Path $PSScriptRoot -Parent) + "/LoadBalacingRulesMigration/LoadBalacingRulesMigration.psd1") +Import-Module ((Split-Path $PSScriptRoot -Parent) + "/LoadBalancingRulesMigration/LoadBalancingRulesMigration.psd1") Import-Module ((Split-Path $PSScriptRoot -Parent) + "/Log/Log.psd1") Import-Module ((Split-Path $PSScriptRoot -Parent) + "/NatRulesMigration/NatRulesMigration.psd1") Import-Module ((Split-Path $PSScriptRoot -Parent) + "/NsgCreation/NsgCreation.psd1") @@ -142,7 +142,7 @@ function PublicLBMigrationVmss { # Migration of Load Balancing Rules Write-Progress -Status "Migrating Load Balancing Rules" -PercentComplete ((8 / 14) * 100) @progressParams - LoadBalacingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer + LoadBalancingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer # Creating Outbound Rules for SNAT Write-Progress -Status "Creating Outbound Rules for SNAT" -PercentComplete ((9 / 14) * 100) @progressParams @@ -221,7 +221,7 @@ function InternalLBMigrationVmss { # Migration of Load Balancing Rules Write-Progress -Status "Migrating Load Balancing Rules" -PercentComplete ((9/14) * 100) @progressParams - LoadBalacingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer + LoadBalancingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer # Migration of NAT Rules Write-Progress -Status "Migrating NAT Rules" -PercentComplete ((10/14) * 100) @progressParams @@ -298,7 +298,7 @@ function RestoreExternalLBMigrationVmss { # Migration of Load Balancing Rules Write-Progress -Status "Migrating Load Balancing Rules" -PercentComplete ((8/14) * 100) @progressParams - LoadBalacingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer + LoadBalancingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer # Creating Outbound Rules for SNAT Write-Progress -Status "Creating Outbound Rules for SNAT" -PercentComplete ((9/14) * 100) @progressParams @@ -383,7 +383,7 @@ function RestoreInternalLBMigrationVmss { # Migration of Load Balancing Rules Write-Progress -Status "Migrating Load Balancing Rules" -PercentComplete ((7/14) * 100) @progressParams - LoadBalacingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer + LoadBalancingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer # Migration of NAT Rules Write-Progress -Status "Migrating NAT Rules" -PercentComplete ((8/14) * 100) @progressParams @@ -453,7 +453,7 @@ function PublicLBMigrationVM { # Migration of Load Balancing Rules Write-Progress -Status "Migrating Load Balancing Rules" -PercentComplete ((6 / 14) * 100) @progressParams - LoadBalacingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer + LoadBalancingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer # Creating Outbound Rules for SNAT Write-Progress -Status "Creating Outbound Rules for SNAT" -PercentComplete ((7 / 14) * 100) @progressParams @@ -527,7 +527,7 @@ function InternalLBMigrationVM { # Migration of Load Balancing Rules Write-Progress -Status "Migrating Load Balancing Rules" -PercentComplete ((6 / 14) * 100) @progressParams - LoadBalacingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer + LoadBalancingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer # Migration of NAT Rules Write-Progress -Status "Migrating NAT Rules" -PercentComplete ((7 / 14) * 100) @progressParams @@ -592,7 +592,7 @@ function RestoreExternalLBMigrationVM { # Migration of Load Balancing Rules Write-Progress -Status "Migrating Load Balancing Rules" -PercentComplete ((6 / 14) * 100) @progressParams - LoadBalacingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer + LoadBalancingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer # Creating Outbound Rules for SNAT Write-Progress -Status "Creating Outbound Rules for SNAT" -PercentComplete ((7 / 14) * 100) @progressParams @@ -661,7 +661,7 @@ function RestoreInternalLBMigrationVM { # Migration of Load Balancing Rules Write-Progress -Status "Migrating Load Balancing Rules" -PercentComplete ((5 / 14) * 100) @progressParams - LoadBalacingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer + LoadBalancingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer # Migration of NAT Rules Write-Progress -Status "Migrating NAT Rules" -PercentComplete ((6 / 14) * 100) @progressParams @@ -723,7 +723,7 @@ function PublicLBMigrationEmpty { # Migration of Load Balancing Rules Write-Progress -Status "Migrating Load Balancing Rules" -PercentComplete ((5/14) * 100) @progressParams - LoadBalacingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer + LoadBalancingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer # Creating Outbound Rules for SNAT Write-Progress -Status "Creating Outbound Rules for SNAT" -PercentComplete ((6/14) * 100) @progressParams @@ -785,7 +785,7 @@ function InternalLBMigrationEmpty { # Migration of Load Balancing Rules Write-Progress -Status "Migrating Load Balancing Rules" -PercentComplete ((7/14) * 100) @progressParams - LoadBalacingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer + LoadBalancingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer # Migration of NAT Rules Write-Progress -Status "Migrating NAT Rules" -PercentComplete ((8/14) * 100) @progressParams @@ -846,7 +846,7 @@ function RestoreExternalLBMigrationEmpty { # Migration of Load Balancing Rules Write-Progress -Status "Migrating Load Balancing Rules" -PercentComplete ((6/14) * 100) @progressParams - LoadBalacingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer + LoadBalancingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer # Creating Outbound Rules for SNAT Write-Progress -Status "Creating Outbound Rules for SNAT" -PercentComplete ((7/14) * 100) @progressParams @@ -907,7 +907,7 @@ function RestoreInternalLBMigrationEmpty { # Migration of Load Balancing Rules Write-Progress -Status "Migrating Load Balancing Rules" -PercentComplete ((5/14) * 100) @progressParams - LoadBalacingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer + LoadBalancingRulesMigration -BasicLoadBalancer $BasicLoadBalancer -StdLoadBalancer $StdLoadBalancer # Migration of NAT Rules Write-Progress -Status "Migrating NAT Rules" -PercentComplete ((6/14) * 100) @progressParams diff --git a/AzureBasicLoadBalancerUpgrade/testEnvs/modules/Microsoft.Network/loadBalancers_custom/deploy.bicep b/AzureBasicLoadBalancerUpgrade/testEnvs/modules/Microsoft.Network/loadBalancers_custom/deploy.bicep index 2e49fe05..ccaa4615 100644 --- a/AzureBasicLoadBalancerUpgrade/testEnvs/modules/Microsoft.Network/loadBalancers_custom/deploy.bicep +++ b/AzureBasicLoadBalancerUpgrade/testEnvs/modules/Microsoft.Network/loadBalancers_custom/deploy.bicep @@ -104,9 +104,9 @@ var loadBalancingRulesVar = [for loadBalancingRule in loadBalancingRules: { frontendPort: loadBalancingRule.frontendPort idleTimeoutInMinutes: contains(loadBalancingRule, 'idleTimeoutInMinutes') ? loadBalancingRule.idleTimeoutInMinutes : 4 loadDistribution: contains(loadBalancingRule, 'loadDistribution') ? loadBalancingRule.loadDistribution : 'Default' - probe: { + probe: (loadBalancingRule.?probeName != null) ? { id: '${az.resourceId('Microsoft.Network/loadBalancers', name)}/probes/${loadBalancingRule.probeName}' - } + } : null protocol: contains(loadBalancingRule, 'protocol') ? loadBalancingRule.protocol : 'Tcp' } }] diff --git a/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/042-basic-lb-lbr-no-probe.bicep b/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/042-basic-lb-lbr-no-probe.bicep new file mode 100644 index 00000000..7d88f45e --- /dev/null +++ b/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/042-basic-lb-lbr-no-probe.bicep @@ -0,0 +1,147 @@ +targetScope = 'subscription' +param randomGuid string = newGuid() +param location string +param resourceGroupName string + + +// Resource Group +module rg '../modules/Microsoft.Resources/resourceGroups/deploy.bicep' = { + name: '${resourceGroupName}-${location}' + params: { + name: resourceGroupName + location: location + } +} + +// vnet +module virtualNetworks '../modules/Microsoft.Network/virtualNetworks/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-virtualNetworks' + scope: resourceGroup(resourceGroupName) + params: { + // Required parameters + location: location + addressPrefixes: [ + '10.0.0.0/16' + ] + name: 'vnet-01' + subnets: [ + { + name: 'subnet1' + addressPrefix: '10.0.1.0/24' + } + ] + } + dependsOn: [ + rg + ] +} + +module publicIp01 '../modules/Microsoft.Network/publicIPAddresses/deploy.bicep' = { + name: 'pip-01' + params: { + name: 'pip-01' + location: location + publicIPAddressVersion: 'IPv4' + skuTier: 'Regional' + skuName: 'Basic' + publicIPAllocationMethod: 'Dynamic' + } + scope: resourceGroup(resourceGroupName) + dependsOn: [ + rg + ] +} + +// basic lb +module loadbalancer '../modules/Microsoft.Network/loadBalancers_custom/deploy.bicep' = { + name: 'lb-basic01' + scope: resourceGroup(resourceGroupName) + params: { + name: 'lb-basic-01' + location: location + frontendIPConfigurations: [ + { + name: 'fe-01' + publicIPAddressId: publicIp01.outputs.resourceId + } + ] + backendAddressPools: [ + { + name: 'be-01' + } + ] + inboundNatRules: [] + loadBalancerSku: 'Basic' + loadBalancingRules: [ + { + backendAddressPoolName: 'be-01' + backendPort: 80 + frontendIPConfigurationName: 'fe-01' + frontendPort: 80 + idleTimeoutInMinutes: 4 + loadDistribution: 'Default' + name: 'rule-01' + protocol: 'Tcp' + } + ] + probes: [] + } + dependsOn: [ + rg + ] +} + + +module virtualMachineScaleSets '../modules/Microsoft.Compute/virtualMachineScaleSets/deploy.bicep' = { + name: 'vmss-01' + scope: resourceGroup(resourceGroupName) + params: { + location: location + // Required parameters + encryptionAtHost: false + adminUsername: 'admin-vmss' + skuCapacity: 1 + upgradePolicyMode: 'Manual' + imageReference: { + offer: 'WindowsServer' + publisher: 'MicrosoftWindowsServer' + sku: '2022-Datacenter' + version: 'latest' + } + name: 'vmss-01' + osDisk: { + createOption: 'fromImage' + diskSizeGB: '128' + managedDisk: { + storageAccountType: 'Standard_LRS' + } + } + osType: 'Windows' + skuName: 'Standard_DS1_v2' + // Non-required parameters + adminPassword: '${uniqueString(randomGuid)}rpP@340' + nicConfigurations: [ + { + ipConfigurations: [ + { + name: 'ipconfig1' + properties: { + subnet: { + id: virtualNetworks.outputs.subnetResourceIds[0] + } + loadBalancerBackendAddressPools: [ + { + id: loadbalancer.outputs.backendpools[0].id + } + ] + } + } + ] + nicSuffix: '-nic-01' + } + ] + } + dependsOn: [ + rg + ] +} diff --git a/AzureBasicLoadBalancerUpgrade/testEnvs/scripts/GeneratePSD1.ps1 b/AzureBasicLoadBalancerUpgrade/testEnvs/scripts/GeneratePSD1.ps1 index 9653ac16..3ad55302 100644 --- a/AzureBasicLoadBalancerUpgrade/testEnvs/scripts/GeneratePSD1.ps1 +++ b/AzureBasicLoadBalancerUpgrade/testEnvs/scripts/GeneratePSD1.ps1 @@ -10,7 +10,7 @@ New-ModuleManifest -Path BackendPoolMigration.psd1 -RootModule BackendPoolMigrat New-ModuleManifest -Path NatRulesMigration.psd1 -RootModule NatRulesMigration -Author "Victor Santana" -CompanyName "Microsoft" -Copyright "(c) 2022 Microsoft. All rights reserved." -FunctionsToExport '*' -CmdletsToExport '*' -AliasesToExport '*' -PassThru New-ModuleManifest -Path UpdateVmssInstances.psd1 -RootModule UpdateVmssInstances -Author "Victor Santana" -CompanyName "Microsoft" -Copyright "(c) 2022 Microsoft. All rights reserved." -FunctionsToExport '*' -CmdletsToExport '*' -AliasesToExport '*' -PassThru New-ModuleManifest -Path ProbesMigration.psd1 -RootModule ProbesMigration -Author "Victor Santana" -CompanyName "Microsoft" -Copyright "(c) 2022 Microsoft. All rights reserved." -FunctionsToExport '*' -CmdletsToExport '*' -AliasesToExport '*' -PassThru -New-ModuleManifest -Path LoadBalacingRulesMigration.psd1 -RootModule LoadBalacingRulesMigration -Author "Victor Santana" -CompanyName "Microsoft" -Copyright "(c) 2022 Microsoft. All rights reserved." -FunctionsToExport '*' -CmdletsToExport '*' -AliasesToExport '*' -PassThru +New-ModuleManifest -Path LoadBalancingRulesMigration.psd1 -RootModule LoadBalancingRulesMigration -Author "Victor Santana" -CompanyName "Microsoft" -Copyright "(c) 2022 Microsoft. All rights reserved." -FunctionsToExport '*' -CmdletsToExport '*' -AliasesToExport '*' -PassThru New-ModuleManifest -Path InboundNatPoolsMigration.psd1 -RootModule InboundNatPoolsMigration -Author "Matthew Bratschun" -CompanyName "Microsoft" -Copyright "(c) 2022 Microsoft. All rights reserved." -FunctionsToExport '*' -CmdletsToExport '*' -AliasesToExport '*' -PassThru New-ModuleManifest -Path OutboundRulesCreation.psd1 -RootModule OutboundRulesCreation -Author "Matthew Bratschun" -CompanyName "Microsoft" -Copyright "(c) 2022 Microsoft. All rights reserved." -FunctionsToExport '*' -CmdletsToExport '*' -AliasesToExport '*' -PassThru New-ModuleManifest -Path NSGCreation.psd1 -RootModule NSGCreation -Author "Matthew Bratschun" -CompanyName "Microsoft" -Copyright "(c) 2022 Microsoft. All rights reserved." -FunctionsToExport '*' -CmdletsToExport '*' -AliasesToExport '*' -PassThru diff --git a/AzureLoadBalancerNATPoolMigration/testEnvs/scripts/GeneratePSD1.ps1 b/AzureLoadBalancerNATPoolMigration/testEnvs/scripts/GeneratePSD1.ps1 index 20f8ea4b..4f9fb8c0 100644 --- a/AzureLoadBalancerNATPoolMigration/testEnvs/scripts/GeneratePSD1.ps1 +++ b/AzureLoadBalancerNATPoolMigration/testEnvs/scripts/GeneratePSD1.ps1 @@ -10,7 +10,7 @@ New-ModuleManifest -Path BackendPoolMigration.psd1 -RootModule BackendPoolMigrat New-ModuleManifest -Path NatRulesMigration.psd1 -RootModule NatRulesMigration -Author "Victor Santana" -CompanyName "Microsoft" -Copyright "(c) 2022 Microsoft. All rights reserved." -FunctionsToExport '*' -CmdletsToExport '*' -AliasesToExport '*' -PassThru New-ModuleManifest -Path UpdateVmssInstances.psd1 -RootModule UpdateVmssInstances -Author "Victor Santana" -CompanyName "Microsoft" -Copyright "(c) 2022 Microsoft. All rights reserved." -FunctionsToExport '*' -CmdletsToExport '*' -AliasesToExport '*' -PassThru New-ModuleManifest -Path ProbesMigration.psd1 -RootModule ProbesMigration -Author "Victor Santana" -CompanyName "Microsoft" -Copyright "(c) 2022 Microsoft. All rights reserved." -FunctionsToExport '*' -CmdletsToExport '*' -AliasesToExport '*' -PassThru -New-ModuleManifest -Path LoadBalacingRulesMigration.psd1 -RootModule LoadBalacingRulesMigration -Author "Victor Santana" -CompanyName "Microsoft" -Copyright "(c) 2022 Microsoft. All rights reserved." -FunctionsToExport '*' -CmdletsToExport '*' -AliasesToExport '*' -PassThru +New-ModuleManifest -Path LoadBalancingRulesMigration.psd1 -RootModule LoadBalancingRulesMigration -Author "Victor Santana" -CompanyName "Microsoft" -Copyright "(c) 2022 Microsoft. All rights reserved." -FunctionsToExport '*' -CmdletsToExport '*' -AliasesToExport '*' -PassThru New-ModuleManifest -Path InboundNatPoolsMigration.psd1 -RootModule InboundNatPoolsMigration -Author "Matthew Bratschun" -CompanyName "Microsoft" -Copyright "(c) 2022 Microsoft. All rights reserved." -FunctionsToExport '*' -CmdletsToExport '*' -AliasesToExport '*' -PassThru New-ModuleManifest -Path OutboundRulesCreation.psd1 -RootModule OutboundRulesCreation -Author "Matthew Bratschun" -CompanyName "Microsoft" -Copyright "(c) 2022 Microsoft. All rights reserved." -FunctionsToExport '*' -CmdletsToExport '*' -AliasesToExport '*' -PassThru New-ModuleManifest -Path NSGCreation.psd1 -RootModule NSGCreation -Author "Matthew Bratschun" -CompanyName "Microsoft" -Copyright "(c) 2022 Microsoft. All rights reserved." -FunctionsToExport '*' -CmdletsToExport '*' -AliasesToExport '*' -PassThru