From 77d54eb5570e83444ab6ee11efa200e9c7269709 Mon Sep 17 00:00:00 2001 From: Ryan Ahearn Date: Mon, 17 Apr 2023 11:36:03 -0400 Subject: [PATCH] Add reset state script --- terraform/development/providers.tf | 2 +- terraform/development/reset.sh | 65 ++++++++++++++++++++++++++++++ terraform/development/run.sh | 2 +- 3 files changed, 67 insertions(+), 2 deletions(-) create mode 100755 terraform/development/reset.sh diff --git a/terraform/development/providers.tf b/terraform/development/providers.tf index 59bb98a70..d8ae4488e 100644 --- a/terraform/development/providers.tf +++ b/terraform/development/providers.tf @@ -3,7 +3,7 @@ terraform { required_providers { cloudfoundry = { source = "cloudfoundry-community/cloudfoundry" - version = "0.50.5" + version = "0.50.7" } } } diff --git a/terraform/development/reset.sh b/terraform/development/reset.sh new file mode 100755 index 000000000..4e11c0e28 --- /dev/null +++ b/terraform/development/reset.sh @@ -0,0 +1,65 @@ +#!/usr/bin/env bash + +username=`whoami` +org="gsa-tts-benefits-studio-prototyping" + +usage=" +$0: Reset terraform state so run.sh can be run again or for a new username + +Usage: + $0 -h + $0 [-u ] + +Options: +-h: show help and exit +-u : your username. Default: $username + +Notes: +* Requires cf-cli@8 +" + +while getopts ":hu:" opt; do + case "$opt" in + u) + username=${OPTARG} + ;; + h) + echo "$usage" + exit 0 + ;; + esac +done + +read -p "Are you sure you want to import terraform state and remove existing service keys for $username (y/n)? " verify + +if [[ $verify != "y" ]]; then + exit 0 +fi + +# ensure we're in the correct directory +cd $(dirname $0) + +service_account="$username-terraform" + +if [[ ! -s "secrets.auto.tfvars" ]]; then + # create user in notify-local-dev space to create s3 buckets + ../create_service_account.sh -s notify-local-dev -u $service_account > secrets.auto.tfvars + + # grant user access to notify-staging to create a service key for SES and SNS + cg_username=`cf service-key $service_account service-account-key | tail -n +2 | jq -r '.credentials.username'` + cf set-space-role $cg_username $org notify-staging SpaceDeveloper +fi + +echo "Importing terraform state for $username" +terraform init + +key_name=$username-api-dev-key + +cf t -s notify-local-dev +terraform import -var "username=$username" module.csv_upload_bucket.cloudfoundry_service_instance.bucket $(cf service --guid $username-csv-upload-bucket) +cf delete-service-key -f $username-csv-upload-bucket $key_name +cf t -s notify-staging +cf delete-service-key -f notify-api-ses-staging $key_name +cf delete-service-key -f notify-api-sns-staging $key_name + +./run.sh -u $username diff --git a/terraform/development/run.sh b/terraform/development/run.sh index 0285d0946..c0297b2bb 100755 --- a/terraform/development/run.sh +++ b/terraform/development/run.sh @@ -8,7 +8,7 @@ $0: Create development infrastructure Usage: $0 -h - $0 [-u ] [-k] + $0 [-u ] [-k] [-d] Options: -h: show help and exit