@@ -53,10 +53,10 @@ services:
53
53
- traefik.http.services.${SWARM_STACK_NAME}_api-server.loadbalancer.healthcheck.path=/
54
54
- traefik.http.services.${SWARM_STACK_NAME}_api-server.loadbalancer.healthcheck.interval=2000ms
55
55
- traefik.http.services.${SWARM_STACK_NAME}_api-server.loadbalancer.healthcheck.timeout=1000ms
56
- - traefik.http.routers.${SWARM_STACK_NAME}_api-server.rule=(Path(`/ `) || Path(`/v0`) || PathPrefix(`/v0/`) || Path(`/api/v0/openapi.json`))
56
+ - traefik.http.routers.${SWARM_STACK_NAME}_api-server.rule=hostregexp(`{host:.+} `) && ( Path(`/`, `/v0`) || PathPrefix(`/v0/`) || Path(`/api/v0/openapi.json`))
57
57
- traefik.http.routers.${SWARM_STACK_NAME}_api-server.entrypoints=simcore_api
58
58
- traefik.http.routers.${SWARM_STACK_NAME}_api-server.priority=1
59
- - traefik.http.routers.${SWARM_STACK_NAME}_api-server.middlewares=${SWARM_STACK_NAME}_gzip@swarm ,ratelimit-${SWARM_STACK_NAME}_api-server,inflightreq-${SWARM_STACK_NAME}_api-server
59
+ - traefik.http.routers.${SWARM_STACK_NAME}_api-server.middlewares=${SWARM_STACK_NAME}_gzip@docker ,ratelimit-${SWARM_STACK_NAME}_api-server,inflightreq-${SWARM_STACK_NAME}_api-server
60
60
networks :
61
61
- default
62
62
@@ -517,16 +517,16 @@ services:
517
517
- traefik.http.services.${SWARM_STACK_NAME}_static_webserver.loadbalancer.healthcheck.interval=2000ms
518
518
- traefik.http.services.${SWARM_STACK_NAME}_static_webserver.loadbalancer.healthcheck.timeout=1000ms
519
519
- traefik.http.middlewares.${SWARM_STACK_NAME}_static_webserver_retry.retry.attempts=2
520
- - traefik.http.routers.${SWARM_STACK_NAME}_static_webserver.rule=(Path(`/osparc `) || Path(`/s4l`) || Path( `/s4llite`) || Path( `/s4lacad`) || Path( `/s4lengine`) || Path( `/s4ldesktop`) || Path( `/s4ldesktopacad`) || Path( `/tis`) || Path( `/transpiled`) || Path( `/resource`) || PathPrefix(`/osparc/`) || PathPrefix( `/s4l/`) || PathPrefix( `/s4llite/`) || PathPrefix( `/s4lacad/`) || PathPrefix( `/s4lengine/`) || PathPrefix( `/s4ldesktop/`) || PathPrefix( `/s4ldesktopacad/`) || PathPrefix( `/tis/`) || PathPrefix( `/transpiled/`) || PathPrefix( `/resource/`))
520
+ - traefik.http.routers.${SWARM_STACK_NAME}_static_webserver.rule=hostregexp(`{host:.+} `) && ( Path(`/osparc`,`/ s4l`, `/s4llite`, `/s4lacad`, `/s4lengine`, `/s4ldesktop`, `/s4ldesktopacad`, `/tis`, `/transpiled`, `/resource`) || PathPrefix(`/osparc/`, `/s4l/`, `/s4llite/`, `/s4lacad/`, `/s4lengine/`, `/s4ldesktop/`, `/s4ldesktopacad/`, `/tis/`, `/transpiled/`, `/resource/`))
521
521
- traefik.http.routers.${SWARM_STACK_NAME}_static_webserver.service=${SWARM_STACK_NAME}_static_webserver
522
522
- traefik.http.routers.${SWARM_STACK_NAME}_static_webserver.entrypoints=http
523
523
- traefik.http.routers.${SWARM_STACK_NAME}_static_webserver.priority=2
524
- - traefik.http.routers.${SWARM_STACK_NAME}_static_webserver.middlewares=${SWARM_STACK_NAME}_gzip@swarm ,${SWARM_STACK_NAME}_static_webserver_retry
524
+ - traefik.http.routers.${SWARM_STACK_NAME}_static_webserver.middlewares=${SWARM_STACK_NAME}_gzip@docker ,${SWARM_STACK_NAME}_static_webserver_retry
525
525
# catchall for legacy services (this happens if a backend disappears and a frontend tries to reconnect, the right return value is a 503)
526
526
- traefik.http.routers.${SWARM_STACK_NAME}_legacy_services_catchall.service=${SWARM_STACK_NAME}_legacy_services_catchall
527
527
- traefik.http.routers.${SWARM_STACK_NAME}_legacy_services_catchall.priority=1
528
528
- traefik.http.routers.${SWARM_STACK_NAME}_legacy_services_catchall.entrypoints=http
529
- - traefik.http.routers.${SWARM_STACK_NAME}_legacy_services_catchall.rule=(Path(`/x/{node_uuid:\b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b}`) || PathPrefix(`/x/{node_uuid:\b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b}/`))
529
+ - traefik.http.routers.${SWARM_STACK_NAME}_legacy_services_catchall.rule=hostregexp(`{host:.+}`) && (Path(`/x/{node_uuid:\b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b}`) || PathPrefix(`/x/{node_uuid:\b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b}/`))
530
530
# this tricks traefik into a 502 (bad gateway) since the service does not exist on this port
531
531
- traefik.http.services.${SWARM_STACK_NAME}_legacy_services_catchall.loadbalancer.server.port=0
532
532
# this tricks traefik into returning a 503 (service unavailable) since the healthcheck will always return false
@@ -746,10 +746,10 @@ services:
746
746
- traefik.http.services.${SWARM_STACK_NAME}_webserver.loadbalancer.sticky.cookie.secure=true
747
747
- traefik.http.middlewares.${SWARM_STACK_NAME}_webserver_retry.retry.attempts=2
748
748
- traefik.http.routers.${SWARM_STACK_NAME}_webserver.service=${SWARM_STACK_NAME}_webserver
749
- - traefik.http.routers.${SWARM_STACK_NAME}_webserver.rule=(Path(`/ `) || Path(`/v0`) || Path(`/ socket.io/`) || Path( `/static-frontend-data.json`) || Path( `/study/{study_uuid:\b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b}`) || Path( `/view`) || Path( `/#/view`) || Path( `/#/error`) || PathPrefix(`/v0/`))
749
+ - traefik.http.routers.${SWARM_STACK_NAME}_webserver.rule=hostregexp(`{host:.+} `) && ( Path(`/`, `/v0`,`/ socket.io/`, `/static-frontend-data.json`, `/study/{study_uuid:\b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b}`, `/view`, `/#/view`, `/#/error`) || PathPrefix(`/v0/`))
750
750
- traefik.http.routers.${SWARM_STACK_NAME}_webserver.entrypoints=http
751
751
- traefik.http.routers.${SWARM_STACK_NAME}_webserver.priority=2
752
- - traefik.http.routers.${SWARM_STACK_NAME}_webserver.middlewares=${SWARM_STACK_NAME}_gzip@swarm , ${SWARM_STACK_NAME_NO_HYPHEN}_sslheader@swarm , ${SWARM_STACK_NAME}_webserver_retry
752
+ - traefik.http.routers.${SWARM_STACK_NAME}_webserver.middlewares=${SWARM_STACK_NAME}_gzip@docker , ${SWARM_STACK_NAME_NO_HYPHEN}_sslheader@docker , ${SWARM_STACK_NAME}_webserver_retry
753
753
networks : &webserver_networks
754
754
- default
755
755
- interactive_services_subnet
@@ -1160,7 +1160,7 @@ services:
1160
1160
retries : 50
1161
1161
1162
1162
traefik :
1163
- image : " traefik:v3.1.2 @sha256:ec1a82940b8e00eaeef33fb4113aa1d1573b2ebb6440e10c023743fe96f08475 "
1163
+ image : " traefik:v2.9.8 @sha256:553239e27c4614d0477651415205b9b119f7a98f698e6562ef383c9d8ff3b6e6 "
1164
1164
init : true
1165
1165
hostname : " {{.Node.Hostname}}-{{.Task.Slot}}"
1166
1166
command :
@@ -1169,7 +1169,7 @@ services:
1169
1169
- " --ping=true"
1170
1170
- " --entryPoints.ping.address=:9082"
1171
1171
- " --ping.entryPoint=ping"
1172
- - " --log.level=WARN " # WARN, not WARNING
1172
+ - " --log.level=WARNING"
1173
1173
- " --accesslog=false"
1174
1174
- " --metrics.prometheus=true"
1175
1175
- " --metrics.prometheus.addEntryPointsLabels=true"
@@ -1182,18 +1182,17 @@ services:
1182
1182
- " --entryPoints.simcore_api.forwardedHeaders.insecure"
1183
1183
- " --entryPoints.traefik_monitor.address=:8080"
1184
1184
- " --entryPoints.traefik_monitor.forwardedHeaders.insecure"
1185
- - " --providers.swarm.endpoint=unix:///var/run/docker.sock"
1186
- - " --providers.swarm.network=${SWARM_STACK_NAME}_default"
1185
+ - " --providers.docker.endpoint=unix:///var/run/docker.sock"
1186
+ - " --providers.docker.network=${SWARM_STACK_NAME}_default"
1187
+ - " --providers.docker.swarmMode=true"
1187
1188
# https://github.com/traefik/traefik/issues/7886
1188
- - " --providers.swarm.refreshSeconds=1"
1189
- - " --providers.swarm.exposedByDefault=false"
1190
- - " --providers.swarm.constraints=Label(`io.simcore.zone`, `${TRAEFIK_SIMCORE_ZONE}`)"
1191
- - " --core.defaultRuleSyntax=v2"
1192
- - " --tracing"
1193
- - " --tracing.addinternals"
1194
- - " --tracing.otlp=true"
1195
- - " --tracing.otlp.http=true"
1196
- # - "--tracing.otlp.http.endpoint=0.0.0.0:4318/v1/traces"
1189
+ - " --providers.docker.swarmModeRefreshSeconds=1"
1190
+ - " --providers.docker.exposedByDefault=false"
1191
+ - " --providers.docker.constraints=Label(`io.simcore.zone`, `${TRAEFIK_SIMCORE_ZONE}`)"
1192
+ - " --tracing=true"
1193
+ - " --tracing.jaeger=true"
1194
+ - " --tracing.jaeger.samplingServerURL=http://jaeger:5778/sampling"
1195
+ - " --tracing.jaeger.localAgentHostPort=jaeger:6831"
1197
1196
volumes :
1198
1197
# So that Traefik can listen to the Docker events
1199
1198
- /var/run/docker.sock:/var/run/docker.sock
0 commit comments