From 18884d260aabfa0a3343b10d70464fc3f50900f6 Mon Sep 17 00:00:00 2001 From: Kevin Midboe Date: Tue, 11 Aug 2026 00:01:10 +0200 Subject: [PATCH] parse WEB_IPS as json correctly --- roles/traefik/defaults/main.yml | 4 +++- roles/traefik/templates/dynamic-hosts.yml.j2 | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/roles/traefik/defaults/main.yml b/roles/traefik/defaults/main.yml index ed02028..aaee0b8 100644 --- a/roles/traefik/defaults/main.yml +++ b/roles/traefik/defaults/main.yml @@ -4,6 +4,8 @@ traefik_web_port: 80 traefik_websecure_port: 443 traefik_dashboard_port: 8080 traefik_metrics_port: 8100 + +traefik_image: "traefik:v3.1" traefik_dashboard_insecure: true # ufw should only allow from tailscale or vnet traefik_acme_staging: "{{ lookup('env', 'TRAEFIK_ACME_STAGING') | default('false', true) }}" @@ -12,5 +14,5 @@ traefik_domain: "{{ lookup('env', 'DOMAIN') | default('', true) }}" # Single source of truth for static routing. Expected to be overridden # from group_vars, -e, or an env-var lookup at the play level — see # playbook.yml for the TRAEFIK_ROUTES example. -traefik_web_private_ips: "{{ lookup('env', 'WEB_IPS') | default('[]', true) | from_json }}" +traefik_web_private_ips: "{{ lookup('env', 'WEB_IPS') | from_json }}" traefik_analytics_private_ip: "{{ lookup('env', 'ANALYTICS_IP') | default('', true) }}" diff --git a/roles/traefik/templates/dynamic-hosts.yml.j2 b/roles/traefik/templates/dynamic-hosts.yml.j2 index 4d57a95..1920fbf 100644 --- a/roles/traefik/templates/dynamic-hosts.yml.j2 +++ b/roles/traefik/templates/dynamic-hosts.yml.j2 @@ -18,7 +18,7 @@ http: retailor-web-svc: loadBalancer: servers: -{% for web_ip in traefik_web_private_ips | from_json %} +{% for web_ip in traefik_web_private_ips %} - url: "http://{{ web_ip }}:80" {% endfor %} healthCheck: