Skip to content
Snippets Groups Projects

Feat deploy ood

Merged Eesaan Atluri requested to merge atlurie/hpc-factory:feat-deploy-ood into main
+ 53
0
@@ -373,3 +373,56 @@ deploy_login_node:
@@ -373,3 +373,56 @@ deploy_login_node:
- if: $PIPELINE_TARGET == "deploy" && $LOGIN_IMAGE_ID
- if: $PIPELINE_TARGET == "deploy" && $LOGIN_IMAGE_ID
when: always
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
Loading