95 lines
1.7 KiB
YAML
95 lines
1.7 KiB
YAML
stages:
|
|
- plan
|
|
- apply
|
|
- destroy
|
|
|
|
variables:
|
|
WORKDIR: $CI_PROJECT_DIR/terraform
|
|
GITLAB_TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/${ENVIRONMENT_NAME}
|
|
|
|
image:
|
|
name: registry.internal.durp.info/opentofu/opentofu:latest
|
|
entrypoint: [""]
|
|
|
|
include:
|
|
- project: 'developerdurp/yml'
|
|
ref: 'main'
|
|
file:
|
|
- 'jobs/terraform.yml'
|
|
|
|
format:
|
|
stage: .pre
|
|
allow_failure: false
|
|
extends: .terraform_fmt
|
|
|
|
validate:
|
|
stage: .pre
|
|
allow_failure: false
|
|
extends: .terraform_validate
|
|
|
|
plan-development:
|
|
stage: plan
|
|
environment:
|
|
name: development
|
|
variables:
|
|
ENVIRONMENT_NAME: dev
|
|
allow_failure: false
|
|
extends: .terraform_plan
|
|
needs: ["validate","format"]
|
|
|
|
plan-production:
|
|
stage: plan
|
|
environment:
|
|
name: production
|
|
variables:
|
|
ENVIRONMENT_NAME: prd
|
|
allow_failure: false
|
|
extends: .terraform_plan
|
|
needs: ["validate","format"]
|
|
|
|
apply-development:
|
|
stage: apply
|
|
environment:
|
|
name: development
|
|
variables:
|
|
ENVIRONMENT_NAME: dev
|
|
allow_failure: false
|
|
extends: .terraform_apply
|
|
rules:
|
|
- when: manual
|
|
|
|
apply-production:
|
|
stage: apply
|
|
environment:
|
|
name: production
|
|
variables:
|
|
ENVIRONMENT_NAME: prd
|
|
allow_failure: false
|
|
extends: .terraform_apply
|
|
rules:
|
|
- when: manual
|
|
|
|
destroy-development:
|
|
stage: destroy
|
|
environment:
|
|
name: development
|
|
variables:
|
|
ENVIRONMENT_NAME: dev
|
|
allow_failure: false
|
|
extends: .terraform_destroy
|
|
needs: ["apply-development"]
|
|
rules:
|
|
- when: manual
|
|
|
|
destroy-production:
|
|
stage: destroy
|
|
environment:
|
|
name: production
|
|
variables:
|
|
ENVIRONMENT_NAME: prd
|
|
allow_failure: false
|
|
extends: .terraform_destroy
|
|
needs: ["apply-production"]
|
|
rules:
|
|
- when: manual
|