aboutsummaryrefslogtreecommitdiff
path: root/app/backup/deploy/backup.hcl
diff options
context:
space:
mode:
authorLUXEY Adrien <adrien.luxey@inria.fr>2021-01-19 14:33:44 +0100
committerLUXEY Adrien <adrien.luxey@inria.fr>2021-01-19 14:33:44 +0100
commit65421d947e84fc6697d2c925a5ca8c473b71c61c (patch)
tree8e35cf75340cde9949f9ff38de19c90beafd5391 /app/backup/deploy/backup.hcl
parenta5a56b6f70bd5b445c3d10d0c5a99011a8bcdd1d (diff)
parenteb925049ac4aab369763fbecb0caaec3579977a3 (diff)
downloadinfrastructure-65421d947e84fc6697d2c925a5ca8c473b71c61c.tar.gz
infrastructure-65421d947e84fc6697d2c925a5ca8c473b71c61c.zip
merge from upstream
Diffstat (limited to 'app/backup/deploy/backup.hcl')
-rw-r--r--app/backup/deploy/backup.hcl67
1 files changed, 67 insertions, 0 deletions
diff --git a/app/backup/deploy/backup.hcl b/app/backup/deploy/backup.hcl
new file mode 100644
index 0000000..08fd923
--- /dev/null
+++ b/app/backup/deploy/backup.hcl
@@ -0,0 +1,67 @@
+job "backup_periodic" {
+ datacenters = ["dc1"]
+
+ type = "batch"
+
+ periodic {
+ // Launch every hour
+ cron = "0 * * * * *"
+
+ // Do not allow overlapping runs.
+ prohibit_overlap = true
+ }
+
+ task "backup-consul" {
+ driver = "docker"
+
+ config {
+ image = "lxpz/backup_consul:12"
+ volumes = [
+ "secrets/id_ed25519:/root/.ssh/id_ed25519",
+ "secrets/id_ed25519.pub:/root/.ssh/id_ed25519.pub",
+ "secrets/known_hosts:/root/.ssh/known_hosts"
+ ]
+ network_mode = "host"
+ }
+
+ env {
+ CONSUL_HTTP_ADDR = "http://consul.service.2.cluster.deuxfleurs.fr:8500"
+ }
+
+ template {
+ data = <<EOH
+TARGET_SSH_USER={{ key "secrets/backup/target_ssh_user" }}
+TARGET_SSH_PORT={{ key "secrets/backup/target_ssh_port" }}
+TARGET_SSH_HOST={{ key "secrets/backup/target_ssh_host" }}
+TARGET_SSH_DIR={{ key "secrets/backup/target_ssh_dir" }}
+EOH
+
+ destination = "secrets/env_vars"
+ env = true
+ }
+
+ template {
+ data = "{{ key \"secrets/backup/id_ed25519\" }}"
+ destination = "secrets/id_ed25519"
+ }
+ template {
+ data = "{{ key \"secrets/backup/id_ed25519.pub\" }}"
+ destination = "secrets/id_ed25519.pub"
+ }
+ template {
+ data = "{{ key \"secrets/backup/target_ssh_fingerprint\" }}"
+ destination = "secrets/known_hosts"
+ }
+
+ resources {
+ memory = 200
+ }
+
+ restart {
+ attempts = 2
+ interval = "30m"
+ delay = "15s"
+ mode = "fail"
+ }
+ }
+}