-
Notifications
You must be signed in to change notification settings - Fork 0
/
strava.nomad
125 lines (104 loc) · 2.23 KB
/
strava.nomad
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
job "sealway-strava" {
datacenters = ["lan"]
type = "service"
// affinity {
// attribute = "${meta.os_architecture}"
// value = "amd64"
// weight = 100
// }
constraint {
attribute = "${attr.cpu.arch}"
value = "amd64"
}
update {
max_parallel = 1
health_check = "checks"
min_healthy_time = "30s"
healthy_deadline = "5m"
}
migrate {
max_parallel = 1
health_check = "checks"
min_healthy_time = "2m"
healthy_deadline = "5m"
}
group "strava-app" {
count = 1
network {
port "app-http" {
to = 8080
host_network = "private"
}
}
service {
name = "integration-strava"
tags = ["wss", "http", "sealway", "api", "private", "internal"]
port = "app-http"
check {
type = "http"
port = "app-http"
interval = "30s"
timeout = "5s"
path = "/healthz"
check_restart {
limit = 3
grace = "90s"
ignore_warnings = true
}
}
}
restart {
attempts = 20
interval = "30m"
delay = "1m"
mode = "fail"
}
task "sealway-strava" {
driver = "docker"
config {
image = "sealway/strava"
force_pull = true
ports = ["app-http"]
labels {
from_nomad = "yes"
}
logging {
type = "loki"
config {
loki-pipeline-stages = <<EOH
- static_labels:
app: sealway-strava
- json:
expressions:
time: ts_orig
- timestamp:
source: time
format: RFC3339
EOH
}
}
}
template {
data = <<EOH
STRAVA_CLIENT={{with secret "applications/prod/default/Services/Strava"}}{{.Data.data.client_id}}{{end}}
STRAVA_SECRET={{with secret "applications/prod/default/Services/Strava"}}{{.Data.data.client_secret}}{{end}}
MONGO_CONNECTION=mongodb://mongo.service.consul
EOH
destination = "secrets/file.env"
env = true
}
vault {
policies = ["nomad-server"]
env = false
}
env {
PORT = "8080"
SLUG = "integration-strava"
}
resources {
cpu = 100
memory = 32
}
}
}
}