[backends]{{range $serviceName, $instances := .Services}}
  [backends.backend-{{ $serviceName }}.loadbalancer]
    method = "{{ getLoadBalancerMethod $instances}}"
    sticky = {{ getLoadBalancerSticky $instances}}
    {{if hasStickinessLabel $instances}} 
    [backends.backend-{{ $serviceName }}.loadbalancer.stickiness]
      cookieName = "{{getStickinessCookieName $instances}}"
    {{end}}
    {{ if hasHealthCheckLabels $instances }}
    [backends.backend-{{ $serviceName }}.healthcheck]
      path = "{{getHealthCheckPath $instances }}"
      interval = "{{getHealthCheckInterval $instances }}"
    {{end}}

  {{range $index, $i := $instances}}
    [backends.backend-{{ $i.Name }}.servers.server-{{ $i.Name }}{{ $i.ID }}]
      url = "{{ getProtocol $i }}://{{ getHost $i }}:{{ getPort $i }}"
      weight = {{ getWeight $i}}
  {{end}}
{{end}}

[frontends]{{range $serviceName, $instances := .Services}}
  {{range filterFrontends $instances}}
    [frontends.frontend-{{ $serviceName }}]
      backend = "backend-{{ $serviceName }}"
      passHostHeader = {{ getPassHostHeader .}}
      priority = {{ getPriority .}}
      entryPoints = [{{range  getEntryPoints .}}
      "{{.}}",
    {{end}}]
      basicAuth = [{{range getBasicAuth .}}
      "{{.}}",
    {{end}}]
    [frontends.frontend-{{ $serviceName }}.routes.route-frontend-{{ $serviceName }}]
      rule = "{{getFrontendRule .}}"
  {{end}}
{{end}}