diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 938283ddcb18b6fd814ec3d9be341359bdc0dfc1..de5934d6d270aa33f6885fee9d6851b9b3861114 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -21,7 +21,8 @@ variables:
   PKR_VAR_security_groups: '["allow-ssh"]'
   PKR_VAR_skip_create_image: "false"
   PKR_VAR_ssh_username: "centos"
-  PKR_VAR_networks: '["ec11e2be-8fac-46cf-8fa2-9dffb74ba5df"]'
+  PKR_VAR_networks: '["8cf2f12e-905d-46d9-bc70-b0897c65f75a"]'
+  PKR_VAR_image_membership: '["cf6fa1e53d4c40a49f4e0e469c440359"]'
   GIT_AUTHOR_NAME: "Gitlab runner"
   GIT_AUTHOR_EMAIL: "gitlab@runner"
   NUM_SERVER_TO_KEEP: 1
@@ -197,8 +198,6 @@ build_gpu_image:
 
 build_ood_image:
   stage: build
-  environment:
-    name: knightly
   tags:
     - build
   script:
@@ -249,6 +248,7 @@ test_ood_image:
   tags:
     - build
   script:
+    - openstack image set --accept $BUILT_OOD_IMAGE_ID
     - FAILED=false
     - |
       eval $(ssh-agent -s)
@@ -315,6 +315,64 @@ test_ood_image:
   artifacts:
     reports:
       dotenv: instance.env
+  rules:
+    - if: $CI_PIPELINE_SOURCE == "schedule"
+      when: always
+
+test_ood_image_mr:
+  stage: test
+  needs: [build_ood_image]
+  tags:
+    - build
+  script:
+    - export OOD_INSTANCE_NETWORK="cicd-net"
+    - FAILED=false
+    - |
+      eval $(ssh-agent -s)
+      chmod 400 "$SSH_PRIV_KEY"
+      ssh-add "$SSH_PRIV_KEY"
+      mkdir ~/.ssh
+      chmod 700 ~/.ssh
+    - |
+      cat > user_data.txt << OEOF
+      #!/bin/bash
+      cat > /etc/resolv.conf << EOF
+      search openstack.internal cm.cluster rc.uab.edu ib.cluster drac.cluster eth.cluster ib-hdr.cluster
+      nameserver 172.20.0.25
+      EOF
+      echo "$DEV_KEY" >> /root/.ssh/authorized_keys
+      mkdir -p /run/shibboleth
+      chown shibd:shibd /run/shibboleth
+      OEOF
+    - >
+      export NEW_INSTANCE_ID=$(openstack server create
+      -c id -f value --image $BUILT_OOD_IMAGE_ID
+      --network $OOD_INSTANCE_NETWORK
+      --security-group ood-https-ports
+      --security-group allow-ssh
+      --user-data user_data.txt
+      --flavor $INSTANCE_FLAVOR
+      --wait
+      $OOD_INSTANCE_NAME)
+    - echo NEW_INSTANCE_ID=$NEW_INSTANCE_ID | tee -a instance.env
+    - openstack server add floating ip $NEW_INSTANCE_ID $FLOATING_IP
+    - >
+      curl --retry 10 --retry-delay 20 --retry-connrefused https://knightly.rc.uab.edu/Shibboleth.sso/Metadata --resolve knightly.rc.uab.edu:443:$FLOATING_IP -kf
+      || FAILED=true
+    - ssh -o StrictHostKeyChecking=no acctsvc@$FLOATING_IP '[ $(mount | grep "etc/auto" | wc -l) -eq 6 ]' || FAILED=true
+    - |
+      if [ "$FAILED" = true ]; then
+        if [ "${DELETE_WHEN_FAILED-true}" = true ]; then
+          openstack server delete $NEW_INSTANCE_ID
+          openstack image delete $BUILT_OOD_IMAGE_ID
+        fi
+        false
+      fi
+  artifacts:
+    reports:
+      dotenv: instance.env
+  rules:
+    - if: $CI_MERGE_REQUEST_ID
 
 deploy_review:
   stage: deploy
@@ -379,8 +437,6 @@ deploy_cheaha:
 
 cleanup_knightly:
   stage: cleanup
-  environment:
-    name: knightly
   tags:
     - build
   script: