X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Flibraries%2Fbash%2Ffunction%2Fterraform.sh;h=ed3bda32aaded768287909f6c5f70d1779467f98;hp=29a2177bd66c444287fa378d741d36ed96308a86;hb=aff4d46c7ad0f54c4be632d498bf88a75d22e70e;hpb=b27f2c7cbfe08712a00959c8cc6a2f618a25b3e7 diff --git a/resources/libraries/bash/function/terraform.sh b/resources/libraries/bash/function/terraform.sh index 29a2177bd6..ed3bda32aa 100644 --- a/resources/libraries/bash/function/terraform.sh +++ b/resources/libraries/bash/function/terraform.sh @@ -34,7 +34,10 @@ function terraform_apply () { pushd "${CSIT_DIR}"/fdio.infra.terraform || die "Pushd failed!" pushd "${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!" } @@ -57,7 +60,7 @@ function terraform_destroy () { pushd "${CSIT_DIR}"/fdio.infra.terraform || die "Pushd failed!" pushd "${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,22 +78,30 @@ function terraform_init () { set -exuo pipefail if ! installed terraform; then - die "Please install terraform!" + 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!" - export TF_LOG=INFO - terraform init || die "Failed to run terraform init!" plugin_url="https://github.com/radekg/terraform-provisioner-ansible/" plugin_url+="releases/download/v2.5.0/" plugin_url+="terraform-provisioner-ansible-linux-amd64_v2.5.0" plugin_dir="${HOME}/.terraform.d/plugins/" - plugin_path+="${plugin_dir}terraform-provisioner-ansible-linux-amd64_v2.5.0" + plugin_path+="${plugin_dir}terraform-provisioner-ansible_v2.5.0" mkdir -p "${plugin_dir}" || die "Failed to create dir!" wget -O "${plugin_path}" "${plugin_url}" || die "Failed to download plugin!" + chmod +x "${plugin_path}" || die "Failed to add execute rights!" + + export TF_LOG=INFO + terraform init || die "Failed to run terraform init!" popd || die "Popd failed!" popd || die "Popd failed!"