From 0d340f3349c82bfdcc8aa277290f0ce0cb330cfa Mon Sep 17 00:00:00 2001 From: Ian Fijolek Date: Wed, 3 Jan 2024 13:55:32 -0800 Subject: [PATCH] Periodic job to renew lego certs and store them in Nomad Variables This will allow multiple instance of Traefik to serve certs. --- ansible_playbooks/vars/nomad_vars.sample.yml | 4 + core/lego.nomad | 91 ++++++++++++++++++++ core/lego.tf | 23 +++++ 3 files changed, 118 insertions(+) create mode 100644 core/lego.nomad create mode 100644 core/lego.tf diff --git a/ansible_playbooks/vars/nomad_vars.sample.yml b/ansible_playbooks/vars/nomad_vars.sample.yml index ea2818b..1b21a3c 100644 --- a/ansible_playbooks/vars/nomad_vars.sample.yml +++ b/ansible_playbooks/vars/nomad_vars.sample.yml @@ -95,6 +95,10 @@ nomad/jobs/immich: nomad/jobs/ipdvr/radarr: db_pass: VALUE db_user: VALUE +nomad/jobs/lego: + acme_email: VALUE + domain_lego_dns: VALUE + usersfile: VALUE nomad/jobs/lidarr: db_name: VALUE db_pass: VALUE diff --git a/core/lego.nomad b/core/lego.nomad new file mode 100644 index 0000000..1b52a2b --- /dev/null +++ b/core/lego.nomad @@ -0,0 +1,91 @@ +variable "lego_version" { + default = "4.14.2" + type = string +} + +variable "nomad_var_dirsync_version" { + default = "0.0.2" + type = string +} + +job "lego" { + + type = "batch" + + periodic { + cron = "@weekly" + prohibit_overlap = true + } + + group "main" { + + task "main" { + driver = "exec" + + config { + # image = "alpine:3" + command = "/bin/bash" + args = ["${NOMAD_TASK_DIR}/start.sh"] + } + + artifact { + source = "https://github.com/go-acme/lego/releases/download/v${var.lego_version}/lego_v${var.lego_version}_linux_${attr.cpu.arch}.tar.gz" + } + + artifact { + source = "https://git.iamthefij.com/iamthefij/nomad-var-dirsync/releases/download/v${var.nomad_var_dirsync_version}/nomad-var-dirsync-linux-${attr.cpu.arch}.tar.gz" + } + + template { + data = <