Fix Traefik router backend targets in generated diagrams
This commit is contained in:
@@ -120,7 +120,7 @@ def generate_docker_traefik_dynu(compose: dict, out_dot: Path, out_svg: Path) ->
|
||||
|
||||
lines = [
|
||||
"digraph DockerTraefikDynu {",
|
||||
" graph [rankdir=LR, compound=true, splines=ortho, nodesep=0.5, ranksep=1.0, fontname=\"Helvetica\"];",
|
||||
" graph [rankdir=LR, compound=true, splines=true, nodesep=0.5, ranksep=1.0, fontname=\"Helvetica\"];",
|
||||
" node [fontname=\"Helvetica\", fontsize=10, style=\"rounded,filled\"];",
|
||||
" edge [fontname=\"Helvetica\", fontsize=9];",
|
||||
' "ext:dynu" [label="Dynu / Public DNS", shape=oval, fillcolor="#fde68a"];',
|
||||
@@ -151,7 +151,9 @@ def generate_docker_traefik_dynu(compose: dict, out_dot: Path, out_svg: Path) ->
|
||||
tls = labels.get(f"{router_prefix}{router}.tls", "false")
|
||||
lines.append(f' "router:{router}" [label="router:{router}\\nentry:{entrypoints} tls:{tls}", shape=diamond, fillcolor="#fbcfe8"];')
|
||||
lines.append(f' "svc:traefik" -> "router:{router}";')
|
||||
lines.append(f' "router:{router}" -> "svc:{svc_name}" [label="service:{router_service}"];')
|
||||
target_node = f"traefik-service:{router_service}"
|
||||
lines.append(f' "{target_node}" [label="service:{router_service}", shape=component, fillcolor="#fecaca"];')
|
||||
lines.append(f' "router:{router}" -> "{target_node}";')
|
||||
|
||||
for host in extract_hosts(rule):
|
||||
clean = sanitize_domain(host, known_domains)
|
||||
@@ -166,8 +168,8 @@ def generate_docker_traefik_dynu(compose: dict, out_dot: Path, out_svg: Path) ->
|
||||
lb_services = sorted({k[len(service_prefix):].split(".", 1)[0] for k in labels if k.startswith(service_prefix)})
|
||||
for lb in lb_services:
|
||||
port = labels.get(f"{service_prefix}{lb}.loadbalancer.server.port", "")
|
||||
lines.append(f' "lb:{svc_name}:{lb}" [label="lb:{lb}\\nport:{port}", shape=component, fillcolor="#fecaca"];')
|
||||
lines.append(f' "lb:{svc_name}:{lb}" -> "svc:{svc_name}";')
|
||||
lines.append(f' "traefik-service:{lb}" [label="service:{lb}\\nport:{port}", shape=component, fillcolor="#fecaca"];')
|
||||
lines.append(f' "traefik-service:{lb}" -> "svc:{svc_name}";')
|
||||
|
||||
lines.append("}")
|
||||
write_dot(out_dot, lines)
|
||||
|
||||
Reference in New Issue
Block a user