aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cluster/prod/app/garage/config/garage.toml13
-rw-r--r--cluster/prod/app/garage/deploy/garage-light.hcl29
-rw-r--r--cluster/prod/app/garage/deploy/garage.hcl54
3 files changed, 79 insertions, 17 deletions
diff --git a/cluster/prod/app/garage/config/garage.toml b/cluster/prod/app/garage/config/garage.toml
index 44e7ba0..36daa5d 100644
--- a/cluster/prod/app/garage/config/garage.toml
+++ b/cluster/prod/app/garage/config/garage.toml
@@ -2,6 +2,7 @@ block_size = 1048576
metadata_dir = "/meta"
data_dir = "/data"
+db_engine = "lmdb"
replication_mode = "3"
@@ -9,14 +10,22 @@ rpc_bind_addr = "[{{ env "meta.public_ipv6" }}]:3901"
rpc_public_addr = "[{{ env "meta.public_ipv6" }}]:3901"
rpc_secret = "{{ key "secrets/garage/rpc_secret" | trimSpace }}"
-sled_cache_capacity = 536870912
-sled_sync_interval_ms = 10000
+[consul_discovery]
+consul_http_addr = "https://consul.service.prod.consul:8501"
+service_name = "garage-prod-discovery"
+ca_cert = "/etc/garage/consul-ca.crt"
+client_cert = "/etc/garage/consul-client.crt"
+client_key = "/etc/garage/consul-client.key"
+tls_skip_verify = true
[s3_api]
s3_region = "garage"
api_bind_addr = "[::]:3900"
root_domain = ".garage.deuxfleurs.fr"
+[k2v_api]
+api_bind_addr = "[::]:3904"
+
[s3_web]
bind_addr = "[::]:3902"
root_domain = ".web.deuxfleurs.fr"
diff --git a/cluster/prod/app/garage/deploy/garage-light.hcl b/cluster/prod/app/garage/deploy/garage-light.hcl
index 94c388d..52ffb1c 100644
--- a/cluster/prod/app/garage/deploy/garage-light.hcl
+++ b/cluster/prod/app/garage/deploy/garage-light.hcl
@@ -16,17 +16,17 @@ job "garage-light" {
port "admin" { static = 3903 }
}
- update {
- max_parallel = 1
- min_healthy_time = "30s"
- healthy_deadline = "5m"
- }
+ update {
+ max_parallel = 1
+ min_healthy_time = "30s"
+ healthy_deadline = "5m"
+ }
task "server" {
driver = "docker"
config {
advertise_ipv6_address = true
- image = "dxflrs/amd64_garage:v0.7.1"
+ image = "dxflrs/garage:v0.8-rc2"
command = "/garage"
args = [ "server" ]
network_mode = "host"
@@ -34,6 +34,7 @@ job "garage-light" {
"/mnt/storage/garage/data:/data",
"/mnt/ssd/garage/meta:/meta",
"secrets/garage.toml:/etc/garage.toml",
+ "secrets:/etc/garage",
]
logging {
type = "journald"
@@ -45,12 +46,26 @@ job "garage-light" {
destination = "secrets/garage.toml"
}
+ template {
+ data = "{{ key \"secrets/consul/consul-ca.crt\" }}"
+ destination = "secrets/consul-ca.crt"
+ }
+
+ template {
+ data = "{{ key \"secrets/consul/consul-client.crt\" }}"
+ destination = "secrets/consul-client.crt"
+ }
+
+ template {
+ data = "{{ key \"secrets/consul/consul-client.key\" }}"
+ destination = "secrets/consul-client.key"
+ }
+
resources {
memory = 1000
cpu = 1000
}
- kill_signal = "SIGINT"
kill_timeout = "20s"
service {
diff --git a/cluster/prod/app/garage/deploy/garage.hcl b/cluster/prod/app/garage/deploy/garage.hcl
index 79e4d59..7ef2aa7 100644
--- a/cluster/prod/app/garage/deploy/garage.hcl
+++ b/cluster/prod/app/garage/deploy/garage.hcl
@@ -1,5 +1,5 @@
job "garage" {
- datacenters = ["orion"]
+ datacenters = [ "orion" ]
type = "system"
priority = 80
@@ -14,19 +14,20 @@ job "garage" {
port "rpc" { static = 3901 }
port "web" { static = 3902 }
port "admin" { static = 3903 }
+ port "k2v" { static = 3904 }
}
- update {
- max_parallel = 1
- min_healthy_time = "30s"
- healthy_deadline = "5m"
- }
+ update {
+ max_parallel = 1
+ min_healthy_time = "30s"
+ healthy_deadline = "5m"
+ }
task "server" {
driver = "docker"
config {
advertise_ipv6_address = true
- image = "dxflrs/amd64_garage:v0.7.1"
+ image = "dxflrs/garage:v0.8-rc2"
command = "/garage"
args = [ "server" ]
network_mode = "host"
@@ -34,6 +35,7 @@ job "garage" {
"/mnt/storage/garage/data:/data",
"/mnt/ssd/garage/meta:/meta",
"secrets/garage.toml:/etc/garage.toml",
+ "secrets:/etc/garage",
]
logging {
type = "journald"
@@ -45,12 +47,26 @@ job "garage" {
destination = "secrets/garage.toml"
}
+ template {
+ data = "{{ key \"secrets/consul/consul-ca.crt\" }}"
+ destination = "secrets/consul-ca.crt"
+ }
+
+ template {
+ data = "{{ key \"secrets/consul/consul-client.crt\" }}"
+ destination = "secrets/consul-client.crt"
+ }
+
+ template {
+ data = "{{ key \"secrets/consul/consul-client.key\" }}"
+ destination = "secrets/consul-client.key"
+ }
+
resources {
memory = 1000
cpu = 1000
}
- kill_signal = "SIGINT"
kill_timeout = "20s"
service {
@@ -120,6 +136,28 @@ job "garage" {
}
}
+ service {
+ tags = [
+ "garage_k2v",
+ "tricot k2v.deuxfleurs.fr",
+ ]
+ port = 3904
+ address_mode = "driver"
+ name = "garage-k2v"
+ check {
+ type = "tcp"
+ port = 3904
+ address_mode = "driver"
+ interval = "60s"
+ timeout = "5s"
+ check_restart {
+ limit = 3
+ grace = "90s"
+ ignore_warnings = false
+ }
+ }
+ }
+
restart {
interval = "30m"
attempts = 10