Skip to content

Commit 0792d8a

Browse files
authored
♻️ traefik: configuration via environment variables ⚠️ (#8572)
1 parent 8679c75 commit 0792d8a

File tree

2 files changed

+41
-38
lines changed

2 files changed

+41
-38
lines changed

services/docker-compose.local.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ services:
283283
- traefik.enable=true
284284
- traefik.http.routers.${SWARM_STACK_NAME}_api_internal.service=api@internal
285285
- traefik.http.routers.${SWARM_STACK_NAME}_api_internal.rule=PathPrefix(`/dashboard`) || PathPrefix(`/api`)
286-
- traefik.http.routers.${SWARM_STACK_NAME}_api_internal.entrypoints=traefik_monitor
286+
- traefik.http.routers.${SWARM_STACK_NAME}_api_internal.entrypoints=traefikmonitor
287287
- traefik.http.routers.${SWARM_STACK_NAME}_api_internal.middlewares=${SWARM_STACK_NAME}_gzip@swarm
288288
- traefik.http.services.${SWARM_STACK_NAME}_api_internal.loadbalancer.server.port=8080
289289

@@ -297,5 +297,5 @@ services:
297297
- traefik.enable=true
298298
- traefik.http.services.${SWARM_STACK_NAME}_whoami.loadbalancer.server.port=80
299299
- traefik.http.routers.${SWARM_STACK_NAME}_whoami.rule=PathPrefix(`/whoami`)
300-
- traefik.http.routers.${SWARM_STACK_NAME}_whoami.entrypoints=traefik_monitor
300+
- traefik.http.routers.${SWARM_STACK_NAME}_whoami.entrypoints=traefikmonitor
301301
- traefik.http.routers.${SWARM_STACK_NAME}_whoami.middlewares=${SWARM_STACK_NAME}_gzip@swarm

services/docker-compose.yml

Lines changed: 39 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ services:
147147
- traefik.http.services.${SWARM_STACK_NAME}_api-server.loadbalancer.healthcheck.timeout=1000ms
148148
# NOTE: keep in sync with fallback router (rule and entrypoint)
149149
- traefik.http.routers.${SWARM_STACK_NAME}_api-server.rule=(Path(`/`) || Path(`/v0`) || PathPrefix(`/v0/`) || Path(`/api/v0/openapi.json`))
150-
- traefik.http.routers.${SWARM_STACK_NAME}_api-server.entrypoints=simcore_api
150+
- traefik.http.routers.${SWARM_STACK_NAME}_api-server.entrypoints=simcoreapi
151151
- traefik.http.routers.${SWARM_STACK_NAME}_api-server.priority=3
152152
- 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
153153
networks: &api_server_networks
@@ -1400,40 +1400,43 @@ services:
14001400
image: "traefik:v3.5.2@sha256:07ff0c6c2114233b82e1de8e9f4fee9974470cd8d42c22e4e158538d950e19ae"
14011401
init: true
14021402
hostname: "{{.Node.Hostname}}-{{.Task.Slot}}"
1403-
command:
1404-
- "--api=true"
1405-
- "--api.dashboard=true"
1406-
- "--ping=true"
1407-
- "--entryPoints.ping.address=:9082"
1408-
- "--ping.entryPoint=ping"
1409-
- "--log.level=WARN" # WARN, not WARNING
1410-
- "--accesslog=false"
1411-
- "--metrics.prometheus=true"
1412-
- "--metrics.prometheus.addEntryPointsLabels=true"
1413-
- "--metrics.prometheus.addServicesLabels=true"
1414-
- "--entryPoints.metrics.address=:8082"
1415-
- "--metrics.prometheus.entryPoint=metrics"
1416-
- "--entryPoints.http.address=:80"
1417-
- "--entryPoints.http.forwardedHeaders.insecure"
1418-
- "--entryPoints.http.transport.respondingTimeouts.readTimeout=21600s" #6h, for https://github.com/traefik/traefik/issues/10805 large file uploads
1419-
- "--entryPoints.http.transport.respondingTimeouts.writeTimeout=21600s" #6h, for https://github.com/traefik/traefik/issues/10805 large file downloads
1420-
- "--entryPoints.simcore_api.address=:10081"
1421-
- "--entryPoints.simcore_api.forwardedHeaders.insecure"
1422-
- "--entryPoints.simcore_api.transport.respondingTimeouts.readTimeout=21600s" #6h, for https://github.com/traefik/traefik/issues/10805 large file uploads
1423-
- "--entryPoints.simcore_api.transport.respondingTimeouts.writeTimeout=21600s" #6h, for https://github.com/traefik/traefik/issues/10805 large file downloads
1424-
- "--entryPoints.traefik_monitor.address=:8080"
1425-
- "--entryPoints.traefik_monitor.forwardedHeaders.insecure"
1426-
- "--providers.swarm.endpoint=unix:///var/run/docker.sock"
1427-
- "--providers.swarm.network=${SWARM_STACK_NAME}_default"
1428-
# https://github.com/traefik/traefik/issues/7886
1429-
- "--providers.swarm.refreshSeconds=1"
1430-
- "--providers.swarm.exposedByDefault=false"
1431-
- "--providers.swarm.constraints=Label(`io.simcore.zone`, `${TRAEFIK_SIMCORE_ZONE}`)"
1432-
- "--tracing"
1433-
- "--tracing.addinternals"
1434-
- "--tracing.otlp=true"
1435-
- "--tracing.otlp.http=true"
1436-
- "--tracing.sampleRate=${TRACING_OPENTELEMETRY_SAMPLING_PROBABILITY}"
1403+
# https://github.com/traefik/traefik/blob/v3.5.2/docs/content/reference/static-configuration/env-ref.md
1404+
environment:
1405+
TRAEFIK_API: "true"
1406+
TRAEFIK_API_DASHBOARD: "true"
1407+
TRAEFIK_PING: "true"
1408+
TRAEFIK_ENTRYPOINTS_PING_ADDRESS: ":9082"
1409+
TRAEFIK_PING_ENTRYPOINT: "ping"
1410+
TRAEFIK_LOG_LEVEL: "WARN"
1411+
TRAEFIK_ACCESSLOG: "false"
1412+
TRAEFIK_ACCESSLOG_FORMAT: "json"
1413+
TRAEFIK_METRICS_PROMETHEUS: "true"
1414+
TRAEFIK_METRICS_PROMETHEUS_ADDENTRYPOINTSLABELS: "true"
1415+
TRAEFIK_METRICS_PROMETHEUS_ADDSERVICESLABELS: "true"
1416+
TRAEFIK_ENTRYPOINTS_METRICS_ADDRESS: ":8082"
1417+
TRAEFIK_METRICS_PROMETHEUS_ENTRYPOINT: "metrics"
1418+
TRAEFIK_ENTRYPOINTS_HTTP_ADDRESS: ":80"
1419+
TRAEFIK_ENTRYPOINTS_HTTP_FORWARDEDHEADERS_INSECURE: "true"
1420+
# 6h, for https://github.com/traefik/traefik/issues/10805 large file uploads
1421+
TRAEFIK_ENTRYPOINTS_HTTP_TRANSPORT_RESPONDINGTIMEOUTS_READTIMEOUT: "21600s"
1422+
# 6h, for https://github.com/traefik/traefik/issues/10805 large file downloads
1423+
TRAEFIK_ENTRYPOINTS_HTTP_TRANSPORT_RESPONDINGTIMEOUTS_WRITETIMEOUT: "21600s"
1424+
TRAEFIK_ENTRYPOINTS_SIMCOREAPI_ADDRESS: ":10081"
1425+
TRAEFIK_ENTRYPOINTS_SIMCOREAPI_FORWARDEDHEADERS_INSECURE: "true"
1426+
TRAEFIK_ENTRYPOINTS_SIMCOREAPI_TRANSPORT_RESPONDINGTIMEOUTS_READTIMEOUT: "21600s"
1427+
TRAEFIK_ENTRYPOINTS_SIMCOREAPI_TRANSPORT_RESPONDINGTIMEOUTS_WRITETIMEOUT: "21600s"
1428+
TRAEFIK_ENTRYPOINTS_TRAEFIKMONITOR_ADDRESS: ":8080"
1429+
TRAEFIK_ENTRYPOINTS_TRAEFIKMONITOR_FORWARDEDHEADERS_INSECURE: "true"
1430+
TRAEFIK_PROVIDERS_SWARM_ENDPOINT: "unix:///var/run/docker.sock"
1431+
TRAEFIK_PROVIDERS_SWARM_NETWORK: "${SWARM_STACK_NAME}_default"
1432+
TRAEFIK_PROVIDERS_SWARM_REFRESHSECONDS: "1" # https://github.com/traefik/traefik/issues/7886
1433+
TRAEFIK_PROVIDERS_SWARM_EXPOSEDBYDEFAULT: "false"
1434+
TRAEFIK_PROVIDERS_SWARM_CONSTRAINTS: "Label(`io.simcore.zone`, `${TRAEFIK_SIMCORE_ZONE}`)"
1435+
TRAEFIK_TRACING: "true"
1436+
TRAEFIK_TRACING_ADDINTERNALS: "true"
1437+
TRAEFIK_TRACING_OTLP: "true"
1438+
TRAEFIK_TRACING_OTLP_HTTP: "true"
1439+
TRAEFIK_TRACING_SAMPLERATE: "${TRACING_OPENTELEMETRY_SAMPLING_PROBABILITY}"
14371440
healthcheck:
14381441
# NOTE: this healthcheck to check if traefik is up and running must be run on the ping entrypoint defined in command!
14391442
test: traefik healthcheck --ping --ping.entryPoint=ping --entryPoints.ping.address=:9082
@@ -1487,7 +1490,7 @@ services:
14871490
### Fallback for api-server
14881491
- traefik.http.routers.${SWARM_STACK_NAME}_api-server_fallback.rule=(Path(`/`) || Path(`/v0`) || PathPrefix(`/v0/`) || Path(`/api/v0/openapi.json`))
14891492
- traefik.http.routers.${SWARM_STACK_NAME}_api-server_fallback.service=${SWARM_STACK_NAME}_api-server_fallback
1490-
- traefik.http.routers.${SWARM_STACK_NAME}_api-server_fallback.entrypoints=simcore_api
1493+
- traefik.http.routers.${SWARM_STACK_NAME}_api-server_fallback.entrypoints=simcoreapi
14911494
- traefik.http.routers.${SWARM_STACK_NAME}_api-server_fallback.priority=1
14921495
# always fail and return 503 via unhealthy loadbalancer healthcheck
14931496
- traefik.http.services.${SWARM_STACK_NAME}_api-server_fallback.loadbalancer.server.port=0 # port is required (otherwise traefik service is not created)

0 commit comments

Comments
 (0)