deploy/pipelines/10-remover-terraform.yaml (111 lines of code) (raw):

# Copyright (c) Microsoft Corporation. # Licensed under the MIT License. --- # /*---------------------------------------------------------------------------8 # | | # | This pipeline removes the SAP systems, the workload zone (landscape) | # | using Terraform. | # | | # +------------------------------------4--------------------------------------*/ parameters: - name: cleanup_sap displayName: Remove the SAP system type: boolean default: true - name: sap_system displayName: "SAP System configuration name, use this format: ENV-LOCA-VNET-SID" type: string default: DEV-WEEU-SAP01-X00 - name: cleanup_zone displayName: Remove the SAP workload zone type: boolean default: true - name: workload_zone displayName: "SAP workload zone configuration name, use this format: ENV-LOCA-VNET-INFRASTRUCTURE" type: string default: DEV-WEEU-SAP01-INFRASTRUCTURE - name: workload_environment displayName: Environment (DEV, QUA, PRD) type: string default: DEV - name: deployer_environment displayName: Environment (MGMT) type: string default: MMGMT - name: use_deployer displayName: Run removal on self hosted agent type: boolean default: true - name: sap_automation_repo_path displayName: The local path on the agent where the sap_automation repo can be found type: string - name: config_repo_path displayName: The local path on the agent where the config repo can be found type: string stages: - stage: Remove_SAP_systems displayName: "Removing the SAP System" condition: and(not(failed()), not(canceled()), eq(${{ parameters.cleanup_sap }}, true)) variables: - template: variables/10-remover-terraform-variables.yaml parameters: deployer_environment: ${{ parameters.deployer_environment }} workload_environment: ${{ parameters.workload_environment }} workload_zone: ${{ parameters.workload_zone }} sap_system: ${{ parameters.sap_system }} jobs: - job: Remove_SAP_systems displayName: "Removing the SAP System" variables: - group: SDAF-${{ parameters.workload_environment }} workspace: clean: all steps: - template: templates\download.yaml - task: PostBuildCleanup@4 - task: Bash@3 inputs: targetType: 'filePath' filePath: "$(System.DefaultWorkingDirectory)/sap-automation/deploy/scripts/pipeline_scripts/10-remover-terraform-system.sh" failOnStderr: false workingDirectory: "$(System.DefaultWorkingDirectory)" displayName: "Remove SAP system" env: SYSTEM_ACCESSTOKEN: $(System.AccessToken) WL_ARM_SUBSCRIPTION_ID: $(ARM_SUBSCRIPTION_ID) WL_ARM_CLIENT_ID: $(ARM_CLIENT_ID) WL_ARM_CLIENT_SECRET: $(ARM_CLIENT_SECRET) WL_ARM_TENANT_ID: $(ARM_TENANT_ID) AZURE_DEVOPS_EXT_PAT: $(System.AccessToken) SAP_AUTOMATION_REPO_PATH: ${{ parameters.sap_automation_repo_path }} CONFIG_REPO_PATH: ${{ parameters.config_repo_path }}/$(Deployment_Configuration_Path) USE_MSI: $(Use_MSI) - stage: Remove_SAP_workload_zone displayName: "Removing the SAP workload zone" condition: and(not(failed()), not(canceled()), eq(${{ parameters.cleanup_zone }}, true)) variables: - template: variables/10-remover-terraform-variables.yaml parameters: deployer_environment: ${{ parameters.deployer_environment }} workload_environment: ${{ parameters.workload_environment }} workload_zone: ${{ parameters.workload_zone }} sap_system: ${{ parameters.sap_system }} jobs: - job: Remove_SAP_workload_zone displayName: Remove the SAP Workload Zone variables: - group: SDAF-${{ parameters.workload_environment }} workspace: clean: all steps: - template: templates\download.yaml - task: PostBuildCleanup@4 - task: Bash@3 inputs: targetType: 'filePath' filePath: "$(System.DefaultWorkingDirectory)/sap-automation/deploy/scripts/pipeline_scripts/10-remover-terraform-workload-zone.sh" failOnStderr: false workingDirectory: "$(System.DefaultWorkingDirectory)" displayName: Remove SAP workload_zone env: SYSTEM_ACCESSTOKEN: $(System.AccessToken) WL_ARM_SUBSCRIPTION_ID: $(ARM_SUBSCRIPTION_ID) WL_ARM_CLIENT_ID: $(ARM_CLIENT_ID) WL_ARM_CLIENT_SECRET: $(ARM_CLIENT_SECRET) WL_ARM_TENANT_ID: $(ARM_TENANT_ID) AZURE_DEVOPS_EXT_PAT: $(System.AccessToken) SAP_AUTOMATION_REPO_PATH: ${{ parameters.sap_automation_repo_path }} CONFIG_REPO_PATH: ${{ parameters.config_repo_path }}/$(Deployment_Configuration_Path) USE_MSI: $(Use_MSI)