From 9a4cfd8e8fc619a6c32b1efac4d5df8734d77e22 Mon Sep 17 00:00:00 2001 From: Ben Martin Date: Sat, 27 Jul 2024 12:22:23 +0000 Subject: [PATCH] feat: Add uptime module for monitoring server availability --- main.tf | 4 +++ modules/uptime/jobspec.json | 55 +++++++++++++++++++++++++++++++++++++ modules/uptime/main.tf | 4 +++ 3 files changed, 63 insertions(+) create mode 100644 modules/uptime/jobspec.json create mode 100644 modules/uptime/main.tf diff --git a/main.tf b/main.tf index 74e5a54..852f424 100644 --- a/main.tf +++ b/main.tf @@ -13,3 +13,7 @@ module "media-centre" { module "coder" { source = "./modules/coder" } + +module "uptime" { + source = "./modules/uptime" +} diff --git a/modules/uptime/jobspec.json b/modules/uptime/jobspec.json new file mode 100644 index 0000000..f033663 --- /dev/null +++ b/modules/uptime/jobspec.json @@ -0,0 +1,55 @@ +{ + "ID": "uptime", + "Name": "Uptime", + "TaskGroups": [ + { + "Name": "Uptime Servers", + "Tasks": [ + { + "Name": "kuma", + "Driver": "docker", + "Config": { + "image": "louislam/uptime-kuma:latest", + "ports": [ + "web" + ], + "mounts": [ + { + "type": "volume", + "target": "/app/data", + "source": "kuma-data" + } + ] + }, + "Resources": { + "CPU": 1200, + "MemoryMB": 4096 + } + } + ], + "Services": [ + { + "Name": "Kuma", + "Provider": "nomad", + "PortLabel": "web", + "Tags": [ + "traefik.enable=true", + "traefik.http.routers.kuma.entrypoints=websecure", + "traefik.http.routers.kuma.rule=Host(`kuma.brmartin.co.uk`)" + ] + + } + ], + "Networks": [ + { + "DynamicPorts": [ + { + "Label": "web", + "To": 3001 + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/modules/uptime/main.tf b/modules/uptime/main.tf new file mode 100644 index 0000000..2726e34 --- /dev/null +++ b/modules/uptime/main.tf @@ -0,0 +1,4 @@ +resource "nomad_job" "uptime" { + jobspec = file("${path.module}/jobspec.json") + json = true +}