Skip to content
Snippets Groups Projects

Feat cleanup old image

1 file
+ 21
1
Compare changes
  • Side-by-side
  • Inline
+ 21
1
@@ -25,6 +25,7 @@ variables:
@@ -25,6 +25,7 @@ variables:
GIT_AUTHOR_EMAIL: "gitlab@runner"
GIT_AUTHOR_EMAIL: "gitlab@runner"
NUM_SERVER_TO_KEEP: 1
NUM_SERVER_TO_KEEP: 1
NUM_IMAGE_TO_KEEP: 30
NUM_IMAGE_TO_KEEP: 30
 
TIMESTAMP_REGEXP: '\d{4}-\d{2}-\d{2}T\d{6}'
PKR_VAR_root_ssh_key: "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBAFqqWgmYpEaGtHBeTu27ntVJpYjwq/x5aBefrvfhk8Z9lE3cuZ26vJ9n/9tGE4Zn2Pew1mpZgi6PzfJ3vMt8yA= root@master"
PKR_VAR_root_ssh_key: "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBAFqqWgmYpEaGtHBeTu27ntVJpYjwq/x5aBefrvfhk8Z9lE3cuZ26vJ9n/9tGE4Zn2Pew1mpZgi6PzfJ3vMt8yA= root@master"
DEV_KEY: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCpncAcYosVHt7HsUcE2XOYDuCi4HQnmFJv279LOcpZgXtZ6o0BM1fe5FgJS0X1ohBXQUFRuYJuJSW/GSmC1K8T+wCrKjZLJdMbqrubHV27diUZfdoVkoJy1vcAQF5nEcoTC7MpAFbBomdn2rsrpgQe8DGiURV7+soqybXV1OsIR3FFf6npnUaskHYT/oVtG9eBOnscyBxoVgbxzlmyoBLXED/sHKFw4nQSF/glYKEFiDu6TRTsBBEGvv23Qo/66QpQiFJ6TNfApNiyY9L1X+Dy8EWU6lozmNgwGDjXQ70Lr6xHnA0QGVALJlHXa6QjpgtpC5Nefsdvtf1hpfFo2VutpbSB+aq9jk3gWNN+XkhrWN5PiwP7YYJNw/WozyfL+IhwjfHZGxkuws+wGR6ZKxlX9W9Vrsq9ncYNKuhy2SdsR6s2XECQtrEQ6ZlX5jRt6Yh5M9ls5fMsWEqknDPmr1Ui6wV7NxprYngo9fLSdYO/ETIO3S6PB0aEHOZOyGitGaM06EmNpvjQn/QkkaVgt/O8wKL1o1AVzXhDMAFvtG6ejppV6kuTUHXFgSGZF6N9fnP91HuytyzC09F+NMWcmnRdrgXlHapjuuL3zzi+XLCQvk8+aYTzBKx1nU2FPMDRZ9sInGmqdTuM002E7qVbaCy4OxcWaAS/L2UVhGnHr+egYw== louistw@uab.edu"
DEV_KEY: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCpncAcYosVHt7HsUcE2XOYDuCi4HQnmFJv279LOcpZgXtZ6o0BM1fe5FgJS0X1ohBXQUFRuYJuJSW/GSmC1K8T+wCrKjZLJdMbqrubHV27diUZfdoVkoJy1vcAQF5nEcoTC7MpAFbBomdn2rsrpgQe8DGiURV7+soqybXV1OsIR3FFf6npnUaskHYT/oVtG9eBOnscyBxoVgbxzlmyoBLXED/sHKFw4nQSF/glYKEFiDu6TRTsBBEGvv23Qo/66QpQiFJ6TNfApNiyY9L1X+Dy8EWU6lozmNgwGDjXQ70Lr6xHnA0QGVALJlHXa6QjpgtpC5Nefsdvtf1hpfFo2VutpbSB+aq9jk3gWNN+XkhrWN5PiwP7YYJNw/WozyfL+IhwjfHZGxkuws+wGR6ZKxlX9W9Vrsq9ncYNKuhy2SdsR6s2XECQtrEQ6ZlX5jRt6Yh5M9ls5fMsWEqknDPmr1Ui6wV7NxprYngo9fLSdYO/ETIO3S6PB0aEHOZOyGitGaM06EmNpvjQn/QkkaVgt/O8wKL1o1AVzXhDMAFvtG6ejppV6kuTUHXFgSGZF6N9fnP91HuytyzC09F+NMWcmnRdrgXlHapjuuL3zzi+XLCQvk8+aYTzBKx1nU2FPMDRZ9sInGmqdTuM002E7qVbaCy4OxcWaAS/L2UVhGnHr+egYw== louistw@uab.edu"
@@ -127,6 +128,12 @@ build_base_image:
@@ -127,6 +128,12 @@ build_base_image:
- export BUILT_BASE_IMAGE_ID=$(grep 'Image:' base_build.log | awk '{print $4}')
- export BUILT_BASE_IMAGE_ID=$(grep 'Image:' base_build.log | awk '{print $4}')
- echo BUILT_BASE_IMAGE_ID=${BUILT_BASE_IMAGE_ID} | tee -a $CI_PROJECT_DIR/image.env
- echo BUILT_BASE_IMAGE_ID=${BUILT_BASE_IMAGE_ID} | tee -a $CI_PROJECT_DIR/image.env
- openstack image unset --property signature_verified $BUILT_BASE_IMAGE_ID
- openstack image unset --property signature_verified $BUILT_BASE_IMAGE_ID
 
