diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c9c39ecd9daf17583736b1e75472238a277ad27e..e4fecf981eb8a3fb299e91615d41ab72d85b6ab9 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,56 +1,52 @@
+include:
+  - remote: https://open.greenhost.net/openappstack/openappstack/raw/master/.gitlab/ci_templates/kaniko.yml
+
 stages:
   - build
   - build-test-images
   - application-test
   - integration-test
 
-consent-provider:
+consent_provider:
   stage: build
-  image:
-    name: gcr.io/kaniko-project/executor:debug
-    entrypoint: [""]
-  script:
-    - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
-    - /kaniko/executor --context ${CI_PROJECT_DIR}/consent_provider --dockerfile ${CI_PROJECT_DIR}/consent_provider/Dockerfile --destination $CI_REGISTRY_IMAGE/consent_provider:${CI_COMMIT_REF_NAME}
+  variables:
+    KANIKO_CONTEXT: "consent_provider"
+    KANIKO_BUILD_IMAGENAME: $CI_JOB_NAME
+  extends: .kaniko_build
   only:
     changes:
       - consent_provider/**/*
       - .gitlab-ci.yml
 
-login-provider:
+login_provider:
   stage: build
-  image:
-    name: gcr.io/kaniko-project/executor:debug
-    entrypoint: [""]
-  script:
-    - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
-    - /kaniko/executor --context ${CI_PROJECT_DIR}/login_provider --dockerfile ${CI_PROJECT_DIR}/login_provider/Dockerfile --destination $CI_REGISTRY_IMAGE/login_provider:${CI_COMMIT_REF_NAME}
+  variables:
+    KANIKO_CONTEXT: "login_provider"
+    KANIKO_BUILD_IMAGENAME: $CI_JOB_NAME
+  extends: .kaniko_build
   only:
     changes:
       - login_provider/**/*
       - .gitlab-ci.yml
 
-login-provider-mock:
+login_provider_mock:
   stage: build-test-images
-  image:
-    name: gcr.io/kaniko-project/executor:debug
-    entrypoint: [""]
-  script:
-    - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
-    - /kaniko/executor --context ${CI_PROJECT_DIR}/login_provider/test/behave --dockerfile ${CI_PROJECT_DIR}/login_provider/test/behave/Dockerfile --destination $CI_REGISTRY_IMAGE/login_provider_mock:${CI_COMMIT_REF_NAME} --build-arg baseimage=$CI_REGISTRY_IMAGE/login_provider:${CI_COMMIT_REF_NAME}
+  variables:
+    KANIKO_CONTEXT: "login_provider/test/behave"
+    KANIKO_BUILD_IMAGENAME: $CI_JOB_NAME
+    KANIKO_ADDITIONAL_ARGS: "--build-arg baseimage=$CI_REGISTRY_IMAGE/login_provider:${CI_COMMIT_REF_NAME}"
+  extends: .kaniko_build
   only:
     changes:
       - login_provider/**/*
       - .gitlab-ci.yml
 
-login-provider-test:
+login_provider_test:
   stage: build-test-images
-  image:
-    name: gcr.io/kaniko-project/executor:debug
-    entrypoint: [""]
-  script:
-    - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
-    - /kaniko/executor --context ${CI_PROJECT_DIR}/login_provider/test --dockerfile ${CI_PROJECT_DIR}/login_provider/test/Dockerfile --destination $CI_REGISTRY_IMAGE/login_provider_ci_test:${CI_COMMIT_REF_NAME}
+  variables:
+    KANIKO_CONTEXT: "login_provider/test"
+    KANIKO_BUILD_IMAGENAME: $CI_JOB_NAME
+  extends: .kaniko_build
   only:
     changes:
       - login_provider/**/*
@@ -84,7 +80,7 @@ integration-test:
 
 unittest-login:
   stage: application-test
-  image: ${CI_REGISTRY_IMAGE}/login_provider_ci_test:${CI_COMMIT_REF_NAME}
+  image: ${CI_REGISTRY_IMAGE}/login_provider_test:${CI_COMMIT_REF_NAME}
   script:
     - cd login_provider
     - python3 -m unittest discover
@@ -99,7 +95,7 @@ behave-login:
   services:
     - name: ${CI_REGISTRY_IMAGE}/login_provider_mock:${CI_COMMIT_REF_NAME}
       alias: login_provider
-  image: ${CI_REGISTRY_IMAGE}/login_provider_ci_test:${CI_COMMIT_REF_NAME}
+  image: ${CI_REGISTRY_IMAGE}/login_provider_test:${CI_COMMIT_REF_NAME}
   script:
     - cd login_provider/test/behave/
     - python3 -m behave -D headless=True -D url=http://login_provider:5000 -D username=$TESTUSER_USERNAME -D password=$TESTUSER_PASSWORD