Skip to content
Snippets Groups Projects

Add OOD proxy node deployment to CI/CD pipeline

Open Krish Moodbidri requested to merge feat-ood-proxy-test into main
+ 93
4
@@ -16,12 +16,12 @@ variables:
OS_REGION_NAME: "bhm1"
OOD_INSTANCE_NETWORK: "knightly-network"
PKR_VAR_flavor: "m1.medium-ruffner"
PKR_VAR_source_image: "CentOS-7-x86_64-GenericCloud-2009"
PKR_VAR_source_image: "ssh-proxy-202410040521"
PKR_VAR_floating_ip_network: "uab-campus"
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: '["93b33371-6b1e-4b13-aae0-2ca82a675b8f"]'
PKR_VAR_image_membership: '["cf6fa1e53d4c40a49f4e0e469c440359"]'
GIT_AUTHOR_NAME: "Gitlab runner"
GIT_AUTHOR_EMAIL: "gitlab@runner"
@@ -29,7 +29,13 @@ variables:
NUM_IMAGE_TO_KEEP: 30
TIMESTAMP_REGEXP: '[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{6}'
PKR_VAR_root_ssh_key: "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBAFqqWgmYpEaGtHBeTu27ntVJpYjwq/x5aBefrvfhk8Z9lE3cuZ26vJ9n/9tGE4Zn2Pew1mpZgi6PzfJ3vMt8yA= root@master"
DEV_KEY: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCpncAcYosVHt7HsUcE2XOYDuCi4HQnmFJv279LOcpZgXtZ6o0BM1fe5FgJS0X1ohBXQUFRuYJuJSW/GSmC1K8T+wCrKjZLJdMbqrubHV27diUZfdoVkoJy1vcAQF5nEcoTC7MpAFbBomdn2rsrpgQe8DGiURV7+soqybXV1OsIR3FFf6npnUaskHYT/oVtG9eBOnscyBxoVgbxzlmyoBLXED/sHKFw4nQSF/glYKEFiDu6TRTsBBEGvv23Qo/66QpQiFJ6TNfApNiyY9L1X+Dy8EWU6lozmNgwGDjXQ70Lr6xHnA0QGVALJlHXa6QjpgtpC5Nefsdvtf1hpfFo2VutpbSB+aq9jk3gWNN+XkhrWN5PiwP7YYJNw/WozyfL+IhwjfHZGxkuws+wGR6ZKxlX9W9Vrsq9ncYNKuhy2SdsR6s2XECQtrEQ6ZlX5jRt6Yh5M9ls5fMsWEqknDPmr1Ui6wV7NxprYngo9fLSdYO/ETIO3S6PB0aEHOZOyGitGaM06EmNpvjQn/QkkaVgt/O8wKL1o1AVzXhDMAFvtG6ejppV6kuTUHXFgSGZF6N9fnP91HuytyzC09F+NMWcmnRdrgXlHapjuuL3zzi+XLCQvk8+aYTzBKx1nU2FPMDRZ9sInGmqdTuM002E7qVbaCy4OxcWaAS/L2UVhGnHr+egYw== louistw@uab.edu"
DEV_KEY: "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBBXBfBmQDq1HK8U0zK6gDF0jyfWChuFYEPiRp1Wgl0XFJU7JoUngqkE/GAic8kCzKW0hPMiweSjmWdKlAapv/dk= krishmoodbidri@krishs-MacBook-Pro-3.local"
BUILT_OOD_IMAGE_ID: ${BUILT_OOD_IMAGE_ID}
INSTANCE_FLAVOR: ${INSTANCE_FLAVOR}
OOD_PROXY_NAME: ${OOD_PROXY_NAME}
PROXY_IP: ${PROXY_IP}
OOD_PROXY_NETWORK: "proxy-net"
stages:
- pre-build
@@ -42,6 +48,7 @@ workflow:
rules:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
- if: $CI_PIPELINE_SOURCE == 'schedule'
- if: $CI_PIPELINE_SOURCE == 'web'
.get_build_date: &get_build_date
- export BUILD_DATE=$(TZ=America/Chicago date +%Y-%m-%dT%H%M%S)
@@ -194,7 +201,8 @@ build_gpu_image:
rules:
- if: $SKIP_GPU_BUILD == "true"
when: never
- when: always
- if: $CI_PIPELINE_SOURCE == "manual"
when: manual
build_ood_image:
stage: build
@@ -240,6 +248,75 @@ build_ood_image:
reports:
dotenv: image.env
deploy_ood_proxy_node:
stage: deploy
environment:
name: knightly
tags:
- build
script:
- openstack image set --accept $PROXY_OOD_IMAGE_ID
- FAILED=false
- |
cat > user_data.txt <<
echo "$DEV_KEY" >> /root/.ssh/authorized_keys
- |
export NEW_INSTANCE_ID=$(openstack server create
-c id -f value --image $PROXY_OOD_IMAGE_ID
--network $OOD_PROXY_NETWORK
--security-group ood-https-ports
--security-group node-exporter
--security-group allow-ssh
--user-data user_data.txt
--flavor $INSTANCE_FLAVOR
--wait
$OOD_PROXY_INSTANCE_NAME)
- openstack server add floating ip $OOD_PROXY_INSTANCE_NAME $FLOATING_IP
artifacts:
reports:
dotenv: instance.env
rules:
- if: $CI_PIPELINE_SOURCE == "schedule"
when: always
- if: $CI_PIPELINE_SOURCE == "manual"
when: manual
deploy_ssh_proxy_node:
stage: deploy
environment:
name: knightly
tags:
- build
script:
- openstack image set --accept $PROXY_SSH_IMAGE_ID
- FAILED=false
- |
cat > user_data.txt <<
echo "$DEV_KEY" >> /root/.ssh/authorized_keys
- |
export NEW_INSTANCE_ID=$(openstack server create
-c id -f value --image $PROXY_SSH_IMAGE_ID
--network $OOD_PROXY_NETWORK
--security-group ood-https-ports
--security-group node-exporter
--security-group allow-ssh
--user-data user_data.txt
--flavor $INSTANCE_FLAVOR
--wait
$SSH_PROXY_INSTANCE_NAME)
- openstack server add floating ip $SSH_PROXY_INSTANCE_NAME $FLOATING_IP
artifacts:
reports:
dotenv: instance.env
rules:
- if: $CI_PIPELINE_SOURCE == "schedule"
when: always
- if: $CI_PIPELINE_SOURCE == "manual"
when: manual
test_ood_image:
stage: test
needs: [build_ood_image]
@@ -316,6 +393,8 @@ test_ood_image:
rules:
- if: $CI_PIPELINE_SOURCE == "schedule"
when: always
- if: $CI_PIPELINE_SOURCE == "manual"
when: manual
test_ood_image_mr:
stage: test
@@ -371,6 +450,8 @@ test_ood_image_mr:
dotenv: instance.env
rules:
- if: $CI_MERGE_REQUEST_ID
- if: $CI_PIPELINE_SOURCE == "manual"
when: manual
deploy_review:
stage: deploy
@@ -385,6 +466,8 @@ deploy_review:
- build
rules:
- if: $CI_MERGE_REQUEST_ID
- if: $CI_PIPELINE_SOURCE == "manual"
when: manual
stop_review:
stage: deploy
@@ -400,6 +483,8 @@ stop_review:
rules:
- if: $CI_MERGE_REQUEST_ID
when: manual
- if: $CI_PIPELINE_SOURCE == "manual"
when: manual
deploy_knightly:
stage: deploy
@@ -452,6 +537,8 @@ cleanup_knightly:
rules:
- if: $CI_PIPELINE_SOURCE == "schedule"
when: always
- if: $CI_PIPELINE_SOURCE == "manual"
when: manual
cleanup_integration:
stage: cleanup
@@ -507,6 +594,8 @@ cleanup_integration:
rules:
- if: $CI_PIPELINE_SOURCE == "schedule"
when: always
- if: $CI_PIPELINE_SOURCE == "manual"
when: manual
cleanup_mr:
stage: cleanup
Loading