Skip to content

Commit

Permalink
Consolidate deploy.sh scripts
Browse files Browse the repository at this point in the history
Consolidate deploy.sh scripts into a single script for terraform deployments.

* Add `devops/scripts/terraform_deploy.sh` to handle terraform deployments with parameterized inputs and environment variables.
* Modify `Makefile` to use the new `devops/scripts/terraform_deploy.sh` script and update references to the renamed `devops/scripts/terraform_upgrade_provider.sh`.
* Delete `deploy.sh` scripts from various template folders:
  - `templates/shared_services/admin-vm/terraform/deploy.sh`
  - `templates/shared_services/airlock_notifier/terraform/deploy.sh`
  - `templates/shared_services/cyclecloud/terraform/deploy.sh`
  - `templates/shared_services/sonatype-nexus-vm/terraform/deploy.sh`
  - `templates/workspace_services/databricks/terraform/deploy.sh`
  - `templates/workspace_services/gitea/terraform/deploy.sh`
  - `templates/workspace_services/guacamole/terraform/deploy.sh`
  - `templates/workspaces/base/terraform/deploy.sh`
* Delete `upgrade.sh` script from `templates/workspaces/base/terraform/upgrade.sh`.
  • Loading branch information
marrobi committed Feb 19, 2025
1 parent e0f1e9b commit 0d56965
Show file tree
Hide file tree
Showing 11 changed files with 59 additions and 144 deletions.
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -142,14 +142,14 @@ terraform-deploy:
&& . ${MAKEFILE_DIR}/devops/scripts/check_dependencies.sh env \
&& . ${MAKEFILE_DIR}/devops/scripts/load_and_validate_env.sh \
&& . ${MAKEFILE_DIR}/devops/scripts/load_env.sh ${DIR}/.env \
&& cd ${DIR}/terraform/ && ./deploy.sh
&& ./devops/scripts/terraform_deploy.sh ${DIR}

terraform-upgrade:
$(call target_title, "Upgrading ${DIR} with Terraform") \
&& . ${MAKEFILE_DIR}/devops/scripts/check_dependencies.sh env \
&& . ${MAKEFILE_DIR}/devops/scripts/load_and_validate_env.sh \
&& . ${MAKEFILE_DIR}/devops/scripts/load_env.sh ${DIR}/.env \
&& ./devops/scripts/upgrade.sh ${DIR}
&& ./devops/scripts/terraform_upgrade_provider.sh ${DIR}

terraform-import:
$(call target_title, "Importing ${DIR} with Terraform") \
Expand Down
57 changes: 57 additions & 0 deletions devops/scripts/terraform_deploy.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
#!/bin/bash
set -e

# This script is used to deploy terraform configurations

# Usage: ./terraform_deploy.sh <directory>

DIR=$1

# Load environment variables from .env file
if [ -f "$DIR/.env" ]; then
set -a
# shellcheck source=/dev/null
. "$DIR/.env"
set +a
fi

# Ensure TF_VAR_mgmt_resource_group_name is set
if [ -z "${TF_VAR_mgmt_resource_group_name}" ]; then
echo "Error: TF_VAR_mgmt_resource_group_name is not set."
exit 1
fi

# Ensure TF_VAR_mgmt_storage_account_name is set
if [ -z "${TF_VAR_mgmt_storage_account_name}" ]; then
echo "Error: TF_VAR_mgmt_storage_account_name is not set."
exit 1
fi

# Ensure TF_VAR_terraform_state_container_name is set
if [ -z "${TF_VAR_terraform_state_container_name}" ]; then
echo "Error: TF_VAR_terraform_state_container_name is not set."
exit 1
fi

# Ensure TRE_ID is set
if [ -z "${TRE_ID}" ]; then
echo "Error: TRE_ID is not set."
exit 1
fi

# Infer the key from the directory names
PARENT_DIR=$(basename "$(dirname "$DIR")")
GRANDPARENT_DIR=$(basename "$(dirname "$(dirname "$DIR")")")

if [[ "$GRANDPARENT_DIR" == "workspaces" || "$GRANDPARENT_DIR" == "shared_services" ]]; then
KEY="${TRE_ID?}_${TF_VAR_id?}_${PARENT_DIR}"
elif [[ "$GRANDPARENT_DIR" == "workspace_services" ]]; then
KEY="${TRE_ID?}_${TF_VAR_workspace_id?}_${TF_VAR_id?}_${PARENT_DIR}"
elif [[ "$GRANDPARENT_DIR" == "user_resources" ]]; then
KEY="${TRE_ID?}_${TF_VAR_workspace_id?}_${TF_VAR_workspace_service_id?}_${TF_VAR_id?}_${PARENT_DIR}"
else
KEY="${TRE_ID?}_${PARENT_DIR}"
fi

# Call terraform_wrapper.sh to handle terraform commands
./devops/scripts/terraform_wrapper.sh -g "${TF_VAR_mgmt_resource_group_name}" -s "${TF_VAR_mgmt_storage_account_name}" -n "${TF_VAR_terraform_state_container_name}" -k "${KEY}" -c "terraform apply -auto-approve"
20 changes: 0 additions & 20 deletions templates/shared_services/admin-vm/terraform/deploy.sh

This file was deleted.

15 changes: 0 additions & 15 deletions templates/shared_services/airlock_notifier/terraform/deploy.sh

This file was deleted.

12 changes: 0 additions & 12 deletions templates/shared_services/cyclecloud/terraform/deploy.sh

This file was deleted.

10 changes: 0 additions & 10 deletions templates/shared_services/sonatype-nexus-vm/terraform/deploy.sh

This file was deleted.

22 changes: 0 additions & 22 deletions templates/workspace_services/databricks/terraform/deploy.sh

This file was deleted.

21 changes: 0 additions & 21 deletions templates/workspace_services/gitea/terraform/deploy.sh

This file was deleted.

14 changes: 0 additions & 14 deletions templates/workspace_services/guacamole/terraform/deploy.sh

This file was deleted.

15 changes: 0 additions & 15 deletions templates/workspaces/base/terraform/deploy.sh

This file was deleted.

13 changes: 0 additions & 13 deletions templates/workspaces/base/terraform/upgrade.sh

This file was deleted.

0 comments on commit 0d56965

Please sign in to comment.