Skip to content

Commit eec78aa

Browse files
authored
Merge pull request #291 from jembi/CU-86by26xnx_Add-a-new-package-for-Traefik-as-a-reverse-proxy
Cu 86by26xnx add a new package for traefik as a reverse proxy
2 parents c62d307 + 3f21567 commit eec78aa

File tree

28 files changed

+516
-17
lines changed

28 files changed

+516
-17
lines changed

.env.cluster

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ SUBDOMAINS=openhimcomms.domain,openhimcore.domain,openhimconsole.domain,kibana.d
3737
STAGING=true
3838
INSECURE=false
3939

40+
# Reverse Proxy - Traefik
41+
DOMAIN_NAME_HOST_TRAEFIK=domain
42+
4043
# Analytics Datastore - Elastic Search
4144
ES_HEAP_SIZE=-Xms8192m -Xmx8192m
4245
ES_LEADER_NODE=analytics-datastore-elastic-search-01

.env.local

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,8 @@ JS_REPORT_PACKAGE_PATH=
2424
# !NOTE: Topics should comma seperated, optional include partion and repliction values
2525
# e.g. <topic>:<partions>:<replicationFactor> -> test:3:2 (defaults to <topics>:3:1)
2626
# KAFKA_TOPICS=2xx,reprocess,3xx,metrics:3:1
27+
28+
# Reverse Proxy - Traefik
29+
PLACEMENT_ROLE_CONSTRAINTS=manager
30+
ENABLE_TRAEFIK_DASHBOARD=true
31+
DOMAIN_NAME_HOST_TRAEFIK=domain

client-registry-jempi/docker-compose.api.yml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version: '3.9'
1+
version: "3.9"
22

33
services:
44
jempi-api:
@@ -24,6 +24,12 @@ services:
2424
- "jempi-shared-data:/app/csv"
2525
deploy:
2626
replicas: ${JEMPI_API_INSTANCES}
27+
labels:
28+
- traefik.enable=true
29+
- traefik.docker.network=reverse-proxy-traefik_public
30+
- traefik.http.routers.jempi-api.service=jempi-api
31+
- traefik.http.services.jempi-api.loadbalancer.server.port=50000
32+
- traefik.http.routers.jempi-api.rule=Host(`${JEMPI_API_TRAEFIK_SUBDOMAIN}.${DOMAIN_NAME_HOST_TRAEFIK}`)
2733
resources:
2834
limits:
2935
memory: ${JEMPI_API_MEMORY_LIMIT}
@@ -32,11 +38,11 @@ services:
3238
networks:
3339
reverse-proxy:
3440
kafka:
41+
traefik:
3542
default:
3643
jempi:
3744
postgres:
3845

39-
4046
jempi-api-kc:
4147
image: jembi/jempi-api-kc:${JEMPI_API_KC_IMAGE_TAG}
4248
environment:
@@ -78,19 +84,21 @@ services:
7884
networks:
7985
reverse-proxy:
8086
kafka:
87+
traefik:
8188
default:
8289
jempi:
8390
postgres:
8491

85-
8692
volumes:
8793
jempi-shared-data:
8894

89-
9095
networks:
9196
reverse-proxy:
9297
name: reverse-proxy_public
9398
external: true
99+
traefik:
100+
name: reverse-proxy-traefik_public
101+
external: true
94102
jempi:
95103
name: jempi_public
96104
external: true

client-registry-jempi/docker-compose.web.yml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version: '3.9'
1+
version: "3.9"
22

