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