From 9b599f855e2391e36608250879d6eb0b645503aa Mon Sep 17 00:00:00 2001
From: Bo-Chun Louis Chen <louistw@uab.edu>
Date: Tue, 13 Feb 2024 02:13:26 -0600
Subject: [PATCH] Delete base compute gpu images

---
 .gitlab-ci.yml | 32 ++++++++++++++++++++++++++++++--
 1 file changed, 30 insertions(+), 2 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b106543..bd92aa5 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -389,17 +389,45 @@ cleanup_knightly:
       SERVER_TO_BE_DELETE=($(openstack server list --name $OOD_INSTANCE_NAME --sort-column Image --sort-descending -f value -c ID
       | awk -v NSTK=$NUM_SERVER_TO_KEEP '{count++}
       {if (count>NSTK) print}'))
+    - openstack image list --sort-column Name --sort-descending -f value -c Name -c ID > images.txt
     - >
-      IMAGE_TO_BE_DELETE=($(openstack image list --sort-column Name --sort-descending -f value -c Name -c ID
+      OOD_IMAGE_TO_BE_DELETE=($(cat images.txt
       | awk -v NITK=$NUM_IMAGE_TO_KEEP -v REGEX=ood-$TIMESTAMP_REGEX
       '{if ($0 ~ REGEX) result[count++] = $1}
       END {for(i=NITK;i<count;i++) print result[i]}'))
+    - >
+      BASE_IMAGE_TO_BE_DELETE=($(cat images.txt
+      | awk -v NITK=$NUM_IMAGE_TO_KEEP -v REGEX=base-$TIMESTAMP_REGEX
+      '{if ($0 ~ REGEX) result[count++] = $1}
+      END {for(i=NITK;i<count;i++) print result[i]}'))
+    - >
+      COMPUTE_IMAGE_TO_BE_DELETE=($(cat images.txt
+      | awk -v NITK=$NUM_IMAGE_TO_KEEP -v REGEX=compute-$TIMESTAMP_REGEX
+      '{if ($0 ~ REGEX) result[count++] = $1}
+      END {for(i=NITK;i<count;i++) print result[i]}'))
+    - >
+      GPU_IMAGE_TO_BE_DELETE=($(cat images.txt
+      | awk -v NITK=$NUM_IMAGE_TO_KEEP -v REGEX=gpu-$TIMESTAMP_REGEX
+      '{if ($0 ~ REGEX) result[count++] = $1}
+      END {for(i=NITK;i<count;i++) print result[i]}'))
     - |
       for svr in ${SERVER_TO_BE_DELETE[@]}; do
         openstack server delete ${svr}
       done
     - |
-      for img in ${IMAGE_TO_BE_DELETE[@]}; do
+      for img in ${OOD_IMAGE_TO_BE_DELETE[@]}; do
+        openstack image delete ${img}
+      done
+    - |
+      for img in ${BASE_IMAGE_TO_BE_DELETE[@]}; do
+        openstack image delete ${img}
+      done
+    - |
+      for img in ${COMPUTE_IMAGE_TO_BE_DELETE[@]}; do
+        openstack image delete ${img}
+      done
+    - |
+      for img in ${GPU_IMAGE_TO_BE_DELETE[@]}; do
         openstack image delete ${img}
       done
   rules:
-- 
GitLab