{{$backendServers := .Servers}} [backends]{{range $backendName, $backend := .Backends}} {{if hasCircuitBreakerLabel $backend}} [backends.backend-{{$backendName}}.circuitbreaker] expression = "{{getCircuitBreakerExpression $backend}}" {{end}} {{if hasLoadBalancerLabel $backend}} [backends.backend-{{$backendName}}.loadbalancer] method = "{{getLoadBalancerMethod $backend}}" sticky = {{getSticky $backend}} {{if hasStickinessLabel $backend}} [backends.backend-{{$backendName}}.loadBalancer.stickiness] cookieName = "{{getStickinessCookieName $backend}}" {{end}} {{end}} {{if hasMaxConnLabels $backend}} [backends.backend-{{$backendName}}.maxconn] amount = {{getMaxConnAmount $backend}} extractorfunc = "{{getMaxConnExtractorFunc $backend}}" {{end}} {{$servers := index $backendServers $backendName}} {{range $serverName, $server := $servers}} {{if hasServices $server}} {{$services := getServiceNames $server}} {{range $serviceIndex, $serviceName := $services}} [backends.backend-{{getServiceBackend $server $serviceName}}.servers.service-{{$serverName}}] url = "{{getServiceProtocol $server $serviceName}}://{{getIPAddress $server}}:{{getServicePort $server $serviceName}}" weight = {{getServiceWeight $server $serviceName}} {{end}} {{else}} [backends.backend-{{$backendName}}.servers.server-{{$server.Name | replace "/" "" | replace "." "-"}}] url = "{{getProtocol $server}}://{{getIPAddress $server}}:{{getPort $server}}" weight = {{getWeight $server}} {{end}} {{end}} {{end}} [frontends]{{range $frontend, $containers := .Frontends}} {{$container := index $containers 0}} {{if hasServices $container}} {{$services := getServiceNames $container}} {{range $serviceIndex, $serviceName := $services}} [frontends."frontend-{{getServiceBackend $container $serviceName}}"] backend = "backend-{{getServiceBackend $container $serviceName}}" passHostHeader = {{getServicePassHostHeader $container $serviceName}} {{if getWhitelistSourceRange $container}} whitelistSourceRange = [{{range getWhitelistSourceRange $container}} "{{.}}", {{end}}] {{end}} priority = {{getServicePriority $container $serviceName}} entryPoints = [{{range getServiceEntryPoints $container $serviceName}} "{{.}}", {{end}}] basicAuth = [{{range getServiceBasicAuth $container $serviceName}} "{{.}}", {{end}}] [frontends."frontend-{{getServiceBackend $container $serviceName}}".routes."service-{{$serviceName | replace "/" "" | replace "." "-"}}"] rule = "{{getServiceFrontendRule $container $serviceName}}" {{end}} {{else}} [frontends."frontend-{{$frontend}}"] backend = "backend-{{getBackend $container}}" passHostHeader = {{getPassHostHeader $container}} {{if getWhitelistSourceRange $container}} whitelistSourceRange = [{{range getWhitelistSourceRange $container}} "{{.}}", {{end}}] {{end}} priority = {{getPriority $container}} entryPoints = [{{range getEntryPoints $container}} "{{.}}", {{end}}] basicAuth = [{{range getBasicAuth $container}} "{{.}}", {{end}}] [frontends."frontend-{{$frontend}}".routes."route-frontend-{{$frontend}}"] rule = "{{getFrontendRule $container}}" {{end}} {{end}}