Update 3 files
- /pipelines/terraform.yml - /scripts/cd-workdir.sh - /templates/terraform.tpl.yml
This commit is contained in:
69
pipelines/terraform.yml
Normal file
69
pipelines/terraform.yml
Normal 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
4
scripts/cd-workdir.sh
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#%%MULTILINE_YAML_START
|
||||||
|
#change directory
|
||||||
|
cd $WORKDIR
|
||||||
@@ -3,7 +3,10 @@
|
|||||||
name: registry.durp.info/hashicorp/terraform:light
|
name: registry.durp.info/hashicorp/terraform:light
|
||||||
#name: hashicorp/terraform:light
|
#name: hashicorp/terraform:light
|
||||||
entrypoint: [""]
|
entrypoint: [""]
|
||||||
|
variables:
|
||||||
|
WORKDIR: $CI_PROJECT_DIR/terraform
|
||||||
script:
|
script:
|
||||||
|
- ./scripts/cd-workdir.sh
|
||||||
- ./scripts/terraform-fmt.sh
|
- ./scripts/terraform-fmt.sh
|
||||||
|
|
||||||
.terraform_validate:
|
.terraform_validate:
|
||||||
@@ -12,8 +15,10 @@
|
|||||||
#name: hashicorp/terraform:light
|
#name: hashicorp/terraform:light
|
||||||
entrypoint: [""]
|
entrypoint: [""]
|
||||||
variables:
|
variables:
|
||||||
|
WORKDIR: $CI_PROJECT_DIR/terraform
|
||||||
GITLAB_TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/${CI_PROJECT_NAME}
|
GITLAB_TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/${CI_PROJECT_NAME}
|
||||||
script:
|
script:
|
||||||
|
- ./scripts/cd-workdir.sh
|
||||||
- ./scripts/terraform-init.sh
|
- ./scripts/terraform-init.sh
|
||||||
- ./scripts/terraform-validate.sh
|
- ./scripts/terraform-validate.sh
|
||||||
|
|
||||||
@@ -23,10 +28,12 @@
|
|||||||
#name: hashicorp/terraform:light
|
#name: hashicorp/terraform:light
|
||||||
entrypoint: [""]
|
entrypoint: [""]
|
||||||
variables:
|
variables:
|
||||||
|
WORKDIR: $CI_PROJECT_DIR/terraform
|
||||||
PLAN: plan.tfplan
|
PLAN: plan.tfplan
|
||||||
JSON_PLAN_FILE: tfplan.json
|
JSON_PLAN_FILE: tfplan.json
|
||||||
GITLAB_TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/${CI_PROJECT_NAME}
|
GITLAB_TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/${CI_PROJECT_NAME}
|
||||||
script:
|
script:
|
||||||
|
- ./scripts/cd-workdir.sh
|
||||||
- ./scripts/terraform-init.sh
|
- ./scripts/terraform-init.sh
|
||||||
- ./scripts/terraform-plan.sh
|
- ./scripts/terraform-plan.sh
|
||||||
artifacts:
|
artifacts:
|
||||||
@@ -40,8 +47,10 @@
|
|||||||
#name: hashicorp/terraform:light
|
#name: hashicorp/terraform:light
|
||||||
entrypoint: [""]
|
entrypoint: [""]
|
||||||
variables:
|
variables:
|
||||||
|
WORKDIR: $CI_PROJECT_DIR/terraform
|
||||||
GITLAB_TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/${CI_PROJECT_NAME}
|
GITLAB_TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/${CI_PROJECT_NAME}
|
||||||
script:
|
script:
|
||||||
|
- ./scripts/cd-workdir.sh
|
||||||
- ./scripts/terraform-init.sh
|
- ./scripts/terraform-init.sh
|
||||||
- ./scripts/terraform-apply.sh
|
- ./scripts/terraform-apply.sh
|
||||||
|
|
||||||
@@ -51,8 +60,9 @@
|
|||||||
#name: hashicorp/terraform:light
|
#name: hashicorp/terraform:light
|
||||||
entrypoint: [""]
|
entrypoint: [""]
|
||||||
variables:
|
variables:
|
||||||
|
WORKDIR: $CI_PROJECT_DIR/terraform
|
||||||
GITLAB_TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/${CI_PROJECT_NAME}
|
GITLAB_TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/${CI_PROJECT_NAME}
|
||||||
WORKDIR: $CI_PROJECT_DIR
|
|
||||||
script:
|
script:
|
||||||
|
- ./scripts/cd-workdir.sh
|
||||||
- ./scripts/terraform-init.sh
|
- ./scripts/terraform-init.sh
|
||||||
- ./scripts/terraform-destroy.sh
|
- ./scripts/terraform-destroy.sh
|
||||||
Reference in New Issue
Block a user