Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • rc/hpc-factory
  • louistw/hpc-factory
  • jpr/hpc-factory
  • krish94/hpc-factory
  • atlurie/hpc-factory
  • dwheel7/hpc-factory
6 results
Show changes
Commits on Source (1)
  • Krish Moodbidri's avatar
    Added OpenStack VM deployment job · cbd3f3c4
    Krish Moodbidri authored
    - Add `deploy_user_defined_vm` job for configurable VM provisioning
    - Implement dynamic OpenStack CLI command construction supporting:
      * Image selection by name/UUID via $VM_IMAGE
      * Flavor specification with $VM_FLAVOR
      * Security group array input ($VM_SECURITY_GROUPS)
      * Network/port options ($VM_NETWORK/$VM_PORT)
      * Floating IP association ($VM_FLOATING_IPS)
    cbd3f3c4
......@@ -373,56 +373,35 @@ deploy_login_node:
- if: $PIPELINE_TARGET == "deploy" && $LOGIN_IMAGE_ID
when: always
deploy_ood_node:
deploy_user_defined_vm:
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[@]};
cmd+=" -c id -f value --image $VM_IMAGE"
cmd+=" --flavor $VM_FLAVOR"
for security_group in ${VM_SECURITY_GROUPS[@]};
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")
if [ -n "$VM_NETWORK" ]; then
cmd+=" --network $VM_NETWORK"
fi
if [ -n "$VM_PORT" ]; then
cmd+=" --port $VM_PORT"
fi
cmd+=" --wait $VM_INSTANCE_NAME"
- export VM_INSTANCE_ID=$(bash -c "$cmd")
- |
# Associate the floating IP(s) with the SSH Proxy instance
for OOD_FLOATING_IP in ${OOD_FLOATING_IP_LIST[@]};
for FLOATING_IP in ${VM_FLOATING_IPS[@]};
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
openstack server add floating ip $VM_INSTANCE_ID $FLOATING_IP
echo "Associated IP: $FLOATING_IP"
done
rules:
- if: $PIPELINE_TARGET == "deploy" && $OOD_IMAGE_ID
when: always
- if: $DEPLOY_VM == "true"
when: always
\ No newline at end of file