33
services:
44
jempi-web:
@@ -15,6 +15,12 @@ services:
1515
REACT_APP_SHOW_BRAND_LOGO: "false"
1616
deploy:
1717
replicas: ${JEMPI_WEB_INSTANCES}
18+
labels:
19+
- traefik.enable=true
20+
- traefik.docker.network=reverse-proxy-traefik_public
21+
- traefik.http.routers.jempi-web.service=jempi-web
22+
- traefik.http.services.jempi-web.loadbalancer.server.port=3000
23+
- traefik.http.routers.jempi-web.rule=Host(`${JEMPI_WEB_TRAEFIK_SUBDOMAIN}.${DOMAIN_NAME_HOST_TRAEFIK}`)
1824
placement:
1925
max_replicas_per_node: 1
2026
resources:
@@ -24,14 +30,17 @@ services:
2430
memory: ${JEMPI_WEB_MEMORY_RESERVE}
2531
networks:
2632
reverse-proxy:
33+
traefik:
2734
keycloak:
2835
default:
2936

30-
3137
networks:
3238
reverse-proxy:
3339
name: reverse-proxy_public
3440
external: true
41+
traefik:
42+
name: reverse-proxy-traefik_public
43+
external: true
3544
keycloak:
3645
name: keycloak_public
3746
external: true

client-registry-jempi/package-metadata.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,9 @@
9595
"KAFKA_APPLICATION_ID_CTRL": "app-id-ctrl",
9696
"KAFKA_CLIENT_ID_CTRL": "client-id-ctrl",
9797
"KAFKA_APPLICATION_ID_BOOTSTRAPPER": "app-id-bootstrapper",
98-
"JEMPI_BOOTSTRAPPER_IMAGE_TAG": "1.0.1-beta"
98+
"JEMPI_BOOTSTRAPPER_IMAGE_TAG": "1.0.1-beta",
99+
"JEMPI_API_KC_TRAEFIK_SUBDOMAIN": "jempi-api-kc",
100+
"JEMPI_API_TRAEFIK_SUBDOMAIN": "jempi-api",
101+
"JEMPI_WEB_TRAEFIK_SUBDOMAIN": "jempi-web"
99102
}
100103
}

client-registry-santempi/docker-compose.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ services:
77
mpi:
88
public:
99
reverse-proxy:
10+
traefik:
1011
default:
1112
postgres:
1213
environment:
@@ -23,14 +24,28 @@ services:
2324
- SDB_DELAY_START=5000
2425
deploy:
2526
replicas: ${SANTEMPI_INSTANCES}
27+
labels:
28+
- traefik.enable=true
29+
- traefik.docker.network=reverse-proxy-traefik_public
30+
- traefik.http.routers.santedb-mpi.service=santedb-mpi
31+
- traefik.http.services.santedb-mpi.loadbalancer.server.port=8080
32+
- traefik.http.routers.santedb-mpi.rule=Host(`${SANTEDB_MPI_TRAEFIK_SUBDOMAIN}.${DOMAIN_NAME_HOST_TRAEFIK}`)
2633
volumes:
2734
- santedb-data:/santedb
2835

2936
santedb-www:
3037
image: ${SANTEDB_WWW_IMAGE}
38+
deploy:
39+
labels:
40+
- traefik.enable=true
41+
- traefik.docker.network=reverse-proxy-traefik_public
42+
- traefik.http.routers.santedb-www.service=santedb-www
43+
- traefik.http.services.santedb-www.loadbalancer.server.port=9200
44+
- traefik.http.routers.santedb-www.rule=Host(`${SANTEDB_WWW_TRAEFIK_SUBDOMAIN}.${DOMAIN_NAME_HOST_TRAEFIK}`)
3145
networks:
3246
default:
3347
reverse-proxy:
48+
traefik:
3449

3550
# Sante's Match configuration is stored in the container. This will prevent the matching rules of the client registry from being lost. A docker config cannot be used for this case as the settings can be changed on Sante's UI.
3651
volumes:
@@ -46,6 +61,9 @@ networks:
4661
reverse-proxy:
4762
name: reverse-proxy_public
4863
external: true
64+
traefik:
65+
name: reverse-proxy-traefik_public
66+
external: true
4967
default:
5068
postgres:
5169
name: postgres_public

