diff --git a/templates/full-pipeline.yml b/templates/full-pipeline.yml
index 98403b142cd9a413082558b551db2d11bcaf83b8..7530d15aeded95071c02c3d185c62df753762f5c 100644
--- a/templates/full-pipeline.yml
+++ b/templates/full-pipeline.yml
@@ -100,6 +100,10 @@ spec:
       default: ''
       type: string
       description: 'Path to a variables files relative to root_dir.'
+    fmt_allow_failure:
+      default: true
+      type: boolean
+      description: 'Whether the fmt job is allowed to fail or not.'
     fmt_rules:
       default:
         - if: $CI_PIPELINE_SOURCE == "merge_request_event"
@@ -238,6 +242,7 @@ include:
       image_digest: $[[ inputs.image_digest ]]
       root_dir: $[[ inputs.root_dir ]]
       needs: []
+      allow_failure: $[[ inputs.fmt_allow_failure ]]
       rules: $[[ inputs.fmt_rules ]]
   - local: '/templates/validate.yml'
     rules:
@@ -439,6 +444,7 @@ stages:
           plan_name: $[[ inputs.plan_name ]]
           plan_artifacts_access: $[[ inputs.plan_artifacts_access ]]
           var_file: $[[ inputs.var_file ]]
+          fmt_allow_failure: $[[ inputs.fmt_allow_failure ]]
           fmt_rules: $[[ inputs.fmt_rules ]]
           validate_rules: $[[ inputs.validate_rules ]]
           plan_rules: $[[ inputs.plan_rules ]]
diff --git a/templates/validate-plan-apply.yml b/templates/validate-plan-apply.yml
index f72f9c9af12413c91d345247b27bbeaef7a9e600..3abadd39044abe79672dd3f0c1d56a48012942fd 100644
--- a/templates/validate-plan-apply.yml
+++ b/templates/validate-plan-apply.yml
@@ -87,6 +87,10 @@ spec:
       default: ''
       type: string
       description: 'Path to a variables files relative to root_dir.'
+    fmt_allow_failure:
+      default: true
+      type: boolean
+      description: 'Whether the fmt job is allowed to fail or not.'
     fmt_rules:
       default:
         - if: $CI_PIPELINE_SOURCE == "merge_request_event"
@@ -202,6 +206,7 @@ include:
       image_digest: $[[ inputs.image_digest ]]
       root_dir: $[[ inputs.root_dir ]]
       needs: []
+      allow_failure: $[[ inputs.fmt_allow_failure ]]
       rules: $[[ inputs.fmt_rules ]]
   - local: '/templates/validate.yml'
     rules:
@@ -329,6 +334,7 @@ stages:
           plan_artifacts_access: $[[ inputs.plan_artifacts_access ]]
           var_file: $[[ inputs.var_file ]]
           fmt_rules: $[[ inputs.fmt_rules ]]
+          fmt_allow_failure: $[[ inputs.fmt_allow_failure ]]
           validate_rules: $[[ inputs.validate_rules ]]
           plan_rules: $[[ inputs.plan_rules ]]
           apply_rules: $[[ inputs.apply_rules ]]
diff --git a/templates/validate-plan-destroy.yml b/templates/validate-plan-destroy.yml
index b21f69b94ca7d9526a46f59beac41ae59fca8ca2..c3def632555a974499dcc4b3c6fee80b23a9bfad 100644
--- a/templates/validate-plan-destroy.yml
+++ b/templates/validate-plan-destroy.yml
@@ -87,6 +87,10 @@ spec:
       default: ''
       type: string
       description: 'Path to a variables files relative to root_dir.'
+    fmt_allow_failure:
+      default: true
+      type: boolean
+      description: 'Whether the fmt job is allowed to fail or not.'
     fmt_rules:
       default:
         - if: $CI_PIPELINE_SOURCE == "merge_request_event"
@@ -208,6 +212,7 @@ include:
       image_digest: $[[ inputs.image_digest ]]
       root_dir: $[[ inputs.root_dir ]]
       needs: []
+      allow_failure: $[[ inputs.fmt_allow_failure ]]
       rules: $[[ inputs.fmt_rules ]]
   - local: '/templates/validate.yml'
     rules:
@@ -360,6 +365,7 @@ stages:
           plan_name: $[[ inputs.plan_name ]]
           plan_artifacts_access: $[[ inputs.plan_artifacts_access ]]
           var_file: $[[ inputs.var_file ]]
+          fmt_allow_failure: $[[ inputs.fmt_allow_failure ]]
           fmt_rules: $[[ inputs.fmt_rules ]]
           validate_rules: $[[ inputs.validate_rules ]]
           plan_rules: $[[ inputs.plan_rules ]]
diff --git a/templates/validate-plan.yml b/templates/validate-plan.yml
index 136e9d7107fce3b44473714264735c6af69e6432..862120619e4da1b676b5ef5bec0c1e1da373f477 100644
--- a/templates/validate-plan.yml
+++ b/templates/validate-plan.yml
@@ -77,6 +77,10 @@ spec:
       default: ''
       type: string
       description: 'Path to a variables files relative to root_dir.'
+    fmt_allow_failure:
+      default: true
+      type: boolean
+      description: 'Whether the fmt job is allowed to fail or not.'
     fmt_rules:
       default:
         - if: $CI_PIPELINE_SOURCE == "merge_request_event"
@@ -187,6 +191,7 @@ include:
       root_dir: $[[ inputs.root_dir ]]
       needs: []
       rules: $[[ inputs.fmt_rules ]]
+      allow_failure: $[[ inputs.fmt_allow_failure ]]
   - local: '/templates/validate.yml'
     rules:
       - if: '"$[[ inputs.trigger_in_child_pipeline ]]" == "false"'
@@ -285,6 +290,7 @@ stages:
           plan_name: $[[ inputs.plan_name ]]
           artifacts_access: $[[ inputs.artifacts_access ]]
           var_file: $[[ inputs.var_file ]]
+          fmt_allow_failure: $[[ inputs.fmt_allow_failure ]]
           fmt_rules: $[[ inputs.fmt_rules ]]
           validate_rules: $[[ inputs.validate_rules ]]
           plan_rules: $[[ inputs.plan_rules ]]