Update 7 files
- /scripts/terraform-fmt.sh - /scripts/terraform-init.sh - /scripts/terraform-plan.sh - /scripts/terraform-validate.sh - /scripts/terraform-apply.sh - /scripts/terraform-destroy.sh - /templates/terraform.tpl.yml
This commit is contained in:
4
scripts/terraform-apply.sh
Normal file
4
scripts/terraform-apply.sh
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#%%MULTILINE_YAML_START
|
||||||
|
#Terraform validate
|
||||||
|
terraform apply -auto-approve $ARGUMENTS
|
||||||
4
scripts/terraform-destroy.sh
Normal file
4
scripts/terraform-destroy.sh
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#%%MULTILINE_YAML_START
|
||||||
|
#Terraform validate
|
||||||
|
terraform destroy -auto-approve $ARGUMENTS
|
||||||
4
scripts/terraform-fmt.sh
Normal file
4
scripts/terraform-fmt.sh
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#%%MULTILINE_YAML_START
|
||||||
|
#Terraform fmt
|
||||||
|
terraform fmt -diff -check -write=false
|
||||||
4
scripts/terraform-init.sh
Normal file
4
scripts/terraform-init.sh
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#%%MULTILINE_YAML_START
|
||||||
|
#Terraform init
|
||||||
|
terraform init -reconfigure -backend-config="address=${GITLAB_TF_ADDRESS}" -backend-config="lock_address=${GITLAB_TF_ADDRESS}/lock" -backend-config="unlock_address=${GITLAB_TF_ADDRESS}/lock" -backend-config="username=gitlab-ci-token" -backend-config="password=${CI_JOB_TOKEN}" -backend-config="lock_method=POST" -backend-config="unlock_method=DELETE" -backend-config="retry_wait_min=5"
|
||||||
7
scripts/terraform-plan.sh
Normal file
7
scripts/terraform-plan.sh
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#%%MULTILINE_YAML_START
|
||||||
|
#Terraform plan
|
||||||
|
apk add --update curl jq
|
||||||
|
alias convert_report="jq -r '([.resource_changes[].change.actions?]|flatten)|{\"create\":(map(select(.==\"create\"))|length),\"update\":(map(select(.==\"update\"))|length),\"delete\":(map(select(.==\"delete\"))|length)}'"
|
||||||
|
terraform plan -out=$PLAN $ARGUMENTS
|
||||||
|
terraform show --json $PLAN | convert_report > $JSON_PLAN_FILE
|
||||||
4
scripts/terraform-validate.sh
Normal file
4
scripts/terraform-validate.sh
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#%%MULTILINE_YAML_START
|
||||||
|
#Terraform validate
|
||||||
|
terraform validate
|
||||||
58
templates/terraform.tpl.yml
Normal file
58
templates/terraform.tpl.yml
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
.terraform_fmt:
|
||||||
|
image:
|
||||||
|
name: registry.durp.info/hashicorp/terraform:light
|
||||||
|
#name: hashicorp/terraform:light
|
||||||
|
entrypoint: [""]
|
||||||
|
script:
|
||||||
|
- ./scripts/terraform-fmt.sh
|
||||||
|
|
||||||
|
.terraform_validate:
|
||||||
|
image:
|
||||||
|
name: registry.durp.info/hashicorp/terraform:light
|
||||||
|
#name: hashicorp/terraform:light
|
||||||
|
entrypoint: [""]
|
||||||
|
variables:
|
||||||
|
GITLAB_TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/${CI_PROJECT_NAME}
|
||||||
|
script:
|
||||||
|
- ./scripts/terraform-init.sh
|
||||||
|
- ./scripts/terraform-validate.sh
|
||||||
|
|
||||||
|
.terraform_plan:
|
||||||
|
image:
|
||||||
|
name: registry.durp.info/hashicorp/terraform:light
|
||||||
|
#name: hashicorp/terraform:light
|
||||||
|
entrypoint: [""]
|
||||||
|
variables:
|
||||||
|
PLAN: plan.tfplan
|
||||||
|
JSON_PLAN_FILE: tfplan.json
|
||||||
|
GITLAB_TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/${CI_PROJECT_NAME}
|
||||||
|
script:
|
||||||
|
- ./scripts/terraform-init.sh
|
||||||
|
- ./scripts/terraform-plan.sh
|
||||||
|
artifacts:
|
||||||
|
reports:
|
||||||
|
terraform: $WORKDIR/$JSON_PLAN_FILE
|
||||||
|
|
||||||
|
|
||||||
|
.terraform_apply:
|
||||||
|
image:
|
||||||
|
name: registry.durp.info/hashicorp/terraform:light
|
||||||
|
#name: hashicorp/terraform:light
|
||||||
|
entrypoint: [""]
|
||||||
|
variables:
|
||||||
|
GITLAB_TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/${CI_PROJECT_NAME}
|
||||||
|
script:
|
||||||
|
- ./scripts/terraform-init.sh
|
||||||
|
- ./scripts/terraform-apply.sh
|
||||||
|
|
||||||
|
.terraform_destroy:
|
||||||
|
image:
|
||||||
|
name: registry.durp.info/hashicorp/terraform:light
|
||||||
|
#name: hashicorp/terraform:light
|
||||||
|
entrypoint: [""]
|
||||||
|
variables:
|
||||||
|
GITLAB_TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/${CI_PROJECT_NAME}
|
||||||
|
WORKDIR: $CI_PROJECT_DIR
|
||||||
|
script:
|
||||||
|
- ./scripts/terraform-init.sh
|
||||||
|
- ./scripts/terraform-destroy.sh
|
||||||
Reference in New Issue
Block a user