From d0e0452e2ccb97dc64f73fb880df5bbff7770417 Mon Sep 17 00:00:00 2001 From: mrjk Date: Sat, 20 Aug 2022 03:28:48 -0400 Subject: [PATCH] Fix: traefik extra containers when many separate instances --- .paasify/plugins/traefik-svc.jsonnet | 7 +++++-- traefik/docker-compose.yml | 18 ++++++++---------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/.paasify/plugins/traefik-svc.jsonnet b/.paasify/plugins/traefik-svc.jsonnet index 55db33a..b0855fa 100644 --- a/.paasify/plugins/traefik-svc.jsonnet +++ b/.paasify/plugins/traefik-svc.jsonnet @@ -46,6 +46,7 @@ local global_vars_default(user_data) = traefik_net_external: true, traefik_svc_ident: stack , traefik_svc_port: user_data.app_port , + traefik_svc_group: ns + sep + 'traefik', traefik_svc_name: null, traefik_svc_domain: null, @@ -97,9 +98,10 @@ local global_vars_override(conf) = # ------------------------------------- # Base routing -local LabelsTraefik(svc, domain, entrypoints, port) = +local LabelsTraefik(svc, domain, entrypoints, port, group) = { ["traefik.enable"]: "true", + ["traefik.group"]: group, ["traefik.http.routers." + svc + ".rule"]: 'Host(`' + domain + '`)', ["traefik.http.routers." + svc + ".entrypoints"]: entrypoints, ["traefik.http.routers." + svc + ".service"]: svc, @@ -173,7 +175,8 @@ local docker_transform(conf_raw, docker_data) = conf.traefik_svc_name, conf._traefik_svc_domain, conf.traefik_svc_entrypoints, - conf.traefik_svc_port) + conf.traefik_svc_port, + conf.traefik_svc_group) + LabelsTraefikAuthelia( conf.traefik_svc_name, conf.traefik_svc_auth) diff --git a/traefik/docker-compose.yml b/traefik/docker-compose.yml index 83ff228..c4dfc17 100644 --- a/traefik/docker-compose.yml +++ b/traefik/docker-compose.yml @@ -1,16 +1,6 @@ --- version: "3.7" -x-paasify-tests: - v1: $VAR1 - v1: ${VAR2} - v1: ${VAR3:-VAL3} - v2: ${VAR4:-${VAR5:-VAL5 with space}:${VAR6:-VAL6}} - - v1: ${VAR6:-${VAR7}} - v1: ${VAR8:-${VAR9:-VAL9}} - - services: traefik: image: ${app_image} @@ -41,6 +31,11 @@ services: - TRAEFIK_PROVIDERS_DOCKER_SWARMMODE=false - TRAEFIK_PROVIDERS_FILE_DIRECTORY=/etc/traefik + # This will restrict traefik to conatiners having label `proxy.group` + - TRAEFIK_PROVIDERS_DOCKER_CONSTRAINTS=Label(`traefik.group`,`$app_network_name`) + #- TRAEFIK_PROVIDERS_DOCKER_DEFAULTRULE=Host(`{{ .Name }}.{{ index .Labels \"proxy.name\"}}`) + + # File provider #- TRAEFIK_PROVIDERS.FILE.DIRECTORY=/etc/traefik/configs @@ -48,6 +43,9 @@ services: # Entrypoints - TRAEFIK_ENTRYPOINTS_front-http_ADDRESS=:80 # <== Defining an entrypoint for port :80 named front + labels: + - traefik.group=$app_network_name + volumes: - $app_dir_conf:/etc/traefik - $app_dir_data:/data