aboutsummaryrefslogtreecommitdiffstats
path: root/terraform-ci-infra/1n_nmd/vpp_device
diff options
context:
space:
mode:
authorpmikus <pmikus@cisco.com>2021-01-28 08:24:35 +0000
committerpmikus <pmikus@cisco.com>2021-01-28 08:24:35 +0000
commit2afd8f4fe26ae1f1d183ecac8f9daa85f68bc634 (patch)
tree737eaf290b110dbc0e88df65e583db18dfe687ad /terraform-ci-infra/1n_nmd/vpp_device
parentf6882e6231ef0a39d137862d1fb5b75f8eddd9c4 (diff)
Infra: Terraform vpp_device module
+ Convert to module + Fix memory limit Signed-off-by: pmikus <pmikus@cisco.com> Change-Id: I95285faabbf7bad7fcb7f3b0c9b4e79641c6b95c
Diffstat (limited to 'terraform-ci-infra/1n_nmd/vpp_device')
-rw-r--r--terraform-ci-infra/1n_nmd/vpp_device/conf/nomad/csit_shim.hcl (renamed from terraform-ci-infra/1n_nmd/vpp_device/prod_csit_shim.nomad)44
-rw-r--r--terraform-ci-infra/1n_nmd/vpp_device/main.tf19
-rw-r--r--terraform-ci-infra/1n_nmd/vpp_device/resources.tf4
-rw-r--r--terraform-ci-infra/1n_nmd/vpp_device/variables.tf31
4 files changed, 71 insertions, 27 deletions
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
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