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 (23)
......@@ -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"
......@@ -107,6 +107,44 @@ workflow:
reports:
dotenv: image.env
.build_compute_image_template: &build_compute_image_template
script:
- *update_ansible_repo
- *get_ansible_files
# 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
export PKR_VAR_image_name="${BUILD_TARGET}-PR-${CI_MERGE_REQUEST_IID}"
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}
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" && $BUILD_TARGET == "compute"
when: always
build_http_proxy_image:
stage: build
environment:
......@@ -133,6 +171,34 @@ 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
echo "$DEV_KEY" >> /root/.ssh/authorized_keys
EOF
- |
export cmd="openstack server create"
cmd+=" -c id -f value --image $BUILT_COMPUTE_IMAGE_ID"
cmd+=" --flavor $INSTANCE_FLAVOR"
cmd+=" --network $PKR_VAR_networks"
cmd+=" --security-group webserver_sec_group"
cmd+=" --security-group allow-ssh"
cmd+=" --user-data user_data.txt"
rules:
- if: $PIPELINE_TARGET == "deploy" && $BUILT_COMPUTE_IMAGE_ID
when: always
deploy_http_proxy_node:
stage: deploy
environment:
......
......@@ -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
......@@ -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
......
variable "root_ssh_key" {
type = string
description = "The root key to use for ssh"
default = ""
}
variable "image_name" {
......