diff --git a/nomad/backups/jobs/consul.hcl b/nomad/backups/jobs/consul.hcl new file mode 100644 index 0000000..3478848 --- /dev/null +++ b/nomad/backups/jobs/consul.hcl @@ -0,0 +1,45 @@ +job "Consul" { + schedule = "0 0 * * *" + + config { + # TODO: Backup to a meaningful location, this is just for testing + repo = "/local/repo" + # Read from secret file + passphrase = env("BACKUP_PASSPHRASE") + } + + # Remove when using a proper backup destination + task "Create dir for repo" { + pre_script { + on_backup = "echo 'Backing up something'" + } + pre_script { + on_backup = "mkdir -p /local/repo" + } + } + + task "Use consul snapshots" { + pre_script { + on_backup = "mkdir -p /local/consul" + } + pre_script { + on_backup = "consul snapshot save /local/consul/backup.snap" + } + post_script { + on_restore = "consul snapshot restore /local/consul/backup.snap" + } + } + + backup { + paths = ["/local/consul"] + # Because path is absolute + restore_opts { + Target = "/" + } + } + + forget { + KeepLast = 2 + Prune = true + } +}