summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMathias Magnusson <mathias@magnusson.space>2025-06-30 19:05:35 +0200
committerMathias Magnusson <mathias@magnusson.space>2025-06-30 19:05:35 +0200
commit58e382e14563b0b21a5e71dc9c16258c1be99a47 (patch)
tree80ea2966fd6e07f8241ebfdad5faa0fb9358a534
parent8f81f53a368b330ecf15fcd6ef24d171e82774ee (diff)
downloadgarm-58e382e14563b0b21a5e71dc9c16258c1be99a47.tar.gz
add zero-downtime deployments & update nginx versions
well it's not quite zero-downtime because it seems that for a while the old task has stopped but has not yet been removed from traefik, so for a few seconds half the requests get back "bad gateway"
-rw-r--r--jobs/faeltkullen.nomad.hcl8
-rw-r--r--jobs/files.nomad.hcl8
-rw-r--r--jobs/homepage/homepage.nomad.hcl10
-rw-r--r--jobs/raytracer.nomad.hcl8
-rw-r--r--jobs/rr.nomad.hcl8
5 files changed, 35 insertions, 7 deletions
diff --git a/jobs/faeltkullen.nomad.hcl b/jobs/faeltkullen.nomad.hcl
index a5065fe..422346b 100644
--- a/jobs/faeltkullen.nomad.hcl
+++ b/jobs/faeltkullen.nomad.hcl
@@ -6,6 +6,12 @@ job "faeltkullen" {
}
}
+ update {
+ canary = 1
+ auto_revert = true
+ auto_promote = true
+ }
+
volume "files" {
type = "host"
source = "static-files"
@@ -38,7 +44,7 @@ job "faeltkullen" {
}
config {
- image = "nginx:1.25-alpine"
+ image = "nginx:1.29-alpine"
ports = ["http"]
volumes = [
diff --git a/jobs/files.nomad.hcl b/jobs/files.nomad.hcl
index 2bb2b00..3d8227d 100644
--- a/jobs/files.nomad.hcl
+++ b/jobs/files.nomad.hcl
@@ -6,6 +6,12 @@ job "files" {
}
}
+ update {
+ canary = 1
+ auto_revert = true
+ auto_promote = true
+ }
+
volume "files" {
type = "host"
source = "static-files"
@@ -38,7 +44,7 @@ job "files" {
}
config {
- image = "nginx:1.25-alpine"
+ image = "nginx:1.29-alpine"
ports = ["http"]
volumes = [
diff --git a/jobs/homepage/homepage.nomad.hcl b/jobs/homepage/homepage.nomad.hcl
index dc1be71..f859314 100644
--- a/jobs/homepage/homepage.nomad.hcl
+++ b/jobs/homepage/homepage.nomad.hcl
@@ -1,13 +1,17 @@
job "homepage" {
group "web" {
- count = 1
-
network {
port "http" {
to = 80
}
}
+ update {
+ canary = 1
+ auto_revert = true
+ auto_promote = true
+ }
+
service {
name = "homepage"
port = "http"
@@ -29,7 +33,7 @@ job "homepage" {
}
config {
- image = "nginx:1.25-alpine"
+ image = "nginx:1.29-alpine"
ports = ["http"]
volumes = [
diff --git a/jobs/raytracer.nomad.hcl b/jobs/raytracer.nomad.hcl
index 4a528e5..2578b35 100644
--- a/jobs/raytracer.nomad.hcl
+++ b/jobs/raytracer.nomad.hcl
@@ -6,6 +6,12 @@ job "raytracer" {
}
}
+ update {
+ canary = 1
+ auto_revert = true
+ auto_promote = true
+ }
+
volume "files" {
type = "host"
source = "static-files"
@@ -38,7 +44,7 @@ job "raytracer" {
}
config {
- image = "nginx:1.25-alpine"
+ image = "nginx:1.29-alpine"
ports = ["http"]
volumes = [
diff --git a/jobs/rr.nomad.hcl b/jobs/rr.nomad.hcl
index 9c00e3b..0517103 100644
--- a/jobs/rr.nomad.hcl
+++ b/jobs/rr.nomad.hcl
@@ -6,6 +6,12 @@ job "rr" {
}
}
+ update {
+ canary = 1
+ auto_revert = true
+ auto_promote = true
+ }
+
volume "files" {
type = "host"
source = "static-files"
@@ -38,7 +44,7 @@ job "rr" {
}
config {
- image = "nginx:1.25-alpine"
+ image = "nginx:1.29-alpine"
ports = ["http"]
volumes = [