From 0975c10939dce849c8e85d881d356e03409988ef Mon Sep 17 00:00:00 2001 From: Matthew Baggett <matthew@baggett.me> Date: Sun, 24 Nov 2024 10:50:28 +0100 Subject: [PATCH] Make pruner a module. --- docker/pruner/inputs.tf | 5 +++++ docker/pruner/outputs.tf | 3 +++ docker/pruner/pruner.tf | 12 ++++++++++++ docker/pruner/terraform.tf | 12 ++++++++++++ docker/service/locals.tf | 14 ++++++-------- docker/service/service.tf | 7 ++++--- 6 files changed, 42 insertions(+), 11 deletions(-) create mode 100644 docker/pruner/inputs.tf create mode 100644 docker/pruner/outputs.tf create mode 100644 docker/pruner/pruner.tf create mode 100644 docker/pruner/terraform.tf diff --git a/docker/pruner/inputs.tf b/docker/pruner/inputs.tf new file mode 100644 index 0000000..c8531e4 --- /dev/null +++ b/docker/pruner/inputs.tf @@ -0,0 +1,5 @@ +variable "stack_name" { + type = string + description = "The name of the stack to deploy the service to." + default = "docker" +} \ No newline at end of file diff --git a/docker/pruner/outputs.tf b/docker/pruner/outputs.tf new file mode 100644 index 0000000..f2beb8c --- /dev/null +++ b/docker/pruner/outputs.tf @@ -0,0 +1,3 @@ +output "docker_service" { + value = module.pruner.docker_service +} \ No newline at end of file diff --git a/docker/pruner/pruner.tf b/docker/pruner/pruner.tf new file mode 100644 index 0000000..97a43ef --- /dev/null +++ b/docker/pruner/pruner.tf @@ -0,0 +1,12 @@ +module "pruner" { + source = "../service" + stack_name = var.stack_name + service_name = "pruner" + image = "matthewbaggett/pruner:latest" + global = true + environment_variables = { + INTERVAL_SECONDS = 21600 // About every 6 hours + } + mounts = { "/var/run/docker.sock" = "/var/run/docker.sock" } + restart_policy = "any" +} diff --git a/docker/pruner/terraform.tf b/docker/pruner/terraform.tf new file mode 100644 index 0000000..e928716 --- /dev/null +++ b/docker/pruner/terraform.tf @@ -0,0 +1,12 @@ +terraform { + required_version = "~> 1.6" + + required_providers { + docker = { + source = "kreuzwerker/docker" + version = "~>3.0" + } + } +} + + diff --git a/docker/service/locals.tf b/docker/service/locals.tf index c318d97..45ead43 100644 --- a/docker/service/locals.tf +++ b/docker/service/locals.tf @@ -7,13 +7,11 @@ locals { # Define service labels en-masse labels = merge(var.labels, { - "com.docker.stack.namespace" = var.stack_name - "com.docker.stack.image" = data.docker_registry_image.image.name - "com.docker.stack.hash" = data.docker_registry_image.image.sha256_digest - "ooo.grey.service.stack" = var.stack_name - "ooo.grey.service.name" = var.service_name - #"ooo.grey.service.created" = timestamp() - "ooo.grey.service.image" = data.docker_registry_image.image.name - "ooo.grey.service.hash" = data.docker_registry_image.image.sha256_digest + "com.docker.stack.namespace" = var.stack_name + "com.docker.stack.image" = data.docker_registry_image.image.name + "ooo.grey.service.stack" = var.stack_name + "ooo.grey.service.name" = var.service_name + "ooo.grey.service.image" = data.docker_registry_image.image.name + "ooo.grey.service.image.digest" = data.docker_registry_image.image.sha256_digest }) } \ No newline at end of file diff --git a/docker/service/service.tf b/docker/service/service.tf index 9904357..4c27db2 100644 --- a/docker/service/service.tf +++ b/docker/service/service.tf @@ -37,9 +37,10 @@ resource "docker_service" "instance" { dynamic "mounts" { for_each = var.mounts content { - target = mounts.value - source = mounts.key - type = "bind" + target = mounts.value + source = mounts.key + type = "bind" + read_only = false # Nice assumption bro. } }