-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdeploy.sh
More file actions
103 lines (77 loc) · 3.08 KB
/
deploy.sh
File metadata and controls
103 lines (77 loc) · 3.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#!/bin/bash
# No set -e here because we want to get a non-zero exit code from terraform_plan.sh
set -e
echo "Running Terraform Plugin deployment script..."
# terraform vars
export TERRAFORM_ROOT_SCRIPTS="$BITOPS_INSTALLED_PLUGIN_DIR"
export TERRAFORM_ROOT_OPERATIONS="$BITOPS_OPSREPO_ENVIRONMENT_DIR"
export BITOPS_SCHEMA_ENV_FILE="$TERRAFORM_ROOT_OPERATIONS/ENV_FILE"
export SCRIPTS_DIR="$TERRAFORM_ROOT_SCRIPTS/scripts"
if [ "$TERRAFORM_SKIP_DEPLOY" == "true" ]; then
echo "TERRAFORM_SKIP_DEPLOY is set. Skipping."
exit 0
fi
if [ ! -d "$TERRAFORM_ROOT_OPERATIONS" ]; then
echo "No terraform directory. Skipping."
exit 0
fi
printf "Deploying terraform..."
# Check for Before Deploy Scripts
# bash $SCRIPTS_DIR/deploy/before-deploy.sh "$TERRAFORM_ROOT"
find $SCRIPTS_DIR -name "*.sh" -exec chmod +x {} +
if [ ! -f "$BITOPS_SCHEMA_ENV_FILE" ]; then
echo "No terraform ENV file found"
else
source "$BITOPS_SCHEMA_ENV_FILE"
fi
echo "DEBUGGING: [$SCRIPTS_DIR]"
bash $SCRIPTS_DIR/validate_env.sh
# Copy Default Terraform values
echo "Copying defaults"
$SCRIPTS_DIR/copy_defaults.sh "$TERRAFORM_ROOT"
echo "DEBUGGING: [$SCRIPTS_DIR]"
echo "cd Terraform Root: $TERRAFORM_ROOT_OPERATIONS"
cd $TERRAFORM_ROOT_OPERATIONS
echo "Listing contents of Terraform Root: $TERRAFORM_ROOT_OPERATIONS"
ls -al .
# Set terraform version
echo "Using terraform version $TERRAFORM_VERSION"
#ln -s /usr/local/bin/terraform-$TERRAFORM_VERSION /usr/local/bin/terraform
# always init first
echo "Running terraform init"
terraform init -input=false || /usr/local/bin/terraform-$TERRAFORM_VERSION init -input=false
if [ -n "$BITOPS_TERRAFORM_WORKSPACE" ]; then
echo "Running Terraform Workspace"
bash $SCRIPTS_DIR/terraform_workspace.sh $BITOPS_TERRAFORM_WORKSPACE
fi
# Source Target
if [ -n "$BITOPS_TF_TARGETS" ] && !([ "${BITOPS_TERRAFORM_COMMAND}" == "destroy" ] || [ "${TERRAFORM_DESTROY}" == "true" ]); then
targets=( $BITOPS_TF_TARGETS )
for target in "${targets[@]}"
do
TF_TARGET="-target $target"
echo "Running Terraform Plan, Targetting: [$target]"
bash $SCRIPTS_DIR/terraform_plan.sh "$BITOPS_CONFIG_COMMAND" "$TF_TARGET"
if [ "${BITOPS_TERRAFORM_COMMAND}" != "plan" ]; then
echo "Runnng Terraform Apply, Targetting: [$target]"
bash $SCRIPTS_DIR/terraform_apply.sh "$BITOPS_CONFIG_COMMAND" "$TF_TARGET"
fi
done
fi
if [ "${BITOPS_TERRAFORM_COMMAND}" == "plan" ]; then
echo "Running Terraform Plan"
bash $SCRIPTS_DIR/terraform_plan.sh "$BITOPS_CONFIG_COMMAND"
fi
if [ "${BITOPS_TERRAFORM_COMMAND}" == "apply" ] || [ "${TERRAFORM_APPLY}" == "true" ]; then
echo "Running Terraform Plan"
bash $SCRIPTS_DIR/terraform_plan.sh "$BITOPS_CONFIG_COMMAND"
echo "Running Terraform Apply"
bash $SCRIPTS_DIR/terraform_apply.sh "$BITOPS_CONFIG_COMMAND"
fi
if [ "${BITOPS_TERRAFORM_COMMAND}" == "destroy" ] || [ "${TERRAFORM_DESTROY}" == "true" ]; then
# always plan first
echo "Running Terraform Plan"
bash $SCRIPTS_DIR/terraform_plan.sh "-destroy $BITOPS_CONFIG_COMMAND"
echo "Running Terraform Destroy"
bash $SCRIPTS_DIR/terraform_destroy.sh "$BITOPS_CONFIG_COMMAND"
fi