Skip to content
Snippets Groups Projects

Draft: adding compute build and deploy

Closed Krish Moodbidri requested to merge krish94/hpc-factory:feat-add-compute into feat-hpc-factory
Compare and
1 file
+ 60
0
Compare changes
  • Side-by-side
  • Inline
+ 60
0
@@ -107,6 +107,30 @@ workflow:
@@ -107,6 +107,30 @@ workflow:
reports:
reports:
dotenv: image.env
dotenv: image.env
 
build_compute_image:
 
stage: build
 
needs: [build_base_image]
 
tags:
 
- build
 
script:
 
- *update_ansible_repo
 
- *get_ansible_files
 
- export PKR_VAR_source_image=${BUILT_BASE_IMAGE_ID}
 
- export REPO_HEAD=$(git rev-parse --short HEAD)
 
- export PKR_VAR_flavor="${COMPUTE_BUILD_FLAVOR:-$PKR_VAR_flavor}"
 
- export PKR_VAR_build_instance_name="compute-${REPO_HEAD}"
 
- export PKR_VAR_image_date_suffix=false
 
- |
 
if [ $CI_PIPELINE_SOURCE == 'merge_request_event' ]; then
 
export PKR_VAR_image_name="compute-PR-${CI_MERGE_REQUEST_IID}"
 
elif [ $CI_PIPELINE_SOURCE == 'schedule' ]; then
 
export PKR_VAR_image_name="compute-${BUILD_DATE}"
 
fi
 
- packer init openstack-compute
 
- packer validate openstack-compute
 
- packer build -machine-readable openstack-compute | tee compute_build.log
 
 
build_http_proxy_image:
build_http_proxy_image:
stage: build
stage: build
environment:
environment:
@@ -133,6 +157,42 @@ build_ssh_proxy_image:
@@ -133,6 +157,42 @@ build_ssh_proxy_image:
- if: $PIPELINE_TARGET == "build" && $BUILD_TARGET == "ssh-proxy"
- if: $PIPELINE_TARGET == "build" && $BUILD_TARGET == "ssh-proxy"
when: always
when: always
 
deploy_compute_node:
 
stage: deploy
 
environment:
 
name: $ENV
 
tags:
 
- build
 
script:
 
- openstack image set --accept $compute-${BUILD_DATE} || 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
 
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
 
- |
 
 
rules:
 
- if: $PIPELINE_TARGET == "deploy"
 
when: always
 
 
deploy_http_proxy_node:
deploy_http_proxy_node:
stage: deploy
stage: deploy
environment:
environment:
Loading