diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5199656d78e723c62f174a40ac169b7b6deb3b86..71058c757b7e627be77e44545d47aba47ed7fd7f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -110,15 +110,13 @@ workflow:
     reports:
       dotenv: image.env
 
-build_compute_image:
-  stage: build
-  tags:
-    - build
+.build_compute_image_template: &build_compute_image_template
   script:
     - *update_ansible_repo
     - *get_ansible_files
-    - export PKR_VAR_flavor="${COMPUTE_BUILD_FLAVOR:-$PKR_VAR_flavor}"
-    - export PKR_VAR_build_instance_name="${BUILD_TARGET}-${CRI_XCBC_HEAD}"
+    # packer vars for job env
+    - export PKR_VAR_flavor="${PROXY_BUILD_FLAVOR:-$PKR_VAR_flavor}"
+    - export PKR_VAR_build_instance_name="${BUILD_TARGET}-${EXT_REPO_HEAD}"
     - export PKR_VAR_image_date_suffix=false
     - |
       if [ $CI_PIPELINE_SOURCE == 'merge_request_event' ]; then
@@ -126,18 +124,34 @@ build_compute_image:
       elif [ $CI_PIPELINE_SOURCE == 'schedule' ]; then
         export PKR_VAR_image_name="${BUILD_TARGET}-${BUILD_DATE}"
       fi
+    # Ansible var overrides
+    - |
     # packer commands
-    - packer init openstack-compute
-    - packer validate openstack-compute
-    - packer build -machine-readable openstack-compute | tee compute_build.log
-    - export BUILT_COMPUTE_IMAGE_ID=$(grep 'Image:' compute_build.log | awk '{print $4}')
+    - packer init openstack-proxy
+    - packer validate openstack-proxy
+    - packer build -machine-readable openstack-proxy | tee proxy_build.log
+    - export BUILT_COMPUTE_IMAGE_ID=$(grep 'Image:' proxy_build.log | awk '{print $4}')
     - echo BUILT_COMPUTE_IMAGE_ID=${BUILT_COMPUTE_IMAGE_ID} | tee -a $CI_PROJECT_DIR/image.env
-    - openstack image set --property CRI_XCBC_prod=${CRI_XCBC_prod} --property CRI_XCBC_dev=${CRI_XCBC_dev} --property PACKER_IMAGE_HEAD=${PACKER_IMAGE_HEAD} ${BUILT_COMPUTE_IMAGE_ID}
+    # set image properties with repo state
+    - openstack image set --property EXT_PR_SRC_REPO=${EXT_PR_SRC_REPO} --property EXT_PR_SRC_BRANCH_SHA=${EXT_PR_SRC_BRANCH_SHA} --property EXT_PR_TARGET_REPO=${EXT_PR_TARGET_REPO} --property EXT_PR_TARGET_BRANCH_SHA=${EXT_PR_TARGET_BRANCH_SHA} --property PACKER_IMAGE_HEAD=${PACKER_IMAGE_HEAD} ${BUILT_COMPUTE_IMAGE_ID}
+  artifacts:
+    reports:
+      dotenv: image.env
+
+
+build_compute_image:
+  stage: build
+  environment:
+    name: $ENV
+  tags:
+    - build
+  variables:
+    PROXY_ENABLE_VAR: "enable_compute"
+  <<: *build_compute_image_template
   rules:
-    - if: $PIPELINE_TARGET == "build"
+    - if: $PIPELINE_TARGET == "build" && $BUILD_TARGET == "http-proxy"
       when: always
 
-
 build_http_proxy_image:
   stage: build
   environment: