Update 3 files

- /pipelines/terraform.yml
- /scripts/cd-workdir.sh
- /templates/terraform.tpl.yml
This commit is contained in:
2023-07-29 13:17:37 +00:00
parent 157a641f67
commit a62b66d917
3 changed files with 84 additions and 1 deletions

69
pipelines/terraform.yml Normal file
View File

@@ -0,0 +1,69 @@
stages:
- plan
- apply
- destroy
include:
- project: 'developerdurp/yml'
ref: main
file:
- 'jobs/terraform.yml'
workflow:
rules:
- if: $CI_COMMIT_BRANCH
changes:
- terraform/**
format:
stage: .pre
allow_failure: false
extends: .terraform_fmt
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
when: always
- when: never
validate:
stage: .pre
allow_failure: false
extends: .terraform_validate
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
when: always
- when: never
plan:
stage: plan
variables:
ARGUMENTS: -var-file=terraform.tfvars
allow_failure: false
extends: .terraform_plan
needs: ["validate","format"]
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
when: always
- when: never
apply:
stage: apply
variables:
ARGUMENTS: -var-file=terraform.tfvars
allow_failure: false
extends: .terraform_apply
rules:
- if: $CI_PIPELINE_SOURCE == "schedule"
when: never
- if: '$CI_COMMIT_BRANCH == "main"'
when: always
- when: never
destroy:
stage: destroy
variables:
ARGUMENTS: -var-file=terraform.tfvars
allow_failure: false
extends: .terraform_destroy
needs: ["apply"]
rules:
- when: manual

4
scripts/cd-workdir.sh Normal file
View File

@@ -0,0 +1,4 @@
#!/usr/bin/env bash
#%%MULTILINE_YAML_START
#change directory
cd $WORKDIR

View File

@@ -3,7 +3,10 @@
name: registry.durp.info/hashicorp/terraform:light
#name: hashicorp/terraform:light
entrypoint: [""]
variables:
WORKDIR: $CI_PROJECT_DIR/terraform
script:
- ./scripts/cd-workdir.sh
- ./scripts/terraform-fmt.sh
.terraform_validate:
@@ -12,8 +15,10 @@
#name: hashicorp/terraform:light
entrypoint: [""]
variables:
WORKDIR: $CI_PROJECT_DIR/terraform
GITLAB_TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/${CI_PROJECT_NAME}
script:
- ./scripts/cd-workdir.sh
- ./scripts/terraform-init.sh
- ./scripts/terraform-validate.sh
@@ -23,10 +28,12 @@
#name: hashicorp/terraform:light
entrypoint: [""]
variables:
WORKDIR: $CI_PROJECT_DIR/terraform
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/cd-workdir.sh
- ./scripts/terraform-init.sh
- ./scripts/terraform-plan.sh
artifacts:
@@ -40,8 +47,10 @@
#name: hashicorp/terraform:light
entrypoint: [""]
variables:
WORKDIR: $CI_PROJECT_DIR/terraform
GITLAB_TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/${CI_PROJECT_NAME}
script:
- ./scripts/cd-workdir.sh
- ./scripts/terraform-init.sh
- ./scripts/terraform-apply.sh
@@ -51,8 +60,9 @@
#name: hashicorp/terraform:light
entrypoint: [""]
variables:
WORKDIR: $CI_PROJECT_DIR/terraform
GITLAB_TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/${CI_PROJECT_NAME}
WORKDIR: $CI_PROJECT_DIR
script:
- ./scripts/cd-workdir.sh
- ./scripts/terraform-init.sh
- ./scripts/terraform-destroy.sh