56 lines
2 KiB
Cheetah
56 lines
2 KiB
Cheetah
[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}}
|