Make pruner a module.

This commit is contained in:
Greyscale 2024-11-24 10:50:28 +01:00
parent 15b530eee6
commit 0975c10939
Signed by: grey
GPG key ID: DDB392AE64B32D89
6 changed files with 42 additions and 11 deletions

5
docker/pruner/inputs.tf Normal file
View file

@ -0,0 +1,5 @@
variable "stack_name" {
type = string
description = "The name of the stack to deploy the service to."
default = "docker"
}

3
docker/pruner/outputs.tf Normal file
View file

@ -0,0 +1,3 @@
output "docker_service" {
value = module.pruner.docker_service
}

12
docker/pruner/pruner.tf Normal file
View file

@ -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"
}

View file

@ -0,0 +1,12 @@
terraform {
required_version = "~> 1.6"
required_providers {
docker = {
source = "kreuzwerker/docker"
version = "~>3.0"
}
}
}

View file

@ -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
})
}

View file

@ -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.
}
}