diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index aedeffe52a52bbe4421d4ebd23fbb9f320458212..371fa0eb5803bac9c95f90c109c5f6868d98bdbe 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -26,6 +26,7 @@ variables:
   INSTANCE_FLAVOR: "m1.medium-ruffner"
   HTTP_PROXY_INSTANCE_NAME: "http-proxy"
   SSH_PROXY_INSTANCE_NAME: "ssh-proxy"
+  NUM_SERVERS_TO_KEEP: "1"
 
 stages:
   - build
@@ -379,6 +380,26 @@ deploy_ood_node:
     name: $ENV
   tags:
     - build
+  before_script:
+    - |
+      for OOD_FLOATING_IP in ${OOD_FLOATING_IP_LIST[@]}; do
+        CURRENT_INSTANCE_ID=$(
+          openstack server list \
+          --name $OOD_INSTANCE_NAME --ip $OOD_FLOATING_IP -c ID -f value)
+        break
+      done
+      SERVERS_TO_BE_DELETED=($(
+        openstack server list --name $OOD_INSTANCE_NAME \
+        --sort-column Image --sort-descending -f value -c ID | \
+        awk -v NSTK=$NUM_SERVERS_TO_KEEP -v CID=$CURRENT_INSTANCE_ID \
+        '$0 != CID {count++} \
+        $0 != CID && count>NSTK {print}'
+      ))
+    - |
+      for svr in ${SERVERS_TO_BE_DELETED[@]}; do
+        echo "Deleting server $svr"
+        openstack server delete ${svr}
+      done
   script:
     - OOD_IMAGE_ID="${BUILT_OOD_IMAGE_ID:-$OOD_IMAGE_ID}"
     - openstack image set --accept $OOD_IMAGE_ID || true