client-registry-santempi/package-metadata.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
"dependencies": ["database-postgres"],
88
"environmentVariables": {
99
"SANTEMPI_INSTANCES": "1",
10+
"POSTGRESQL_PASSWORD": "instant101",
11+
"POSTGRESQL_USERNAME": "postgres",
12+
"SANTEMPI_DB_REP_SET": "postgres-1",
1013
"SANTE_POSTGRES_PASSWORD": "postgres",
1114
"SANTEMPI_POSTGRESQL_PASSWORD": "SanteDB123",
1215
"SANTEMPI_POSTGRESQL_USERNAME": "santedb",
@@ -17,6 +20,8 @@
1720
"SANTEMPI_PSQL_IMAGE": "bitnami/postgresql-repmgr:14",
1821
"PSQL_1_PLACEMENT": "node-1",
1922
"PSQL_2_PLACEMENT": "node-2",
20-
"PSQL_3_PLACEMENT": "node-3"
23+
"PSQL_3_PLACEMENT": "node-3",
24+
"SANTEDB_WWW_TRAEFIK_SUBDOMAIN": "santewww-health.org",
25+
"SANTEDB_MPI_TRAEFIK_SUBDOMAIN": "santempi-health.org"
2126
}
2227
}

config.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ packages:
2323
- client-registry-jempi
2424
- identity-access-manager-keycloak
2525
- openhim-mapping-mediator
26+
- reverse-proxy-traefik
2627
- database-postgres
2728
- reprocess-mediator
2829
- fhir-ig-importer

dashboard-visualiser-jsreport/docker-compose.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,13 @@ services:
1313
placement:
1414
max_replicas_per_node: ${JS_REPORT_MAX_REPLICAS_PER_NODE}
1515
replicas: ${JS_REPORT_INSTANCES}
16+
labels:
17+
- traefik.enable=true
18+
- traefik.docker.network=reverse-proxy-traefik_public
19+
- traefik.http.routers.dashboard-visualiser-jsreport.rule=Host(`${DOMAIN_NAME_HOST_TRAEFIK}`) && PathPrefix(`${JS_REPORT_PATH_PREFIX}`)
20+
- traefik.http.middlewares.jsreport-stripprefix.stripprefix.prefixes=${JS_REPORT_PATH_PREFIX}
21+
- traefik.http.routers.dashboard-visualiser-jsreport.middlewares=jsreport-stripprefix
22+
- traefik.http.services.dashboard-visualiser-jsreport.loadbalancer.server.port=5488
1623
resources:
1724
limits:
1825
cpus: ${JS_REPORT_CPU_LIMIT}
@@ -24,6 +31,7 @@ services:
2431
co.elastic.metrics/module: "docker"
2532
co.elastic.metrics/metricsets: "cpu,memory,diskio,info,healthcheck,container"
2633
environment:
34+
appPath: ${JS_REPORT_PATH_PREFIX}
2735
allowLocalFilesAccess: "true"
2836
extensions_fsStore_dataDirectory: "jsreport/data"
2937
extensions_fsStore_externalModificationsSync: "true"
@@ -37,6 +45,7 @@ services:
3745
- jsreport-data:/jsreport
3846
networks:
3947
reverse-proxy:
48+
traefik:
4049
elastic:
4150
default:
4251

@@ -50,4 +59,7 @@ networks:
5059
elastic:
5160
name: elastic_public
5261
external: true
62+
traefik:
63+
name: reverse-proxy-traefik_public
64+
external: true
5365
default:

dashboard-visualiser-jsreport/package-metadata.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
"JS_REPORT_MEMORY_RESERVE": "500M",
2323
"JS_REPORT_DEV_MOUNT": "false",
2424
"JS_REPORT_PACKAGE_PATH": "",
25-
"JS_REPORT_LICENSE_KEY": ""
25+
"JS_REPORT_LICENSE_KEY": "",
26+
"JS_REPORT_TRAEFIK_HOST_NAME": "reports",
27+
"JS_REPORT_PATH_PREFIX": ""
2628
}
2729
}

0 commit comments

Comments
 (0)