From 57a9e18a73bc9c8a0c0f23f5e492519da2560a69 Mon Sep 17 00:00:00 2001
From: Timo Furrer <tfurrer@gitlab.com>
Date: Tue, 6 Feb 2024 07:07:43 +0100
Subject: [PATCH] Proxy component inputs with variables to job

Even though it is against the CI/CD component best practices this always
for a smoother transition from the Terraform CI/CD templates.
We can remove that proxy again in a later major version.
---
 templates/apply.yml        | 6 +++---
 templates/delete-state.yml | 6 ++++--
 templates/destroy.yml      | 6 +++---
 templates/fmt.yml          | 2 +-
 templates/plan.yml         | 6 +++---
 templates/validate.yml     | 2 +-
 6 files changed, 15 insertions(+), 13 deletions(-)

diff --git a/templates/apply.yml b/templates/apply.yml
index e11bf40..ae0de41 100644
--- a/templates/apply.yml
+++ b/templates/apply.yml
@@ -51,9 +51,9 @@ spec:
 '$[[ inputs.as ]]':
   stage: $[[ inputs.stage ]]
   environment:
-    name: $[[ inputs.state_name ]]
+    name: $TF_STATE_NAME
     action: start
-  resource_group: $[[ inputs.state_name ]]
+  resource_group: $TF_STATE_NAME
   rules:
     - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && "$[[ inputs.auto_apply ]]" == "true"'
     - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
@@ -61,7 +61,7 @@ spec:
   cache:
     key: "$__CACHE_KEY_HACK"
     paths:
-      - $[[ inputs.root_dir ]]/.terraform/
+      - $TF_ROOT/.terraform/
   variables:
     # FIXME: work around to make slashes work in `cache:key`. see https://gitlab.com/gitlab-org/gitlab/-/issues/439898
     __CACHE_KEY_HACK: "$[[ inputs.root_dir ]]"
diff --git a/templates/delete-state.yml b/templates/delete-state.yml
index c88dc4e..9a499ea 100644
--- a/templates/delete-state.yml
+++ b/templates/delete-state.yml
@@ -20,10 +20,12 @@ spec:
 
 '$[[ inputs.as ]]':
   stage: $[[ inputs.stage ]]
-  resource_group: $[[ inputs.state_name ]]
+  resource_group: $TF_STATE_NAME
   image: curlimages/curl:latest
+  variables:
+    TF_STATE_NAME: $[[ inputs.state_name ]]
   script:
-    - curl --request DELETE -u "gitlab-ci-token:$CI_JOB_TOKEN" "$CI_API_V4_URL/projects/$CI_PROJECT_ID/terraform/state/$[[ inputs.state_name ]]"
+    - curl --request DELETE -u "gitlab-ci-token:$CI_JOB_TOKEN" "$CI_API_V4_URL/projects/$CI_PROJECT_ID/terraform/state/$TF_STATE_NAME"
   rules:
     - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
     - when: manual
diff --git a/templates/destroy.yml b/templates/destroy.yml
index bcde646..a14695b 100644
--- a/templates/destroy.yml
+++ b/templates/destroy.yml
@@ -51,16 +51,16 @@ spec:
 '$[[ inputs.as ]]':
   stage: $[[ inputs.stage ]]
   environment:
-    name: $[[ inputs.state_name ]]
+    name: $TF_STATE_NAME
     action: stop
-  resource_group: $[[ inputs.state_name ]]
+  resource_group: $TF_STATE_NAME
   rules:
     - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && "$[[ inputs.auto_destroy ]]" == "true"'
     - when: manual
   cache:
     key: "$__CACHE_KEY_HACK"
     paths:
-      - $[[ inputs.root_dir ]]/.terraform/
+      - $TF_ROOT/.terraform/
   variables:
     # FIXME: work around to make slashes work in `cache:key`. see https://gitlab.com/gitlab-org/gitlab/-/issues/439898
     __CACHE_KEY_HACK: "$[[ inputs.root_dir ]]"
diff --git a/templates/fmt.yml b/templates/fmt.yml
index 973725d..3f48faa 100644
--- a/templates/fmt.yml
+++ b/templates/fmt.yml
@@ -61,7 +61,7 @@ spec:
   cache:
     key: "$__CACHE_KEY_HACK"
     paths:
-      - $[[ inputs.root_dir ]]/.terraform/
+      - $TF_ROOT/.terraform/
   variables:
     # FIXME: work around to make slashes work in `cache:key`. see https://gitlab.com/gitlab-org/gitlab/-/issues/439898
     __CACHE_KEY_HACK: "$[[ inputs.root_dir ]]"
diff --git a/templates/plan.yml b/templates/plan.yml
index 7662d4d..0e3e413 100644
--- a/templates/plan.yml
+++ b/templates/plan.yml
@@ -60,9 +60,9 @@ spec:
     # See: https://docs.gitlab.com/ee/ci/yaml/#artifactspublic
     public: false
     paths:
-      - $[[ inputs.root_dir ]]/plan.cache
+      - $TF_ROOT/plan.cache
     reports:
-      terraform: $[[ inputs.root_dir ]]/plan.json
+      terraform: $TF_ROOT/plan.json
   rules:
     - if: $CI_PIPELINE_SOURCE == "merge_request_event"
     - if: $CI_OPEN_MERGE_REQUESTS  # Don't add it to a *branch* pipeline if it's already in a merge request pipeline.
@@ -71,7 +71,7 @@ spec:
   cache:
     key: "$__CACHE_KEY_HACK"
     paths:
-      - $[[ inputs.root_dir ]]/.terraform/
+      - $TF_ROOT/.terraform/
   variables:
     # FIXME: work around to make slashes work in `cache:key`. see https://gitlab.com/gitlab-org/gitlab/-/issues/439898
     __CACHE_KEY_HACK: "$[[ inputs.root_dir ]]"
diff --git a/templates/validate.yml b/templates/validate.yml
index e8920c2..0dc8e3d 100644
--- a/templates/validate.yml
+++ b/templates/validate.yml
@@ -55,7 +55,7 @@ spec:
   cache:
     key: "$__CACHE_KEY_HACK"
     paths:
-      - $[[ inputs.root_dir ]]/.terraform/
+      - $TF_ROOT/.terraform/
   variables:
     # FIXME: work around to make slashes work in `cache:key`. see https://gitlab.com/gitlab-org/gitlab/-/issues/439898
     __CACHE_KEY_HACK: "$[[ inputs.root_dir ]]"
-- 
GitLab