From 6ed2c141c37a73b85b28659d7196691a479f9057 Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Fri, 22 Nov 2024 09:47:12 -0600 Subject: [PATCH 01/23] Update file .gitlab-ci.yml --- .gitlab-ci.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d2bf24f..4b842b1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -107,6 +107,30 @@ workflow: reports: 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: stage: build environment: -- GitLab From 5346317bba5032ec7bbb3795afc2899fe1fee77a Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Tue, 3 Dec 2024 10:32:25 -0600 Subject: [PATCH 02/23] compute node deploy --- .gitlab-ci.yml | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4b842b1..2eacdf0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -157,6 +157,42 @@ build_ssh_proxy_image: - if: $PIPELINE_TARGET == "build" && $BUILD_TARGET == "ssh-proxy" 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: stage: deploy environment: -- GitLab From d9a9e720ff58cef86b90cb58cc385153ca94ba3a Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Tue, 3 Dec 2024 14:01:36 -0600 Subject: [PATCH 03/23] fixed yaml syntax for build and added rule block --- .gitlab-ci.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2eacdf0..daa12c7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -129,6 +129,11 @@ build_compute_image: - packer init openstack-compute - packer validate openstack-compute - packer build -machine-readable openstack-compute | tee compute_build.log + - | + + rules: + - if: $PIPELINE_TARGET == "build" + when: always build_http_proxy_image: -- GitLab From 6fae353b0212ca903016c841ae371fe21c637b44 Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Wed, 4 Dec 2024 09:16:30 -0600 Subject: [PATCH 04/23] removed needs condition from build_compute_image --- .gitlab-ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index daa12c7..4902660 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -109,7 +109,6 @@ workflow: build_compute_image: stage: build - needs: [build_base_image] tags: - build script: -- GitLab From eff48b2978206885a3ef5e0c6ac518e2e7a14ca3 Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Wed, 4 Dec 2024 09:34:47 -0600 Subject: [PATCH 05/23] changed compute build structure --- .gitlab-ci.yml | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4902660..8e65236 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -114,21 +114,15 @@ build_compute_image: 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_build_instance_name="${BUILD_TARGET}-${COMPUTE_XCBC_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}" + export PKR_VAR_image_name="${BUILD_TARGET}-PR-${CI_MERGE_REQUEST_IID}" elif [ $CI_PIPELINE_SOURCE == 'schedule' ]; then - export PKR_VAR_image_name="compute-${BUILD_DATE}" + export PKR_VAR_image_name="${BUILD_TARGET}-${BUILD_DATE}" fi - - packer init openstack-compute - - packer validate openstack-compute - - packer build -machine-readable openstack-compute | tee compute_build.log - - | rules: - if: $PIPELINE_TARGET == "build" -- GitLab From 38d78adb54c28d45b5a15fcd37e5f587540f9ea5 Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Wed, 4 Dec 2024 10:08:24 -0600 Subject: [PATCH 06/23] test compute build --- .gitlab-ci.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8e65236..61e9a20 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -115,7 +115,7 @@ build_compute_image: - *update_ansible_repo - *get_ansible_files - export PKR_VAR_flavor="${COMPUTE_BUILD_FLAVOR:-$PKR_VAR_flavor}" - - export PKR_VAR_build_instance_name="${BUILD_TARGET}-${COMPUTE_XCBC_HEAD}" + - export PKR_VAR_build_instance_name="${BUILD_TARGET}-${CRI_XCBC_HEAD}" - export PKR_VAR_image_date_suffix=false - | if [ $CI_PIPELINE_SOURCE == 'merge_request_event' ]; then @@ -123,7 +123,13 @@ build_compute_image: elif [ $CI_PIPELINE_SOURCE == 'schedule' ]; then export PKR_VAR_image_name="${BUILD_TARGET}-${BUILD_DATE}" fi - + # packer commands + - packer init openstack-compute + - packer validate openstack-compute + - packer build -machine-readable openstack-compute | tee compute_build.log + - export BUILT_COMPUTE_IMAGE_ID=$(grep 'Image:' compute_build.log | awk '{print $4}') + - echo BUILT_COMPUTE_IMAGE_ID=${BUILT_COMPUTE_IMAGE_ID} | tee -a $CI_PROJECT_DIR/image.env + - openstack image set --property CRI_XCBC_prod=${CRI_XCBC_prod} --property CRI_XCBC_dev=${CRI_XCBC_dev} --property PACKER_IMAGE_HEAD=${PACKER_IMAGE_HEAD} ${BUILT_COMPUTE_IMAGE_ID} rules: - if: $PIPELINE_TARGET == "build" when: always -- GitLab From 5162dc41e76ad63795fc1e4e210e96dec4040c28 Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Wed, 4 Dec 2024 12:58:51 -0600 Subject: [PATCH 07/23] changed compute built to be similar to proxy node builds --- .gitlab-ci.yml | 40 +++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 61e9a20..a62b86c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -107,15 +107,13 @@ workflow: reports: dotenv: image.env -build_compute_image: - stage: build - tags: - - build +.build_compute_image_template: &build_compute_image_template script: - *update_ansible_repo - *get_ansible_files - - export PKR_VAR_flavor="${COMPUTE_BUILD_FLAVOR:-$PKR_VAR_flavor}" - - export PKR_VAR_build_instance_name="${BUILD_TARGET}-${CRI_XCBC_HEAD}" + # packer vars for job env + - export PKR_VAR_flavor="${PROXY_BUILD_FLAVOR:-$PKR_VAR_flavor}" + - export PKR_VAR_build_instance_name="${BUILD_TARGET}-${EXT_REPO_HEAD}" - export PKR_VAR_image_date_suffix=false - | if [ $CI_PIPELINE_SOURCE == 'merge_request_event' ]; then @@ -123,18 +121,34 @@ build_compute_image: elif [ $CI_PIPELINE_SOURCE == 'schedule' ]; then export PKR_VAR_image_name="${BUILD_TARGET}-${BUILD_DATE}" fi + # Ansible var overrides + - | # packer commands - - packer init openstack-compute - - packer validate openstack-compute - - packer build -machine-readable openstack-compute | tee compute_build.log - - export BUILT_COMPUTE_IMAGE_ID=$(grep 'Image:' compute_build.log | awk '{print $4}') + - packer init openstack-proxy + - packer validate openstack-proxy + - packer build -machine-readable openstack-proxy | tee proxy_build.log + - export BUILT_COMPUTE_IMAGE_ID=$(grep 'Image:' proxy_build.log | awk '{print $4}') - echo BUILT_COMPUTE_IMAGE_ID=${BUILT_COMPUTE_IMAGE_ID} | tee -a $CI_PROJECT_DIR/image.env - - openstack image set --property CRI_XCBC_prod=${CRI_XCBC_prod} --property CRI_XCBC_dev=${CRI_XCBC_dev} --property PACKER_IMAGE_HEAD=${PACKER_IMAGE_HEAD} ${BUILT_COMPUTE_IMAGE_ID} + # set image properties with repo state + - openstack image set --property EXT_PR_SRC_REPO=${EXT_PR_SRC_REPO} --property EXT_PR_SRC_BRANCH_SHA=${EXT_PR_SRC_BRANCH_SHA} --property EXT_PR_TARGET_REPO=${EXT_PR_TARGET_REPO} --property EXT_PR_TARGET_BRANCH_SHA=${EXT_PR_TARGET_BRANCH_SHA} --property PACKER_IMAGE_HEAD=${PACKER_IMAGE_HEAD} ${BUILT_COMPUTE_IMAGE_ID} + artifacts: + reports: + dotenv: image.env + + +build_compute_image: + stage: build + environment: + name: $ENV + tags: + - build + variables: + PROXY_ENABLE_VAR: "enable_compute" + <<: *build_compute_image_template rules: - - if: $PIPELINE_TARGET == "build" + - if: $PIPELINE_TARGET == "build" && $BUILD_TARGET == "http-proxy" when: always - build_http_proxy_image: stage: build environment: -- GitLab From 5f7ae03212d738c6cce9c96c8f75e36b407a2d85 Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Wed, 4 Dec 2024 13:17:22 -0600 Subject: [PATCH 08/23] fixed packer commands for compute build --- .gitlab-ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a62b86c..7fb537a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -124,10 +124,10 @@ workflow: # Ansible var overrides - | # packer commands - - packer init openstack-proxy - - packer validate openstack-proxy - - packer build -machine-readable openstack-proxy | tee proxy_build.log - - export BUILT_COMPUTE_IMAGE_ID=$(grep 'Image:' proxy_build.log | awk '{print $4}') + - packer init openstack-compute + - packer validate openstack-compute + - packer build -machine-readable openstack-compute | tee compute_build.log + - export BUILT_COMPUTE_IMAGE_ID=$(grep 'Image:' compute_build.log | awk '{print $4}') - echo BUILT_COMPUTE_IMAGE_ID=${BUILT_COMPUTE_IMAGE_ID} | tee -a $CI_PROJECT_DIR/image.env # set image properties with repo state - openstack image set --property EXT_PR_SRC_REPO=${EXT_PR_SRC_REPO} --property EXT_PR_SRC_BRANCH_SHA=${EXT_PR_SRC_BRANCH_SHA} --property EXT_PR_TARGET_REPO=${EXT_PR_TARGET_REPO} --property EXT_PR_TARGET_BRANCH_SHA=${EXT_PR_TARGET_BRANCH_SHA} --property PACKER_IMAGE_HEAD=${PACKER_IMAGE_HEAD} ${BUILT_COMPUTE_IMAGE_ID} -- GitLab From 95af5df1fcfe1a9cbf181f75819ceb97229e05a8 Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Wed, 4 Dec 2024 13:23:27 -0600 Subject: [PATCH 09/23] removed extra line --- .gitlab-ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7fb537a..23d89dc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -135,7 +135,6 @@ workflow: reports: dotenv: image.env - build_compute_image: stage: build environment: -- GitLab From 8483d5af31e13892372ac784287e1bca1bf6c746 Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Wed, 4 Dec 2024 13:23:49 -0600 Subject: [PATCH 10/23] removed extra line --- .gitlab-ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 23d89dc..d64eed9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -209,7 +209,6 @@ deploy_compute_node: - if: $PIPELINE_TARGET == "deploy" when: always - deploy_http_proxy_node: stage: deploy environment: -- GitLab From b1a2c64a187d2a8d5f8a61397eccae268dadc21e Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Wed, 4 Dec 2024 13:38:22 -0600 Subject: [PATCH 11/23] removed extra line --- .gitlab-ci.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d64eed9..9a4f4d6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -121,8 +121,6 @@ workflow: elif [ $CI_PIPELINE_SOURCE == 'schedule' ]; then export PKR_VAR_image_name="${BUILD_TARGET}-${BUILD_DATE}" fi - # Ansible var overrides - - | # packer commands - packer init openstack-compute - packer validate openstack-compute -- GitLab From e8ac4ef7b28e66b6d8910307f747ac0e616a5d4a Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Wed, 4 Dec 2024 13:41:44 -0600 Subject: [PATCH 12/23] added root_ssh_key for compute node build variable --- openstack-compute/variables.pkr.hcl | 1 + 1 file changed, 1 insertion(+) diff --git a/openstack-compute/variables.pkr.hcl b/openstack-compute/variables.pkr.hcl index 20efd64..d368139 100644 --- a/openstack-compute/variables.pkr.hcl +++ b/openstack-compute/variables.pkr.hcl @@ -1,6 +1,7 @@ variable "root_ssh_key" { type = string description = "The root key to use for ssh" + default = "" } variable "image_name" { -- GitLab From 55ddaa40148c30dff4dc7738e8ef3bef49503195 Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Wed, 4 Dec 2024 13:47:57 -0600 Subject: [PATCH 13/23] set build target to compute --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9a4f4d6..64fb6ad 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -143,7 +143,7 @@ build_compute_image: PROXY_ENABLE_VAR: "enable_compute" <<: *build_compute_image_template rules: - - if: $PIPELINE_TARGET == "build" && $BUILD_TARGET == "http-proxy" + - if: $PIPELINE_TARGET == "build" && $BUILD_TARGET == "compute" when: always build_http_proxy_image: -- GitLab From cde49ea4eb869224319f8673de4008a00786eba6 Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Wed, 4 Dec 2024 14:07:13 -0600 Subject: [PATCH 14/23] changed network id --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 64fb6ad..d41c67f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -20,7 +20,7 @@ variables: PKR_VAR_security_groups: '["allow-ssh"]' PKR_VAR_skip_create_image: "false" PKR_VAR_ssh_username: "centos" - PKR_VAR_networks: '["8cf2f12e-905d-46d9-bc70-b0897c65f75a"]' + PKR_VAR_networks: '["0295b9ca-ba14-4d08-8c57-78a4c07345eb"]' GIT_AUTHOR_NAME: "Gitlab runner" GIT_AUTHOR_EMAIL: "gitlab@runner" INSTANCE_FLAVOR: "m1.medium-ruffner" -- GitLab From 5adc75922034948035c9cb96e4d1a5343cc73dfe Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Wed, 4 Dec 2024 14:22:52 -0600 Subject: [PATCH 15/23] chnaged image set for compute to match that of proxy --- .gitlab-ci.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d41c67f..db83d48 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -127,8 +127,7 @@ workflow: - packer build -machine-readable openstack-compute | tee compute_build.log - export BUILT_COMPUTE_IMAGE_ID=$(grep 'Image:' compute_build.log | awk '{print $4}') - echo BUILT_COMPUTE_IMAGE_ID=${BUILT_COMPUTE_IMAGE_ID} | tee -a $CI_PROJECT_DIR/image.env - # set image properties with repo state - - openstack image set --property EXT_PR_SRC_REPO=${EXT_PR_SRC_REPO} --property EXT_PR_SRC_BRANCH_SHA=${EXT_PR_SRC_BRANCH_SHA} --property EXT_PR_TARGET_REPO=${EXT_PR_TARGET_REPO} --property EXT_PR_TARGET_BRANCH_SHA=${EXT_PR_TARGET_BRANCH_SHA} --property PACKER_IMAGE_HEAD=${PACKER_IMAGE_HEAD} ${BUILT_COMPUTE_IMAGE_ID} + - openstack image set --property CRI_XCBC_prod=${CRI_XCBC_prod} --property CRI_XCBC_dev=${CRI_XCBC_dev} --property PACKER_IMAGE_HEAD=${PACKER_IMAGE_HEAD} ${BUILT_PROXY_IMAGE_ID} artifacts: reports: dotenv: image.env -- GitLab From c1dc216d6447641371885f32c53ea1531bccaafa Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Wed, 4 Dec 2024 14:27:34 -0600 Subject: [PATCH 16/23] fixed typo in BUILT_COMPUTE_IMAGE_ID --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index db83d48..46621c7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -127,7 +127,7 @@ workflow: - packer build -machine-readable openstack-compute | tee compute_build.log - export BUILT_COMPUTE_IMAGE_ID=$(grep 'Image:' compute_build.log | awk '{print $4}') - echo BUILT_COMPUTE_IMAGE_ID=${BUILT_COMPUTE_IMAGE_ID} | tee -a $CI_PROJECT_DIR/image.env - - openstack image set --property CRI_XCBC_prod=${CRI_XCBC_prod} --property CRI_XCBC_dev=${CRI_XCBC_dev} --property PACKER_IMAGE_HEAD=${PACKER_IMAGE_HEAD} ${BUILT_PROXY_IMAGE_ID} + - openstack image set --property CRI_XCBC_prod=${CRI_XCBC_prod} --property CRI_XCBC_dev=${CRI_XCBC_dev} --property PACKER_IMAGE_HEAD=${PACKER_IMAGE_HEAD} ${BUILT_COMPUTE_IMAGE_ID} artifacts: reports: dotenv: image.env -- GitLab From 6631de314c6a03c4f8577ac1892cc5046671d4e8 Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Wed, 4 Dec 2024 14:39:02 -0600 Subject: [PATCH 17/23] split playbook compute.ymp to build and deploy --- ansible/compute.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/ansible/compute.yml b/ansible/compute.yml index 2907d08..4009929 100644 --- a/ansible/compute.yml +++ b/ansible/compute.yml @@ -8,5 +8,3 @@ - { name: 'pam_slurm_adopt', tags: 'pam_slurm_adopt' } - { name: 'install_nhc', tags: 'install_nhc'} -- name: Setup node for use as a virtual cheaha node - ansible.builtin.import_playbook: cheaha.yml -- GitLab From 67a2fa9aab3fe22c3ca7dd3a1db1db036d92a3f5 Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Wed, 4 Dec 2024 14:53:03 -0600 Subject: [PATCH 18/23] added playbook file base.yml in compute node build --- openstack-compute/nodeimage.pkr.hcl | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/openstack-compute/nodeimage.pkr.hcl b/openstack-compute/nodeimage.pkr.hcl index 15941ba..0df7158 100644 --- a/openstack-compute/nodeimage.pkr.hcl +++ b/openstack-compute/nodeimage.pkr.hcl @@ -36,6 +36,17 @@ source "openstack" "image" { build { sources = ["source.openstack.image"] + provisioner "ansible" { + use_proxy = false + user = var.ssh_username + groups = ["base"] + playbook_file = "./ansible/base.yml" + roles_path = "./ansible/roles" + extra_arguments = [ + "--extra-vars", "root_ssh_key='${var.root_ssh_key}'" + ] + } + provisioner "ansible" { use_proxy = false user = var.ssh_username -- GitLab From 8e5faecb3a1023418a2d76b1bccecf5d2a1ef8b9 Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Tue, 10 Dec 2024 10:45:41 -0600 Subject: [PATCH 19/23] initial framework for compute deploy --- .gitlab-ci.yml | 47 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 44 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 46621c7..87b3e2f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -178,7 +178,31 @@ deploy_compute_node: tags: - build script: - - openstack image set --accept $compute-${BUILD_DATE} || true + - openstack image set --accept $BUILT_COMPUTE_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 + echo "$DEV_KEY" >> /root/.ssh/authorized_keys + EOF + - | + + rules: + - if: $PIPELINE_TARGET == "deploy" + when: always + +deploy_compute_node: + stage: deploy + environment: + name: $ENV + tags: + - build + script: + - openstack image set --accept $HTTP_PROXY_IMAGE_ID || true - FAILED=false - | cat > user_data.txt <<EOF @@ -201,11 +225,28 @@ deploy_compute_node: rm -rf /tmp/${CI_PROJECT_NAME} EOF - | - + export cmd="openstack server create" + cmd+=" -c id -f value --image $HTTP_PROXY_IMAGE_ID" + cmd+=" --flavor $INSTANCE_FLAVOR" + cmd+=" --network $PROXY_NETWORK" + cmd+=" --security-group webserver_sec_group" + cmd+=" --security-group allow-ssh" + cmd+=" --user-data user_data.txt" + if [ -n "$HTTP_PROXY_PORT" ];then cmd+=" --port $HTTP_PROXY_PORT"; fi + cmd+=" --wait $HTTP_PROXY_INSTANCE_NAME" + - export HTTP_PROXY_INSTANCE_ID=$(bash -c "$cmd") + - | + # Associate the floating IP(s) with the HTTP Proxy instance + for HTTP_PROXY_FLOATING_IP in ${HTTP_PROXY_FLOATING_IP_LIST[@]}; + do + echo "Associating FLOATING_IP $HTTP_PROXY_FLOATING_IP with HTTP_PROXY_INSTANCE_ID $HTTP_PROXY_INSTANCE_ID" + openstack server add floating ip $HTTP_PROXY_INSTANCE_ID $HTTP_PROXY_FLOATING_IP + done rules: - - if: $PIPELINE_TARGET == "deploy" + - if: $PIPELINE_TARGET == "deploy" && $HTTP_PROXY_IMAGE_ID when: always + deploy_http_proxy_node: stage: deploy environment: -- GitLab From 2b47a2e15e65dd3e59779ccf53e3ab030bebc17d Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Tue, 10 Dec 2024 11:00:48 -0600 Subject: [PATCH 20/23] initial framework for compute node deploy --- .gitlab-ci.yml | 58 +++++--------------------------------------------- 1 file changed, 5 insertions(+), 53 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 87b3e2f..129f6a8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -171,29 +171,6 @@ build_ssh_proxy_image: - if: $PIPELINE_TARGET == "build" && $BUILD_TARGET == "ssh-proxy" when: always -deploy_compute_node: - stage: deploy - environment: - name: $ENV - tags: - - build - script: - - openstack image set --accept $BUILT_COMPUTE_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 - echo "$DEV_KEY" >> /root/.ssh/authorized_keys - EOF - - | - - rules: - - if: $PIPELINE_TARGET == "deploy" - when: always deploy_compute_node: stage: deploy @@ -202,48 +179,23 @@ deploy_compute_node: tags: - build script: - - openstack image set --accept $HTTP_PROXY_IMAGE_ID || true + - openstack image set --accept $BUILT_COMPUTE_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 - 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 $HTTP_PROXY_IMAGE_ID" + cmd+=" -c id -f value --image $BUILT_COMPUTE_IMAGE_ID" cmd+=" --flavor $INSTANCE_FLAVOR" - cmd+=" --network $PROXY_NETWORK" + cmd+=" --network $PKR_VAR_networks" cmd+=" --security-group webserver_sec_group" cmd+=" --security-group allow-ssh" cmd+=" --user-data user_data.txt" - if [ -n "$HTTP_PROXY_PORT" ];then cmd+=" --port $HTTP_PROXY_PORT"; fi - cmd+=" --wait $HTTP_PROXY_INSTANCE_NAME" - - export HTTP_PROXY_INSTANCE_ID=$(bash -c "$cmd") - - | - # Associate the floating IP(s) with the HTTP Proxy instance - for HTTP_PROXY_FLOATING_IP in ${HTTP_PROXY_FLOATING_IP_LIST[@]}; - do - echo "Associating FLOATING_IP $HTTP_PROXY_FLOATING_IP with HTTP_PROXY_INSTANCE_ID $HTTP_PROXY_INSTANCE_ID" - openstack server add floating ip $HTTP_PROXY_INSTANCE_ID $HTTP_PROXY_FLOATING_IP - done + rules: - - if: $PIPELINE_TARGET == "deploy" && $HTTP_PROXY_IMAGE_ID + - if: $PIPELINE_TARGET == "deploy" && $BUILT_COMPUTE_IMAGE_ID when: always -- GitLab From 29441e729d9fd1b20571f0ef9dd24a2b7d89a9c7 Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Tue, 10 Dec 2024 11:17:08 -0600 Subject: [PATCH 21/23] hardcoded compute node image name for testing --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 129f6a8..7db9d88 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -179,7 +179,7 @@ deploy_compute_node: tags: - build script: - - openstack image set --accept $BUILT_COMPUTE_IMAGE_ID || true + - openstack image set --accept $compute-2024-12-07T175325 || true - FAILED=false - | cat > user_data.txt <<EOF -- GitLab From 993474a9dd1edccaf125e8200cd749e770f424d1 Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Tue, 10 Dec 2024 11:20:21 -0600 Subject: [PATCH 22/23] fixed compute bide accept image test --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7db9d88..71f9a24 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -179,7 +179,7 @@ deploy_compute_node: tags: - build script: - - openstack image set --accept $compute-2024-12-07T175325 || true + - openstack image set --accept --name $compute-2024-12-07T175325 || true - FAILED=false - | cat > user_data.txt <<EOF -- GitLab From 539ec717a667f0d09c579c4073397c67f79d812c Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Tue, 10 Dec 2024 11:31:12 -0600 Subject: [PATCH 23/23] accept image id for compute node --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 71f9a24..129f6a8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -179,7 +179,7 @@ deploy_compute_node: tags: - build script: - - openstack image set --accept --name $compute-2024-12-07T175325 || true + - openstack image set --accept $BUILT_COMPUTE_IMAGE_ID || true - FAILED=false - | cat > user_data.txt <<EOF -- GitLab