diff --git a/templates/apply.yml b/templates/apply.yml
index e11bf40a0d70d8bc2045f9868446981e1bd81890..ae0de41adb77c6e7f896a357748a8a155092c4e9 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 c88dc4e9fdda47328727efabd992247c05c4c9f0..9a499ea54809cba25f334dd00abf7c68606087c6 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 bcde646157d7db847fa87367c3aeb5e08bf092e2..a14695bdfea385e38eda5a18f7398f61b5f1d17f 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 973725de2bd38cceda9d0f529f932e1da1f48046..3f48faa674a586d823e14a2440f64fd414c4482b 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 7662d4d8c1a3528c4c725435ec7119f1dd74c706..0e3e413812bc5c6cf15afb0f148a9b779316bd62 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 e8920c240dbb112d392ead755c946c936e92e878..0dc8e3d59fceb7688afb8492531678ad14d4f234 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 ]]"