diff --git a/templates/plan.yml b/templates/plan.yml
index 061d4c5fe2476579729e405eac26145e0e80eb91..04e0b3acc08c50bf1f0f66f495075dd0851212ca 100644
--- a/templates/plan.yml
+++ b/templates/plan.yml
@@ -42,6 +42,10 @@ spec:
     state_name:
       default: default
       description: 'Remote OpenTofu state name.'
+    destroy_plan:
+      default: false
+      type: boolean
+      description: 'Set to `true` to generate a destroy instead of an apply plan.'
 
 ---
 
@@ -78,5 +82,12 @@ spec:
   image:
     name: '$[[ inputs.image_registry_base ]]/gitlab-opentofu:$[[ inputs.version ]]-opentofu$[[ inputs.opentofu_version ]]'
   script:
-    - gitlab-tofu plan
+    - |
+      if !$[[ inputs.destroy_plan ]]; then
+        echo "gitlab-tofu plan"
+        gitlab-tofu plan
+      else
+        echo "gitlab-tofu plan -destroy"
+        gitlab-tofu plan -destroy
+      fi
     - gitlab-tofu plan-json