- |
 
IMAGE_TO_BE_DELETE=($(openstack image list --sort-column Name --sort-descending -f value -c Name -c ID | grep -P " base-$TIMESTAMP_REGEXP$" | sed -n $(($NUM_IMAGE_TO_KEEP+1))',$p' | awk '{print $1}'))
 
for img in ${IMAGE_TO_BE_DELETE[@]}; do
 
echo "Deleting image ${img}"
 
openstack image delete ${img}
 
done
artifacts:
artifacts:
reports:
reports:
dotenv: image.env
dotenv: image.env
@@ -154,6 +161,12 @@ build_compute_image:
@@ -154,6 +161,12 @@ build_compute_image:
- packer init openstack-compute
- packer init openstack-compute
- packer validate openstack-compute
- packer validate openstack-compute
- packer build -machine-readable openstack-compute | tee compute_build.log
- packer build -machine-readable openstack-compute | tee compute_build.log
 
- |
 
IMAGE_TO_BE_DELETE=($(openstack image list --sort-column Name --sort-descending -f value -c Name -c ID | grep -P " compute-$TIMESTAMP_REGEXP$" | sed -n $(($NUM_IMAGE_TO_KEEP+1))',$p' | awk '{print $1}'))
 
for img in ${IMAGE_TO_BE_DELETE[@]}; do
 
echo "Deleting image ${img}"
 
openstack image delete ${img}
 
done
build_gpu_image:
build_gpu_image:
stage: build
stage: build
@@ -183,6 +196,12 @@ build_gpu_image:
@@ -183,6 +196,12 @@ build_gpu_image:
- openstack server delete --wait $GPU_PLACEHOLDER_NAME
- openstack server delete --wait $GPU_PLACEHOLDER_NAME
- packer build -machine-readable openstack-gpu | tee gpu_build.log || FAILED=true
- packer build -machine-readable openstack-gpu | tee gpu_build.log || FAILED=true
- openstack server create --image $GPU_PLACEHOLDER_IMAGE --network cicd-net --flavor $GPU_PLACEHOLDER_FLAVOR $GPU_PLACEHOLDER_NAME
- openstack server create --image $GPU_PLACEHOLDER_IMAGE --network cicd-net --flavor $GPU_PLACEHOLDER_FLAVOR $GPU_PLACEHOLDER_NAME
 
- |
 
IMAGE_TO_BE_DELETE=($(openstack image list --sort-column Name --sort-descending -f value -c Name -c ID | grep -P " gpu-$TIMESTAMP_REGEXP$" | sed -n $(($NUM_IMAGE_TO_KEEP+1))',$p' | awk '{print $1}'))
 
for img in ${IMAGE_TO_BE_DELETE[@]}; do
 
echo "Deleting image ${img}"
 
openstack image delete ${img}
 
done
- |
- |
if [ "$FAILED" = true ]; then
if [ "$FAILED" = true ]; then
exit 1
exit 1
@@ -361,7 +380,7 @@ deploy_knightly:
@@ -361,7 +380,7 @@ deploy_knightly:
fi
fi
- |
- |
SERVER_TO_BE_DELETE=($(openstack server list --name $OOD_INSTANCE_NAME --sort-column Image --sort-descending -f value -c ID | sed -n $(($NUM_SERVER_TO_KEEP+1))',$p'))
SERVER_TO_BE_DELETE=($(openstack server list --name $OOD_INSTANCE_NAME --sort-column Image --sort-descending -f value -c ID | sed -n $(($NUM_SERVER_TO_KEEP+1))',$p'))
IMAGE_TO_BE_DELETE=($(openstack image list --sort-column Name --sort-descending -f value -c Name -c ID | grep -P ' ood-\d{8}$' | sed -n $(($NUM_IMAGE_TO_KEEP+1))',$p' | awk '{print $1}'))
IMAGE_TO_BE_DELETE=($(openstack image list --sort-column Name --sort-descending -f value -c Name -c ID | grep -P " ood-$TIMESTAMP_REGEXP$" | sed -n $(($NUM_IMAGE_TO_KEEP+1))',$p' | awk '{print $1}'))
for svr in ${SERVER_TO_BE_DELETE[@]}; do
for svr in ${SERVER_TO_BE_DELETE[@]}; do
openstack server delete ${svr}
openstack server delete ${svr}
done
done
@@ -370,6 +389,7 @@ deploy_knightly:
@@ -370,6 +389,7 @@ deploy_knightly:
done
done
only:
only:
- schedules
- schedules
 
allow_failure: true
deploy_cheaha:
deploy_cheaha:
stage: deploy
stage: deploy
Loading