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