deploy/pipelines/22-sample-deployer-config.yaml (239 lines of code) (raw):

# Copyright (c) Microsoft Corporation. # Licensed under the MIT License. name: Create Deployer Configuration trigger: none parameters: - name: deployer_environment_parameter displayName: Deployer Environment name (MGMT, DEV, QA, PRD, ...) type: string default: MGMT - name: deployer_region_parameter displayName: Deployer region name code (MGMT, DEV, QA, PRD, ...) type: string default: WEEU values: - AUCE - AUC2 - AUEA - AUSE - BRSO - BRSE - BRUS - CACE - CAEA - CEIN - CEUS - CEUA - EAAS - EAUS - EUS2 - FRCE - FRSO - GENO - GEWC - JAEA - JAWE - JINC - JINW - KOCE - KOSO - NCUS - NOEU - NOEA - NOWE - NZNO - SANO - SAWE - SCUS - SCUG - SOEA - SOIN - SECE - SWNO - SWWE - UACE - UANO - UKSO - UKWE - WCUS - WEEU - WEIN - WEUS - WUS2 - WUS3 variables: - name: deployer_environment value: ${{ parameters.deployer_environment_parameter }} - name: deployer_region value: ${{ parameters.deployer_region_parameter }} - name: deployer_folder value: ${{ format('{0}-{1}-DEP01-INFRASTRUCTURE', parameters.deployer_environment_parameter, parameters.deployer_region_parameter) }} - name: deployer_file value: ${{ format('{0}-{1}-DEP01-INFRASTRUCTURE.tfvars', parameters.deployer_environment_parameter, parameters.deployer_region_parameter) }} - name: library_folder value: ${{ format('{0}-{1}-SAP_LIBRARY', parameters.deployer_environment_parameter, parameters.deployer_region_parameter) }} - name: library_file value: ${{ format('{0}-{1}-SAP_LIBRARY.tfvars', parameters.deployer_environment_parameter, parameters.deployer_region_parameter) }} stages: - stage: Create_Configuration displayName: Create Deployer Configuration jobs: - job: Create_Deployer_Configuration displayName: Create Deployer Configuration workspace: clean: all steps: - task: PostBuildCleanup@4 - checkout: self persistCredentials: true - task: PowerShell@2 displayName: "Create Sample configuration for the control plane" inputs: targetType: "inline" script: | git fetch -q --all git checkout -q $(Build.SourceBranchName) git pull $FolderName = "WORKSPACES" $region = switch ("$(deployer_region)") { "AUCE" { "australiacentral" } "AUC2" { "australiacentral2" } "AUEA" { "australiaeast" } "AUSE" { "australiasoutheast" } "BRSO" { "brazilsouth" } "BRSE" { "brazilsoutheast" } "BRUS" { "brazilus" } "CACE" { "canadacentral" } "CAEA" { "canadaeast" } "CEIN" { "centralindia" } "CEUS" { "centralus" } "CEUA" { "centraluseuap" } "EAAS" { "eastasia" } "EAUS" { "eastus" } "EUS2" { "eastus2" } "EUSG" { "eastusstg"} "FRCE" { "francecentral" } "FRSO" { "francesouth" } "GENO" { "germanynorth" } "GEWC" { "germanywestcentral" } "ISCE" { "israelcentral" } "ITNO" { "italynorth" } "JAEA" { "japaneast" } "JAWE" { "japanwest" } "JINC" { "jioindiacentral" } "JINW" { "jioindiawest" } "KOCE" { "koreacentral" } "KOSO" { "koreasouth" } "NCUS" { "northcentralus" } "NOEU" { "northeurope" } "NOEA" { "norwayeast" } "NOWE" { "norwaywest" } "NZNO" { "newzealandnorth" } "PLCE" { "polandcentral" } "QACE" { "qatarcentral" } "SANO" { "southafricanorth" } "SAWE" { "southafricawest" } "SCUS" { "southcentralus" } "SCUG" { "southcentralusstg" } "SOEA" { "southeastasia" } "SOIN" { "southindia" } "SECE" { "swedencentral" } "SWNO" { "switzerlandnorth" } "SWWE" { "switzerlandwest" } "UACE" { "uaecentral" } "UANO" { "uaenorth" } "UKSO" { "uksouth" } "UKWE" { "ukwest" } "WCUS" { "westcentralus" } "WEEU" { "westeurope" } "WEIN" { "westindia" } "WEUS" { "westus" } "WUS2" { "westus2" } "WUS3" { "westus3" } } $Full = Join-Path -Path $($FolderName) -ChildPath (Join-Path -Path "DEPLOYER" -ChildPath $(deployer_folder)) $Full_FileName = (Join-Path -path $Full -ChildPath "$(deployer_file)") if (Test-Path $Full) { cd $Full if (Test-Path $(deployer_file)) { } else { $DeployerFile = New-Item -Path . -Name $(deployer_file) -ItemType "file" -Value ("# Deployer Configuration File" + [Environment]::NewLine) Add-Content $(deployer_file) "environment = ""$(deployer_environment)""" Add-Content $(deployer_file) "location = ""$region""" Add-Content $(deployer_file) "" Add-Content $(deployer_file) "management_network_logical_name = ""DEP01""" Add-Content $(deployer_file) "management_network_address_space = ""10.170.20.0/24""" Add-Content $(deployer_file) "management_subnet_address_prefix = ""10.170.20.64/28""" Add-Content $(deployer_file) "firewall_deployment = true" Add-Content $(deployer_file) "management_firewall_subnet_address_prefix = ""10.170.20.0/26""" Add-Content $(deployer_file) "bastion_deployment = true" Add-Content $(deployer_file) "management_bastion_subnet_address_prefix = ""10.170.20.128/26""" Add-Content $(deployer_file) "webapp_subnet_address_prefix = ""10.170.20.80/28""" git config --global user.email "$(Build.RequestedForEmail)" git config --global user.name "$(Build.RequestedFor)" git add -f $(deployer_file) git commit -m "Added Control Plane configuration[skip ci]" git -c http.extraheader="AUTHORIZATION: bearer $(System.AccessToken)" push --set-upstream origin $(Build.SourceBranchName) } } else { #PowerShell Create directory if not exists cd $(Build.Repository.LocalPath) $Folder = New-Item $Full -ItemType Directory cd $Folder.FullName $DeployerFile = New-Item -Path . -Name $(deployer_file) -ItemType "file" -Value ("# Deployer Configuration File" + [Environment]::NewLine) Add-Content $(deployer_file) "environment = ""$(deployer_environment)""" Add-Content $(deployer_file) "location = ""$region""" Add-Content $(deployer_file) "" Add-Content $(deployer_file) "management_network_logical_name = ""DEP00""" Add-Content $(deployer_file) "management_network_address_space = ""10.170.20.0/24""" Add-Content $(deployer_file) "management_subnet_address_prefix = ""10.170.20.64/28""" Add-Content $(deployer_file) "firewall_deployment = true" Add-Content $(deployer_file) "management_firewall_subnet_address_prefix = ""10.170.20.0/26""" Add-Content $(deployer_file) "bastion_deployment = true" Add-Content $(deployer_file) "management_bastion_subnet_address_prefix = ""10.170.20.128/26""" Add-Content $(deployer_file) "webapp_subnet_address_prefix = ""10.170.20.80/28""" git config --global user.email "$(Build.RequestedForEmail)" git config --global user.name "$(Build.RequestedFor)" git add -f $(deployer_file) git commit -m "Added Control Plane configuration[skip ci]" git -c http.extraheader="AUTHORIZATION: bearer $(System.AccessToken)" push --set-upstream origin $(Build.SourceBranchName) } $Full = Join-Path -Path $($FolderName) -ChildPath (Join-Path -Path "LIBRARY" -ChildPath $(library_folder)) $Full_FileName = (Join-Path -path $Full -ChildPath "$(library_file)") cd $(Build.Repository.LocalPath) if (Test-Path $Full) { cd $Full if (Test-Path $(library_file)) { } else { $LibraryFile = New-Item -Path . -Name $(library_file) -ItemType "file" -Value ("# Library Configuration File" + [Environment]::NewLine) Add-Content $(library_file) "environment = ""$(deployer_environment)""" Add-Content $(library_file) "location = ""$region""" Add-Content $(library_file) "" Add-Content $(library_file) "dns_label = ""sap.contoso.net""" git config --global user.email "$(Build.RequestedForEmail)" git config --global user.name "$(Build.RequestedFor)" git add -f $(library_file) git commit -m "Added Control Plane Library configuration[skip ci]" git -c http.extraheader="AUTHORIZATION: bearer $(System.AccessToken)" push --set-upstream origin $(Build.SourceBranchName) } } else { #PowerShell Create directory if not exists Write-Host "Creating Library directory" cd $(Build.Repository.LocalPath) $Folder = New-Item $Full -ItemType Directory cd $Full Write-Host "Creating Library file" $LibraryFile = New-Item -Path . -Name $(library_file) -ItemType "file" -Value ("# Library Configuration File" + [Environment]::NewLine) Add-Content $(library_file) "environment = ""$(deployer_environment)""" Add-Content $(library_file) "location = ""$region""" Add-Content $(library_file) "" Add-Content $(library_file) "dns_label = ""azure.sdaf.contoso.net""" git config --global user.email "$(Build.RequestedForEmail)" git config --global user.name "$(Build.RequestedFor)" git add -f $(library_file) git commit -m "Added Control Plane Library configuration[skip ci]" git -c http.extraheader="AUTHORIZATION: bearer $(System.AccessToken)" push --set-upstream origin $(Build.SourceBranchName) } failOnStderr: false showWarnings: true pwsh: true