From 2afd8f4fe26ae1f1d183ecac8f9daa85f68bc634 Mon Sep 17 00:00:00 2001 From: pmikus Date: Thu, 28 Jan 2021 08:24:35 +0000 Subject: [PATCH] Infra: Terraform vpp_device module + Convert to module + Fix memory limit Signed-off-by: pmikus Change-Id: I95285faabbf7bad7fcb7f3b0c9b4e79641c6b95c --- .../nomad/csit_shim.hcl} | 44 +++++++++++----------- terraform-ci-infra/1n_nmd/vpp_device/main.tf | 19 ++++++++++ terraform-ci-infra/1n_nmd/vpp_device/resources.tf | 4 -- terraform-ci-infra/1n_nmd/vpp_device/variables.tf | 31 +++++++++++++++ 4 files changed, 71 insertions(+), 27 deletions(-) rename terraform-ci-infra/1n_nmd/vpp_device/{prod_csit_shim.nomad => conf/nomad/csit_shim.hcl} (88%) create mode 100644 terraform-ci-infra/1n_nmd/vpp_device/main.tf delete mode 100644 terraform-ci-infra/1n_nmd/vpp_device/resources.tf create mode 100644 terraform-ci-infra/1n_nmd/vpp_device/variables.tf diff --git a/terraform-ci-infra/1n_nmd/vpp_device/prod_csit_shim.nomad b/terraform-ci-infra/1n_nmd/vpp_device/conf/nomad/csit_shim.hcl similarity index 88% rename from terraform-ci-infra/1n_nmd/vpp_device/prod_csit_shim.nomad rename to terraform-ci-infra/1n_nmd/vpp_device/conf/nomad/csit_shim.hcl index 328f503a0b..cf065429d1 100644 --- a/terraform-ci-infra/1n_nmd/vpp_device/prod_csit_shim.nomad +++ b/terraform-ci-infra/1n_nmd/vpp_device/conf/nomad/csit_shim.hcl @@ -1,11 +1,11 @@ -job "prod-csit-shim" { +job "${job_name}" { # The "region" parameter specifies the region in which to execute the job. # If omitted, this inherits the default region name of "global". # region = "global" # # The "datacenters" parameter specifies the list of datacenters which should # be considered when placing this task. This must be provided. - datacenters = [ "yul1" ] + datacenters = "${datacenters}" # The "type" parameter controls the type of job, which impacts the scheduler's # decision on placement. This configuration is optional and defaults to @@ -16,7 +16,7 @@ job "prod-csit-shim" { # # https://www.nomadproject.io/docs/jobspec/schedulers.html # - type = "system" + type = "system" # The "group" stanza defines a series of tasks that should be co-located on # the same Nomad client. Any task within a group will be placed on the same @@ -31,18 +31,18 @@ job "prod-csit-shim" { # The "count" parameter specifies the number of the task groups that should # be running under this group. This value must be non-negative and defaults # to 1. - count = 1 + count = ${group_count} constraint { - attribute = "${node.class}" - value = "csit" + attribute = "$${node.class}" + value = "csit" } restart { - interval = "1m" - attempts = 3 - delay = "15s" - mode = "delay" + interval = "1m" + attempts = 3 + delay = "15s" + mode = "delay" } # The "task" stanza creates an individual unit of work, such as a Docker @@ -83,10 +83,9 @@ job "prod-csit-shim" { # https://www.nomadproject.io/docs/job-specification/resources.html # resources { - cpu = 100 - memory = 128 + cpu = ${cpu} + memory = ${mem} network { - mbits = 10 port "ssh" { static = 6022 } @@ -102,18 +101,18 @@ job "prod-csit-shim" { # The "count" parameter specifies the number of the task groups that should # be running under this group. This value must be non-negative and defaults # to 1. - count = 1 + count = ${group_count} constraint { - attribute = "${node.class}" - value = "csitarm" + attribute = "$${node.class}" + value = "csitarm" } restart { - interval = "1m" - attempts = 3 - delay = "15s" - mode = "delay" + interval = "1m" + attempts = 3 + delay = "15s" + mode = "delay" } # The "task" stanza creates an individual unit of work, such as a Docker @@ -154,10 +153,9 @@ job "prod-csit-shim" { # https://www.nomadproject.io/docs/job-specification/resources.html # resources { - cpu = 100 - memory = 128 + cpu = ${cpu} + memory = ${mem} network { - mbits = 10 port "ssh" { static = 6022 } diff --git a/terraform-ci-infra/1n_nmd/vpp_device/main.tf b/terraform-ci-infra/1n_nmd/vpp_device/main.tf new file mode 100644 index 0000000000..c4a3e27970 --- /dev/null +++ b/terraform-ci-infra/1n_nmd/vpp_device/main.tf @@ -0,0 +1,19 @@ +locals { + datacenters = join(",", var.nomad_datacenters) +} + +data "template_file" "nomad_job_csit_shim" { + template = file("${path.module}/conf/nomad/csit_shim.hcl") + vars = { + datacenters = local.datacenters + job_name = var.csit_shim_job_name + group_count = var.csit_shim_group_count + cpu = var.csit_shim_cpu + mem = var.csit_shim_mem + } +} + +resource "nomad_job" "nomad_job_csit_shim" { + jobspec = data.template_file.nomad_job_csit_shim.rendered + detach = false +} \ No newline at end of file diff --git a/terraform-ci-infra/1n_nmd/vpp_device/resources.tf b/terraform-ci-infra/1n_nmd/vpp_device/resources.tf deleted file mode 100644 index dace9094f2..0000000000 --- a/terraform-ci-infra/1n_nmd/vpp_device/resources.tf +++ /dev/null @@ -1,4 +0,0 @@ -resource "nomad_job" "prod_csit_shim" { - provider = nomad - jobspec = file("${path.module}/prod_csit_shim.nomad") -} \ No newline at end of file diff --git a/terraform-ci-infra/1n_nmd/vpp_device/variables.tf b/terraform-ci-infra/1n_nmd/vpp_device/variables.tf new file mode 100644 index 0000000000..ca574e770a --- /dev/null +++ b/terraform-ci-infra/1n_nmd/vpp_device/variables.tf @@ -0,0 +1,31 @@ +# Nomad +variable "nomad_datacenters" { + description = "Nomad data centers" + type = list(string) + default = [ "dc1" ] +} + +# CSIT SHIM +variable "csit_shim_job_name" { + description = "CSIT SHIM job name" + type = string + default = "prod-csit-shim" +} + +variable "csit_shim_group_count" { + description = "Number of CSIT SHIM group instances" + type = number + default = 1 +} + +variable "csit_shim_cpu" { + description = "CSIT SHIM task CPU" + type = number + default = 2000 +} + +variable "csit_shim_mem" { + description = "CSIT SHIM task memory" + type = number + default = 10000 +} \ No newline at end of file -- 2.16.6