diff --git a/services/director-v2/src/simcore_service_director_v2/modules/dynamic_sidecar/docker_service_specs/proxy.py b/services/director-v2/src/simcore_service_director_v2/modules/dynamic_sidecar/docker_service_specs/proxy.py index 6b3d1afea3d..26f49cb9c84 100644 --- a/services/director-v2/src/simcore_service_director_v2/modules/dynamic_sidecar/docker_service_specs/proxy.py +++ b/services/director-v2/src/simcore_service_director_v2/modules/dynamic_sidecar/docker_service_specs/proxy.py @@ -91,7 +91,7 @@ def get_dynamic_proxy_spec( f"traefik.http.services.{scheduler_data.proxy_service_name}.loadbalancer.server.port": "80", f"traefik.http.routers.{scheduler_data.proxy_service_name}.entrypoints": "http", f"traefik.http.routers.{scheduler_data.proxy_service_name}.priority": "10", - f"traefik.http.routers.{scheduler_data.proxy_service_name}.rule": f"hostregexp(`{scheduler_data.node_uuid}.services.{{host:.+}}`)", + f"traefik.http.routers.{scheduler_data.proxy_service_name}.rule": f"HostRegexp(`{scheduler_data.node_uuid}\\.services\\.`)", f"traefik.http.routers.{scheduler_data.proxy_service_name}.middlewares": f"{dynamic_services_scheduler_settings.SWARM_STACK_NAME}_gzip@swarm, {scheduler_data.proxy_service_name}-security-headers", "dynamic_type": "dynamic-sidecar", # tagged as dynamic service } diff --git a/services/docker-compose.yml b/services/docker-compose.yml index 1127de26abd..a997a164840 100644 --- a/services/docker-compose.yml +++ b/services/docker-compose.yml @@ -541,7 +541,7 @@ services: - traefik.http.routers.${SWARM_STACK_NAME}_modern_services_catchall.priority=3 - traefik.http.routers.${SWARM_STACK_NAME}_modern_services_catchall.entrypoints=http # in theory the pattern should be uuid.services.OSPARC_DOMAIN, but anything could go through.. so let's catch everything - - traefik.http.routers.${SWARM_STACK_NAME}_modern_services_catchall.rule=hostregexp(`{node_uuid:.+}.services.{host:.+}`) + - traefik.http.routers.${SWARM_STACK_NAME}_modern_services_catchall.rule=HostRegexp(`(?i)[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}\.services\.`) # this tricks traefik into a 502 (bad gateway) since the service does not exist on this port - traefik.http.services.${SWARM_STACK_NAME}_modern_services_catchall.loadbalancer.server.port=0 # this tricks traefik into returning a 503 (service unavailable) since the healthcheck will always return false