aboutsummaryrefslogtreecommitdiffstats
path: root/fdio.infra.terraform/1n_nmd/vpp_device
diff options
context:
space:
mode:
authorpmikus <pmikus@cisco.com>2021-03-07 08:57:13 +0000
committerPeter Mikus <pmikus@cisco.com>2021-03-11 07:07:03 +0000
commitc318223fcd266c0ee2982e803c44e193c2023054 (patch)
tree4559bf49a5ab183d0c3a75a883edf40e7802222f /fdio.infra.terraform/1n_nmd/vpp_device
parent221e2f4da7cb27954525d973d930cb8db4601c8f (diff)
Infra: Switch csit-shim to fdiotools
+ use /u/fdiotools + use ubuntu 20.04 Signed-off-by: pmikus <pmikus@cisco.com> Change-Id: I091e63a0d9e50de203b1527c7500b3864a616af6
Diffstat (limited to 'fdio.infra.terraform/1n_nmd/vpp_device')
-rw-r--r--fdio.infra.terraform/1n_nmd/vpp_device/conf/nomad/csit_shim.hcl169
-rw-r--r--fdio.infra.terraform/1n_nmd/vpp_device/main.tf21
-rw-r--r--fdio.infra.terraform/1n_nmd/vpp_device/variables.tf43
3 files changed, 233 insertions, 0 deletions
diff --git a/fdio.infra.terraform/1n_nmd/vpp_device/conf/nomad/csit_shim.hcl b/fdio.infra.terraform/1n_nmd/vpp_device/conf/nomad/csit_shim.hcl
new file mode 100644
index 0000000000..9763088dcd
--- /dev/null
+++ b/fdio.infra.terraform/1n_nmd/vpp_device/conf/nomad/csit_shim.hcl
@@ -0,0 +1,169 @@
+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 = "${datacenters}"
+
+ # The "type" parameter controls the type of job, which impacts the scheduler's
+ # decision on placement. This configuration is optional and defaults to
+ # "service". For a full list of job types and their differences, please see
+ # the online documentation.
+ #
+ # For more information, please see the online documentation at:
+ #
+ # https://www.nomadproject.io/docs/jobspec/schedulers.html
+ #
+ 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
+ # client.
+ #
+ # For more information and examples on the "group" stanza, please see
+ # the online documentation at:
+ #
+ # https://www.nomadproject.io/docs/job-specification/group.html
+ #
+ group "prod-group1-csit-shim-amd" {
+ # 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 = ${group_count}
+
+ constraint {
+ attribute = "$${node.class}"
+ value = "csit"
+ }
+
+ restart {
+ interval = "1m"
+ attempts = 3
+ delay = "15s"
+ mode = "delay"
+ }
+
+ # The "task" stanza creates an individual unit of work, such as a Docker
+ # container, web application, or batch processing.
+ #
+ # For more information and examples on the "task" stanza, please see
+ # the online documentation at:
+ #
+ # https://www.nomadproject.io/docs/job-specification/task.html
+ #
+ task "prod-task1-csit-shim-amd" {
+ # The "driver" parameter specifies the task driver that should be used to
+ # run the task.
+ driver = "docker"
+
+ # The "config" stanza specifies the driver configuration, which is passed
+ # directly to the driver to start the task. The details of configurations
+ # are specific to each driver, so please see specific driver
+ # documentation for more information.
+ config {
+ image = "${image_x86_64}"
+ network_mode = "host"
+ pid_mode = "host"
+ volumes = [
+ "/var/run/docker.sock:/var/run/docker.sock"
+ ]
+ privileged = true
+ }
+
+ # The "resources" stanza describes the requirements a task needs to
+ # execute. Resource requirements include memory, network, cpu, and more.
+ # This ensures the task will execute on a machine that contains enough
+ # resource capacity.
+ #
+ # For more information and examples on the "resources" stanza, please see
+ # the online documentation at:
+ #
+ # https://www.nomadproject.io/docs/job-specification/resources.html
+ #
+ resources {
+ cpu = ${cpu}
+ memory = ${mem}
+ network {
+ port "ssh" {
+ static = 6022
+ }
+ port "ssh2" {
+ static = 6023
+ }
+ }
+ }
+ }
+ }
+
+ group "prod-group1-csit-shim-arm" {
+ # 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 = ${group_count}
+
+ constraint {
+ attribute = "$${node.class}"
+ value = "csitarm"
+ }
+
+ restart {
+ interval = "1m"
+ attempts = 3
+ delay = "15s"
+ mode = "delay"
+ }
+
+ # The "task" stanza creates an individual unit of work, such as a Docker
+ # container, web application, or batch processing.
+ #
+ # For more information and examples on the "task" stanza, please see
+ # the online documentation at:
+ #
+ # https://www.nomadproject.io/docs/job-specification/task.html
+ #
+ task "prod-task1-csit-shim-arm" {
+ # The "driver" parameter specifies the task driver that should be used to
+ # run the task.
+ driver = "docker"
+
+ # The "config" stanza specifies the driver configuration, which is passed
+ # directly to the driver to start the task. The details of configurations
+ # are specific to each driver, so please see specific driver
+ # documentation for more information.
+ config {
+ image = "${image_aarch64}"
+ network_mode = "host"
+ pid_mode = "host"
+ volumes = [
+ "/var/run/docker.sock:/var/run/docker.sock"
+ ]
+ privileged = true
+ }
+
+ # The "resources" stanza describes the requirements a task needs to
+ # execute. Resource requirements include memory, network, cpu, and more.
+ # This ensures the task will execute on a machine that contains enough
+ # resource capacity.
+ #
+ # For more information and examples on the "resources" stanza, please see
+ # the online documentation at:
+ #
+ # https://www.nomadproject.io/docs/job-specification/resources.html
+ #
+ resources {
+ cpu = ${cpu}
+ memory = ${mem}
+ network {
+ port "ssh" {
+ static = 6022
+ }
+ port "ssh2" {
+ static = 6023
+ }
+ }
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/1n_nmd/vpp_device/main.tf b/fdio.infra.terraform/1n_nmd/vpp_device/main.tf
new file mode 100644
index 0000000000..80c02ec316
--- /dev/null
+++ b/fdio.infra.terraform/1n_nmd/vpp_device/main.tf
@@ -0,0 +1,21 @@
+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
+ image_aarch64 = var.csit_shim_image_aarch64
+ image_x86_64 = var.csit_shim_image_x86_64
+ }
+}
+
+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/fdio.infra.terraform/1n_nmd/vpp_device/variables.tf b/fdio.infra.terraform/1n_nmd/vpp_device/variables.tf
new file mode 100644
index 0000000000..893968bfc0
--- /dev/null
+++ b/fdio.infra.terraform/1n_nmd/vpp_device/variables.tf
@@ -0,0 +1,43 @@
+# 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
+}
+
+variable "csit_shim_image_aarch64" {
+ description = "CSIT SHIM AARCH64 docker image"
+ type = string
+ default = "fdiotools/csit_shim-ubuntu2004:prod-aarch64"
+}
+
+variable "csit_shim_image_x86_64" {
+ description = "CSIT SHIM X86_64 docker image"
+ type = string
+ default = "fdiotools/csit_shim-ubuntu2004:prod-x86_64"
+} \ No newline at end of file