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