From c408c71cd0a010d24a45fad8b45ef866a787e15e Mon Sep 17 00:00:00 2001 From: Ella Bronson <111298136+ebronson68@users.noreply.github.com> Date: Tue, 3 Sep 2024 16:23:18 -0500 Subject: [PATCH] [DEVOPS-530] Replace Azure PowerShell actions and update logging (#148)
DEVOPS-530
Summary Update Boley DNS workflow failing on "Record already exists"
Type Bug Bug
Status In Development Env
Points N/A
Labels -
--- ## Description - Replace Azure PowerShell actions and update logging - Only update record if it needs to be changed - Move timeout to update DNS step - Convert `azure/powershell` actions to base pwsh shell scripts ## Related Links - Jira Issue: DEVOPS-530 --- .github/workflows/update-addns.yaml | 105 +++++++++++++--------------- 1 file changed, 50 insertions(+), 55 deletions(-) diff --git a/.github/workflows/update-addns.yaml b/.github/workflows/update-addns.yaml index a10d7ef9..8bbdf925 100644 --- a/.github/workflows/update-addns.yaml +++ b/.github/workflows/update-addns.yaml @@ -31,70 +31,65 @@ on: jobs: update-dns: - runs-on: [self-hosted, Windows, boley] - continue-on-error: false - timeout-minutes: 10 name: Update Boley DNS + runs-on: [self-hosted, Windows, boley] steps: - name: Retrieve Application information id: getappinfo - uses: azure/powershell@v2 - with: - azPSVersion: "latest" - inlineScript: | - Install-Module -Name AzTable -Force - Import-Module AzTable + shell: pwsh + run: | + Install-Module -Name AzTable -Force + Import-Module AzTable - $storageAccountName = "${{ inputs.storageAccountName }}" - $storageAccountKey = ${{ secrets.storageAccountKey }} - $appInfoTableName = "${{ inputs.appInfoTableName }}" + $storageAccountName = "${{ inputs.storageAccountName }}" + $storageAccountKey = ${{ secrets.storageAccountKey }} + $appInfoTableName = "${{ inputs.appInfoTableName }}" - $storageContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey + $storageContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey - #Get Storage table - try { - $appInfoTable = (Get-AzStorageTable -Name $appInfoTableName -Context $storageContext -ErrorAction Stop).CloudTable - } - catch { - Write-Error -Message "Error accessing cloud $appInfoTableName table. Error message was: $_.Exception.Message" - return - } + #Get Storage table + try { + $appInfoTable = (Get-AzStorageTable -Name $appInfoTableName -Context $storageContext -ErrorAction Stop).CloudTable + } + catch { + Write-Error -Message "Error accessing cloud $appInfoTableName table. Error message was: $_.Exception.Message" + return + } - $appInfo = Get-AzTableRow -Table $appInfoTable -PartitionKey "${{ inputs.repositoryName }}" -RowKey "${{ inputs.environment }}" + $appInfo = Get-AzTableRow -Table $appInfoTable -PartitionKey "${{ inputs.repositoryName }}" -RowKey "${{ inputs.environment }}" - $applicationName = $appInfo.ApplicationName - $version = $appInfo.Version - $keyVault = $appInfo.KeyVault - $hostName = $appInfo.HostName - $domainName = $appInfo.DomainName - $ingressFqdn = $appInfo.IngressFqdn - $healthCheckPath = $appInfo.HealthCheckPath - $aksIngress = $appInfo.AksIngress + $applicationName = $appInfo.ApplicationName + $version = $appInfo.Version + $keyVault = $appInfo.KeyVault + $hostName = $appInfo.HostName + $domainName = $appInfo.DomainName + $ingressFqdn = $appInfo.IngressFqdn + $healthCheckPath = $appInfo.HealthCheckPath + $aksIngress = $appInfo.AksIngress - echo "applicationName=$applicationName" >> $env:GITHUB_ENV - echo "version=$version" >> $env:GITHUB_ENV - echo "keyVault=$keyVault" >> $env:GITHUB_ENV - echo "hostName=$hostName" >> $env:GITHUB_ENV - echo "domainName=$domainName" >> $env:GITHUB_ENV - echo "applicationIngressFqdn=$ingressFqdn" >> $env:GITHUB_ENV - echo "healthCheckPath=$healthCheckPath" >> $env:GITHUB_ENV - echo "aksIngress=$aksIngress" >> $env:GITHUB_ENV + echo "applicationName=$applicationName" >> $env:GITHUB_ENV + echo "version=$version" >> $env:GITHUB_ENV + echo "keyVault=$keyVault" >> $env:GITHUB_ENV + echo "hostName=$hostName" >> $env:GITHUB_ENV + echo "domainName=$domainName" >> $env:GITHUB_ENV + echo "applicationIngressFqdn=$ingressFqdn" >> $env:GITHUB_ENV + echo "healthCheckPath=$healthCheckPath" >> $env:GITHUB_ENV + echo "aksIngress=$aksIngress" >> $env:GITHUB_ENV - name: Update Internal Boley DNS - uses: azure/powershell@v2 - with: - azPSVersion: "latest" - inlineScript: | - try { - Add-DnsServerResourceRecordCName -Name "${{ env.hostName }}" -HostNameAlias "${{ env.aksIngress}}" -ZoneName "${{ env.domainName }}" -ComputerName ${{ secrets.domainController }} - } - catch { - Write-Host "Record Already Exists" - } - Get-DnsServerResourceRecord -ZoneName "${{ env.domainName }}" -ComputerName ${{ secrets.domainController }} | Where-Object HostName -eq "${{ env.aksIngress }}" | Format-List - try { - Sync-DnsServerZone -Name "${{ env.domainName }}" -ComputerName ${{ secrets.domainController }} - } - catch { - Write-Host "Skipping zone sync. Zone is currently being synced." - } + timeout-minutes: 15 + shell: pwsh + run: | + try { + Add-DnsServerResourceRecordCName -Name "${{ env.hostName }}" -HostNameAlias "${{ env.aksIngress}}" -ZoneName "${{ env.domainName }}" -ComputerName ${{ secrets.domainController }} + } + catch { + Write-Host "Record Already Exists" + } + Get-DnsServerResourceRecord -ZoneName "${{ env.domainName }}" -ComputerName ${{ secrets.domainController }} | Where-Object HostName -eq "${{ env.aksIngress }}" | Format-List + try { + Sync-DnsServerZone -Name "${{ env.domainName }}" -ComputerName ${{ secrets.domainController }} + } + catch { + Write-Host "Skipping zone sync. Zone is currently being synced." + }