mirror of
https://github.com/edgelesssys/constellation.git
synced 2024-10-01 01:36:09 -04:00
75 lines
1.7 KiB
Bash
75 lines
1.7 KiB
Bash
|
#!/usr/bin/env bash
|
||
|
set -euo pipefail
|
||
|
|
||
|
if [ -z "${CONFIG_FILE-}" ] && [ -f "${CONFIG_FILE-}" ]; then
|
||
|
. "${CONFIG_FILE}"
|
||
|
fi
|
||
|
POSITIONAL_ARGS=()
|
||
|
|
||
|
while [[ $# -gt 0 ]]; do
|
||
|
case $1 in
|
||
|
-n|--name)
|
||
|
AZURE_VM_NAME="$2"
|
||
|
shift # past argument
|
||
|
shift # past value
|
||
|
;;
|
||
|
-*|--*)
|
||
|
echo "Unknown option $1"
|
||
|
exit 1
|
||
|
;;
|
||
|
*)
|
||
|
POSITIONAL_ARGS+=("$1") # save positional arg
|
||
|
shift # past argument
|
||
|
;;
|
||
|
esac
|
||
|
done
|
||
|
|
||
|
set -- "${POSITIONAL_ARGS[@]}" # restore positional parameters
|
||
|
|
||
|
AZ_VM_INFO=$(az vm show --name "${AZURE_VM_NAME}" --resource-group "${AZURE_RESOURCE_GROUP_NAME}" -o json)
|
||
|
NIC=$(echo "${AZ_VM_INFO}" | jq -r '.networkProfile.networkInterfaces[0].id')
|
||
|
NIC_INFO=$(az network nic show --ids "${NIC}" -o json)
|
||
|
PUBIP=$(echo "${NIC_INFO}" | jq -r '.ipConfigurations[0].publicIpAddress.id')
|
||
|
NSG=$(echo "${NIC_INFO}" | jq -r '.networkSecurityGroup.id')
|
||
|
SUBNET=$(echo "${NIC_INFO}" | jq -r '.ipConfigurations[0].subnet.id')
|
||
|
VNET=$(echo $SUBNET | sed 's#/subnets/.*##')
|
||
|
DISK=$(echo "${AZ_VM_INFO}" | jq -r '.storageProfile.osDisk.managedDisk.id')
|
||
|
|
||
|
|
||
|
delete_vm () {
|
||
|
az vm delete -y --name "${AZURE_VM_NAME}" \
|
||
|
--resource-group "${AZURE_RESOURCE_GROUP_NAME}" || true
|
||
|
}
|
||
|
|
||
|
delete_vnet () {
|
||
|
az network vnet delete --ids "${VNET}" || true
|
||
|
}
|
||
|
|
||
|
delete_subnet () {
|
||
|
az network vnet subnet delete --ids "${SUBNET}" || true
|
||
|
}
|
||
|
|
||
|
delete_nsg () {
|
||
|
az network nsg delete --ids "${NSG}" || true
|
||
|
}
|
||
|
|
||
|
delete_pubip () {
|
||
|
az network public-ip delete --ids "${PUBIP}" || true
|
||
|
}
|
||
|
|
||
|
delete_disk () {
|
||
|
az disk delete -y --ids "${DISK}" || true
|
||
|
}
|
||
|
|
||
|
delete_nic () {
|
||
|
az network nic delete --ids "${NIC}" || true
|
||
|
}
|
||
|
|
||
|
delete_vm
|
||
|
delete_disk
|
||
|
delete_nic
|
||
|
delete_nsg
|
||
|
delete_subnet
|
||
|
delete_vnet
|
||
|
delete_pubip
|