Skip to content

Commit 62c146a

Browse files
committed
try different approach for networking so dependencies wouldnt have to be restarted
1 parent 268464e commit 62c146a

File tree

2 files changed

+67
-58
lines changed

2 files changed

+67
-58
lines changed

infrastructure/deployment/deploy.sh

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -302,22 +302,13 @@ docker_stack_deploy() {
302302

303303
EXISTING_STACKS=$(configured_ssh 'docker stack ls --format "{{ .Name }}" | grep -v "dependencies" | paste -sd "," -')
304304

305-
configured_rsync -rlD $SSH_USER@$SSH_HOST:/opt/opencrvs/infrastructure/docker-compose.dependencies.yml ./infrastructure/docker-compose.dependencies.yml
306-
307-
REFRESH_DEPENDENCY_NETWORKS=false
308-
309305
if echo $EXISTING_STACKS | grep -w $STACK > /dev/null; then
310306
echo "Stack $STACK exists"
311-
npx tsx infrastructure/deployment/add-networks.ts infrastructure/docker-compose.dependencies.yml "$EXISTING_STACKS" > ./docker-compose.dependencies.yml
312307
else
313308
echo "Stack $STACK doesnt exist. Creating"
314-
REFRESH_DEPENDENCY_NETWORKS=true
315-
npx tsx infrastructure/deployment/add-networks.ts infrastructure/docker-compose.dependencies.yml "$EXISTING_STACKS,$STACK" > ./docker-compose.dependencies.yml
316309
fi
317310

318-
configured_rsync -rlD ./docker-compose.dependencies.yml $SSH_USER@$SSH_HOST:/opt/opencrvs/infrastructure/docker-compose.dependencies.yml
319-
320-
if [ "$REFRESH_DEPENDENCY_NETWORKS" = true ] || [ "$UPDATE_DEPENDENCIES" = true ]; then
311+
if [ "$UPDATE_DEPENDENCIES" = true ]; then
321312
echo "Updating dependency stack"
322313
configured_ssh 'cd /opt/opencrvs && \
323314
docker stack deploy --prune -c '$(split_and_join " " " -c " "$(to_remote_paths $DEPENDENCY_COMPOSE_FILES)")' --with-registry-auth dependencies'
@@ -326,7 +317,6 @@ docker_stack_deploy() {
326317
configured_ssh 'cd /opt/opencrvs && \
327318
docker stack deploy --prune -c '$(split_and_join " " " -c " "$(to_remote_paths $APPLICATION_COMPOSE_FILES)")' --with-registry-auth '$STACK
328319

329-
330320
}
331321

332322
validate_options

infrastructure/docker-compose.app.yml

Lines changed: 66 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,9 @@ services:
1919
- source: hearth-ext-conf.{{ts}}
2020
target: /src/hearth/config/queryparam-extensions.json
2121
networks:
22-
- {{STACK}}_app_net
23-
- dependencies_{{STACK}}_dependencies_net
22+
{{STACK}}_app_net:
23+
dependencies_internal_net:
24+
aliases: []
2425
logging:
2526
driver: gelf
2627
options:
@@ -46,8 +47,9 @@ services:
4647
labels:
4748
- 'traefik.enable=false'
4849
networks:
49-
- {{STACK}}_app_net
50-
- dependencies_{{STACK}}_dependencies_net
50+
{{STACK}}_app_net:
51+
dependencies_internal_net:
52+
aliases: []
5153
logging:
5254
driver: gelf
5355
options:
@@ -70,7 +72,7 @@ services:
7072
- 'traefik.http.routers.${STACK}__countryconfig.tls.domains[0].sans=*.${STACK}.{{hostname}}'
7173
- 'traefik.http.routers.${STACK}__countryconfig.entrypoints=web,websecure'
7274
- 'traefik.http.routers.${STACK}__countryconfig.middlewares=gzip-compression'
73-
- 'traefik.docker.network=dependencies_{{STACK}}_dependencies_net'
75+
- 'traefik.docker.network=dependencies_internal_net'
7476
- 'traefik.http.middlewares.${STACK}__countryconfig.headers.customresponseheaders.Pragma=no-cache'
7577
- 'traefik.http.middlewares.${STACK}__countryconfig.headers.customresponseheaders.Cache-control=no-store'
7678
- 'traefik.http.middlewares.${STACK}__countryconfig.headers.customresponseheaders.X-Robots-Tag=none'
@@ -117,8 +119,9 @@ services:
117119
- INFOBIP_SENDER_ID=${INFOBIP_SENDER_ID:-}
118120
- DOMAIN=${STACK}.{{hostname}}
119121
networks:
120-
- {{STACK}}_app_net
121-
- dependencies_{{STACK}}_dependencies_net
122+
{{STACK}}_app_net:
123+
dependencies_internal_net:
124+
aliases: []
122125
logging:
123126
driver: gelf
124127
options:
@@ -143,7 +146,7 @@ services:
143146
- 'traefik.http.routers.${STACK}__login.tls.domains[0].sans=*.${STACK}.{{hostname}}'
144147
- 'traefik.http.routers.${STACK}__login.entrypoints=web,websecure'
145148
- 'traefik.http.routers.${STACK}__login.middlewares=gzip-compression'
146-
- 'traefik.docker.network=dependencies_{{STACK}}_dependencies_net'
149+
- 'traefik.docker.network=dependencies_internal_net'
147150
- 'traefik.http.middlewares.${STACK}__login.headers.customresponseheaders.Pragma=no-cache'
148151
- 'traefik.http.middlewares.${STACK}__login.headers.customresponseheaders.Cache-control=no-store'
149152
- 'traefik.http.middlewares.${STACK}__login.headers.customresponseheaders.X-Robots-Tag=none'
@@ -152,8 +155,9 @@ services:
152155
- 'traefik.http.middlewares.${STACK}__login.headers.stspreload=true'
153156
replicas: 1
154157
networks:
155-
- {{STACK}}_app_net
156-
- dependencies_{{STACK}}_dependencies_net
158+
{{STACK}}_app_net:
159+
dependencies_internal_net:
160+
aliases: []
157161
logging:
158162
driver: gelf
159163
options:
@@ -180,7 +184,7 @@ services:
180184
- 'traefik.http.routers.${STACK}__client.tls.domains[0].main=${STACK}.{{hostname}}'
181185
- 'traefik.http.routers.${STACK}__client.tls.domains[0].sans=*.${STACK}.{{hostname}}'
182186
- 'traefik.http.routers.${STACK}__client.entrypoints=web,websecure'
183-
- 'traefik.docker.network=dependencies_{{STACK}}_dependencies_net'
187+
- 'traefik.docker.network=dependencies_internal_net'
184188

185189
- 'traefik.http.middlewares.${STACK}__test-replacepathregex.redirectregex.permanent=true'
186190
- 'traefik.http.middlewares.${STACK}__test-replacepathregex.redirectregex.regex=^https?://${STACK}.{{hostname}}/(.*)'
@@ -193,8 +197,9 @@ services:
193197
- 'traefik.http.middlewares.${STACK}__client.headers.stspreload=true'
194198
replicas: 1
195199
networks:
196-
- {{STACK}}_app_net
197-
- dependencies_{{STACK}}_dependencies_net
200+
{{STACK}}_app_net:
201+
dependencies_internal_net:
202+
aliases: []
198203
logging:
199204
driver: gelf
200205
options:
@@ -244,7 +249,7 @@ services:
244249
- 'traefik.http.routers.${STACK}__gateway.tls.domains[0].sans=*.${STACK}.{{hostname}}'
245250
- 'traefik.http.routers.${STACK}__gateway.entrypoints=web,websecure'
246251
- 'traefik.http.routers.${STACK}__gateway.middlewares=gzip-compression'
247-
- 'traefik.docker.network=dependencies_{{STACK}}_dependencies_net'
252+
- 'traefik.docker.network=dependencies_internal_net'
248253
- 'traefik.http.middlewares.${STACK}__gateway.headers.customresponseheaders.Pragma=no-cache'
249254
- 'traefik.http.middlewares.${STACK}__gateway.headers.customresponseheaders.Cache-control=no-store'
250255
- 'traefik.http.middlewares.${STACK}__gateway.headers.customresponseheaders.X-Robots-Tag=none'
@@ -253,8 +258,9 @@ services:
253258
- 'traefik.http.middlewares.${STACK}__gateway.headers.stspreload=true'
254259
replicas: 1
255260
networks:
256-
- {{STACK}}_app_net
257-
- dependencies_{{STACK}}_dependencies_net
261+
{{STACK}}_app_net:
262+
dependencies_internal_net:
263+
aliases: []
258264
logging:
259265
driver: gelf
260266
options:
@@ -288,8 +294,9 @@ services:
288294
- 'traefik.enable=false'
289295
replicas: 1
290296
networks:
291-
- {{STACK}}_app_net
292-
- dependencies_{{STACK}}_dependencies_net
297+
{{STACK}}_app_net:
298+
dependencies_internal_net:
299+
aliases: []
293300
logging:
294301
driver: gelf
295302
options:
@@ -318,8 +325,9 @@ services:
318325
- 'traefik.enable=false'
319326
replicas: 1
320327
networks:
321-
- {{STACK}}_app_net
322-
- dependencies_{{STACK}}_dependencies_net
328+
{{STACK}}_app_net:
329+
dependencies_internal_net:
330+
aliases: []
323331
logging:
324332
driver: gelf
325333
options:
@@ -342,8 +350,9 @@ services:
342350
volumes:
343351
- '/opt/opencrvs/infrastructure/elasticsearch:/usr/app'
344352
networks:
345-
- {{STACK}}_app_net
346-
- dependencies_{{STACK}}_dependencies_net
353+
{{STACK}}_app_net:
354+
dependencies_internal_net:
355+
aliases: []
347356
deploy:
348357
labels:
349358
- 'traefik.enable=false'
@@ -390,8 +399,9 @@ services:
390399
- 'traefik.enable=false'
391400
replicas: 1
392401
networks:
393-
- {{STACK}}_app_net
394-
- dependencies_{{STACK}}_dependencies_net
402+
{{STACK}}_app_net:
403+
dependencies_internal_net:
404+
aliases: []
395405
logging:
396406
driver: gelf
397407
options:
@@ -431,7 +441,7 @@ services:
431441
- 'traefik.http.routers.${STACK}__auth.tls.domains[0].main=${STACK}.{{hostname}}'
432442
- 'traefik.http.routers.${STACK}__auth.tls.domains[0].sans=*.${STACK}.{{hostname}}'
433443
- 'traefik.http.routers.${STACK}__auth.entrypoints=web,websecure'
434-
- 'traefik.docker.network=dependencies_{{STACK}}_dependencies_net'
444+
- 'traefik.docker.network=dependencies_internal_net'
435445
- 'traefik.http.middlewares.${STACK}__auth.headers.customresponseheaders.Pragma=no-cache'
436446
- 'traefik.http.middlewares.${STACK}__auth.headers.customresponseheaders.Cache-control=no-store'
437447
- 'traefik.http.middlewares.${STACK}__auth.headers.customresponseheaders.X-Robots-Tag=none'
@@ -440,8 +450,9 @@ services:
440450
- 'traefik.http.middlewares.${STACK}__auth.headers.stspreload=true'
441451
replicas: 1
442452
networks:
443-
- {{STACK}}_app_net
444-
- dependencies_{{STACK}}_dependencies_net
453+
{{STACK}}_app_net:
454+
dependencies_internal_net:
455+
aliases: []
445456
logging:
446457
driver: gelf
447458
options:
@@ -471,8 +482,9 @@ services:
471482
- 'traefik.enable=false'
472483
replicas: 1
473484
networks:
474-
- {{STACK}}_app_net
475-
- dependencies_{{STACK}}_dependencies_net
485+
{{STACK}}_app_net:
486+
dependencies_internal_net:
487+
aliases: []
476488
logging:
477489
driver: gelf
478490
options:
@@ -506,7 +518,7 @@ services:
506518
- 'traefik.http.routers.${STACK}__webhooks.tls.domains[0].main=${STACK}.{{hostname}}'
507519
- 'traefik.http.routers.${STACK}__webhooks.tls.domains[0].sans=*.${STACK}.{{hostname}}'
508520
- 'traefik.http.routers.${STACK}__webhooks.entrypoints=web,websecure'
509-
- 'traefik.docker.network=dependencies_{{STACK}}_dependencies_net'
521+
- 'traefik.docker.network=dependencies_internal_net'
510522
- 'traefik.http.middlewares.${STACK}__webhooks.headers.customresponseheaders.Pragma=no-cache'
511523
- 'traefik.http.middlewares.${STACK}__webhooks.headers.customresponseheaders.Cache-control=no-store'
512524
- 'traefik.http.middlewares.${STACK}__webhooks.headers.customresponseheaders.X-Robots-Tag=none'
@@ -515,8 +527,9 @@ services:
515527
- 'traefik.http.middlewares.${STACK}__webhooks.headers.stspreload=true'
516528
replicas: 1
517529
networks:
518-
- {{STACK}}_app_net
519-
- dependencies_{{STACK}}_dependencies_net
530+
{{STACK}}_app_net:
531+
dependencies_internal_net:
532+
aliases: []
520533
logging:
521534
driver: gelf
522535
options:
@@ -557,7 +570,7 @@ services:
557570
- 'traefik.http.routers.${STACK}__config.tls.domains[0].main=${STACK}.{{hostname}}'
558571
- 'traefik.http.routers.${STACK}__config.tls.domains[0].sans=*.${STACK}.{{hostname}}'
559572
- 'traefik.http.routers.${STACK}__config.entrypoints=web,websecure'
560-
- 'traefik.docker.network=dependencies_{{STACK}}_dependencies_net'
573+
- 'traefik.docker.network=dependencies_internal_net'
561574
- 'traefik.http.middlewares.${STACK}__config.headers.customresponseheaders.Pragma=no-cache'
562575
- 'traefik.http.middlewares.${STACK}__config.headers.customresponseheaders.Cache-control=no-store'
563576
- 'traefik.http.middlewares.${STACK}__config.headers.customresponseheaders.X-Robots-Tag=none'
@@ -569,8 +582,9 @@ services:
569582
- 'traefik.http.routers.${STACK}__block-dashboard-queries.middlewares=${STACK}__block-internal-routes'
570583
replicas: 1
571584
networks:
572-
- {{STACK}}_app_net
573-
- dependencies_{{STACK}}_dependencies_net
585+
{{STACK}}_app_net:
586+
dependencies_internal_net:
587+
aliases: []
574588
logging:
575589
driver: gelf
576590
options:
@@ -599,8 +613,9 @@ services:
599613
- MINIO_BUCKET=${STACK}--ocrvs
600614
- COUNTRY_CONFIG_URL=http://countryconfig.{{STACK}}_{{STACK}}_app_net:3040
601615
networks:
602-
- {{STACK}}_app_net
603-
- dependencies_{{STACK}}_dependencies_net
616+
{{STACK}}_app_net:
617+
dependencies_internal_net:
618+
aliases: []
604619
logging:
605620
driver: gelf
606621
options:
@@ -618,8 +633,9 @@ services:
618633
labels:
619634
- 'traefik.enable=false'
620635
networks:
621-
- {{STACK}}_app_net
622-
- dependencies_{{STACK}}_dependencies_net
636+
{{STACK}}_app_net:
637+
dependencies_internal_net:
638+
aliases: []
623639
logging:
624640
driver: gelf
625641
options:
@@ -658,8 +674,9 @@ services:
658674
restart_policy:
659675
condition: on-failure
660676
networks:
661-
- {{STACK}}_app_net
662-
- dependencies_{{STACK}}_dependencies_net
677+
{{STACK}}_app_net:
678+
dependencies_internal_net:
679+
aliases: []
663680
logging:
664681
driver: gelf
665682
options:
@@ -693,8 +710,9 @@ services:
693710
- WEBHOOKS_MONGODB_PASSWORD=${WEBHOOKS_MONGODB_PASSWORD}
694711
- NOTIFICATION_MONGODB_PASSWORD=${NOTIFICATION_MONGODB_PASSWORD}
695712
networks:
696-
- {{STACK}}_app_net
697-
- dependencies_{{STACK}}_dependencies_net
713+
{{STACK}}_app_net:
714+
dependencies_internal_net:
715+
aliases: []
698716
logging:
699717
driver: gelf
700718
options:
@@ -708,8 +726,9 @@ services:
708726
# Exceed Docker config file 500 kb file limit, thus a volume mount
709727
- /opt/opencrvs/infrastructure/metabase/metabase.init.db.sql:/metabase.init.db.sql
710728
networks:
711-
- {{STACK}}_app_net
712-
- dependencies_{{STACK}}_dependencies_net
729+
{{STACK}}_app_net:
730+
dependencies_internal_net:
731+
aliases: []
713732
environment:
714733
- QA_ENV=true
715734
- HOST=0.0.0.0
@@ -737,7 +756,7 @@ services:
737756
- 'traefik.http.routers.${STACK}__metabase.tls.domains[0].main=${STACK}.{{hostname}}'
738757
- 'traefik.http.routers.${STACK}__metabase.tls.domains[0].sans=*.${STACK}.{{hostname}}'
739758
- 'traefik.http.routers.${STACK}__metabase.entrypoints=web,websecure'
740-
- 'traefik.docker.network=dependencies_{{STACK}}_dependencies_net'
759+
- 'traefik.docker.network=dependencies_internal_net'
741760
- 'traefik.http.middlewares.${STACK}__metabase.headers.customresponseheaders.Pragma=no-cache'
742761
- 'traefik.http.middlewares.${STACK}__metabase.headers.customresponseheaders.Cache-control=no-store'
743762
- 'traefik.http.middlewares.${STACK}__metabase.headers.customresponseheaders.X-Robots-Tag=none'
@@ -761,7 +780,7 @@ configs:
761780
mongo-on-deploy.{{ts}}:
762781
file: /opt/opencrvs/infrastructure/mongodb/on-deploy.sh
763782
networks:
764-
dependencies_{{STACK}}_dependencies_net:
783+
dependencies_internal_net:
765784
external: true
766785
{{STACK}}_app_net:
767786
driver: overlay

0 commit comments

Comments
 (0)