refactor(terraform): 2n_aws_c5n
[csit.git] / resources / libraries / bash / function / terraform.sh
index 23da8ae..1766381 100644 (file)
@@ -32,9 +32,12 @@ function terraform_apply () {
     fi
 
     pushd "${CSIT_DIR}"/fdio.infra.terraform || die "Pushd failed!"
-    pushd "${NODENESS}_${FLAVOR}_c5n" || die "Pushd failed!"
+    pushd "terraform-aws-${NODENESS}-${FLAVOR}-c5n" || die "Pushd failed!"
     export TF_LOG=INFO
-    terraform apply -auto-approve  || die "Failed to run terraform apply!"
+    trap 'terraform_destroy' ERR || {
+         die "Trap attempt failed, please cleanup manually. Aborting!"
+    }
+    terraform apply -no-color -auto-approve  || die "Terraform apply failed!"
     popd || die "Popd failed!"
     popd || die "Popd failed!"
 }
@@ -55,9 +58,9 @@ function terraform_destroy () {
     fi
 
     pushd "${CSIT_DIR}"/fdio.infra.terraform || die "Pushd failed!"
-    pushd "${NODENESS}_${FLAVOR}_c5n" || die "Pushd failed!"
+    pushd "terraform-aws-${NODENESS}-${FLAVOR}-c5n" || die "Pushd failed!"
     export TF_LOG=INFO
-    terraform destroy -auto-approve || die "Failed to run terraform destroy!"
+    terraform destroy -auto-approve -no-color || die "Terraform destroy failed!"
     popd || die "Popd failed!"
     popd || die "Popd failed!"
 }
@@ -75,13 +78,17 @@ function terraform_init () {
     set -exuo pipefail
 
     if ! installed terraform; then
+        curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
+        os="$(lsb_release -cs)" || die "Failed to get OS release!"
+        repo="deb [arch=amd64] https://apt.releases.hashicorp.com ${os} main"
+        sudo apt-add-repository "${repo}" || die "Failed to add repo!"
         apt update -y
         apt install -y terraform
         #die "Please install terraform!"
     fi
 
     pushd "${CSIT_DIR}"/fdio.infra.terraform || die "Pushd failed!"
-    pushd "${NODENESS}_${FLAVOR}_c5n" || die "Pushd failed!"
+    pushd "terraform-aws-${NODENESS}-${FLAVOR}-c5n" || die "Pushd failed!"
 
     plugin_url="https://github.com/radekg/terraform-provisioner-ansible/"
     plugin_url+="releases/download/v2.5.0/"