[backends] {{range $index, $node := .Nodes }} [backends."backend-{{ getBackend $node }}".servers."{{ getBackendName $node $index }}"] url = "{{ getAttribute "protocol" $node.Service.Tags "http" }}://{{ getBackendAddress $node }}:{{ $node.Service.Port }}" {{ $weight := getAttribute "backend.weight" $node.Service.Tags "0" }} {{with $weight }} weight = {{ $weight }} {{end}} {{end}} {{range .Services }} {{ $service := .ServiceName }} {{ $circuitBreaker := getAttribute "backend.circuitbreaker" .Attributes "" }} {{with $circuitBreaker }} [backends."backend-{{ $service }}".circuitbreaker] expression = "{{ $circuitBreaker }}" {{end}} [backends."backend-{{ $service }}".loadbalancer] method = "{{ getAttribute "backend.loadbalancer" .Attributes "wrr" }}" sticky = {{ getSticky .Attributes }} {{if hasStickinessLabel .Attributes }} [backends."backend-{{ $service }}".loadbalancer.stickiness] cookieName = "{{ getStickinessCookieName .Attributes }}" {{end}} {{if hasMaxconnAttributes .Attributes }} [backends."backend-{{ $service }}".maxconn] amount = {{ getAttribute "backend.maxconn.amount" .Attributes "" }} extractorfunc = "{{ getAttribute "backend.maxconn.extractorfunc" .Attributes "" }}" {{end}} {{end}} [frontends] {{range .Services }} [frontends."frontend-{{ .ServiceName }}"] backend = "backend-{{ .ServiceName }}" passHostHeader = {{ getAttribute "frontend.passHostHeader" .Attributes "true" }} priority = {{ getAttribute "frontend.priority" .Attributes "0" }} {{ $entryPoints := getAttribute "frontend.entrypoints" .Attributes "" }} {{with $entryPoints }} entrypoints = [{{range getEntryPoints $entryPoints }} "{{ . }}", {{end}}] {{end}} basicAuth = [{{range getBasicAuth .Attributes }} "{{ . }}", {{end}}] [frontends."frontend-{{ .ServiceName }}".routes."route-host-{{ .ServiceName }}"] rule = "{{ getFrontendRule . }}" {{end}}