41 lines
1.3 KiB
Bash
41 lines
1.3 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
set -o errexit -o nounset
|
||
|
|
||
|
# generate a unique string for CI deployment
|
||
|
# KEY=$(cat /dev/urandom | tr -cd 'a-z' | head -c 12)
|
||
|
# PASSWORD=$KEY$(cat /dev/urandom | tr -cd 'A-Z' | head -c 2)$(cat /dev/urandom | tr -cd '0-9' | head -c 2)
|
||
|
|
||
|
docker run --rm -it \
|
||
|
-e ARM_CLIENT_ID \
|
||
|
-e ARM_CLIENT_SECRET \
|
||
|
-e ARM_SUBSCRIPTION_ID \
|
||
|
-e ARM_TENANT_ID \
|
||
|
-v $(pwd):/data \
|
||
|
--workdir=/data \
|
||
|
--entrypoint "/bin/sh" \
|
||
|
hashicorp/terraform:light \
|
||
|
-c "/bin/terraform get; \
|
||
|
/bin/terraform validate; \
|
||
|
/bin/terraform plan -out=out.tfplan -var resource_group=$KEY; \
|
||
|
/bin/terraform apply out.tfplan; \
|
||
|
/bin/terraform show;"
|
||
|
|
||
|
# check that resources exist via azure cli
|
||
|
docker run --rm -it \
|
||
|
azuresdk/azure-cli-python \
|
||
|
sh -c "az login --service-principal -u $ARM_CLIENT_ID -p $ARM_CLIENT_SECRET --tenant $ARM_TENANT_ID > /dev/null; \
|
||
|
az network vnet subnet show -n subnet1 -g $KEY --vnet-name '$KEY'vnet; \
|
||
|
az network vnet subnet show -n subnet2 -g $KEY --vnet-name '$KEY'vnet;"
|
||
|
|
||
|
# cleanup deployed azure resources via terraform
|
||
|
docker run --rm -it \
|
||
|
-e ARM_CLIENT_ID \
|
||
|
-e ARM_CLIENT_SECRET \
|
||
|
-e ARM_SUBSCRIPTION_ID \
|
||
|
-e ARM_TENANT_ID \
|
||
|
-v $(pwd):/data \
|
||
|
--workdir=/data \
|
||
|
--entrypoint "/bin/sh" \
|
||
|
hashicorp/terraform:light \
|
||
|
-c "/bin/terraform destroy -force -var resource_group=$KEY;"
|