diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e5bb603e1..30f2c5f0c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -46,7 +46,7 @@ BUG FIXES: * Bump terraform version in windows VM template ([#4212](https://github.com/microsoft/AzureTRE/issues/4212)) * Upgrade azurerm terraform provider from v3.112.0 to v3.117.0 to mitiagte storage account deployment issue ([#4004](https://github.com/microsoft/AzureTRE/issues/4004)) * Fix VM actions where Workspace shared storage doesn't allow shared key access ([#4222](https://github.com/microsoft/AzureTRE/issues/4222)) - +* Unable to delete virtual machines, add skip_shutdown_and_force_delete = true ([#4135](https://github.com/microsoft/AzureTRE/issues/4135)) COMPONENTS: ## 0.19.1 diff --git a/templates/scripts/delete_azure_resources.sh b/templates/scripts/delete_azure_resources.sh new file mode 100755 index 0000000000..7de2c5099c --- /dev/null +++ b/templates/scripts/delete_azure_resources.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +# Parameters +tre_id=$1 +workspace_id=$2 +workspace_service_id=$3 +user_resource_id=$4 + +# Build the tag filter query +tag_filters="--tag tre_resource_id=$tre_id" +[ -n "$workspace_id" ] && tag_filters="$tag_filters --tag tre_workspace_id=$workspace_id" +[ -n "$workspace_service_id" ] && tag_filters="$tag_filters --tag tre_workspace_service_id=$workspace_service_id" +[ -n "$user_resource_id" ] && tag_filters="$tag_filters --tag tre_user_resource_id=$user_resource_id" + +# login to azure +az login --identity + +# Get the resource IDs with the specified tags +resource_ids=$(az resource list "$tag_filters" --query "[].id" -o tsv) + +# Delete the resources +if [ -n "$resource_ids" ]; then + az resource delete --ids "$resource_ids" --yes +else + echo "No resources found with the specified tags." +fi diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/Dockerfile.tmpl b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/Dockerfile.tmpl index 4494f207a1..2943d93165 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/Dockerfile.tmpl +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/Dockerfile.tmpl @@ -6,4 +6,8 @@ FROM --platform=linux/amd64 debian:bookworm-slim # PORTER_MIXINS # Use the BUNDLE_DIR build argument to copy files into the bundle +RUN mkdir -p ${BUNDLE_DIR}/app +# hadolint ignore=DL3022 +COPY --from=scripts --link . ${BUNDLE_DIR}/scripts/ + COPY --link . ${BUNDLE_DIR}/ diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/porter-build-context.env b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/porter-build-context.env new file mode 100644 index 0000000000..7c2ad444b0 --- /dev/null +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/porter-build-context.env @@ -0,0 +1 @@ +export PORTER_BUILD_CONTEXT="scripts=../../../../scripts" diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/porter.yaml b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/porter.yaml index 30895442e5..c5bc20e2ae 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/porter.yaml +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/porter.yaml @@ -1,7 +1,7 @@ --- schemaVersion: 1.0.0 name: tre-service-guacamole-linuxvm -version: 1.2.3 +version: 1.3.1 description: "An Azure TRE User Resource Template for Guacamole (Linux)" dockerfile: Dockerfile.tmpl registry: azuretre @@ -244,6 +244,15 @@ uninstall: container_name: ${ bundle.parameters.tfstate_container_name } key: ${ bundle.parameters.id } + - exec: + description: "Run the clean_up_resources.sh script" + command: "./scripts/delete_azure_resources.sh" + arguments: + - ${ bundle.parameters.tre_id } + - ${ bundle.parameters.workspace_id } + - ${ bundle.parameters.parent_service_id } + - ${ bundle.parameters.id } + start: - terraform: arguments: diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/terraform/main.tf b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/terraform/main.tf index f1f1058865..1fc3c882a1 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/terraform/main.tf +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/terraform/main.tf @@ -33,6 +33,9 @@ provider "azurerm" { recover_soft_deleted_certificates = true recover_soft_deleted_keys = true } + virtual_machine { + skip_shutdown_and_force_delete = true + } } storage_use_azuread = true } diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm/terraform/main.tf b/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm/terraform/main.tf index 6bbc302592..799e1f10ee 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm/terraform/main.tf +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm/terraform/main.tf @@ -28,6 +28,9 @@ provider "azurerm" { recover_soft_deleted_certificates = true recover_soft_deleted_keys = true } + virtual_machine { + skip_shutdown_and_force_delete = true + } } storage_use_azuread = true }