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