diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cadedd5ab4b0d8b53164d8e4fd83583b47be5844..086851bf0d88533d0c31a7b0167f60d47b3b7101 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -60,11 +60,25 @@ deploy_ood_proxy_node: --column id \ $OOD_PROXY_NAME) - # Log the created instance ID for debugging echo "Created PROXY_INSTANCE_ID: $PROXY_INSTANCE_ID" - # Add a floating IP to the created server - openstack server add floating ip $OOD_PROXY_NAME $PROXY_IP + # Check if the PROXY_IP is set and exists + if [ -z "$PROXY_IP" ]; then + echo "ERROR: PROXY_IP variable is not set" + exit 1 + fi + + # Check if the floating IP is available + FLOATING_IP=$(openstack floating ip list --format value --column Floating_IP_Address | grep -w "$PROXY_IP") + + if [ -z "$FLOATING_IP" ]; then + echo "ERROR: No Floating IP found for ${PROXY_IP}" + exit 1 + else + # Add the floating IP to the created server + openstack server add floating ip $OOD_PROXY_NAME $PROXY_IP + echo "Successfully assigned Floating IP: $PROXY_IP to the server" + fi # Store the instance ID in variables.env for later use echo "PROXY_INSTANCE_ID=$PROXY_INSTANCE_ID" >> $CI_PROJECT_DIR/variables.env @@ -72,3 +86,4 @@ deploy_ood_proxy_node: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' - if: $CI_PIPELINE_SOURCE == 'schedule' - when: manual +