From 464d844fa998c6f93a39ea09369a626bebc8a584 Mon Sep 17 00:00:00 2001 From: Peter Mikus Date: Thu, 18 Sep 2025 07:34:45 +0200 Subject: [PATCH] feat(terraform): Add dispatcher Signed-off-by: Peter Mikus Change-Id: Ieefefba0f44dcf0cd867ea1cb9a548f97d5af051 --- .../terraform-nomad-gha-dispatcher/main.tf | 21 +++++++++ .../nomad-gha-dispatcher-prod.hcl.tftpl | 45 ++++++++++++++++++ .../nomad-gha-dispatcher-sandbox.hcl.tftpl | 45 ++++++++++++++++++ .../terraform-nomad-gha-dispatcher/providers.tf | 7 +++ .../terraform-nomad-gha-dispatcher/variables.tf | 54 ++++++++++++++++++++++ .../terraform-nomad-gha-dispatcher/versions.tf | 14 ++++++ 6 files changed, 186 insertions(+) create mode 100644 fdio.infra.terraform/terraform-nomad-gha-dispatcher/main.tf create mode 100644 fdio.infra.terraform/terraform-nomad-gha-dispatcher/nomad-gha-dispatcher-prod.hcl.tftpl create mode 100644 fdio.infra.terraform/terraform-nomad-gha-dispatcher/nomad-gha-dispatcher-sandbox.hcl.tftpl create mode 100644 fdio.infra.terraform/terraform-nomad-gha-dispatcher/providers.tf create mode 100644 fdio.infra.terraform/terraform-nomad-gha-dispatcher/variables.tf create mode 100644 fdio.infra.terraform/terraform-nomad-gha-dispatcher/versions.tf diff --git a/fdio.infra.terraform/terraform-nomad-gha-dispatcher/main.tf b/fdio.infra.terraform/terraform-nomad-gha-dispatcher/main.tf new file mode 100644 index 0000000000..635317ac4a --- /dev/null +++ b/fdio.infra.terraform/terraform-nomad-gha-dispatcher/main.tf @@ -0,0 +1,21 @@ +locals { + datacenters = join(",", var.datacenters) +} + +resource "nomad_job" "gha-dispatcher" { + for_each = toset(var.namespace) + jobspec = templatefile( + "${path.cwd}/nomad-${var.job_name}-${each.key}.hcl.tftpl", + { + cpu = var.cpu, + datacenters = local.datacenters, + image = "${var.image}-${each.key}:latest", + job_name = "${var.job_name}-${each.key}", + memory = var.memory, + namespace = each.key, + node_pool = var.node_pool, + region = var.region, + type = var.type + }) + detach = false +} \ No newline at end of file diff --git a/fdio.infra.terraform/terraform-nomad-gha-dispatcher/nomad-gha-dispatcher-prod.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-gha-dispatcher/nomad-gha-dispatcher-prod.hcl.tftpl new file mode 100644 index 0000000000..ea17f9c7ce --- /dev/null +++ b/fdio.infra.terraform/terraform-nomad-gha-dispatcher/nomad-gha-dispatcher-prod.hcl.tftpl @@ -0,0 +1,45 @@ +job "${job_name}" { + datacenters = ["${datacenters}"] + type = "${type}" + node_pool = "${node_pool}" + region = "${region}" + namespace = "${namespace}" + + group "${job_name}" { + count = 1 + constraint { + attribute = "$${attr.cpu.arch}" + value = "amd64" + } + constraint { + attribute = "$${node.class}" + value = "builder" + } + ephemeral_disk { + migrate = false + size = 3000 + sticky = false + } + task "${job_name}" { + driver = "docker" + config { + image = "${image}" + } + template { + destination = "$${NOMAD_SECRETS_DIR}/.env" + env = true + data = <