diff --git a/templates/fmt.yml b/templates/fmt.yml
index ff0e58d12b60629ae0a77a92ac8969eae556f18e..9dba38363391744410fbd17bf696b87643413490 100644
--- a/templates/fmt.yml
+++ b/templates/fmt.yml
@@ -87,11 +87,6 @@ spec:
       type: array
       description: 'Defines the `rules` of the job.'
 
-    cache_policy:
-      default: pull-push
-      type: string
-      description: 'Defines the cache policy of the job.'
-
 ---
 
 '$[[ inputs.as ]]':
@@ -99,11 +94,6 @@ spec:
   needs: $[[ inputs.needs ]]
   rules: $[[ inputs.rules ]]
   allow_failure: $[[ inputs.allow_failure ]]
-  cache:
-    key: "$__CACHE_KEY_HACK"
-    policy: $[[ inputs.cache_policy ]]
-    paths:
-      - $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-plan-apply.yml b/templates/validate-plan-apply.yml
index 111f295530272455272fd91d9010a29bba44c55d..a5748ff94dc2f456a5026c435c775cd5d1602053 100644
--- a/templates/validate-plan-apply.yml
+++ b/templates/validate-plan-apply.yml
@@ -154,6 +154,7 @@ include:
       state_name: $[[ inputs.state_name ]]
       var_file: $[[ inputs.var_file ]]
       rules: $[[ inputs.validate_rules ]]
+      cache_policy: pull-push
   - local: '/templates/plan.yml'
     inputs:
       as: '$[[ inputs.job_name_prefix ]]plan'
@@ -170,6 +171,7 @@ include:
       artifacts_access: $[[ inputs.plan_artifacts_access ]]
       var_file: $[[ inputs.var_file ]]
       rules: $[[ inputs.plan_rules ]]
+      cache_policy: pull
       warning_on_none_empty_plan: $[[ inputs.warning_on_none_empty_plan ]]
   - local: '/templates/apply.yml'
     inputs:
@@ -187,3 +189,4 @@ include:
       auto_apply: $[[ inputs.auto_apply ]]
       var_file: $[[ inputs.var_file ]]
       rules: $[[ inputs.apply_rules ]]
+      cache_policy: pull
diff --git a/templates/validate-plan-destroy.yml b/templates/validate-plan-destroy.yml
index 4f6db793a7a2d584725248db96c8e652545b6a6c..fead8d0532c73423bbcfa40ffddaff73ca90930c 100644
--- a/templates/validate-plan-destroy.yml
+++ b/templates/validate-plan-destroy.yml
@@ -159,6 +159,7 @@ include:
       state_name: $[[ inputs.state_name ]]
       var_file: $[[ inputs.var_file ]]
       rules: $[[ inputs.validate_rules ]]
+      cache_policy: pull-push
   - local: '/templates/plan.yml'
     inputs:
       as: '$[[ inputs.job_name_prefix ]]plan'
@@ -176,6 +177,7 @@ include:
       destroy: true
       var_file: $[[ inputs.var_file ]]
       rules: $[[ inputs.plan_rules ]]
+      cache_policy: pull
       warning_on_none_empty_plan: $[[ inputs.warning_on_none_empty_plan ]]
   - local: '/templates/destroy.yml'
     inputs:
@@ -194,6 +196,7 @@ include:
       auto_destroy: $[[ inputs.auto_destroy ]]
       var_file: $[[ inputs.var_file ]]
       rules: $[[ inputs.destroy_rules ]]
+      cache_policy: pull
   - local: '/templates/delete-state.yml'
     inputs:
       as: '$[[ inputs.job_name_prefix ]]delete-state'
diff --git a/templates/validate-plan.yml b/templates/validate-plan.yml
index ac2dad0adc73c44bf7e489bb5479de7c10f70374..db33ead60c5d927b6118b0094fe43230eac19062 100644
--- a/templates/validate-plan.yml
+++ b/templates/validate-plan.yml
@@ -140,6 +140,7 @@ include:
       state_name: $[[ inputs.state_name ]]
       var_file: $[[ inputs.var_file ]]
       rules: $[[ inputs.validate_rules ]]
+      cache_policy: pull-push
   - local: '/templates/plan.yml'
     inputs:
       as: '$[[ inputs.job_name_prefix ]]plan'
@@ -156,4 +157,5 @@ include:
       artifacts_access: $[[ inputs.artifacts_access ]]
       var_file: $[[ inputs.var_file ]]
       rules: $[[ inputs.plan_rules ]]
+      cache_policy: pull
       warning_on_none_empty_plan: $[[ inputs.warning_on_none_empty_plan ]]