From bca052ff5dfdf73ca51df0c9b4e740974b258587 Mon Sep 17 00:00:00 2001 From: Eesaan Atluri <atlurie@uab.edu> Date: Fri, 4 Apr 2025 14:06:51 -0400 Subject: [PATCH] feat: Add deploy job for OOD in the pipeline --- .gitlab-ci.yml | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index db544ce..25048fe 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -373,3 +373,56 @@ deploy_login_node: - if: $PIPELINE_TARGET == "deploy" && $LOGIN_IMAGE_ID when: always +deploy_ood_node: + stage: deploy + environment: + name: $ENV + tags: + - build + script: + - openstack image set --accept $OOD_IMAGE_ID || true + - FAILED=false + - | + cat > user_data.txt <<EOF + #!/bin/bash + cat >> /etc/NetworkManager/conf.d/90-dns-none.conf<<EEOF + [main] + dns=none + EEOF + systemctl reload NetworkManager + echo "$DEV_KEY" >> /root/.ssh/authorized_keys + ip route replace default via ${DEFAULT_GATEWAY_IP} dev eth0 + git clone ${CI_REPOSITORY_URL} /tmp/${CI_PROJECT_NAME} + cd /tmp/${CI_PROJECT_NAME} + git checkout ${CI_COMMIT_REF_NAME} + cat >> ansible/hosts<<EEOF + [$ENV] + 127.0.0.1 + EEOF + s3cmd get --force -r --access_key=$AWS_ACCESS_KEY_ID --secret_key=$AWS_SECRET_ACCESS_KEY --host=$AWS_HOST --host-bucket=$AWS_HOST s3://cheaha-cloud-ansible-files/ /tmp/${CI_PROJECT_NAME}/ansible/files/ + ansible-playbook -c local -i ansible/hosts --extra-vars="$EXTRA_VARS" ansible/cluster.yml | tee -a /tmp/ansible.log + rm -rf /tmp/${CI_PROJECT_NAME} + EOF + - | + export cmd="openstack server create" + cmd+=" -c id -f value --image $OOD_IMAGE_ID" + cmd+=" --flavor $INSTANCE_FLAVOR" + for security_group in ${SECURITY_GROUP_LIST[@]}; + do + cmd+=" --security-group $security_group" + done + cmd+=" --user-data user_data.txt" + if [ -n "$INSTANCE_NETWORK" ];then cmd+=" --network $INSTANCE_NETWORK"; fi + if [ -n "$OOD_PORT" ];then cmd+=" --port $OOD_PORT"; fi + cmd+=" --wait $OOD_INSTANCE_NAME" + - export OOD_INSTANCE_ID=$(bash -c "$cmd") + - | + # Associate the floating IP(s) with the SSH Proxy instance + for OOD_FLOATING_IP in ${OOD_FLOATING_IP_LIST[@]}; + do + echo "Associating FLOATING_IP $OOD_FLOATING_IP with OOD_INSTANCE_ID $OOD_INSTANCE_ID" + openstack server add floating ip $OOD_INSTANCE_ID $OOD_FLOATING_IP + done + rules: + - if: $PIPELINE_TARGET == "deploy" && $OOD_IMAGE_ID + when: always -- GitLab