Skip to content

Commit a71239a

Browse files
authored
šŸ› fixes directorv2: Use wb-auth as forwardauth for dynamic services (ITISFoundation#8139)
1 parent acb9f05 commit a71239a

File tree

4 files changed

+18
-8
lines changed

4 files changed

+18
-8
lines changed

ā€Žservices/director-v2/src/simcore_service_director_v2/core/dynamic_services_settings/__init__.pyā€Ž

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ class DynamicServicesSettings(BaseCustomSettings):
1313
default=True, description="Enables/Disables the dynamic_sidecar submodule"
1414
)
1515

16-
DYNAMIC_SIDECAR: DynamicSidecarSettings = Field(json_schema_extra={"auto_default_from_env": True})
16+
DYNAMIC_SIDECAR: DynamicSidecarSettings = Field(
17+
json_schema_extra={"auto_default_from_env": True}
18+
)
1719

1820
DYNAMIC_SCHEDULER: DynamicServicesSchedulerSettings = Field(
1921
json_schema_extra={"auto_default_from_env": True}
@@ -31,4 +33,6 @@ class DynamicServicesSettings(BaseCustomSettings):
3133
json_schema_extra={"auto_default_from_env": True}
3234
)
3335

34-
WEBSERVER_SETTINGS: WebServerSettings = Field(json_schema_extra={"auto_default_from_env": True})
36+
WEBSERVER_AUTH_SETTINGS: WebServerSettings = Field(
37+
json_schema_extra={"auto_default_from_env": True}
38+
)

ā€Žservices/director-v2/src/simcore_service_director_v2/modules/dynamic_sidecar/docker_service_specs/proxy.pyā€Ž

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ def get_dynamic_proxy_spec(
4848
dynamic_services_scheduler_settings: DynamicServicesSchedulerSettings = (
4949
dynamic_services_settings.DYNAMIC_SCHEDULER
5050
)
51-
webserver_settings: webserver.WebServerSettings = (
52-
dynamic_services_settings.WEBSERVER_SETTINGS
51+
wb_auth_settings: webserver.WebServerSettings = (
52+
dynamic_services_settings.WEBSERVER_AUTH_SETTINGS
5353
)
5454

5555
mounts = [
@@ -99,7 +99,7 @@ def get_dynamic_proxy_spec(
9999
f"traefik.http.middlewares.{scheduler_data.proxy_service_name}-security-headers.headers.accesscontrolmaxage": "100",
100100
f"traefik.http.middlewares.{scheduler_data.proxy_service_name}-security-headers.headers.addvaryheader": "true",
101101
# auth
102-
f"traefik.http.middlewares.{scheduler_data.proxy_service_name}-auth.forwardauth.address": f"{webserver_settings.api_base_url}/auth:check",
102+
f"traefik.http.middlewares.{scheduler_data.proxy_service_name}-auth.forwardauth.address": f"{wb_auth_settings.api_base_url}/auth:check",
103103
f"traefik.http.middlewares.{scheduler_data.proxy_service_name}-auth.forwardauth.trustForwardHeader": "true",
104104
f"traefik.http.middlewares.{scheduler_data.proxy_service_name}-auth.forwardauth.authResponseHeaders": f"Set-Cookie,{DEFAULT_SESSION_COOKIE_NAME}",
105105
# routing

ā€Žservices/docker-compose.ymlā€Ž

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -390,8 +390,10 @@ services:
390390
TRACING_OPENTELEMETRY_COLLECTOR_ENDPOINT: ${TRACING_OPENTELEMETRY_COLLECTOR_ENDPOINT}
391391
TRACING_OPENTELEMETRY_COLLECTOR_PORT: ${TRACING_OPENTELEMETRY_COLLECTOR_PORT}
392392

393-
WEBSERVER_HOST: ${WEBSERVER_HOST}
394-
WEBSERVER_PORT: ${WEBSERVER_PORT}
393+
# WEBSERVER_AUTH_SETTINGS
394+
WEBSERVER_HOST: ${WB_AUTH_WEBSERVER_HOST}
395+
WEBSERVER_PORT: ${WB_AUTH_WEBSERVER_PORT}
396+
395397
volumes:
396398
- "/var/run/docker.sock:/var/run/docker.sock"
397399
deploy:

ā€Žservices/web/server/tests/unit/with_dbs/03/test_login_auth_app.pyā€Ž

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,11 @@ def test_docker_compose_dev_vendors_forwardauth_configuration(
159159
services_docker_compose_dev_vendors_file: Path,
160160
env_devel_dict: EnvVarsDict,
161161
):
162-
"""Test that manual service forwardauth.address points to correct WB_AUTH_WEBSERVER_HOST and port."""
162+
"""Test that manual service forwardauth.address points to correct WB_AUTH_WEBSERVER_HOST and port.
163+
164+
NOTE: traefik's `forwardauth` labels are also used in
165+
`services/director-v2/src/simcore_service_director_v2/modules/dynamic_sidecar/docker_service_specs/proxy.py`
166+
"""
163167

164168
# Load docker-compose file
165169
compose_config = yaml.safe_load(

0 commit comments

Comments
Ā (0)