[global]
  checkNewVersion = false
  sendAnonymousUsage = false

[log]
  level = "DEBUG"

[api]
  insecure = true

[entryPoints]
  [entryPoints.web]
    address = ":8000"

[tracing]
  servicename = "tracing"
  [tracing.jaeger]
    samplingType = "const"
    samplingParam = 1.0
    samplingServerURL = "http://{{.IP}}:5778/sampling"
    localAgentHostPort = "{{.IP}}:6831"
    traceContextHeaderName = "{{.TraceContextHeaderName}}"

[providers.file]
  filename = "{{ .SelfFilename }}"

## dynamic configuration ##

[http.routers]
  [http.routers.router1]
    Service = "service1"
    Middlewares = ["retry", "ratelimit-1"]
    Rule = "Path(`/ratelimit`)"
  [http.routers.router2]
    Service = "service2"
    Middlewares = ["retry"]
    Rule = "Path(`/retry`)"
  [http.routers.router3]
    Service = "service3"
    Middlewares = ["retry", "basic-auth"]
    Rule = "Path(`/auth`)"

[http.middlewares]
  [http.middlewares.retry.retry]
    attempts = 3
  [http.middlewares.basic-auth.basicAuth]
    users = ["test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/", "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0"]
  [http.middlewares.ratelimit-1.rateLimit]
    average = 1
    burst = 2

[http.services]
  [http.services.service1]
    [http.services.service1.loadBalancer]
      passHostHeader = true
      [[http.services.service1.loadBalancer.servers]]
        url = "http://{{.WhoAmiIP}}:{{.WhoAmiPort}}"

  [http.services.service2]
    [http.services.service2.loadBalancer]
      passHostHeader = true
      [[http.services.service2.loadBalancer.servers]]
        url = "http://{{.WhoAmiIP}}:{{.WhoAmiPort}}"

  [http.services.service3]
    [http.services.service3.loadBalancer]
      passHostHeader = true
      [[http.services.service3.loadBalancer.servers]]
        url = "http://{{.WhoAmiIP}}:{{.WhoAmiPort}}"
