From d2d68ef735d2200f703e617a0258b9bb7f2727ca Mon Sep 17 00:00:00 2001 From: Timo Furrer <tfurrer@gitlab.com> Date: Fri, 26 Jan 2024 10:05:28 +0100 Subject: [PATCH] Integrate destroy plan job --- templates/full-pipeline.yml | 16 ++++++++++++++++ templates/plan.yml | 6 +++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/templates/full-pipeline.yml b/templates/full-pipeline.yml index 15835df..7c73b41 100644 --- a/templates/full-pipeline.yml +++ b/templates/full-pipeline.yml @@ -102,6 +102,21 @@ include: root_dir: $[[ inputs.root_dir ]] state_name: $[[ inputs.state_name ]] auto_apply: $[[ inputs.auto_apply ]] + - local: '/templates/plan.yml' + inputs: + as: 'destroy:plan' + stage: $[[ inputs.stage_cleanup ]] + version: $[[ inputs.version ]] + opentofu_version: $[[ inputs.opentofu_version ]] + image_registry_base: $[[ inputs.image_registry_base ]] + root_dir: $[[ inputs.root_dir ]] + state_name: $[[ inputs.state_name ]] + plan: destroy-plan.cache + destroy_plan: true + rules: + - if: '"$[[ inputs.create_destroy_job ]]" == "true"' + when: always + - when: never - local: '/templates/destroy.yml' inputs: as: 'destroy' @@ -112,6 +127,7 @@ include: root_dir: $[[ inputs.root_dir ]] state_name: $[[ inputs.state_name ]] auto_destroy: $[[ inputs.auto_apply ]] + plan: $[[ inputs.root_dir ]]/destroy-plan.cache rules: - if: '"$[[ inputs.create_destroy_job ]]" == "true"' when: always diff --git a/templates/plan.yml b/templates/plan.yml index 04e0b3a..d47c4df 100644 --- a/templates/plan.yml +++ b/templates/plan.yml @@ -42,6 +42,9 @@ spec: state_name: default: default description: 'Remote OpenTofu state name.' + plan: + default: 'plan.cache' + description: 'Path for the generated plan relative to the root directory' destroy_plan: default: false type: boolean @@ -64,7 +67,7 @@ spec: # See: https://docs.gitlab.com/ee/ci/yaml/#artifactspublic public: false paths: - - $[[ inputs.root_dir ]]/plan.cache + - $[[ inputs.root_dir ]]/$[[ inputs.plan ]] reports: terraform: $[[ inputs.root_dir ]]/plan.json rules: @@ -79,6 +82,7 @@ spec: variables: TF_ROOT: $[[ inputs.root_dir ]] TF_STATE_NAME: $[[ inputs.state_name ]] + TF_PLAN_CACHE: $[[ inputs.root_dir ]]/$[[ inputs.plan ]] image: name: '$[[ inputs.image_registry_base ]]/gitlab-opentofu:$[[ inputs.version ]]-opentofu$[[ inputs.opentofu_version ]]' script: -- GitLab