aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2021-12-08 12:19:08 +0100
committerAlex Auvolat <alex@adnab.me>2021-12-08 12:19:08 +0100
commit3297135a5861aa719fda4f4ed33d1d9bdb7412fd (patch)
tree5d2f2b5c325201fe356158debde41d5c9cd3ab2c
parent8846421cc44fc958e08a1eff2a12ebc54178731b (diff)
downloadinfrastructure-3297135a5861aa719fda4f4ed33d1d9bdb7412fd.tar.gz
infrastructure-3297135a5861aa719fda4f4ed33d1d9bdb7412fd.zip
Add tricot to replace traefik
-rw-r--r--app/dummy/deploy/dummy-nginx.hcl41
-rw-r--r--app/garage-staging/deploy/garage.hcl1
-rw-r--r--app/tricot/deploy/tricot.hcl48
3 files changed, 90 insertions, 0 deletions
diff --git a/app/dummy/deploy/dummy-nginx.hcl b/app/dummy/deploy/dummy-nginx.hcl
new file mode 100644
index 0000000..6415010
--- /dev/null
+++ b/app/dummy/deploy/dummy-nginx.hcl
@@ -0,0 +1,41 @@
+job "dummy-nginx" {
+ datacenters = ["neptune"]
+ type = "service"
+
+ group "nginx" {
+ count = 1
+
+ constraint {
+ attribute = "${attr.unique.hostname}"
+ operator = "="
+ value = "carcajou"
+ }
+
+ network {
+ port "http" {
+ to = 80
+ }
+ }
+
+ task "nginx" {
+ driver = "docker"
+ config {
+ image = "nginx"
+ ports = [ "http" ]
+ }
+ }
+
+ service {
+ port = "http"
+ tags = [
+ "tricot home.adnab.me 100",
+ ]
+ check {
+ type = "http"
+ path = "/"
+ interval = "10s"
+ timeout = "2s"
+ }
+ }
+ }
+}
diff --git a/app/garage-staging/deploy/garage.hcl b/app/garage-staging/deploy/garage.hcl
index 9284461..c9a7b23 100644
--- a/app/garage-staging/deploy/garage.hcl
+++ b/app/garage-staging/deploy/garage.hcl
@@ -98,6 +98,7 @@ job "garage-staging" {
tags = [
"garage-staging-web",
"tricot *.garage-staging-web.home.adnab.me",
+ "tricot rust-docs",
]
port = 3992
address_mode = "driver"
diff --git a/app/tricot/deploy/tricot.hcl b/app/tricot/deploy/tricot.hcl
new file mode 100644
index 0000000..ad838a8
--- /dev/null
+++ b/app/tricot/deploy/tricot.hcl
@@ -0,0 +1,48 @@
+job "tricot" {
+ datacenters = ["dc1", "neptune"]
+ type = "system"
+ priority = 90
+
+ constraint {
+ attribute = "${attr.cpu.arch}"
+ value = "amd64"
+ }
+
+ update {
+ max_parallel = 1
+ stagger = "1m"
+ }
+
+ group "tricot" {
+ task "tricot" {
+ driver = "docker"
+
+ config {
+ image = "lxpz/amd64_tricot:4"
+ network_mode = "host"
+ readonly_rootfs = true
+ }
+
+ restart {
+ interval = "30m"
+ attempts = 2
+ delay = "15s"
+ mode = "delay"
+ }
+
+ template {
+ data = <<EOH
+TRICOT_NODE_NAME={{ env "attr.unique.hostname" }}
+TRICOT_LETSENCRYPT_EMAIL=alex@adnab.me
+RUST_LOG=tricot=debug
+EOH
+ destination = "secrets/env"
+ env = true
+ }
+
+ resources {
+ memory = 40
+ }
+ }
+ }
+}