From a4d687ee4e6bfe66a8eb85f49d137c0c4ad9f268 Mon Sep 17 00:00:00 2001 From: Matthew Bratschun Date: Wed, 27 Sep 2023 07:29:20 -0600 Subject: [PATCH 1/2] rename scenarios --- ...0-service-fabric-basic-lb-mr-rolling.json} | 0 ...ged-sfc.json => 031-vmss-managed-sfc.json} | 0 ...032-vmss-automatic-os-upgrade-policy.bicep | 144 ++++++++++++++++++ ...nat-pool.json => 033-std-lb-nat-pool.json} | 0 ...-many-fes.bicep => 100-vms-many-fes.bicep} | 0 ...-vms-lb-int.bicep => 101-vms-lb-int.bicep} | 0 ...int.bicep => 102-vms-multivm-lb-int.bicep} | 0 ...-multi-be.bicep => 103-vms-multi-be.bicep} | 0 ...-vms-lb-ext.bicep => 104-vms-lb-ext.bicep} | 0 ...-lb-ext.bicep => 105-vms-pip-lb-ext.bicep} | 0 ...cep => 106-vms-multi-nic-pip-lb-ext.bicep} | 0 ...ext.bicep => 107-vms-nsg-nic-lb-ext.bicep} | 0 ....bicep => 108-vms-nsg-subnet-lb-ext.bicep} | 0 ...p => 109-vms-multivm-mix-pip-lb-ext.bicep} | 0 ...-multi-lb.bicep => 111-vms-multi-lb.bicep} | 0 15 files changed, 144 insertions(+) rename AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/{050-service-fabric-basic-lb-mr-rolling.json => 030-service-fabric-basic-lb-mr-rolling.json} (100%) rename AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/{051-vmss-managed-sfc.json => 031-vmss-managed-sfc.json} (100%) create mode 100644 AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/032-vmss-automatic-os-upgrade-policy.bicep rename AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/{040-std-lb-nat-pool.json => 033-std-lb-nat-pool.json} (100%) rename AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/{030-vms-many-fes.bicep => 100-vms-many-fes.bicep} (100%) rename AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/{031-vms-lb-int.bicep => 101-vms-lb-int.bicep} (100%) rename AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/{032-vms-multivm-lb-int.bicep => 102-vms-multivm-lb-int.bicep} (100%) rename AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/{033-vms-multi-be.bicep => 103-vms-multi-be.bicep} (100%) rename AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/{034-vms-lb-ext.bicep => 104-vms-lb-ext.bicep} (100%) rename AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/{035-vms-pip-lb-ext.bicep => 105-vms-pip-lb-ext.bicep} (100%) rename AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/{036-vms-multi-nic-pip-lb-ext.bicep => 106-vms-multi-nic-pip-lb-ext.bicep} (100%) rename AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/{037-vms-nsg-nic-lb-ext.bicep => 107-vms-nsg-nic-lb-ext.bicep} (100%) rename AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/{038-vms-nsg-subnet-lb-ext.bicep => 108-vms-nsg-subnet-lb-ext.bicep} (100%) rename AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/{039-vms-multivm-mix-pip-lb-ext.bicep => 109-vms-multivm-mix-pip-lb-ext.bicep} (100%) rename AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/{041-vms-multi-lb.bicep => 111-vms-multi-lb.bicep} (100%) diff --git a/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/050-service-fabric-basic-lb-mr-rolling.json b/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/030-service-fabric-basic-lb-mr-rolling.json similarity index 100% rename from AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/050-service-fabric-basic-lb-mr-rolling.json rename to AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/030-service-fabric-basic-lb-mr-rolling.json diff --git a/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/051-vmss-managed-sfc.json b/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/031-vmss-managed-sfc.json similarity index 100% rename from AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/051-vmss-managed-sfc.json rename to AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/031-vmss-managed-sfc.json diff --git a/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/032-vmss-automatic-os-upgrade-policy.bicep b/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/032-vmss-automatic-os-upgrade-policy.bicep new file mode 100644 index 00000000..a075c6d6 --- /dev/null +++ b/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/032-vmss-automatic-os-upgrade-policy.bicep @@ -0,0 +1,144 @@ +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: 'subnet-01' + addressPrefix: '10.0.1.0/24' + } + ] + } + dependsOn: [ + rg + ] +} + +// basic lb +module loadbalancer '../modules/Microsoft.Network/loadBalancers_custom/deploy.bicep' = { + name: 'lb-basic-01' + scope: resourceGroup(resourceGroupName) + params: { + name: 'lb-basic-01' + location: location + frontendIPConfigurations: [ + { + name: 'fe-01' + subnetId: virtualNetworks.outputs.subnetResourceIds[0] + } + ] + 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' + probeName: 'probe-01' + protocol: 'Tcp' + } + ] + probes: [ + { + intervalInSeconds: 5 + name: 'probe-01' + numberOfProbes: 2 + port: '80' + protocol: 'Tcp' + } + ] + } + dependsOn: [ + rg + ] +} + + +module virtualMachineScaleSets '../modules/Microsoft.Compute/virtualMachineScaleSets_custom/deploy.bicep' = { + name: 'vmss-01' + scope: resourceGroup(resourceGroupName) + params: { + location: location + // Required parameters + encryptionAtHost: false + adminUsername: 'admin-vmss' + skuCapacity: 1 + upgradePolicyMode:'Automatic' + enableAutomaticUpdates: false + enableAutomaticOSUpgrade: true + healthProbeId: '${loadbalancer.outputs.resourceId}/probes/probe-01' + 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/scenarios/040-std-lb-nat-pool.json b/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/033-std-lb-nat-pool.json similarity index 100% rename from AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/040-std-lb-nat-pool.json rename to AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/033-std-lb-nat-pool.json diff --git a/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/030-vms-many-fes.bicep b/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/100-vms-many-fes.bicep similarity index 100% rename from AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/030-vms-many-fes.bicep rename to AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/100-vms-many-fes.bicep diff --git a/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/031-vms-lb-int.bicep b/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/101-vms-lb-int.bicep similarity index 100% rename from AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/031-vms-lb-int.bicep rename to AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/101-vms-lb-int.bicep diff --git a/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/032-vms-multivm-lb-int.bicep b/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/102-vms-multivm-lb-int.bicep similarity index 100% rename from AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/032-vms-multivm-lb-int.bicep rename to AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/102-vms-multivm-lb-int.bicep diff --git a/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/033-vms-multi-be.bicep b/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/103-vms-multi-be.bicep similarity index 100% rename from AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/033-vms-multi-be.bicep rename to AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/103-vms-multi-be.bicep diff --git a/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/034-vms-lb-ext.bicep b/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/104-vms-lb-ext.bicep similarity index 100% rename from AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/034-vms-lb-ext.bicep rename to AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/104-vms-lb-ext.bicep diff --git a/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/035-vms-pip-lb-ext.bicep b/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/105-vms-pip-lb-ext.bicep similarity index 100% rename from AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/035-vms-pip-lb-ext.bicep rename to AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/105-vms-pip-lb-ext.bicep diff --git a/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/036-vms-multi-nic-pip-lb-ext.bicep b/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/106-vms-multi-nic-pip-lb-ext.bicep similarity index 100% rename from AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/036-vms-multi-nic-pip-lb-ext.bicep rename to AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/106-vms-multi-nic-pip-lb-ext.bicep diff --git a/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/037-vms-nsg-nic-lb-ext.bicep b/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/107-vms-nsg-nic-lb-ext.bicep similarity index 100% rename from AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/037-vms-nsg-nic-lb-ext.bicep rename to AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/107-vms-nsg-nic-lb-ext.bicep diff --git a/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/038-vms-nsg-subnet-lb-ext.bicep b/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/108-vms-nsg-subnet-lb-ext.bicep similarity index 100% rename from AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/038-vms-nsg-subnet-lb-ext.bicep rename to AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/108-vms-nsg-subnet-lb-ext.bicep diff --git a/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/039-vms-multivm-mix-pip-lb-ext.bicep b/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/109-vms-multivm-mix-pip-lb-ext.bicep similarity index 100% rename from AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/039-vms-multivm-mix-pip-lb-ext.bicep rename to AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/109-vms-multivm-mix-pip-lb-ext.bicep diff --git a/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/041-vms-multi-lb.bicep b/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/111-vms-multi-lb.bicep similarity index 100% rename from AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/041-vms-multi-lb.bicep rename to AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/111-vms-multi-lb.bicep From 9cfb92e26d4c768b9c85ff603a563ed31bac16fc Mon Sep 17 00:00:00 2001 From: Matthew Bratschun Date: Thu, 28 Sep 2023 07:46:26 -0600 Subject: [PATCH 2/2] ilip upgrade fix --- .../AzureBasicLoadBalancerUpgrade.psd1 | 2 +- .../VmssPublicIPConfigMigration.psm1 | 4 +- .../scenarios/034-basic-lb-int-ilip.bicep | 165 ++++++++++++++++++ 3 files changed, 168 insertions(+), 3 deletions(-) create mode 100644 AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/034-basic-lb-int-ilip.bicep diff --git a/AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/AzureBasicLoadBalancerUpgrade.psd1 b/AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/AzureBasicLoadBalancerUpgrade.psd1 index d862875e..2d7dc7bc 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.1.2' + ModuleVersion = '2.1.3' # Supported PSEditions # CompatiblePSEditions = @() diff --git a/AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/modules/VmssPublicIPConfigMigration/VmssPublicIPConfigMigration.psm1 b/AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/modules/VmssPublicIPConfigMigration/VmssPublicIPConfigMigration.psm1 index 3c406443..337ebd5f 100644 --- a/AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/modules/VmssPublicIPConfigMigration/VmssPublicIPConfigMigration.psm1 +++ b/AzureBasicLoadBalancerUpgrade/module/AzureBasicLoadBalancerUpgrade/modules/VmssPublicIPConfigMigration/VmssPublicIPConfigMigration.psm1 @@ -49,13 +49,13 @@ Function AddVmssPublicIPConfig { ForEach ($nic in $refVmss.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations) { Foreach ($ipConfig in $nic.IpConfigurations) { If ($null -ne $ipConfig.PublicIpAddressConfiguration) { - log -Message "[AddVMSSPublicIPConfig] Adding public IP address configuration '$($ipConfig.PublicIpAddressConfiguration.Name)' on IPConfig '$($ipConfig.Name)' on NIC '$($nic.Name)' pf VMSS '$($vmss.Name)'" + log -Message "[AddVMSSPublicIPConfig] Adding public IP address '$($ipConfig.PublicIpAddressConfiguration.Name)' on IPConfig '$($ipConfig.Name)' on NIC '$($nic.Name)' of VMSS '$($vmss.Name)'" $vmssNic = $vmss.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations | Where-Object {$_.Name -eq $nic.Name} $vmssIpConfig = $vmssNic.IpConfigurations | Where-Object {$_.Name -eq $ipConfig.Name} log -Message "[AddVMSSPublicIPConfig] Changing Public IP Address configuration SKU to Standard" - $ipConfig.PublicIpAddressConfiguration.Sku.Name = "Standard" + $ipConfig.PublicIpAddressConfiguration.Sku = [Microsoft.Azure.Management.Compute.Models.PublicIPAddressSku]::new('Standard') $vmssIpConfig.PublicIpAddressConfiguration = $ipConfig.PublicIpAddressConfiguration diff --git a/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/034-basic-lb-int-ilip.bicep b/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/034-basic-lb-int-ilip.bicep new file mode 100644 index 00000000..a8c0f871 --- /dev/null +++ b/AzureBasicLoadBalancerUpgrade/testEnvs/scenarios/034-basic-lb-int-ilip.bicep @@ -0,0 +1,165 @@ +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: 'subnet-01' + addressPrefix: '10.0.1.0/24' + } + ] + } + dependsOn: [ + rg + ] +} + +// basic lb +module loadbalancer '../modules/Microsoft.Network/loadBalancers_custom/deploy.bicep' = { + name: 'lb-basic-01' + scope: resourceGroup(resourceGroupName) + params: { + name: 'lb-basic-01' + location: location + frontendIPConfigurations: [ + { + name: 'fe-01' + subnetId: virtualNetworks.outputs.subnetResourceIds[0] + } + ] + 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' + probeName: 'probe-01' + protocol: 'Tcp' + } + ] + probes: [ + { + intervalInSeconds: 5 + name: 'probe-01' + numberOfProbes: 2 + port: '80' + protocol: 'Tcp' + } + ] + } + dependsOn: [ + rg + ] +} + + +module storageAccounts '../modules/Microsoft.Storage/storageAccounts/deploy.bicep' = { + name: 'bootdiag-storage-01' + scope: resourceGroup(resourceGroupName) + params: { + name: 'bootdiag${uniqueString(deployment().name)}' + location: location + storageAccountSku: 'Standard_LRS' + storageAccountKind: 'StorageV2' + supportsHttpsTrafficOnly: true + } + 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-lbmig' + skuCapacity: 1 + upgradePolicyMode: 'Manual' + imageReference: { + offer: 'WindowsServer' + publisher: 'MicrosoftWindowsServer' + sku: '2022-Datacenter' + version: 'latest' + } + bootDiagnosticStorageAccountName: storageAccounts.outputs.name + 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 + } + ] + publicIPAddressConfiguration: { + name: 'publicipconfig1' + properties: { + idleTimeoutInMinutes: 4 + dnsSettings: { + domainNameLabel: 'vmss-01' + } + } + } + } + } + ] + nicSuffix: '-nic-01' + } + ] + } + dependsOn: [ + rg + ] +}