[backends] {{range $service := .Services}} {{$sname := $service.ServiceName}} {{$circuitBreaker := getAttribute "backend.circuitbreaker" $service.Attributes ""}} {{with $circuitBreaker}} [backends."backend-{{$sname}}".circuitBreaker] expression = "{{$circuitBreaker}}" {{end}} [backends."backend-{{$sname}}".loadBalancer] method = "{{getAttribute "backend.loadbalancer" $service.Attributes "wrr"}}" sticky = {{getSticky $service.Attributes}} {{if hasStickinessLabel $service.Attributes}} [backends."backend-{{$sname}}".loadBalancer.stickiness] cookieName = "{{getStickinessCookieName $service.Attributes}}" {{end}} {{if hasMaxconnAttributes $service.Attributes}} [backends."backend-{{$sname}}".maxConn] amount = {{getAttribute "backend.maxconn.amount" $service.Attributes "" }} extractorFunc = "{{getAttribute "backend.maxconn.extractorfunc" $service.Attributes "" }}" {{end}} {{end}} {{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" }} {{end}} [frontends] {{range $service := .Services}} [frontends."frontend-{{$service.ServiceName}}"] backend = "backend-{{$service.ServiceName}}" priority = {{getAttribute "frontend.priority" $service.Attributes "0"}} passHostHeader = {{getAttribute "frontend.passHostHeader" $service.Attributes "true"}} {{$entryPoints := getAttribute "frontend.entrypoints" $service.Attributes ""}} {{with $entryPoints}} entryPoints = [{{range getEntryPoints $entryPoints}} "{{.}}", {{end}}] {{end}} basicAuth = [{{range getBasicAuth $service.Attributes}} "{{.}}", {{end}}] [frontends."frontend-{{$service.ServiceName}}".routes."route-host-{{$service.ServiceName}}"] rule = "{{getFrontendRule $service}}" {{end}}