diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 4af2668dabfa226a88fbde2dae0e29be8f30a496..209ecc3f2609a00377001f65c50977b85443bcc5 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -2,9 +2,8 @@
 include:
   - project: shore/ci-templates
     file: templates/pre-commit.yml
-
-variables:
-  TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/default
+  - project: shore/ci-templates
+    file: templates/terraform.yml
 
 stages:
   - test
@@ -30,27 +29,15 @@ Generate payload:
       - .cache/
 
 Terraform plan:
+  extends: .tf_plan
   stage: plan
-  image: &tf_image registry.gitlab.com/gitlab-org/terraform-images/stable:latest
-  script:
-    - gitlab-terraform plan
-    - gitlab-terraform plan-json
   dependencies:
     - Generate payload
-  artifacts:
-    name: plan
-    paths:
-      - plan.cache
-    reports:
-      terraform: plan.json
 
 Terraform apply:
+  extends: .tf_apply
   stage: apply
-  image: *tf_image
-  script:
-    - gitlab-terraform apply
   dependencies: &tf_apply_dependecies
     - Generate payload
     - Terraform plan
-  when: manual
   needs: *tf_apply_dependecies