Commit 0d5af813 authored by Petras, Randy's avatar Petras, Randy
Browse files

Update 4 files

- /terraform/main.tf
- /terraform/outputs.tf
- /terraform/variables.tf
- /.gitlab-ci.yml
parent b64e9ea7
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@ variables:
    GIT_STRATEGY: clone
    TF_IMAGE: "registry.gitlab.com/gitlab-org/terraform-images/stable:latest"
    TF_ROOT: ${CI_PROJECT_DIR}
    TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/k8s-cluster
    TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/state/k8s-cluster
    ANSIBLE_TERRAFORM_IMAGE: code.ornl.gov:4567/rse/images/ansible-terraform/ubuntu:0.2.0

# This import is for the func_rse_docker_* functions

terraform/main.tf

0 → 100644
+75 −0
Original line number Diff line number Diff line
terraform {
  required_version = ">= 1.0"
  required_providers {
    openstack = {
      source = "terraform-provider-openstack/openstack"
    }
  }
  backend "http" {} 
}

locals {
  runner_projects_green = var.runner_projects_list
  runner_projects_blue  = var.runner_projects_list
  runner_tokens_green = [
    for name in local.runner_projects_green : var.projects_token_map[name]
  ]
  runner_tokens_blue = [
    for name in local.runner_projects_blue : var.projects_token_map[name]
  ]
}

resource "openstack_networking_secgroup_v2" "secgroup" {
  name        = var.security_group_name
  description = var.security_group_description
}

resource "openstack_networking_secgroup_rule_v2" "allow_prometheus_metrics" {
  direction         = "ingress"
  ethertype         = "IPv4"
  protocol          = "tcp"
  port_range_min    = 9252
  port_range_max    = 9252
  remote_ip_prefix  = "0.0.0.0/0"
  security_group_id = openstack_networking_secgroup_v2.secgroup.id 
}

module "drtsans_lfs_runners_green" {
  source        = "git::https://code.ornl.gov/rse-terraform-modules/ornl-cloud-gitlab-runners//modules/ornl-cloud-gitlab-runners?ref=v0.13"

  prefix                = "drtsans-lfs-runner-green"
  runner_count          = 1
  flavor                = var.flavor
  image_uuid            = var.image_uuid
  ssh_key_file          = var.ssh_key_file  
  volume_size           = 10
  ssh_username          = var.user
  network_name          = var.network_name
  runner_tokens         = local.runner_tokens_green
  runner_tags           = var.runner_multi_builder_tags
  runner_listen_address = ":9252"
  security_groups       = ["default", var.security_group_name]
  user_data             = <<EOF
    echo "TODO: Add monitoring here!"
EOF
}

module "drtsans_lfs_runners_blue" {
  source        = "git::https://code.ornl.gov/rse-terraform-modules/ornl-cloud-gitlab-runners//modules/ornl-cloud-gitlab-runners?ref=v0.13"

  prefix                = "drtsans-lfs-runner-blue"
  runner_count          = 0
  flavor                = var.flavor
  image_uuid            = var.image_uuid
  ssh_key_file          = var.ssh_key_file  
  volume_size           = 40
  ssh_username          = var.user
  network_name          = var.network_name
  runner_tokens         = local.runner_tokens_blue
  runner_tags           = var.runner_multi_builder_tags
  runner_listen_address = ":9252"
  security_groups       = ["default", var.security_group_name]
  user_data             = <<EOF
    echo "TODO: Add monitoring here!"
EOF
}

terraform/outputs.tf

0 → 100644
+7 −0
Original line number Diff line number Diff line
output "ip_runners" {
  value = module.drtsans_lfs_runners_green.ip
}

#output "ip_runners_blue" {
#  value = module.drtsans_lfs_runners_blue.ip
#}

terraform/variables.tf

0 → 100644
+46 −0
Original line number Diff line number Diff line
# -----------------------------------------------------------------------------
# Node Parameters
# These parameters are for modifying the Nodes
# -----------------------------------------------------------------------------

# These will be defined during CI (or a terraform.tfvars file locally)
variable "projects_token_map" {}
variable "ssh_key_file" {}

variable "image" {
  default = "ORC_Ubuntu-20.04_v20220819_1"
}

variable "security_group_name" {
  default = "drtsans-lfs-sg"
}

variable "security_group_description" {
  default = "Security group for drtsans-lfs GitLab Runners"
}

variable "flavor" {
  default = "m2.xlarge"
}

variable "image_uuid" {
  default = "de28c086-edf6-4fe9-8363-5d58e8dd5a71"
}

variable "user" {
  default = "cloud"
}

variable "network_name" {
  default = "OPENRESEARCH.SYSTEMS"
}

variable "runner_multi_builder_tags" {
    default = "drtsans_lfs"
}

variable "runner_projects_list" {
    default = [
        "code.ornl.gov/sns-hfir-scse"
        ]
}