-
Notifications
You must be signed in to change notification settings - Fork 1
/
conductor.json
403 lines (403 loc) · 16.6 KB
/
conductor.json
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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
{
"ports": {
"asl": 8080,
"asl-public-api": 8081,
"asl-permissions": 8082,
"asl-workflow": 8083,
"asl-emailer": 8084,
"asl-internal-ui": 8085,
"asl-internal-api": 8086,
"asl-notifications": 8087,
"html-pdf-converter": 8088,
"asl-metrics": 8089,
"asl-internal-search": 8090,
"asl-public-search": 8091,
"asl-attachments": 8092,
"redis": 6379,
"localstack": 4566,
"postgres": 5432,
"elasticsearch": 9200
},
"env": {
"DATABASE_NAME": "asl",
"DATABASE_NAME_TEST": "asl-test",
"DATABASE_USERNAME": "postgres",
"DATABASE_PASSWORD": "test-password",
"WORKFLOW_DATABASE_NAME": "taskflow",
"WORKFLOW_DATABASE_NAME_TEST": "taskflow-test",
"WORKFLOW_DATABASE_USERNAME": "postgres",
"AWS_SECRET": "test",
"AWS_ACCESS_KEY": "test",
"AWS_REGION": "eu-west-2",
"AWS_ACCOUNT_ID": "000000000000",
"SQS_QUEUE": "asl-dev",
"S3_BUCKET": "asl-dev",
"SESSION_SECRET": "conductor",
"JWT_SECRET": "conductor",
"KEYCLOAK_REALM": "Asl-dev",
"KEYCLOAK_URL": "https://sso-dev.notprod.homeoffice.gov.uk/auth",
"KEYCLOAK_CLIENT": "asl-dev-connect",
"KEYCLOAK_USERNAME": "asl-resolver",
"KC_EXPORTS_USERNAME": "bot-data-exports",
"VERBOSE_ERRORS": "TRUE"
},
"services": [
{
"name": "asl",
"network": "asl",
"env": {
"REDIS_HOST": "{{services.redis.host}}",
"SESSION_SECRET": "{{env.SESSION_SECRET}}",
"KEYCLOAK_REALM": "{{env.KEYCLOAK_REALM}}",
"KEYCLOAK_URL": "{{env.KEYCLOAK_URL}}",
"KEYCLOAK_CLIENT": "{{env.KEYCLOAK_CLIENT}}",
"KEYCLOAK_SECRET": "{{env.KEYCLOAK_SECRET}}",
"API_URL": "http://{{services.asl-public-api.host}}:{{services.asl-public-api.port}}",
"INTERNAL_URL": "http://localhost:{{services.asl-internal-ui.port}}",
"JWT_SECRET": "{{env.JWT_SECRET}}",
"PERMISSIONS_SERVICE": "http://{{services.asl-permissions.host}}:{{services.asl-permissions.port}}",
"ATTACHMENTS_SERVICE": "http://{{services.asl-attachments.host}}:{{services.asl-attachments.port}}",
"PDF_SERVICE": "http://{{services.html-pdf-converter.host}}:{{services.html-pdf-converter.port}}"
}
},
{
"name": "asl-public-api",
"network": "asl",
"env": {
"WORKFLOW_SERVICE": "http://{{services.asl-workflow.host}}:{{services.asl-workflow.port}}",
"PERMISSIONS_SERVICE": "http://{{services.asl-permissions.host}}:{{services.asl-permissions.port}}",
"DATABASE_NAME": "{{env.DATABASE_NAME}}",
"DATABASE_USERNAME": "{{env.DATABASE_USERNAME}}",
"DATABASE_PASSWORD": "{{env.DATABASE_PASSWORD}}",
"DATABASE_HOST": "{{services.postgres.host}}",
"KEYCLOAK_REALM": "{{env.KEYCLOAK_REALM}}",
"KEYCLOAK_URL": "{{env.KEYCLOAK_URL}}",
"KEYCLOAK_CLIENT": "{{env.KEYCLOAK_CLIENT}}",
"KEYCLOAK_SECRET": "{{env.KEYCLOAK_SECRET}}",
"KEYCLOAK_USERNAME": "{{env.KEYCLOAK_USERNAME}}",
"KEYCLOAK_PASSWORD": "{{env.KEYCLOAK_PASSWORD}}",
"SEARCH_SERVICE": "http://{{services.asl-public-search.host}}:{{services.asl-public-search.port}}"
}
},
{
"name": "asl-permissions",
"network": "asl",
"env": {
"DATABASE_NAME": "{{env.DATABASE_NAME}}",
"DATABASE_USERNAME": "{{env.DATABASE_USERNAME}}",
"DATABASE_PASSWORD": "{{env.DATABASE_PASSWORD}}",
"DATABASE_HOST": "{{services.postgres.host}}",
"KEYCLOAK_REALM": "{{env.KEYCLOAK_REALM}}",
"KEYCLOAK_URL": "{{env.KEYCLOAK_URL}}",
"KEYCLOAK_CLIENT": "{{env.KEYCLOAK_CLIENT}}",
"KEYCLOAK_SECRET": "{{env.KEYCLOAK_SECRET}}"
}
},
{
"name": "asl-workflow",
"network": "asl",
"env": {
"SQS_REGION": "{{env.AWS_REGION}}",
"SQS_ACCESS_KEY": "{{env.AWS_ACCESS_KEY}}",
"SQS_SECRET": "{{env.AWS_SECRET}}",
"SQS_URL": "http://{{services.localstack.host}}:{{services.localstack.port}}/{{env.AWS_ACCOUNT_ID}}/{{env.SQS_QUEUE}}",
"S3_REGION": "{{env.AWS_REGION}}",
"S3_ACCESS_KEY": "{{env.AWS_ACCESS_KEY}}",
"S3_SECRET": "{{env.AWS_SECRET}}",
"S3_BUCKET": "{{env.S3_BUCKET}}",
"S3_LOCALSTACK_URL": "http://{{services.localstack.host}}:{{services.localstack.port}}",
"TRANSPORT_KEY": "{{env.TRANSPORT_KEY}}",
"TRANSPORT_IV": "{{env.TRANSPORT_IV}}",
"KEYCLOAK_REALM": "{{env.KEYCLOAK_REALM}}",
"KEYCLOAK_URL": "{{env.KEYCLOAK_URL}}",
"KEYCLOAK_CLIENT": "{{env.KEYCLOAK_CLIENT}}",
"KEYCLOAK_SECRET": "{{env.KEYCLOAK_SECRET}}",
"DATABASE_NAME": "{{env.WORKFLOW_DATABASE_NAME}}",
"DATABASE_USERNAME": "{{env.WORKFLOW_DATABASE_USERNAME}}",
"DATABASE_PASSWORD": "{{env.DATABASE_PASSWORD}}",
"DATABASE_HOST": "{{services.postgres.host}}",
"ASL_DATABASE_NAME": "{{env.DATABASE_NAME}}",
"ASL_DATABASE_USERNAME": "{{env.DATABASE_USERNAME}}",
"ASL_DATABASE_PASSWORD": "{{env.DATABASE_PASSWORD}}",
"ASL_DATABASE_HOST": "{{services.postgres.host}}",
"NOTIFICATIONS_SERVICE": "http://{{services.asl-notifications.host}}:{{services.asl-notifications.port}}",
"PERMISSIONS_SERVICE": "http://{{services.asl-permissions.host}}:{{services.asl-permissions.port}}",
"SEARCH_SERVICE": "http://{{services.asl-internal-search.host}}:{{services.asl-internal-search.port}}"
}
},
{
"name": "asl-resolver",
"network": "asl",
"env": {
"DATABASE_NAME": "{{env.DATABASE_NAME}}",
"DATABASE_USERNAME": "{{env.DATABASE_USERNAME}}",
"DATABASE_PASSWORD": "{{env.DATABASE_PASSWORD}}",
"DATABASE_HOST": "{{services.postgres.host}}",
"SQS_REGION": "{{env.AWS_REGION}}",
"SQS_ACCESS_KEY": "{{env.AWS_ACCESS_KEY}}",
"SQS_SECRET": "{{env.AWS_SECRET}}",
"SQS_URL": "http://{{services.localstack.host}}:{{services.localstack.port}}/{{env.AWS_ACCOUNT_ID}}/{{env.SQS_QUEUE}}",
"S3_REGION": "{{env.AWS_REGION}}",
"S3_ACCESS_KEY": "{{env.AWS_ACCESS_KEY}}",
"S3_SECRET": "{{env.AWS_SECRET}}",
"S3_BUCKET": "{{env.S3_BUCKET}}",
"S3_LOCALSTACK_URL": "http://{{services.localstack.host}}:{{services.localstack.port}}",
"TRANSPORT_KEY": "{{env.TRANSPORT_KEY}}",
"TRANSPORT_IV": "{{env.TRANSPORT_IV}}",
"KEYCLOAK_REALM": "{{env.KEYCLOAK_REALM}}",
"KEYCLOAK_URL": "{{env.KEYCLOAK_URL}}",
"KEYCLOAK_CLIENT": "{{env.KEYCLOAK_CLIENT}}",
"KEYCLOAK_SECRET": "{{env.KEYCLOAK_SECRET}}",
"KEYCLOAK_USERNAME": "{{env.KEYCLOAK_USERNAME}}",
"KEYCLOAK_PASSWORD": "{{env.KEYCLOAK_PASSWORD}}",
"EMAILER_SERVICE": "http://{{services.asl-emailer.host}}:{{services.asl-emailer.port}}",
"JWT_SECRET": "{{env.JWT_SECRET}}",
"REGISTER_SERVICE": "http://localhost:{{services.asl.port}}"
}
},
{
"name": "asl-emailer",
"image": "quay.io/ukhomeofficedigital/asl-stub",
"network": "asl",
"env": {
"DATABASE_NAME": "{{env.DATABASE_NAME}}",
"DATABASE_USERNAME": "{{env.DATABASE_USERNAME}}",
"DATABASE_PASSWORD": "{{env.DATABASE_PASSWORD}}",
"DATABASE_HOST": "{{services.postgres.host}}"
}
},
{
"name": "asl-internal-ui",
"network": "asl",
"env": {
"REDIS_HOST": "{{services.redis.host}}",
"SESSION_SECRET": "{{env.SESSION_SECRET}}",
"KEYCLOAK_REALM": "{{env.KEYCLOAK_REALM}}",
"KEYCLOAK_URL": "{{env.KEYCLOAK_URL}}",
"KEYCLOAK_CLIENT": "{{env.KEYCLOAK_CLIENT}}",
"KEYCLOAK_SECRET": "{{env.KEYCLOAK_SECRET}}",
"S3_REGION": "{{env.AWS_REGION}}",
"S3_ACCESS_KEY": "{{env.AWS_ACCESS_KEY}}",
"S3_SECRET": "{{env.AWS_SECRET}}",
"S3_BUCKET": "{{env.S3_BUCKET}}",
"S3_LOCALSTACK_URL": "http://{{services.localstack.host}}:{{services.localstack.port}}",
"API_URL": "http://{{services.asl-internal-api.host}}:{{services.asl-internal-api.port}}",
"METRICS_URL": "http://{{services.asl-metrics.host}}:{{services.asl-metrics.port}}",
"WORKFLOW_URL": "http://{{services.asl-workflow.host}}:{{services.asl-workflow.port}}",
"PERMISSIONS_SERVICE": "http://{{services.asl-permissions.host}}:{{services.asl-permissions.port}}",
"ATTACHMENTS_SERVICE": "http://{{services.asl-attachments.host}}:{{services.asl-attachments.port}}",
"PDF_SERVICE": "http://{{services.html-pdf-converter.host}}:{{services.html-pdf-converter.port}}",
"ENABLE_PPL_CONVERSION": "'TRUE'"
}
},
{
"name": "asl-internal-api",
"network": "asl",
"env": {
"API_URL": "http://{{services.asl-public-api.host}}:{{services.asl-public-api.port}}",
"WORKFLOW_SERVICE": "http://{{services.asl-workflow.host}}:{{services.asl-workflow.port}}",
"PERMISSIONS_SERVICE": "http://{{services.asl-permissions.host}}:{{services.asl-permissions.port}}",
"DATABASE_NAME": "{{env.DATABASE_NAME}}",
"DATABASE_USERNAME": "{{env.DATABASE_USERNAME}}",
"DATABASE_PASSWORD": "{{env.DATABASE_PASSWORD}}",
"DATABASE_HOST": "{{services.postgres.host}}",
"KEYCLOAK_REALM": "{{env.KEYCLOAK_REALM}}",
"KEYCLOAK_URL": "{{env.KEYCLOAK_URL}}",
"KEYCLOAK_CLIENT": "{{env.KEYCLOAK_CLIENT}}",
"KEYCLOAK_SECRET": "{{env.KEYCLOAK_SECRET}}",
"SEARCH_SERVICE": "http://{{services.asl-internal-search.host}}:{{services.asl-internal-search.port}}",
"METRICS_SERVICE": "http://{{services.asl-metrics.host}}:{{services.asl-metrics.port}}"
}
},
{
"name": "asl-notifications",
"network": "asl",
"env": {
"DATABASE_NAME": "{{env.DATABASE_NAME}}",
"DATABASE_USERNAME": "{{env.DATABASE_USERNAME}}",
"DATABASE_PASSWORD": "{{env.DATABASE_PASSWORD}}",
"DATABASE_HOST": "{{services.postgres.host}}",
"EMAILER_SERVICE": "http://{{services.asl-emailer.host}}:{{services.asl-emailer.port}}",
"PUBLIC_UI": "http://localhost:{{services.asl.port}}"
}
},
{
"name": "html-pdf-converter",
"image": "quay.io/ukhomeofficedigital/html-pdf-converter:v2.4.3",
"network": "asl",
"env": {
"BODY_SIZE_LIMIT": "5mb"
}
},
{
"name": "asl-metrics",
"network": "asl",
"env": {
"KEYCLOAK_REALM": "{{env.KEYCLOAK_REALM}}",
"KEYCLOAK_URL": "{{env.KEYCLOAK_URL}}",
"KEYCLOAK_CLIENT": "{{env.KEYCLOAK_CLIENT}}",
"KEYCLOAK_SECRET": "{{env.KEYCLOAK_SECRET}}",
"DATABASE_NAME": "{{env.WORKFLOW_DATABASE_NAME}}",
"DATABASE_USERNAME": "{{env.WORKFLOW_DATABASE_USERNAME}}",
"DATABASE_PASSWORD": "{{env.DATABASE_PASSWORD}}",
"DATABASE_HOST": "{{services.postgres.host}}",
"ASL_DATABASE_NAME": "{{env.DATABASE_NAME}}",
"ASL_DATABASE_USERNAME": "{{env.DATABASE_USERNAME}}",
"ASL_DATABASE_PASSWORD": "{{env.DATABASE_PASSWORD}}",
"ASL_DATABASE_HOST": "{{services.postgres.host}}",
"FLOW_URL": "http://{{services.asl-workflow.host}}:{{services.asl-workflow.port}}/flow"
}
},
{
"name": "asl-schema",
"run": "sh -c 'npm run migrate'",
"network": "asl",
"env": {
"DATABASE_NAME": "{{env.DATABASE_NAME}}",
"DATABASE_USERNAME": "{{env.DATABASE_USERNAME}}",
"DATABASE_PASSWORD": "{{env.DATABASE_PASSWORD}}",
"DATABASE_HOST": "{{services.postgres.host}}"
}
},
{
"name": "asl-internal-search",
"image": "quay.io/ukhomeofficedigital/asl-search",
"network": "asl",
"env": {
"ELASTIC_NODE": "http://{{services.elasticsearch.host}}:{{services.elasticsearch.port}}",
"DATABASE_NAME": "{{env.DATABASE_NAME}}",
"DATABASE_USERNAME": "{{env.DATABASE_USERNAME}}",
"DATABASE_PASSWORD": "{{env.DATABASE_PASSWORD}}",
"DATABASE_HOST": "{{services.postgres.host}}",
"TASK_DATABASE_NAME": "{{env.WORKFLOW_DATABASE_NAME}}",
"TASK_DATABASE_USERNAME": "{{env.WORKFLOW_DATABASE_USERNAME}}",
"TASK_DATABASE_PASSWORD": "{{env.DATABASE_PASSWORD}}",
"TASK_DATABASE_HOST": "{{services.postgres.host}}",
"KEYCLOAK_REALM": "{{env.KEYCLOAK_REALM}}",
"KEYCLOAK_URL": "{{env.KEYCLOAK_URL}}",
"KEYCLOAK_CLIENT": "{{env.KEYCLOAK_CLIENT}}",
"KEYCLOAK_SECRET": "{{env.KEYCLOAK_SECRET}}",
"ENABLE_GLOBAL_SEARCH": "'TRUE'",
"ENABLE_INDEXER": "'TRUE'"
}
},
{
"name": "asl-public-search",
"image": "quay.io/ukhomeofficedigital/asl-search",
"network": "asl",
"env": {
"ELASTIC_NODE": "http://{{services.elasticsearch.host}}:{{services.elasticsearch.port}}",
"DATABASE_NAME": "{{env.DATABASE_NAME}}",
"DATABASE_USERNAME": "{{env.DATABASE_USERNAME}}",
"DATABASE_PASSWORD": "{{env.DATABASE_PASSWORD}}",
"DATABASE_HOST": "{{services.postgres.host}}",
"KEYCLOAK_REALM": "{{env.KEYCLOAK_REALM}}",
"KEYCLOAK_URL": "{{env.KEYCLOAK_URL}}",
"KEYCLOAK_CLIENT": "{{env.KEYCLOAK_CLIENT}}",
"KEYCLOAK_SECRET": "{{env.KEYCLOAK_SECRET}}",
"ENABLE_GLOBAL_SEARCH": "'FALSE'",
"ENABLE_INDEXER": "'FALSE'"
}
},
{
"name": "asl-attachments",
"network": "asl",
"env": {
"DATABASE_NAME": "{{env.DATABASE_NAME}}",
"DATABASE_USERNAME": "{{env.DATABASE_USERNAME}}",
"DATABASE_PASSWORD": "{{env.DATABASE_PASSWORD}}",
"DATABASE_HOST": "{{services.postgres.host}}",
"S3_REGION": "{{env.AWS_REGION}}",
"S3_ACCESS_KEY": "{{env.AWS_ACCESS_KEY}}",
"S3_SECRET": "{{env.AWS_SECRET}}",
"S3_BUCKET": "{{env.S3_BUCKET}}",
"S3_LOCALSTACK_URL": "http://{{services.localstack.host}}:{{services.localstack.port}}"
}
},
{
"name": "redis",
"image": "redis:alpine",
"network": "asl",
"tag": "infrastructure"
},
{
"name": "localstack",
"image": "localstack/localstack:0.13",
"network": "asl",
"env": {
"DEBUG": 1,
"SERVICES": "sqs,s3",
"SQS_PROVIDER": "elasticmq"
},
"tag": "infrastructure"
},
{
"name": "create-sqs-queue",
"image": "amazon/aws-cli:2.4.6",
"depends_on": [
"localstack"
],
"network": "asl",
"run": "--endpoint-url=http://{{services.localstack.host}}:{{services.localstack.port}} sqs create-queue --queue-name={{env.SQS_QUEUE}} --region={{env.AWS_REGION}} --no-sign-request --no-verify-ssl",
"restart": "on-failure",
"tag": "infrastructure"
},
{
"name": "create-s3-bucket",
"image": "amazon/aws-cli:2.4.6",
"depends_on": [
"localstack"
],
"network": "asl",
"run": "--endpoint-url=http://{{services.localstack.host}}:{{services.localstack.port}} s3api create-bucket --bucket={{env.S3_BUCKET}} --region={{env.AWS_REGION}} --no-sign-request --no-verify-ssl",
"restart": "on-failure",
"tag": "infrastructure"
},
{
"name": "postgres",
"build": ".docker/postgres",
"network": "asl",
"env": {
"POSTGRES_USER": "{{env.DATABASE_USERNAME}}",
"POSTGRES_PASSWORD": "{{env.DATABASE_PASSWORD}}",
"POSTGRES_DATABASES": "'{{env.DATABASE_NAME}},{{env.DATABASE_NAME_TEST}},{{env.WORKFLOW_DATABASE_NAME}},{{env.WORKFLOW_DATABASE_NAME_TEST}}'",
"PGDATA": "/var/lib/postgresql/pgdata"
},
"tag": "infrastructure"
},
{
"name": "elasticsearch",
"image": "elasticsearch:7.8.0",
"network": "asl",
"env": {
"node.name": "elasticsearch-dev",
"discovery.type": "single-node",
"ES_JAVA_OPTS": "-Xms128m -Xmx128m"
},
"tag": "infrastructure"
},
{
"name": "asl-data-exports",
"network": "asl",
"env": {
"S3_REGION": "{{env.AWS_REGION}}",
"S3_ACCESS_KEY": "{{env.AWS_ACCESS_KEY}}",
"S3_SECRET": "{{env.AWS_SECRET}}",
"S3_BUCKET": "{{env.S3_BUCKET}}",
"S3_LOCALSTACK_URL": "http://{{services.localstack.host}}:{{services.localstack.port}}",
"DATABASE_NAME": "{{env.DATABASE_NAME}}",
"DATABASE_USERNAME": "{{env.DATABASE_USERNAME}}",
"DATABASE_PASSWORD": "{{env.DATABASE_PASSWORD}}",
"DATABASE_HOST": "{{services.postgres.host}}",
"INTERVAL": "10000",
"METRICS_SERVICE": "http://{{services.asl-metrics.host}}:{{services.asl-metrics.port}}",
"KEYCLOAK_REALM": "{{env.KEYCLOAK_REALM}}",
"KEYCLOAK_URL": "{{env.KEYCLOAK_URL}}",
"KEYCLOAK_CLIENT": "{{env.KEYCLOAK_CLIENT}}",
"KEYCLOAK_SECRET": "{{env.KEYCLOAK_SECRET}}",
"KEYCLOAK_USERNAME": "{{env.KC_EXPORTS_USERNAME}}",
"KEYCLOAK_PASSWORD": "{{env.KC_EXPORTS_PASSWORD}}"
}
}
]
}