From 0ee5d3d83f9316d3b1a49fcc5f7c32e24ab43706 Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Mon, 8 Jul 2019 11:00:04 +0200 Subject: [PATCH] Automatic generation of the doc for the CLI flags and env vars. --- .../reference/dynamic-configuration/file.toml | 336 +++++----- .../reference/dynamic-configuration/file.yaml | 386 ++++++----- .../dynamic-configuration/labels.yml | 317 ++++----- .../reference/static-configuration/cli-ref.md | 589 +++++++++++++++++ .../reference/static-configuration/cli.md | 5 +- .../reference/static-configuration/cli.txt | 609 ------------------ .../reference/static-configuration/env-ref.md | 589 +++++++++++++++++ .../reference/static-configuration/env.md | 589 +---------------- .../reference/static-configuration/file.toml | 3 +- .../reference/static-configuration/file.yaml | 101 +-- generate.go | 1 + internal/gendoc.go | 83 +++ pkg/config/parser/tags.go | 1 + pkg/provider/file/file.go | 2 +- pkg/types/duration.go | 16 +- 15 files changed, 1898 insertions(+), 1729 deletions(-) create mode 100644 docs/content/reference/static-configuration/cli-ref.md delete mode 100644 docs/content/reference/static-configuration/cli.txt create mode 100644 docs/content/reference/static-configuration/env-ref.md create mode 100644 internal/gendoc.go diff --git a/docs/content/reference/dynamic-configuration/file.toml b/docs/content/reference/dynamic-configuration/file.toml index 8dab9ba61..9c378e0ef 100644 --- a/docs/content/reference/dynamic-configuration/file.toml +++ b/docs/content/reference/dynamic-configuration/file.toml @@ -7,126 +7,117 @@ rule = "foobar" priority = 42 [http.routers.Router0.tls] - options = "TLS0" + options = "foobar" + [http.routers.Router1] + entryPoints = ["foobar", "foobar"] + middlewares = ["foobar", "foobar"] + service = "foobar" + rule = "foobar" + priority = 42 + [http.routers.Router1.tls] + options = "foobar" + [http.services] + [http.services.Service0] + [http.services.Service0.loadBalancer] + passHostHeader = true + [http.services.Service0.loadBalancer.stickiness] + cookieName = "foobar" + secureCookie = true + httpOnlyCookie = true + + [[http.services.Service0.loadBalancer.servers]] + url = "foobar" + + [[http.services.Service0.loadBalancer.servers]] + url = "foobar" + [http.services.Service0.loadBalancer.healthCheck] + scheme = "foobar" + path = "foobar" + port = 42 + interval = "foobar" + timeout = "foobar" + hostname = "foobar" + [http.services.Service0.loadBalancer.healthCheck.headers] + name0 = "foobar" + name1 = "foobar" + [http.services.Service0.loadBalancer.responseForwarding] + flushInterval = "foobar" + [http.services.Service1] + [http.services.Service1.loadBalancer] + passHostHeader = true + [http.services.Service1.loadBalancer.stickiness] + cookieName = "foobar" + secureCookie = true + httpOnlyCookie = true + + [[http.services.Service1.loadBalancer.servers]] + url = "foobar" + + [[http.services.Service1.loadBalancer.servers]] + url = "foobar" + [http.services.Service1.loadBalancer.healthCheck] + scheme = "foobar" + path = "foobar" + port = 42 + interval = "foobar" + timeout = "foobar" + hostname = "foobar" + [http.services.Service1.loadBalancer.healthCheck.headers] + name0 = "foobar" + name1 = "foobar" + [http.services.Service1.loadBalancer.responseForwarding] + flushInterval = "foobar" [http.middlewares] - [http.middlewares.Middleware0] - [http.middlewares.Middleware0.addPrefix] + [http.middlewares.Middleware00] + [http.middlewares.Middleware00.addPrefix] prefix = "foobar" - [http.middlewares.Middleware1] - [http.middlewares.Middleware1.stripPrefix] - prefixes = ["foobar", "foobar"] - [http.middlewares.Middleware10] - [http.middlewares.Middleware10.rateLimit] - extractorFunc = "foobar" - [http.middlewares.Middleware10.rateLimit.rateSet] - [http.middlewares.Middleware10.rateLimit.rateSet.Rate0] - period = 42 - average = 42 - burst = 42 - [http.middlewares.Middleware10.rateLimit.rateSet.Rate1] - period = 42 - average = 42 - burst = 42 - [http.middlewares.Middleware11] - [http.middlewares.Middleware11.redirectRegex] - regex = "foobar" - replacement = "foobar" - permanent = true - [http.middlewares.Middleware12] - [http.middlewares.Middleware12.redirectScheme] - scheme = "foobar" - port = "foobar" - permanent = true - [http.middlewares.Middleware13] - [http.middlewares.Middleware13.basicAuth] + [http.middlewares.Middleware01] + [http.middlewares.Middleware01.basicAuth] users = ["foobar", "foobar"] usersFile = "foobar" realm = "foobar" removeHeader = true headerField = "foobar" - [http.middlewares.Middleware14] - [http.middlewares.Middleware14.digestAuth] - users = ["foobar", "foobar"] - usersFile = "foobar" - removeHeader = true - realm = "foobar" - headerField = "foobar" - [http.middlewares.Middleware15] - [http.middlewares.Middleware15.forwardAuth] - address = "foobar" - trustForwardHeader = true - authResponseHeaders = ["foobar", "foobar"] - [http.middlewares.Middleware15.forwardAuth.tls] - ca = "foobar" - caOptional = true - cert = "foobar" - key = "foobar" - insecureSkipVerify = true - [http.middlewares.Middleware16] - [http.middlewares.Middleware16.maxConn] - amount = 42 - extractorFunc = "foobar" - [http.middlewares.Middleware17] - [http.middlewares.Middleware17.buffering] + [http.middlewares.Middleware02] + [http.middlewares.Middleware02.buffering] maxRequestBodyBytes = 42 memRequestBodyBytes = 42 maxResponseBodyBytes = 42 memResponseBodyBytes = 42 retryExpression = "foobar" - [http.middlewares.Middleware18] - [http.middlewares.Middleware18.circuitBreaker] - expression = "foobar" - [http.middlewares.Middleware19] - [http.middlewares.Middleware19.compress] - [http.middlewares.Middleware2] - [http.middlewares.Middleware2.stripPrefixRegex] - regex = ["foobar", "foobar"] - [http.middlewares.Middleware20] - [http.middlewares.Middleware20.passTLSClientCert] - pem = true - [http.middlewares.Middleware20.passTLSClientCert.info] - notAfter = true - notBefore = true - sans = true - [http.middlewares.Middleware20.passTLSClientCert.info.subject] - country = true - province = true - locality = true - organization = true - commonName = true - serialNumber = true - domainComponent = true - [http.middlewares.Middleware20.passTLSClientCert.info.issuer] - country = true - province = true - locality = true - organization = true - commonName = true - serialNumber = true - domainComponent = true - [http.middlewares.Middleware21] - [http.middlewares.Middleware21.retry] - attemps = 42 - [http.middlewares.Middleware3] - [http.middlewares.Middleware3.replacePath] - path = "foobar" - [http.middlewares.Middleware4] - [http.middlewares.Middleware4.replacePathRegex] - regex = "foobar" - replacement = "foobar" - [http.middlewares.Middleware5] - [http.middlewares.Middleware5.chain] + [http.middlewares.Middleware03] + [http.middlewares.Middleware03.chain] middlewares = ["foobar", "foobar"] - [http.middlewares.Middleware6] - [http.middlewares.Middleware6.ipWhiteList] - sourceRange = ["foobar", "foobar"] - [http.middlewares.Middleware7] - [http.middlewares.Middleware7.ipWhiteList] - [http.middlewares.Middleware7.ipWhiteList.ipStrategy] - depth = 42 - excludedIPs = ["foobar", "foobar"] - [http.middlewares.Middleware8] - [http.middlewares.Middleware8.headers] + [http.middlewares.Middleware04] + [http.middlewares.Middleware04.circuitBreaker] + expression = "foobar" + [http.middlewares.Middleware05] + [http.middlewares.Middleware05.compress] + [http.middlewares.Middleware06] + [http.middlewares.Middleware06.digestAuth] + users = ["foobar", "foobar"] + usersFile = "foobar" + removeHeader = true + realm = "foobar" + headerField = "foobar" + [http.middlewares.Middleware07] + [http.middlewares.Middleware07.errors] + status = ["foobar", "foobar"] + service = "foobar" + query = "foobar" + [http.middlewares.Middleware08] + [http.middlewares.Middleware08.forwardAuth] + address = "foobar" + trustForwardHeader = true + authResponseHeaders = ["foobar", "foobar"] + [http.middlewares.Middleware08.forwardAuth.tls] + ca = "foobar" + caOptional = true + cert = "foobar" + key = "foobar" + insecureSkipVerify = true + [http.middlewares.Middleware09] + [http.middlewares.Middleware09.headers] accessControlAllowCredentials = true accessControlAllowHeaders = ["foobar", "foobar"] accessControlAllowMethods = ["foobar", "foobar"] @@ -153,44 +144,86 @@ publicKey = "foobar" referrerPolicy = "foobar" isDevelopment = true - [http.middlewares.Middleware8.headers.customRequestHeaders] + [http.middlewares.Middleware09.headers.customRequestHeaders] name0 = "foobar" name1 = "foobar" - [http.middlewares.Middleware8.headers.customResponseHeaders] + [http.middlewares.Middleware09.headers.customResponseHeaders] name0 = "foobar" name1 = "foobar" - [http.middlewares.Middleware8.headers.sslProxyHeaders] + [http.middlewares.Middleware09.headers.sslProxyHeaders] name0 = "foobar" name1 = "foobar" - [http.middlewares.Middleware9] - [http.middlewares.Middleware9.errors] - status = ["foobar", "foobar"] - service = "foobar" - query = "foobar" - [http.services] - [http.services.Service0] - [http.services.Service0.loadBalancer] - passHostHeader = true - [http.services.Service0.loadBalancer.stickiness] - cookieName = "foobar" - - [[http.services.Service0.loadBalancer.servers]] - url = "foobar" - - [[http.services.Service0.loadBalancer.servers]] - url = "foobar" - [http.services.Service0.loadBalancer.healthCheck] - scheme = "foobar" - path = "foobar" - port = 42 - interval = "foobar" - timeout = "foobar" - hostname = "foobar" - [http.services.Service0.loadBalancer.healthCheck.headers] - name0 = "foobar" - name1 = "foobar" - [http.services.Service0.loadBalancer.responseForwarding] - flushInterval = "foobar" + [http.middlewares.Middleware10] + [http.middlewares.Middleware10.ipWhiteList] + sourceRange = ["foobar", "foobar"] + [http.middlewares.Middleware10.ipWhiteList.ipStrategy] + depth = 42 + excludedIPs = ["foobar", "foobar"] + [http.middlewares.Middleware11] + [http.middlewares.Middleware11.maxConn] + amount = 42 + extractorFunc = "foobar" + [http.middlewares.Middleware12] + [http.middlewares.Middleware12.passTLSClientCert] + pem = true + [http.middlewares.Middleware12.passTLSClientCert.info] + notAfter = true + notBefore = true + sans = true + [http.middlewares.Middleware12.passTLSClientCert.info.subject] + country = true + province = true + locality = true + organization = true + commonName = true + serialNumber = true + domainComponent = true + [http.middlewares.Middleware12.passTLSClientCert.info.issuer] + country = true + province = true + locality = true + organization = true + commonName = true + serialNumber = true + domainComponent = true + [http.middlewares.Middleware13] + [http.middlewares.Middleware13.rateLimit] + extractorFunc = "foobar" + [http.middlewares.Middleware13.rateLimit.rateSet] + [http.middlewares.Middleware13.rateLimit.rateSet.Rate0] + period = "42ns" + average = 42 + burst = 42 + [http.middlewares.Middleware13.rateLimit.rateSet.Rate1] + period = "42ns" + average = 42 + burst = 42 + [http.middlewares.Middleware14] + [http.middlewares.Middleware14.redirectRegex] + regex = "foobar" + replacement = "foobar" + permanent = true + [http.middlewares.Middleware15] + [http.middlewares.Middleware15.redirectScheme] + scheme = "foobar" + port = "foobar" + permanent = true + [http.middlewares.Middleware16] + [http.middlewares.Middleware16.replacePath] + path = "foobar" + [http.middlewares.Middleware17] + [http.middlewares.Middleware17.replacePathRegex] + regex = "foobar" + replacement = "foobar" + [http.middlewares.Middleware18] + [http.middlewares.Middleware18.retry] + attempts = 42 + [http.middlewares.Middleware19] + [http.middlewares.Middleware19.stripPrefix] + prefixes = ["foobar", "foobar"] + [http.middlewares.Middleware20] + [http.middlewares.Middleware20.stripPrefixRegex] + regex = ["foobar", "foobar"] [tcp] [tcp.routers] @@ -200,7 +233,14 @@ rule = "foobar" [tcp.routers.TCPRouter0.tls] passthrough = true - options = "TLS1" + options = "foobar" + [tcp.routers.TCPRouter1] + entryPoints = ["foobar", "foobar"] + service = "foobar" + rule = "foobar" + [tcp.routers.TCPRouter1.tls] + passthrough = true + options = "foobar" [tcp.services] [tcp.services.TCPService0] [tcp.services.TCPService0.loadBalancer] @@ -210,6 +250,14 @@ [[tcp.services.TCPService0.loadBalancer.servers]] address = "foobar" + [tcp.services.TCPService1] + [tcp.services.TCPService1.loadBalancer] + + [[tcp.services.TCPService1.loadBalancer.servers]] + address = "foobar" + + [[tcp.services.TCPService1.loadBalancer.servers]] + address = "foobar" [tls] @@ -223,18 +271,18 @@ keyFile = "foobar" stores = ["foobar", "foobar"] [tls.options] - [tls.options.TLS0] + [tls.options.Options0] minVersion = "foobar" cipherSuites = ["foobar", "foobar"] sniStrict = true - [tls.options.TLS0.clientCA] + [tls.options.Options0.clientCA] files = ["foobar", "foobar"] optional = true - [tls.options.TLS1] + [tls.options.Options1] minVersion = "foobar" cipherSuites = ["foobar", "foobar"] sniStrict = true - [tls.options.TLS1.clientCA] + [tls.options.Options1.clientCA] files = ["foobar", "foobar"] optional = true [tls.stores] diff --git a/docs/content/reference/dynamic-configuration/file.yaml b/docs/content/reference/dynamic-configuration/file.yaml index 1e72d988a..0ea19a867 100644 --- a/docs/content/reference/dynamic-configuration/file.yaml +++ b/docs/content/reference/dynamic-configuration/file.yaml @@ -2,54 +2,133 @@ http: routers: Router0: entryPoints: - - foobar - - foobar + - foobar + - foobar middlewares: - - foobar - - foobar + - foobar + - foobar service: foobar rule: foobar priority: 42 - tls: {} + tls: + options: foobar + Router1: + entryPoints: + - foobar + - foobar + middlewares: + - foobar + - foobar + service: foobar + rule: foobar + priority: 42 + tls: + options: foobar + services: + Service0: + loadBalancer: + stickiness: + cookieName: foobar + secureCookie: true + httpOnlyCookie: true + servers: + - url: foobar + - url: foobar + healthCheck: + scheme: foobar + path: foobar + port: 42 + interval: foobar + timeout: foobar + hostname: foobar + headers: + name0: foobar + name1: foobar + passHostHeader: true + responseForwarding: + flushInterval: foobar + Service1: + loadBalancer: + stickiness: + cookieName: foobar + secureCookie: true + httpOnlyCookie: true + servers: + - url: foobar + - url: foobar + healthCheck: + scheme: foobar + path: foobar + port: 42 + interval: foobar + timeout: foobar + hostname: foobar + headers: + name0: foobar + name1: foobar + passHostHeader: true + responseForwarding: + flushInterval: foobar middlewares: - Middleware0: + Middleware00: addPrefix: prefix: foobar - Middleware1: - stripPrefix: - prefixes: - - foobar - - foobar - Middleware2: - stripPrefixRegex: - regex: - - foobar - - foobar - Middleware3: - replacePath: - path: foobar - Middleware4: - replacePathRegex: - regex: foobar - replacement: foobar - Middleware5: + Middleware01: + basicAuth: + users: + - foobar + - foobar + usersFile: foobar + realm: foobar + removeHeader: true + headerField: foobar + Middleware02: + buffering: + maxRequestBodyBytes: 42 + memRequestBodyBytes: 42 + maxResponseBodyBytes: 42 + memResponseBodyBytes: 42 + retryExpression: foobar + Middleware03: chain: middlewares: - - foobar - - foobar - Middleware6: - ipWhiteList: - sourceRange: - - foobar - - foobar - Middleware7: - ipWhiteList: - ipStrategy: - depth: 42 - excludedIPs: - - foobar - - foobar - Middleware8: + - foobar + - foobar + Middleware04: + circuitBreaker: + expression: foobar + Middleware05: + compress: {} + Middleware06: + digestAuth: + users: + - foobar + - foobar + usersFile: foobar + removeHeader: true + realm: foobar + headerField: foobar + Middleware07: + errors: + status: + - foobar + - foobar + service: foobar + query: foobar + Middleware08: + forwardAuth: + address: foobar + tls: + ca: foobar + caOptional: true + cert: foobar + key: foobar + insecureSkipVerify: true + trustForwardHeader: true + authResponseHeaders: + - foobar + - foobar + Middleware09: headers: customRequestHeaders: name0: foobar @@ -59,23 +138,23 @@ http: name1: foobar accessControlAllowCredentials: true accessControlAllowHeaders: - - foobar - - foobar + - foobar + - foobar accessControlAllowMethods: - - foobar - - foobar + - foobar + - foobar accessControlAllowOrigin: foobar accessControlExposeHeaders: - - foobar - - foobar + - foobar + - foobar accessControlMaxAge: 42 addVaryHeader: true allowedHosts: - - foobar - - foobar + - foobar + - foobar hostsProxyHeaders: - - foobar - - foobar + - foobar + - foobar sslRedirect: true sslTemporaryRedirect: true sslHost: foobar @@ -96,83 +175,21 @@ http: publicKey: foobar referrerPolicy: foobar isDevelopment: true - Middleware9: - errors: - status: - - foobar - - foobar - service: foobar - query: foobar Middleware10: - rateLimit: - rateSet: - Rate0: - period: 42000000000 - average: 42 - burst: 42 - Rate1: - period: 42000000000 - average: 42 - burst: 42 - extractorFunc: foobar + ipWhiteList: + sourceRange: + - foobar + - foobar + ipStrategy: + depth: 42 + excludedIPs: + - foobar + - foobar Middleware11: - redirectRegex: - regex: foobar - replacement: foobar - permanent: true - Middleware12: - redirectScheme: - scheme: foobar - port: foobar - permanent: true - Middleware13: - basicAuth: - users: - - foobar - - foobar - usersFile: foobar - realm: foobar - removeHeader: true - headerField: foobar - Middleware14: - digestAuth: - users: - - foobar - - foobar - usersFile: foobar - removeHeader: true - realm: foobar - headerField: foobar - Middleware15: - forwardAuth: - address: foobar - tls: - ca: foobar - caOptional: true - cert: foobar - key: foobar - insecureSkipVerify: true - trustForwardHeader: true - authResponseHeaders: - - foobar - - foobar - Middleware16: maxConn: amount: 42 extractorFunc: foobar - Middleware17: - buffering: - maxRequestBodyBytes: 42 - memRequestBodyBytes: 42 - maxResponseBodyBytes: 42 - memResponseBodyBytes: 42 - retryExpression: foobar - Middleware18: - circuitBreaker: - expression: foobar - Middleware19: - compress: {} - Middleware20: + Middleware12: passTLSClientCert: pem: true info: @@ -195,79 +212,112 @@ http: commonName: true serialNumber: true domainComponent: true - Middleware21: + Middleware13: + rateLimit: + rateSet: + Rate0: + period: 42ns + average: 42 + burst: 42 + Rate1: + period: 42ns + average: 42 + burst: 42 + extractorFunc: foobar + Middleware14: + redirectRegex: + regex: foobar + replacement: foobar + permanent: true + Middleware15: + redirectScheme: + scheme: foobar + port: foobar + permanent: true + Middleware16: + replacePath: + path: foobar + Middleware17: + replacePathRegex: + regex: foobar + replacement: foobar + Middleware18: retry: - attemps: 42 - services: - Service0: - loadBalancer: - stickiness: - cookieName: foobar - servers: - - url: foobar - - url: foobar - healthCheck: - scheme: foobar - path: foobar - port: 42 - interval: foobar - timeout: foobar - hostname: foobar - headers: - name0: foobar - name1: foobar - passHostHeader: true - responseForwarding: - flushInterval: foobar + attempts: 42 + Middleware19: + stripPrefix: + prefixes: + - foobar + - foobar + Middleware20: + stripPrefixRegex: + regex: + - foobar + - foobar tcp: routers: TCPRouter0: entryPoints: - - foobar - - foobar + - foobar + - foobar service: foobar rule: foobar tls: passthrough: true + options: foobar + TCPRouter1: + entryPoints: + - foobar + - foobar + service: foobar + rule: foobar + tls: + passthrough: true + options: foobar services: TCPService0: loadBalancer: servers: - - address: foobar - - address: foobar + - address: foobar + - address: foobar + TCPService1: + loadBalancer: + servers: + - address: foobar + - address: foobar tls: certificates: - - certFile: foobar - keyFile: foobar - stores: - - foobar - - foobar - - certFile: foobar - keyFile: foobar - stores: - - foobar - - foobar + - certFile: foobar + keyFile: foobar + stores: + - foobar + - foobar + - certFile: foobar + keyFile: foobar + stores: + - foobar + - foobar options: - TLS0: + Options0: minVersion: foobar cipherSuites: - - foobar - - foobar + - foobar + - foobar clientCA: files: - - foobar - - foobar + - foobar + - foobar optional: true sniStrict: true - TLS1: + Options1: minVersion: foobar cipherSuites: - - foobar - - foobar + - foobar + - foobar clientCA: files: - - foobar - - foobar + - foobar + - foobar optional: true sniStrict: true stores: diff --git a/docs/content/reference/dynamic-configuration/labels.yml b/docs/content/reference/dynamic-configuration/labels.yml index a1b557cfb..3cd3e4767 100644 --- a/docs/content/reference/dynamic-configuration/labels.yml +++ b/docs/content/reference/dynamic-configuration/labels.yml @@ -1,154 +1,165 @@ labels: -- "traefik.http.middlewares.Middleware0.addprefix.prefix=foobar" -- "traefik.http.middlewares.Middleware1.basicauth.headerfield=foobar" -- "traefik.http.middlewares.Middleware1.basicauth.realm=foobar" -- "traefik.http.middlewares.Middleware1.basicauth.removeheader=true" -- "traefik.http.middlewares.Middleware1.basicauth.users=foobar, fiibar" -- "traefik.http.middlewares.Middleware1.basicauth.usersfile=foobar" -- "traefik.http.middlewares.Middleware2.buffering.maxrequestbodybytes=42" -- "traefik.http.middlewares.Middleware2.buffering.maxresponsebodybytes=42" -- "traefik.http.middlewares.Middleware2.buffering.memrequestbodybytes=42" -- "traefik.http.middlewares.Middleware2.buffering.memresponsebodybytes=42" -- "traefik.http.middlewares.Middleware2.buffering.retryexpression=foobar" -- "traefik.http.middlewares.Middleware3.chain.middlewares=foobar, fiibar" -- "traefik.http.middlewares.Middleware4.circuitbreaker.expression=foobar" -- "traefik.http.middlewares.Middleware5.digestauth.headerfield=foobar" -- "traefik.http.middlewares.Middleware5.digestauth.realm=foobar" -- "traefik.http.middlewares.Middleware5.digestauth.removeheader=true" -- "traefik.http.middlewares.Middleware5.digestauth.users=foobar, fiibar" -- "traefik.http.middlewares.Middleware5.digestauth.usersfile=foobar" -- "traefik.http.middlewares.Middleware6.errors.query=foobar" -- "traefik.http.middlewares.Middleware6.errors.service=foobar" -- "traefik.http.middlewares.Middleware6.errors.status=foobar, fiibar" -- "traefik.http.middlewares.Middleware7.forwardauth.address=foobar" -- "traefik.http.middlewares.Middleware7.forwardauth.authresponseheaders=foobar, fiibar" -- "traefik.http.middlewares.Middleware7.forwardauth.tls.ca=foobar" -- "traefik.http.middlewares.Middleware7.forwardauth.tls.caoptional=true" -- "traefik.http.middlewares.Middleware7.forwardauth.tls.cert=foobar" -- "traefik.http.middlewares.Middleware7.forwardauth.tls.insecureskipverify=true" -- "traefik.http.middlewares.Middleware7.forwardauth.tls.key=foobar" -- "traefik.http.middlewares.Middleware7.forwardauth.trustforwardheader=true" -- "traefik.http.middlewares.Middleware8.headers.accesscontrolallowcredentials=true" -- "traefik.http.middlewares.Middleware8.headers.accesscontrolallowheaders=x-foobar, x-fiibar" -- "traefik.http.middlewares.Middleware8.headers.accesscontrolallowmethods=get, put" -- "traefik.http.middlewares.Middleware8.headers.accesscontrolalloworigin=foobar" -- "traefik.http.middlewares.Middleware8.headers.accesscontrolexposeheaders=x-foobar, x-fiibar" -- "traefik.http.middlewares.Middleware8.headers.accesscontrolmaxage=200" -- "traefik.http.middlewares.Middleware8.headers.addvaryheader=true" -- "traefik.http.middlewares.Middleware8.headers.allowedhosts=foobar, fiibar" -- "traefik.http.middlewares.Middleware8.headers.browserxssfilter=true" -- "traefik.http.middlewares.Middleware8.headers.contentsecuritypolicy=foobar" -- "traefik.http.middlewares.Middleware8.headers.contenttypenosniff=true" -- "traefik.http.middlewares.Middleware8.headers.custombrowserxssvalue=foobar" -- "traefik.http.middlewares.Middleware8.headers.customframeoptionsvalue=foobar" -- "traefik.http.middlewares.Middleware8.headers.customrequestheaders.name0=foobar" -- "traefik.http.middlewares.Middleware8.headers.customrequestheaders.name1=foobar" -- "traefik.http.middlewares.Middleware8.headers.customresponseheaders.name0=foobar" -- "traefik.http.middlewares.Middleware8.headers.customresponseheaders.name1=foobar" -- "traefik.http.middlewares.Middleware8.headers.forcestsheader=true" -- "traefik.http.middlewares.Middleware8.headers.framedeny=true" -- "traefik.http.middlewares.Middleware8.headers.hostsproxyheaders=foobar, fiibar" -- "traefik.http.middlewares.Middleware8.headers.isdevelopment=true" -- "traefik.http.middlewares.Middleware8.headers.publickey=foobar" -- "traefik.http.middlewares.Middleware8.headers.referrerpolicy=foobar" -- "traefik.http.middlewares.Middleware8.headers.sslforcehost=true" -- "traefik.http.middlewares.Middleware8.headers.sslhost=foobar" -- "traefik.http.middlewares.Middleware8.headers.sslproxyheaders.name0=foobar" -- "traefik.http.middlewares.Middleware8.headers.sslproxyheaders.name1=foobar" -- "traefik.http.middlewares.Middleware8.headers.sslredirect=true" -- "traefik.http.middlewares.Middleware8.headers.ssltemporaryredirect=true" -- "traefik.http.middlewares.Middleware8.headers.stsincludesubdomains=true" -- "traefik.http.middlewares.Middleware8.headers.stspreload=true" -- "traefik.http.middlewares.Middleware8.headers.stsseconds=42" -- "traefik.http.middlewares.Middleware9.ipwhitelist.ipstrategy.depth=42" -- "traefik.http.middlewares.Middleware9.ipwhitelist.ipstrategy.excludedips=foobar, fiibar" -- "traefik.http.middlewares.Middleware9.ipwhitelist.sourcerange=foobar, fiibar" -- "traefik.http.middlewares.Middleware10.maxconn.amount=42" -- "traefik.http.middlewares.Middleware10.maxconn.extractorfunc=foobar" -- "traefik.http.middlewares.Middleware11.passtlsclientcert.info.notafter=true" -- "traefik.http.middlewares.Middleware11.passtlsclientcert.info.notbefore=true" -- "traefik.http.middlewares.Middleware11.passtlsclientcert.info.sans=true" -- "traefik.http.middlewares.Middleware11.passtlsclientcert.info.subject.country=true" -- "traefik.http.middlewares.Middleware11.passtlsclientcert.info.subject.province=true" -- "traefik.http.middlewares.Middleware11.passtlsclientcert.info.subject.locality=true" -- "traefik.http.middlewares.Middleware11.passtlsclientcert.info.subject.organization=true" -- "traefik.http.middlewares.Middleware11.passtlsclientcert.info.subject.commonname=true" -- "traefik.http.middlewares.Middleware11.passtlsclientcert.info.subject.serialnumber=true" -- "traefik.http.middlewares.Middleware11.passtlsclientcert.info.subject.domaincomponent=true" -- "traefik.http.middlewares.Middleware11.passtlsclientcert.info.issuer.country=true" -- "traefik.http.middlewares.Middleware11.passtlsclientcert.info.issuer.province=true" -- "traefik.http.middlewares.Middleware11.passtlsclientcert.info.issuer.locality=true" -- "traefik.http.middlewares.Middleware11.passtlsclientcert.info.issuer.organization=true" -- "traefik.http.middlewares.Middleware11.passtlsclientcert.info.issuer.commonname=true" -- "traefik.http.middlewares.Middleware11.passtlsclientcert.info.issuer.serialnumber=true" -- "traefik.http.middlewares.Middleware11.passtlsclientcert.info.issuer.domaincomponent=true" -- "traefik.http.middlewares.Middleware11.passtlsclientcert.pem=true" -- "traefik.http.middlewares.Middleware12.ratelimit.extractorfunc=foobar" -- "traefik.http.middlewares.Middleware12.ratelimit.rateset.rate0.average=42" -- "traefik.http.middlewares.Middleware12.ratelimit.rateset.rate0.burst=42" -- "traefik.http.middlewares.Middleware12.ratelimit.rateset.rate0.period=42" -- "traefik.http.middlewares.Middleware12.ratelimit.rateset.rate1.average=42" -- "traefik.http.middlewares.Middleware12.ratelimit.rateset.rate1.burst=42" -- "traefik.http.middlewares.Middleware12.ratelimit.rateset.rate1.period=42" -- "traefik.http.middlewares.Middleware13.redirectregex.regex=foobar" -- "traefik.http.middlewares.Middleware13.redirectregex.replacement=foobar" -- "traefik.http.middlewares.Middleware13.redirectregex.permanent=true" -- "traefik.http.middlewares.Middleware13b.redirectscheme.scheme=https" -- "traefik.http.middlewares.Middleware13b.redirectscheme.port=80" -- "traefik.http.middlewares.Middleware13b.redirectscheme.permanent=true" -- "traefik.http.middlewares.Middleware14.replacepath.path=foobar" -- "traefik.http.middlewares.Middleware15.replacepathregex.regex=foobar" -- "traefik.http.middlewares.Middleware15.replacepathregex.replacement=foobar" -- "traefik.http.middlewares.Middleware16.retry.attempts=42" -- "traefik.http.middlewares.Middleware17.stripprefix.prefixes=foobar, fiibar" -- "traefik.http.middlewares.Middleware18.stripprefixregex.regex=foobar, fiibar" -- "traefik.http.middlewares.Middleware19.compress=true" -- "traefik.http.routers.Router0.entrypoints=foobar, fiibar" -- "traefik.http.routers.Router0.middlewares=foobar, fiibar" -- "traefik.http.routers.Router0.priority=42" -- "traefik.http.routers.Router0.rule=foobar" -- "traefik.http.routers.Router0.service=foobar" -- "traefik.http.routers.Router0.tls=true" -- "traefik.http.routers.Router0.tls.options=foo" -- "traefik.http.routers.Router1.entrypoints=foobar, fiibar" -- "traefik.http.routers.Router1.middlewares=foobar, fiibar" -- "traefik.http.routers.Router1.priority=42" -- "traefik.http.routers.Router1.rule=foobar" -- "traefik.http.routers.Router1.service=foobar" -- "traefik.http.services.Service0.loadbalancer.healthcheck.headers.name0=foobar" -- "traefik.http.services.Service0.loadbalancer.healthcheck.headers.name1=foobar" -- "traefik.http.services.Service0.loadbalancer.healthcheck.hostname=foobar" -- "traefik.http.services.Service0.loadbalancer.healthcheck.interval=foobar" -- "traefik.http.services.Service0.loadbalancer.healthcheck.path=foobar" -- "traefik.http.services.Service0.loadbalancer.healthcheck.port=42" -- "traefik.http.services.Service0.loadbalancer.healthcheck.scheme=foobar" -- "traefik.http.services.Service0.loadbalancer.healthcheck.timeout=foobar" -- "traefik.http.services.Service0.loadbalancer.passhostheader=true" -- "traefik.http.services.Service0.loadbalancer.responseforwarding.flushinterval=foobar" -- "traefik.http.services.Service0.loadbalancer.server.port=8080" -- "traefik.http.services.Service0.loadbalancer.server.scheme=foobar" -- "traefik.http.services.Service0.loadbalancer.stickiness.cookiename=foobar" -- "traefik.http.services.Service1.loadbalancer.healthcheck.headers.name0=foobar" -- "traefik.http.services.Service1.loadbalancer.healthcheck.headers.name1=foobar" -- "traefik.http.services.Service1.loadbalancer.healthcheck.hostname=foobar" -- "traefik.http.services.Service1.loadbalancer.healthcheck.interval=foobar" -- "traefik.http.services.Service1.loadbalancer.healthcheck.path=foobar" -- "traefik.http.services.Service1.loadbalancer.healthcheck.port=42" -- "traefik.http.services.Service1.loadbalancer.healthcheck.scheme=foobar" -- "traefik.http.services.Service1.loadbalancer.healthcheck.timeout=foobar" -- "traefik.http.services.Service1.loadbalancer.passhostheader=true" -- "traefik.http.services.Service1.loadbalancer.responseforwarding.flushinterval=foobar" -- "traefik.http.services.Service1.loadbalancer.server.port=8080" -- "traefik.http.services.Service1.loadbalancer.server.scheme=foobar" -- "traefik.tcp.routers.Router0.rule=foobar" -- "traefik.tcp.routers.Router0.entrypoints=foobar, fiibar" -- "traefik.tcp.routers.Router0.service=foobar" -- "traefik.tcp.routers.Router0.tls.passthrough=false" -- "traefik.tcp.routers.Router0.tls.options=bar" -- "traefik.tcp.routers.Router1.rule=foobar" -- "traefik.tcp.routers.Router1.entrypoints=foobar, fiibar" -- "traefik.tcp.routers.Router1.service=foobar" -- "traefik.tcp.routers.Router1.tls.passthrough=false" -- "traefik.tcp.routers.Router1.tls.options=foobar" -- "traefik.tcp.services.Service0.loadbalancer.server.port=42" -- "traefik.tcp.services.Service1.loadbalancer.server.port=42" +- "traefik.http.middlewares.middleware00.addprefix.prefix=foobar" +- "traefik.http.middlewares.middleware01.basicauth.headerfield=foobar" +- "traefik.http.middlewares.middleware01.basicauth.realm=foobar" +- "traefik.http.middlewares.middleware01.basicauth.removeheader=true" +- "traefik.http.middlewares.middleware01.basicauth.users=foobar, foobar" +- "traefik.http.middlewares.middleware01.basicauth.usersfile=foobar" +- "traefik.http.middlewares.middleware02.buffering.maxrequestbodybytes=42" +- "traefik.http.middlewares.middleware02.buffering.maxresponsebodybytes=42" +- "traefik.http.middlewares.middleware02.buffering.memrequestbodybytes=42" +- "traefik.http.middlewares.middleware02.buffering.memresponsebodybytes=42" +- "traefik.http.middlewares.middleware02.buffering.retryexpression=foobar" +- "traefik.http.middlewares.middleware03.chain.middlewares=foobar, foobar" +- "traefik.http.middlewares.middleware04.circuitbreaker.expression=foobar" +- "traefik.http.middlewares.middleware05.compress=true" +- "traefik.http.middlewares.middleware06.digestauth.headerfield=foobar" +- "traefik.http.middlewares.middleware06.digestauth.realm=foobar" +- "traefik.http.middlewares.middleware06.digestauth.removeheader=true" +- "traefik.http.middlewares.middleware06.digestauth.users=foobar, foobar" +- "traefik.http.middlewares.middleware06.digestauth.usersfile=foobar" +- "traefik.http.middlewares.middleware07.errors.query=foobar" +- "traefik.http.middlewares.middleware07.errors.service=foobar" +- "traefik.http.middlewares.middleware07.errors.status=foobar, foobar" +- "traefik.http.middlewares.middleware08.forwardauth.address=foobar" +- "traefik.http.middlewares.middleware08.forwardauth.authresponseheaders=foobar, foobar" +- "traefik.http.middlewares.middleware08.forwardauth.tls.ca=foobar" +- "traefik.http.middlewares.middleware08.forwardauth.tls.caoptional=true" +- "traefik.http.middlewares.middleware08.forwardauth.tls.cert=foobar" +- "traefik.http.middlewares.middleware08.forwardauth.tls.insecureskipverify=true" +- "traefik.http.middlewares.middleware08.forwardauth.tls.key=foobar" +- "traefik.http.middlewares.middleware08.forwardauth.trustforwardheader=true" +- "traefik.http.middlewares.middleware09.headers.accesscontrolallowcredentials=true" +- "traefik.http.middlewares.middleware09.headers.accesscontrolallowheaders=foobar, foobar" +- "traefik.http.middlewares.middleware09.headers.accesscontrolallowmethods=foobar, foobar" +- "traefik.http.middlewares.middleware09.headers.accesscontrolalloworigin=foobar" +- "traefik.http.middlewares.middleware09.headers.accesscontrolexposeheaders=foobar, foobar" +- "traefik.http.middlewares.middleware09.headers.accesscontrolmaxage=42" +- "traefik.http.middlewares.middleware09.headers.addvaryheader=true" +- "traefik.http.middlewares.middleware09.headers.allowedhosts=foobar, foobar" +- "traefik.http.middlewares.middleware09.headers.browserxssfilter=true" +- "traefik.http.middlewares.middleware09.headers.contentsecuritypolicy=foobar" +- "traefik.http.middlewares.middleware09.headers.contenttypenosniff=true" +- "traefik.http.middlewares.middleware09.headers.custombrowserxssvalue=foobar" +- "traefik.http.middlewares.middleware09.headers.customframeoptionsvalue=foobar" +- "traefik.http.middlewares.middleware09.headers.customrequestheaders.name0=foobar" +- "traefik.http.middlewares.middleware09.headers.customrequestheaders.name1=foobar" +- "traefik.http.middlewares.middleware09.headers.customresponseheaders.name0=foobar" +- "traefik.http.middlewares.middleware09.headers.customresponseheaders.name1=foobar" +- "traefik.http.middlewares.middleware09.headers.forcestsheader=true" +- "traefik.http.middlewares.middleware09.headers.framedeny=true" +- "traefik.http.middlewares.middleware09.headers.hostsproxyheaders=foobar, foobar" +- "traefik.http.middlewares.middleware09.headers.isdevelopment=true" +- "traefik.http.middlewares.middleware09.headers.publickey=foobar" +- "traefik.http.middlewares.middleware09.headers.referrerpolicy=foobar" +- "traefik.http.middlewares.middleware09.headers.sslforcehost=true" +- "traefik.http.middlewares.middleware09.headers.sslhost=foobar" +- "traefik.http.middlewares.middleware09.headers.sslproxyheaders.name0=foobar" +- "traefik.http.middlewares.middleware09.headers.sslproxyheaders.name1=foobar" +- "traefik.http.middlewares.middleware09.headers.sslredirect=true" +- "traefik.http.middlewares.middleware09.headers.ssltemporaryredirect=true" +- "traefik.http.middlewares.middleware09.headers.stsincludesubdomains=true" +- "traefik.http.middlewares.middleware09.headers.stspreload=true" +- "traefik.http.middlewares.middleware09.headers.stsseconds=42" +- "traefik.http.middlewares.middleware10.ipwhitelist.ipstrategy.depth=42" +- "traefik.http.middlewares.middleware10.ipwhitelist.ipstrategy.excludedips=foobar, foobar" +- "traefik.http.middlewares.middleware10.ipwhitelist.sourcerange=foobar, foobar" +- "traefik.http.middlewares.middleware11.maxconn.amount=42" +- "traefik.http.middlewares.middleware11.maxconn.extractorfunc=foobar" +- "traefik.http.middlewares.middleware12.passtlsclientcert.info.issuer.commonname=true" +- "traefik.http.middlewares.middleware12.passtlsclientcert.info.issuer.country=true" +- "traefik.http.middlewares.middleware12.passtlsclientcert.info.issuer.domaincomponent=true" +- "traefik.http.middlewares.middleware12.passtlsclientcert.info.issuer.locality=true" +- "traefik.http.middlewares.middleware12.passtlsclientcert.info.issuer.organization=true" +- "traefik.http.middlewares.middleware12.passtlsclientcert.info.issuer.province=true" +- "traefik.http.middlewares.middleware12.passtlsclientcert.info.issuer.serialnumber=true" +- "traefik.http.middlewares.middleware12.passtlsclientcert.info.notafter=true" +- "traefik.http.middlewares.middleware12.passtlsclientcert.info.notbefore=true" +- "traefik.http.middlewares.middleware12.passtlsclientcert.info.sans=true" +- "traefik.http.middlewares.middleware12.passtlsclientcert.info.subject.commonname=true" +- "traefik.http.middlewares.middleware12.passtlsclientcert.info.subject.country=true" +- "traefik.http.middlewares.middleware12.passtlsclientcert.info.subject.domaincomponent=true" +- "traefik.http.middlewares.middleware12.passtlsclientcert.info.subject.locality=true" +- "traefik.http.middlewares.middleware12.passtlsclientcert.info.subject.organization=true" +- "traefik.http.middlewares.middleware12.passtlsclientcert.info.subject.province=true" +- "traefik.http.middlewares.middleware12.passtlsclientcert.info.subject.serialnumber=true" +- "traefik.http.middlewares.middleware12.passtlsclientcert.pem=true" +- "traefik.http.middlewares.middleware13.ratelimit.extractorfunc=foobar" +- "traefik.http.middlewares.middleware13.ratelimit.rateset.rate0.average=42" +- "traefik.http.middlewares.middleware13.ratelimit.rateset.rate0.burst=42" +- "traefik.http.middlewares.middleware13.ratelimit.rateset.rate0.period=42" +- "traefik.http.middlewares.middleware13.ratelimit.rateset.rate1.average=42" +- "traefik.http.middlewares.middleware13.ratelimit.rateset.rate1.burst=42" +- "traefik.http.middlewares.middleware13.ratelimit.rateset.rate1.period=42" +- "traefik.http.middlewares.middleware14.redirectregex.permanent=true" +- "traefik.http.middlewares.middleware14.redirectregex.regex=foobar" +- "traefik.http.middlewares.middleware14.redirectregex.replacement=foobar" +- "traefik.http.middlewares.middleware15.redirectscheme.permanent=true" +- "traefik.http.middlewares.middleware15.redirectscheme.port=foobar" +- "traefik.http.middlewares.middleware15.redirectscheme.scheme=foobar" +- "traefik.http.middlewares.middleware16.replacepath.path=foobar" +- "traefik.http.middlewares.middleware17.replacepathregex.regex=foobar" +- "traefik.http.middlewares.middleware17.replacepathregex.replacement=foobar" +- "traefik.http.middlewares.middleware18.retry.attempts=42" +- "traefik.http.middlewares.middleware19.stripprefix.prefixes=foobar, foobar" +- "traefik.http.middlewares.middleware20.stripprefixregex.regex=foobar, foobar" +- "traefik.http.routers.router0.entrypoints=foobar, foobar" +- "traefik.http.routers.router0.middlewares=foobar, foobar" +- "traefik.http.routers.router0.priority=42" +- "traefik.http.routers.router0.rule=foobar" +- "traefik.http.routers.router0.service=foobar" +- "traefik.http.routers.router0.tls=true" +- "traefik.http.routers.router0.tls.options=foobar" +- "traefik.http.routers.router1.entrypoints=foobar, foobar" +- "traefik.http.routers.router1.middlewares=foobar, foobar" +- "traefik.http.routers.router1.priority=42" +- "traefik.http.routers.router1.rule=foobar" +- "traefik.http.routers.router1.service=foobar" +- "traefik.http.routers.router1.tls=true" +- "traefik.http.routers.router1.tls.options=foobar" +- "traefik.http.services.service0.loadbalancer.healthcheck.headers.name0=foobar" +- "traefik.http.services.service0.loadbalancer.healthcheck.headers.name1=foobar" +- "traefik.http.services.service0.loadbalancer.healthcheck.hostname=foobar" +- "traefik.http.services.service0.loadbalancer.healthcheck.interval=foobar" +- "traefik.http.services.service0.loadbalancer.healthcheck.path=foobar" +- "traefik.http.services.service0.loadbalancer.healthcheck.port=42" +- "traefik.http.services.service0.loadbalancer.healthcheck.scheme=foobar" +- "traefik.http.services.service0.loadbalancer.healthcheck.timeout=foobar" +- "traefik.http.services.service0.loadbalancer.passhostheader=true" +- "traefik.http.services.service0.loadbalancer.responseforwarding.flushinterval=foobar" +- "traefik.http.services.service0.loadbalancer.stickiness=true" +- "traefik.http.services.service0.loadbalancer.stickiness.cookiename=foobar" +- "traefik.http.services.service0.loadbalancer.stickiness.httponlycookie=true" +- "traefik.http.services.service0.loadbalancer.stickiness.securecookie=true" +- "traefik.http.services.service0.loadbalancer.server.port=foobar" +- "traefik.http.services.service0.loadbalancer.server.scheme=foobar" +- "traefik.http.services.service1.loadbalancer.healthcheck.headers.name0=foobar" +- "traefik.http.services.service1.loadbalancer.healthcheck.headers.name1=foobar" +- "traefik.http.services.service1.loadbalancer.healthcheck.hostname=foobar" +- "traefik.http.services.service1.loadbalancer.healthcheck.interval=foobar" +- "traefik.http.services.service1.loadbalancer.healthcheck.path=foobar" +- "traefik.http.services.service1.loadbalancer.healthcheck.port=42" +- "traefik.http.services.service1.loadbalancer.healthcheck.scheme=foobar" +- "traefik.http.services.service1.loadbalancer.healthcheck.timeout=foobar" +- "traefik.http.services.service1.loadbalancer.passhostheader=true" +- "traefik.http.services.service1.loadbalancer.responseforwarding.flushinterval=foobar" +- "traefik.http.services.service1.loadbalancer.stickiness=true" +- "traefik.http.services.service1.loadbalancer.stickiness.cookiename=foobar" +- "traefik.http.services.service1.loadbalancer.stickiness.httponlycookie=true" +- "traefik.http.services.service1.loadbalancer.stickiness.securecookie=true" +- "traefik.http.services.service1.loadbalancer.server.port=foobar" +- "traefik.http.services.service1.loadbalancer.server.scheme=foobar" +- "traefik.tcp.routers.tcprouter0.entrypoints=foobar, foobar" +- "traefik.tcp.routers.tcprouter0.rule=foobar" +- "traefik.tcp.routers.tcprouter0.service=foobar" +- "traefik.tcp.routers.tcprouter0.tls=true" +- "traefik.tcp.routers.tcprouter0.tls.options=foobar" +- "traefik.tcp.routers.tcprouter0.tls.passthrough=true" +- "traefik.tcp.routers.tcprouter1.entrypoints=foobar, foobar" +- "traefik.tcp.routers.tcprouter1.rule=foobar" +- "traefik.tcp.routers.tcprouter1.service=foobar" +- "traefik.tcp.routers.tcprouter1.tls=true" +- "traefik.tcp.routers.tcprouter1.tls.options=foobar" +- "traefik.tcp.routers.tcprouter1.tls.passthrough=true" +- "traefik.tcp.services.tcpservice0.loadbalancer.server.port=foobar" +- "traefik.tcp.services.tcpservice1.loadbalancer.server.port=foobar" \ No newline at end of file diff --git a/docs/content/reference/static-configuration/cli-ref.md b/docs/content/reference/static-configuration/cli-ref.md new file mode 100644 index 000000000..47384e163 --- /dev/null +++ b/docs/content/reference/static-configuration/cli-ref.md @@ -0,0 +1,589 @@ + + +`--accesslog`: +Access log settings. (Default: ```false```) + +`--accesslog.bufferingsize`: +Number of access log lines to process in a buffered way. (Default: ```0```) + +`--accesslog.fields.defaultmode`: +Default mode for fields: keep | drop (Default: ```keep```) + +`--accesslog.fields.headers.defaultmode`: +Default mode for fields: keep | drop | redact (Default: ```drop```) + +`--accesslog.fields.headers.names.`: +Override mode for headers + +`--accesslog.fields.names.`: +Override mode for fields + +`--accesslog.filepath`: +Access log file path. Stdout is used when omitted or empty. + +`--accesslog.filters.minduration`: +Keep access logs when request took longer than the specified duration. (Default: ```0```) + +`--accesslog.filters.retryattempts`: +Keep access logs when at least one retry happened. (Default: ```false```) + +`--accesslog.filters.statuscodes`: +Keep access logs with status codes in the specified range. + +`--accesslog.format`: +Access log format: json | common (Default: ```common```) + +`--acme.acmelogging`: +Enable debug logging of ACME actions. (Default: ```false```) + +`--acme.caserver`: +CA server to use. (Default: ```https://acme-v02.api.letsencrypt.org/directory```) + +`--acme.dnschallenge`: +Activate DNS-01 Challenge. (Default: ```false```) + +`--acme.dnschallenge.delaybeforecheck`: +Assume DNS propagates after a delay in seconds rather than finding and querying nameservers. (Default: ```0```) + +`--acme.dnschallenge.disablepropagationcheck`: +Disable the DNS propagation checks before notifying ACME that the DNS challenge is ready. [not recommended] (Default: ```false```) + +`--acme.dnschallenge.provider`: +Use a DNS-01 based challenge provider rather than HTTPS. + +`--acme.dnschallenge.resolvers`: +Use following DNS servers to resolve the FQDN authority. + +`--acme.domains`: +The list of domains for which certificates are generated on startup. Wildcard domains only accepted with DNSChallenge. + +`--acme.domains[n].main`: +Default subject name. + +`--acme.domains[n].sans`: +Subject alternative names. + +`--acme.email`: +Email address used for registration. + +`--acme.entrypoint`: +EntryPoint to use. + +`--acme.httpchallenge`: +Activate HTTP-01 Challenge. (Default: ```false```) + +`--acme.httpchallenge.entrypoint`: +HTTP challenge EntryPoint + +`--acme.keytype`: +KeyType used for generating certificate private key. Allow value 'EC256', 'EC384', 'RSA2048', 'RSA4096', 'RSA8192'. (Default: ```RSA4096```) + +`--acme.onhostrule`: +Enable certificate generation on router Host rules. (Default: ```false```) + +`--acme.storage`: +Storage to use. (Default: ```acme.json```) + +`--acme.tlschallenge`: +Activate TLS-ALPN-01 Challenge. (Default: ```true```) + +`--api`: +Enable api/dashboard. (Default: ```false```) + +`--api.dashboard`: +Activate dashboard. (Default: ```true```) + +`--api.debug`: +Enable additional endpoints for debugging and profiling. (Default: ```false```) + +`--api.entrypoint`: +The entry point that the API handler will be bound to. (Default: ```traefik```) + +`--api.middlewares`: +Middleware list. + +`--api.statistics`: +Enable more detailed statistics. (Default: ```false```) + +`--api.statistics.recenterrors`: +Number of recent errors logged. (Default: ```10```) + +`--entrypoints.`: +Entry points definition. (Default: ```false```) + +`--entrypoints..address`: +Entry point address. + +`--entrypoints..forwardedheaders.insecure`: +Trust all forwarded headers. (Default: ```false```) + +`--entrypoints..forwardedheaders.trustedips`: +Trust only forwarded headers from selected IPs. + +`--entrypoints..proxyprotocol`: +Proxy-Protocol configuration. (Default: ```false```) + +`--entrypoints..proxyprotocol.insecure`: +Trust all. (Default: ```false```) + +`--entrypoints..proxyprotocol.trustedips`: +Trust only selected IPs. + +`--entrypoints..transport.lifecycle.gracetimeout`: +Duration to give active requests a chance to finish before Traefik stops. (Default: ```10```) + +`--entrypoints..transport.lifecycle.requestacceptgracetimeout`: +Duration to keep accepting requests before Traefik initiates the graceful shutdown procedure. (Default: ```0```) + +`--entrypoints..transport.respondingtimeouts.idletimeout`: +IdleTimeout is the maximum amount duration an idle (keep-alive) connection will remain idle before closing itself. If zero, no timeout is set. (Default: ```180```) + +`--entrypoints..transport.respondingtimeouts.readtimeout`: +ReadTimeout is the maximum duration for reading the entire request, including the body. If zero, no timeout is set. (Default: ```0```) + +`--entrypoints..transport.respondingtimeouts.writetimeout`: +WriteTimeout is the maximum duration before timing out writes of the response. If zero, no timeout is set. (Default: ```0```) + +`--global.checknewversion`: +Periodically check if a new version has been released. (Default: ```false```) + +`--global.sendanonymoususage`: +Periodically send anonymous usage statistics. If the option is not specified, it will be enabled by default. (Default: ```false```) + +`--hostresolver`: +Enable CNAME Flattening. (Default: ```false```) + +`--hostresolver.cnameflattening`: +A flag to enable/disable CNAME flattening (Default: ```false```) + +`--hostresolver.resolvconfig`: +resolv.conf used for DNS resolving (Default: ```/etc/resolv.conf```) + +`--hostresolver.resolvdepth`: +The maximal depth of DNS recursive resolving (Default: ```5```) + +`--log`: +Traefik log settings. (Default: ```false```) + +`--log.filepath`: +Traefik log file path. Stdout is used when omitted or empty. + +`--log.format`: +Traefik log format: json | common (Default: ```common```) + +`--log.level`: +Log level set to traefik logs. (Default: ```ERROR```) + +`--metrics.datadog`: +DataDog metrics exporter type. (Default: ```false```) + +`--metrics.datadog.address`: +DataDog's address. (Default: ```localhost:8125```) + +`--metrics.datadog.pushinterval`: +DataDog push interval. (Default: ```10```) + +`--metrics.influxdb`: +InfluxDB metrics exporter type. (Default: ```false```) + +`--metrics.influxdb.address`: +InfluxDB address. (Default: ```localhost:8089```) + +`--metrics.influxdb.database`: +InfluxDB database used when protocol is http. + +`--metrics.influxdb.password`: +InfluxDB password (only with http). + +`--metrics.influxdb.protocol`: +InfluxDB address protocol (udp or http). (Default: ```udp```) + +`--metrics.influxdb.pushinterval`: +InfluxDB push interval. (Default: ```10```) + +`--metrics.influxdb.retentionpolicy`: +InfluxDB retention policy used when protocol is http. + +`--metrics.influxdb.username`: +InfluxDB username (only with http). + +`--metrics.prometheus`: +Prometheus metrics exporter type. (Default: ```false```) + +`--metrics.prometheus.buckets`: +Buckets for latency metrics. (Default: ```0.100000, 0.300000, 1.200000, 5.000000```) + +`--metrics.prometheus.entrypoint`: +EntryPoint. (Default: ```traefik```) + +`--metrics.prometheus.middlewares`: +Middlewares. + +`--metrics.statsd`: +StatsD metrics exporter type. (Default: ```false```) + +`--metrics.statsd.address`: +StatsD address. (Default: ```localhost:8125```) + +`--metrics.statsd.pushinterval`: +StatsD push interval. (Default: ```10```) + +`--ping`: +Enable ping. (Default: ```false```) + +`--ping.entrypoint`: +Ping entryPoint. (Default: ```traefik```) + +`--ping.middlewares`: +Middleware list. + +`--providers.docker`: +Enable Docker backend with default settings. (Default: ```false```) + +`--providers.docker.constraints`: +Constraints is an expression that Traefik matches against the container's labels to determine whether to create any route for that container. + +`--providers.docker.defaultrule`: +Default rule. (Default: ```Host(`{{ normalize .Name }}`)```) + +`--providers.docker.endpoint`: +Docker server endpoint. Can be a tcp or a unix socket endpoint. (Default: ```unix:///var/run/docker.sock```) + +`--providers.docker.exposedbydefault`: +Expose containers by default. (Default: ```true```) + +`--providers.docker.network`: +Default Docker network used. + +`--providers.docker.swarmmode`: +Use Docker on Swarm Mode. (Default: ```false```) + +`--providers.docker.swarmmoderefreshseconds`: +Polling interval for swarm mode. (Default: ```15```) + +`--providers.docker.tls.ca`: +TLS CA + +`--providers.docker.tls.caoptional`: +TLS CA.Optional (Default: ```false```) + +`--providers.docker.tls.cert`: +TLS cert + +`--providers.docker.tls.insecureskipverify`: +TLS insecure skip verify (Default: ```false```) + +`--providers.docker.tls.key`: +TLS key + +`--providers.docker.usebindportip`: +Use the ip address from the bound port, rather than from the inner network. (Default: ```false```) + +`--providers.docker.watch`: +Watch provider. (Default: ```true```) + +`--providers.file`: +Enable File backend with default settings. (Default: ```false```) + +`--providers.file.debugloggeneratedtemplate`: +Enable debug logging of generated configuration template. (Default: ```false```) + +`--providers.file.directory`: +Load configuration from one or more .toml files in a directory. + +`--providers.file.filename`: +Override default configuration template. For advanced users :) + +`--providers.file.watch`: +Watch provider. (Default: ```true```) + +`--providers.kubernetes`: +Enable Kubernetes backend with default settings. (Default: ```false```) + +`--providers.kubernetes.certauthfilepath`: +Kubernetes certificate authority file path (not needed for in-cluster client). + +`--providers.kubernetes.disablepasshostheaders`: +Kubernetes disable PassHost Headers. (Default: ```false```) + +`--providers.kubernetes.endpoint`: +Kubernetes server endpoint (required for external cluster client). + +`--providers.kubernetes.ingressclass`: +Value of kubernetes.io/ingress.class annotation to watch for. + +`--providers.kubernetes.ingressendpoint.hostname`: +Hostname used for Kubernetes Ingress endpoints. + +`--providers.kubernetes.ingressendpoint.ip`: +IP used for Kubernetes Ingress endpoints. + +`--providers.kubernetes.ingressendpoint.publishedservice`: +Published Kubernetes Service to copy status from. + +`--providers.kubernetes.labelselector`: +Kubernetes Ingress label selector to use. + +`--providers.kubernetes.namespaces`: +Kubernetes namespaces. + +`--providers.kubernetes.token`: +Kubernetes bearer token (not needed for in-cluster client). + +`--providers.kubernetescrd`: +Enable Kubernetes backend with default settings. (Default: ```false```) + +`--providers.kubernetescrd.certauthfilepath`: +Kubernetes certificate authority file path (not needed for in-cluster client). + +`--providers.kubernetescrd.disablepasshostheaders`: +Kubernetes disable PassHost Headers. (Default: ```false```) + +`--providers.kubernetescrd.endpoint`: +Kubernetes server endpoint (required for external cluster client). + +`--providers.kubernetescrd.ingressclass`: +Value of kubernetes.io/ingress.class annotation to watch for. + +`--providers.kubernetescrd.labelselector`: +Kubernetes label selector to use. + +`--providers.kubernetescrd.namespaces`: +Kubernetes namespaces. + +`--providers.kubernetescrd.token`: +Kubernetes bearer token (not needed for in-cluster client). + +`--providers.marathon`: +Enable Marathon backend with default settings. (Default: ```false```) + +`--providers.marathon.basic.httpbasicauthuser`: +Basic authentication User. + +`--providers.marathon.basic.httpbasicpassword`: +Basic authentication Password. + +`--providers.marathon.constraints`: +Constraints is an expression that Traefik matches against the application's labels to determine whether to create any route for that application. + +`--providers.marathon.dcostoken`: +DCOSToken for DCOS environment, This will override the Authorization header. + +`--providers.marathon.defaultrule`: +Default rule. (Default: ```Host(`{{ normalize .Name }}`)```) + +`--providers.marathon.dialertimeout`: +Set a dialer timeout for Marathon. (Default: ```5```) + +`--providers.marathon.endpoint`: +Marathon server endpoint. You can also specify multiple endpoint for Marathon. (Default: ```http://127.0.0.1:8080```) + +`--providers.marathon.exposedbydefault`: +Expose Marathon apps by default. (Default: ```true```) + +`--providers.marathon.forcetaskhostname`: +Force to use the task's hostname. (Default: ```false```) + +`--providers.marathon.keepalive`: +Set a TCP Keep Alive time. (Default: ```10```) + +`--providers.marathon.respectreadinesschecks`: +Filter out tasks with non-successful readiness checks during deployments. (Default: ```false```) + +`--providers.marathon.responseheadertimeout`: +Set a response header timeout for Marathon. (Default: ```60```) + +`--providers.marathon.tls.ca`: +TLS CA + +`--providers.marathon.tls.caoptional`: +TLS CA.Optional (Default: ```false```) + +`--providers.marathon.tls.cert`: +TLS cert + +`--providers.marathon.tls.insecureskipverify`: +TLS insecure skip verify (Default: ```false```) + +`--providers.marathon.tls.key`: +TLS key + +`--providers.marathon.tlshandshaketimeout`: +Set a TLS handshake timeout for Marathon. (Default: ```5```) + +`--providers.marathon.trace`: +Display additional provider logs. (Default: ```false```) + +`--providers.marathon.watch`: +Watch provider. (Default: ```true```) + +`--providers.providersthrottleduration`: +Backends throttle duration: minimum duration between 2 events from providers before applying a new configuration. It avoids unnecessary reloads if multiples events are sent in a short amount of time. (Default: ```0```) + +`--providers.rancher`: +Enable Rancher backend with default settings. (Default: ```false```) + +`--providers.rancher.constraints`: +Constraints is an expression that Traefik matches against the container's labels to determine whether to create any route for that container. + +`--providers.rancher.defaultrule`: +Default rule. (Default: ```Host(`{{ normalize .Name }}`)```) + +`--providers.rancher.enableservicehealthfilter`: +Filter services with unhealthy states and inactive states. (Default: ```true```) + +`--providers.rancher.exposedbydefault`: +Expose containers by default. (Default: ```true```) + +`--providers.rancher.intervalpoll`: +Poll the Rancher metadata service every 'rancher.refreshseconds' (less accurate). (Default: ```false```) + +`--providers.rancher.prefix`: +Prefix used for accessing the Rancher metadata service. (Default: ```latest```) + +`--providers.rancher.refreshseconds`: +Defines the polling interval in seconds. (Default: ```15```) + +`--providers.rancher.watch`: +Watch provider. (Default: ```true```) + +`--providers.rest`: +Enable Rest backend with default settings. (Default: ```false```) + +`--providers.rest.entrypoint`: +EntryPoint. (Default: ```traefik```) + +`--serverstransport.forwardingtimeouts.dialtimeout`: +The amount of time to wait until a connection to a backend server can be established. If zero, no timeout exists. (Default: ```30```) + +`--serverstransport.forwardingtimeouts.idleconntimeout`: +The maximum period for which an idle HTTP keep-alive connection will remain open before closing itself (Default: ```90```) + +`--serverstransport.forwardingtimeouts.responseheadertimeout`: +The amount of time to wait for a server's response headers after fully writing the request (including its body, if any). If zero, no timeout exists. (Default: ```0```) + +`--serverstransport.insecureskipverify`: +Disable SSL certificate verification. (Default: ```false```) + +`--serverstransport.maxidleconnsperhost`: +If non-zero, controls the maximum idle (keep-alive) to keep per-host. If zero, DefaultMaxIdleConnsPerHost is used (Default: ```0```) + +`--serverstransport.rootcas`: +Add cert file for self-signed certificate. + +`--tracing`: +OpenTracing configuration. (Default: ```false```) + +`--tracing.datadog`: +Settings for DataDog. (Default: ```false```) + +`--tracing.datadog.bagageprefixheadername`: +Specifies the header name prefix that will be used to store baggage items in a map. + +`--tracing.datadog.debug`: +Enable DataDog debug. (Default: ```false```) + +`--tracing.datadog.globaltag`: +Key:Value tag to be set on all the spans. + +`--tracing.datadog.localagenthostport`: +Set datadog-agent's host:port that the reporter will used. (Default: ```localhost:8126```) + +`--tracing.datadog.parentidheadername`: +Specifies the header name that will be used to store the parent ID. + +`--tracing.datadog.prioritysampling`: +Enable priority sampling. When using distributed tracing, this option must be enabled in order to get all the parts of a distributed trace sampled. (Default: ```false```) + +`--tracing.datadog.samplingpriorityheadername`: +Specifies the header name that will be used to store the sampling priority. + +`--tracing.datadog.traceidheadername`: +Specifies the header name that will be used to store the trace ID. + +`--tracing.haystack`: +Settings for Haystack. (Default: ```false```) + +`--tracing.haystack.baggageprefixheadername`: +Specifies the header name prefix that will be used to store baggage items in a map. + +`--tracing.haystack.globaltag`: +Key:Value tag to be set on all the spans. + +`--tracing.haystack.localagenthost`: +Set haystack-agent's host that the reporter will used. (Default: ```LocalAgentHost```) + +`--tracing.haystack.localagentport`: +Set haystack-agent's port that the reporter will used. (Default: ```35000```) + +`--tracing.haystack.parentidheadername`: +Specifies the header name that will be used to store the parent ID. + +`--tracing.haystack.spanidheadername`: +Specifies the header name that will be used to store the span ID. + +`--tracing.haystack.traceidheadername`: +Specifies the header name that will be used to store the trace ID. + +`--tracing.instana`: +Settings for Instana. (Default: ```false```) + +`--tracing.instana.localagenthost`: +Set instana-agent's host that the reporter will used. (Default: ```localhost```) + +`--tracing.instana.localagentport`: +Set instana-agent's port that the reporter will used. (Default: ```42699```) + +`--tracing.instana.loglevel`: +Set instana-agent's log level. ('error','warn','info','debug') (Default: ```info```) + +`--tracing.jaeger`: +Settings for Jaeger. (Default: ```false```) + +`--tracing.jaeger.gen128bit`: +Generate 128 bit span IDs. (Default: ```false```) + +`--tracing.jaeger.localagenthostport`: +Set jaeger-agent's host:port that the reporter will used. (Default: ```127.0.0.1:6831```) + +`--tracing.jaeger.propagation`: +Which propgation format to use (jaeger/b3). (Default: ```jaeger```) + +`--tracing.jaeger.samplingparam`: +Set the sampling parameter. (Default: ```1.000000```) + +`--tracing.jaeger.samplingserverurl`: +Set the sampling server url. (Default: ```http://localhost:5778/sampling```) + +`--tracing.jaeger.samplingtype`: +Set the sampling type. (Default: ```const```) + +`--tracing.jaeger.tracecontextheadername`: +Set the header to use for the trace-id. (Default: ```uber-trace-id```) + +`--tracing.servicename`: +Set the name for this service. (Default: ```traefik```) + +`--tracing.spannamelimit`: +Set the maximum character limit for Span names (default 0 = no limit). (Default: ```0```) + +`--tracing.zipkin`: +Settings for Zipkin. (Default: ```false```) + +`--tracing.zipkin.debug`: +Enable Zipkin debug. (Default: ```false```) + +`--tracing.zipkin.httpendpoint`: +HTTP Endpoint to report traces to. (Default: ```http://localhost:9411/api/v1/spans```) + +`--tracing.zipkin.id128bit`: +Use Zipkin 128 bit root span IDs. (Default: ```true```) + +`--tracing.zipkin.samespan`: +Use Zipkin SameSpan RPC style traces. (Default: ```false```) + +`--tracing.zipkin.samplerate`: +The rate between 0.0 and 1.0 of requests to trace. (Default: ```1.000000```) diff --git a/docs/content/reference/static-configuration/cli.md b/docs/content/reference/static-configuration/cli.md index 1111439df..73319a30d 100644 --- a/docs/content/reference/static-configuration/cli.md +++ b/docs/content/reference/static-configuration/cli.md @@ -1,5 +1,4 @@ # Static Configuration: CLI -```txt ---8<-- "content/reference/static-configuration/cli.txt" -``` +--8<-- "content/reference/static-configuration/cli-ref.md" + diff --git a/docs/content/reference/static-configuration/cli.txt b/docs/content/reference/static-configuration/cli.txt deleted file mode 100644 index dfece6186..000000000 --- a/docs/content/reference/static-configuration/cli.txt +++ /dev/null @@ -1,609 +0,0 @@ ---accesslog (Default: "false") - Access log settings. - ---accesslog.bufferingsize (Default: "0") - Number of access log lines to process in a buffered way. - ---accesslog.fields.defaultmode (Default: "keep") - Default mode for fields: keep | drop - ---accesslog.fields.headers.defaultmode (Default: "keep") - Default mode for fields: keep | drop | redact - ---accesslog.fields.headers.names. (Default: "") - Override mode for headers - ---accesslog.fields.names. (Default: "") - Override mode for fields - ---accesslog.filepath (Default: "") - Access log file path. Stdout is used when omitted or empty. - ---accesslog.filters.minduration (Default: "0") - Keep access logs when request took longer than the specified duration. - ---accesslog.filters.retryattempts (Default: "false") - Keep access logs when at least one retry happened. - ---accesslog.filters.statuscodes (Default: "") - Keep access logs with status codes in the specified range. - ---accesslog.format (Default: "common") - Access log format: json | common - ---acme.acmelogging (Default: "false") - Enable debug logging of ACME actions. - ---acme.caserver (Default: "https://acme-v02.api.letsencrypt.org/directory") - CA server to use. - ---acme.dnschallenge (Default: "false") - Activate DNS-01 Challenge. - ---acme.dnschallenge.delaybeforecheck (Default: "0") - Assume DNS propagates after a delay in seconds rather than finding and querying - nameservers. - ---acme.dnschallenge.disablepropagationcheck (Default: "false") - Disable the DNS propagation checks before notifying ACME that the DNS challenge - is ready. [not recommended] - ---acme.dnschallenge.provider (Default: "") - Use a DNS-01 based challenge provider rather than HTTPS. - ---acme.dnschallenge.resolvers (Default: "") - Use following DNS servers to resolve the FQDN authority. - ---acme.domains (Default: "") - The list of domains for which certificates are generated on startup. Wildcard - domains only accepted with DNSChallenge. - ---acme.domains[n].main (Default: "") - Default subject name. - ---acme.domains[n].sans (Default: "") - Subject alternative names. - ---acme.email (Default: "") - Email address used for registration. - ---acme.entrypoint (Default: "") - EntryPoint to use. - ---acme.httpchallenge (Default: "false") - Activate HTTP-01 Challenge. - ---acme.httpchallenge.entrypoint (Default: "") - HTTP challenge EntryPoint - ---acme.keytype (Default: "RSA4096") - KeyType used for generating certificate private key. Allow value 'EC256', - 'EC384', 'RSA2048', 'RSA4096', 'RSA8192'. - ---acme.onhostrule (Default: "false") - Enable certificate generation on router Host rules. - ---acme.storage (Default: "acme.json") - Storage to use. - ---acme.tlschallenge (Default: "true") - Activate TLS-ALPN-01 Challenge. - ---api (Default: "false") - Enable api/dashboard. - ---api.dashboard (Default: "true") - Activate dashboard. - ---api.debug (Default: "false") - Enable additional endpoints for debugging and profiling. - ---api.entrypoint (Default: "traefik") - The entry point that the API handler will be bound to. - ---api.middlewares (Default: "") - Middleware list. - ---api.statistics (Default: "false") - Enable more detailed statistics. - ---api.statistics.recenterrors (Default: "10") - Number of recent errors logged. - ---configfile (Default: "") - Configuration file to use. If specified all other flags are ignored. - ---entrypoints. (Default: "false") - Entry points definition. - ---entrypoints..address (Default: "") - Entry point address. - ---entrypoints..forwardedheaders.insecure (Default: "false") - Trust all forwarded headers. - ---entrypoints..forwardedheaders.trustedips (Default: "") - Trust only forwarded headers from selected IPs. - ---entrypoints..proxyprotocol (Default: "false") - Proxy-Protocol configuration. - ---entrypoints..proxyprotocol.insecure (Default: "false") - Trust all. - ---entrypoints..proxyprotocol.trustedips (Default: "") - Trust only selected IPs. - ---entrypoints..transport.lifecycle.gracetimeout (Default: "10") - Duration to give active requests a chance to finish before Traefik stops. - ---entrypoints..transport.lifecycle.requestacceptgracetimeout (Default: "0") - Duration to keep accepting requests before Traefik initiates the graceful - shutdown procedure. - ---entrypoints..transport.respondingtimeouts.idletimeout (Default: "180") - IdleTimeout is the maximum amount duration an idle (keep-alive) connection will - remain idle before closing itself. If zero, no timeout is set. - ---entrypoints..transport.respondingtimeouts.readtimeout (Default: "0") - ReadTimeout is the maximum duration for reading the entire request, including - the body. If zero, no timeout is set. - ---entrypoints..transport.respondingtimeouts.writetimeout (Default: "0") - WriteTimeout is the maximum duration before timing out writes of the response. - If zero, no timeout is set. - ---global.checknewversion (Default: "true") - Periodically check if a new version has been released. - ---global.sendanonymoususage - Periodically send anonymous usage statistics. If the option is not specified, it - will be enabled by default. - ---hostresolver (Default: "false") - Enable CNAME Flattening. - ---hostresolver.cnameflattening (Default: "false") - A flag to enable/disable CNAME flattening - ---hostresolver.resolvconfig (Default: "/etc/resolv.conf") - resolv.conf used for DNS resolving - ---hostresolver.resolvdepth (Default: "5") - The maximal depth of DNS recursive resolving - ---log (Default: "false") - Traefik log settings. - ---log.filepath (Default: "") - Traefik log file path. Stdout is used when omitted or empty. - ---log.format (Default: "common") - Traefik log format: json | common - ---log.level (Default: "ERROR") - Log level set to traefik logs. - ---metrics.datadog (Default: "false") - DataDog metrics exporter type. - ---metrics.datadog.address (Default: "localhost:8125") - DataDog's address. - ---metrics.datadog.pushinterval (Default: "10") - DataDog push interval. - ---metrics.influxdb (Default: "false") - InfluxDB metrics exporter type. - ---metrics.influxdb.address (Default: "localhost:8089") - InfluxDB address. - ---metrics.influxdb.database (Default: "") - InfluxDB database used when protocol is http. - ---metrics.influxdb.password (Default: "") - InfluxDB password (only with http). - ---metrics.influxdb.protocol (Default: "udp") - InfluxDB address protocol (udp or http). - ---metrics.influxdb.pushinterval (Default: "10") - InfluxDB push interval. - ---metrics.influxdb.retentionpolicy (Default: "") - InfluxDB retention policy used when protocol is http. - ---metrics.influxdb.username (Default: "") - InfluxDB username (only with http). - ---metrics.prometheus (Default: "false") - Prometheus metrics exporter type. - ---metrics.prometheus.buckets (Default: "0.100000, 0.300000, 1.200000, 5.000000") - Buckets for latency metrics. - ---metrics.prometheus.entrypoint (Default: "traefik") - EntryPoint. - ---metrics.prometheus.middlewares (Default: "") - Middlewares. - ---metrics.statsd (Default: "false") - StatsD metrics exporter type. - ---metrics.statsd.address (Default: "localhost:8125") - StatsD address. - ---metrics.statsd.pushinterval (Default: "10") - StatsD push interval. - ---ping (Default: "false") - Enable ping. - ---ping.entrypoint (Default: "traefik") - Ping entryPoint. - ---ping.middlewares (Default: "") - Middleware list. - ---providers.docker (Default: "false") - Enable Docker backend with default settings. - ---providers.docker.constraints (Default: "") - Constraints is an expression that Traefik matches against the container's labels - to determine whether to create any route for that container. - ---providers.docker.defaultrule (Default: "Host(`{{ normalize .Name }}`)") - Default rule. - ---providers.docker.endpoint (Default: "unix:///var/run/docker.sock") - Docker server endpoint. Can be a tcp or a unix socket endpoint. - ---providers.docker.exposedbydefault (Default: "true") - Expose containers by default. - ---providers.docker.network (Default: "") - Default Docker network used. - ---providers.docker.swarmmode (Default: "false") - Use Docker on Swarm Mode. - ---providers.docker.swarmmoderefreshseconds (Default: "15") - Polling interval for swarm mode. - ---providers.docker.tls.ca (Default: "") - TLS CA - ---providers.docker.tls.caoptional (Default: "false") - TLS CA.Optional - ---providers.docker.tls.cert (Default: "") - TLS cert - ---providers.docker.tls.insecureskipverify (Default: "false") - TLS insecure skip verify - ---providers.docker.tls.key (Default: "") - TLS key - ---providers.docker.usebindportip (Default: "false") - Use the ip address from the bound port, rather than from the inner network. - ---providers.docker.watch (Default: "true") - Watch provider. - ---providers.file (Default: "false") - Enable File backend with default settings. - ---providers.file.debugloggeneratedtemplate (Default: "false") - Enable debug logging of generated configuration template. - ---providers.file.directory (Default: "") - Load configuration from one or more .toml files in a directory. - ---providers.file.filename (Default: "") - Override default configuration template. For advanced users :) - ---providers.file.watch (Default: "true") - Watch provider. - ---providers.kubernetes (Default: "false") - Enable Kubernetes backend with default settings. - ---providers.kubernetes.certauthfilepath (Default: "") - Kubernetes certificate authority file path (not needed for in-cluster client). - ---providers.kubernetes.disablepasshostheaders (Default: "false") - Kubernetes disable PassHost Headers. - ---providers.kubernetes.endpoint (Default: "") - Kubernetes server endpoint (required for external cluster client). - ---providers.kubernetes.ingressclass (Default: "") - Value of kubernetes.io/ingress.class annotation to watch for. - ---providers.kubernetes.ingressendpoint.hostname (Default: "") - Hostname used for Kubernetes Ingress endpoints. - ---providers.kubernetes.ingressendpoint.ip (Default: "") - IP used for Kubernetes Ingress endpoints. - ---providers.kubernetes.ingressendpoint.publishedservice (Default: "") - Published Kubernetes Service to copy status from. - ---providers.kubernetes.labelselector (Default: "") - Kubernetes Ingress label selector to use. - ---providers.kubernetes.namespaces (Default: "") - Kubernetes namespaces. - ---providers.kubernetes.token (Default: "") - Kubernetes bearer token (not needed for in-cluster client). - ---providers.kubernetescrd (Default: "false") - Enable Kubernetes backend with default settings. - ---providers.kubernetescrd.certauthfilepath (Default: "") - Kubernetes certificate authority file path (not needed for in-cluster client). - ---providers.kubernetescrd.disablepasshostheaders (Default: "false") - Kubernetes disable PassHost Headers. - ---providers.kubernetescrd.endpoint (Default: "") - Kubernetes server endpoint (required for external cluster client). - ---providers.kubernetescrd.ingressclass (Default: "") - Value of kubernetes.io/ingress.class annotation to watch for. - ---providers.kubernetescrd.labelselector (Default: "") - Kubernetes label selector to use. - ---providers.kubernetescrd.namespaces (Default: "") - Kubernetes namespaces. - ---providers.kubernetescrd.token (Default: "") - Kubernetes bearer token (not needed for in-cluster client). - ---providers.marathon (Default: "false") - Enable Marathon backend with default settings. - ---providers.marathon.basic.httpbasicauthuser (Default: "") - Basic authentication User. - ---providers.marathon.basic.httpbasicpassword (Default: "") - Basic authentication Password. - ---providers.marathon.constraints (Default: "") - Constraints is an expression that Traefik matches against the application's - labels to determine whether to create any route for that application. - ---providers.marathon.dcostoken (Default: "") - DCOSToken for DCOS environment, This will override the Authorization header. - ---providers.marathon.defaultrule (Default: "Host(`{{ normalize .Name }}`)") - Default rule. - ---providers.marathon.dialertimeout (Default: "5") - Set a dialer timeout for Marathon. - ---providers.marathon.endpoint (Default: "http://127.0.0.1:8080") - Marathon server endpoint. You can also specify multiple endpoint for Marathon. - ---providers.marathon.exposedbydefault (Default: "true") - Expose Marathon apps by default. - ---providers.marathon.forcetaskhostname (Default: "false") - Force to use the task's hostname. - ---providers.marathon.keepalive (Default: "10") - Set a TCP Keep Alive time. - ---providers.marathon.respectreadinesschecks (Default: "false") - Filter out tasks with non-successful readiness checks during deployments. - ---providers.marathon.responseheadertimeout (Default: "60") - Set a response header timeout for Marathon. - ---providers.marathon.tls.ca (Default: "") - TLS CA - ---providers.marathon.tls.caoptional (Default: "false") - TLS CA.Optional - ---providers.marathon.tls.cert (Default: "") - TLS cert - ---providers.marathon.tls.insecureskipverify (Default: "false") - TLS insecure skip verify - ---providers.marathon.tls.key (Default: "") - TLS key - ---providers.marathon.tlshandshaketimeout (Default: "5") - Set a TLS handshake timeout for Marathon. - ---providers.marathon.trace (Default: "false") - Display additional provider logs. - ---providers.marathon.watch (Default: "true") - Watch provider. - ---providers.providersthrottleduration (Default: "2") - Backends throttle duration: minimum duration between 2 events from providers - before applying a new configuration. It avoids unnecessary reloads if multiples - events are sent in a short amount of time. - ---providers.rancher (Default: "false") - Enable Rancher backend with default settings. - ---providers.rancher.constraints (Default: "") - Constraints is an expression that Traefik matches against the container's labels - to determine whether to create any route for that container. - ---providers.rancher.defaultrule (Default: "Host(`{{ normalize .Name }}`)") - Default rule. - ---providers.rancher.enableservicehealthfilter (Default: "true") - Filter services with unhealthy states and inactive states. - ---providers.rancher.exposedbydefault (Default: "true") - Expose containers by default. - ---providers.rancher.intervalpoll (Default: "false") - Poll the Rancher metadata service every 'rancher.refreshseconds' (less - accurate). - ---providers.rancher.prefix (Default: "latest") - Prefix used for accessing the Rancher metadata service. - ---providers.rancher.refreshseconds (Default: "15") - Defines the polling interval in seconds. - ---providers.rancher.watch (Default: "true") - Watch provider. - ---providers.rest (Default: "false") - Enable Rest backend with default settings. - ---providers.rest.entrypoint (Default: "traefik") - EntryPoint. - ---serverstransport.forwardingtimeouts.dialtimeout (Default: "30") - The amount of time to wait until a connection to a backend server can be - established. If zero, no timeout exists. - ---serverstransport.forwardingtimeouts.responseheadertimeout (Default: "0") - The amount of time to wait for a server's response headers after fully writing - the request (including its body, if any). If zero, no timeout exists. - ---serverstransport.forwardingtimeouts.idleconntimeout (Default: "90s") - The maximum period for which an idle HTTP keep-alive connection to a backend - server will remain open before closing itself. - ---serverstransport.insecureskipverify (Default: "false") - Disable SSL certificate verification. - ---serverstransport.maxidleconnsperhost (Default: "200") - If non-zero, controls the maximum idle (keep-alive) to keep per-host. If zero, - DefaultMaxIdleConnsPerHost is used - ---serverstransport.rootcas (Default: "") - Add cert file for self-signed certificate. - ---tracing (Default: "false") - OpenTracing configuration. - ---tracing.datadog (Default: "false") - Settings for DataDog. - ---tracing.datadog.bagageprefixheadername (Default: "") - Specifies the header name prefix that will be used to store baggage items in a - map. - ---tracing.datadog.debug (Default: "false") - Enable DataDog debug. - ---tracing.datadog.globaltag (Default: "") - Key:Value tag to be set on all the spans. - ---tracing.datadog.localagenthostport (Default: "localhost:8126") - Set datadog-agent's host:port that the reporter will used. - ---tracing.datadog.parentidheadername (Default: "") - Specifies the header name that will be used to store the parent ID. - ---tracing.datadog.prioritysampling (Default: "false") - Enable priority sampling. When using distributed tracing, this option must be - enabled in order to get all the parts of a distributed trace sampled. - ---tracing.datadog.samplingpriorityheadername (Default: "") - Specifies the header name that will be used to store the sampling priority. - ---tracing.datadog.traceidheadername (Default: "") - Specifies the header name that will be used to store the trace ID. - ---tracing.haystack (Default: "false") - Settings for Haystack. - ---tracing.haystack.baggageprefixheadername (Default: "") - Specifies the header name prefix that will be used to store baggage items in a - map. - ---tracing.haystack.globaltag (Default: "") - Key:Value tag to be set on all the spans. - ---tracing.haystack.localagenthost (Default: "LocalAgentHost") - Set haystack-agent's host that the reporter will used. - ---tracing.haystack.localagentport (Default: "35000") - Set haystack-agent's port that the reporter will used. - ---tracing.haystack.parentidheadername (Default: "") - Specifies the header name that will be used to store the parent ID. - ---tracing.haystack.spanidheadername (Default: "") - Specifies the header name that will be used to store the span ID. - ---tracing.haystack.traceidheadername (Default: "") - Specifies the header name that will be used to store the trace ID. - ---tracing.instana (Default: "false") - Settings for Instana. - ---tracing.instana.localagenthost (Default: "localhost") - Set instana-agent's host that the reporter will used. - ---tracing.instana.localagentport (Default: "42699") - Set instana-agent's port that the reporter will used. - ---tracing.instana.loglevel (Default: "info") - Set instana-agent's log level. ('error','warn','info','debug') - ---tracing.jaeger (Default: "false") - Settings for jaeger. - ---tracing.jaeger.gen128bit (Default: "false") - Generate 128 bit span IDs. - ---tracing.jaeger.localagenthostport (Default: "127.0.0.1:6831") - Set jaeger-agent's host:port that the reporter will used. - ---tracing.jaeger.propagation (Default: "jaeger") - Which propgation format to use (jaeger/b3). - ---tracing.jaeger.samplingparam (Default: "1.000000") - Set the sampling parameter. - ---tracing.jaeger.samplingserverurl (Default: "http://localhost:5778/sampling") - Set the sampling server url. - ---tracing.jaeger.samplingtype (Default: "const") - Set the sampling type. - ---tracing.jaeger.tracecontextheadername (Default: "uber-trace-id") - Set the header to use for the trace-id. - ---tracing.servicename (Default: "traefik") - Set the name for this service. - ---tracing.spannamelimit (Default: "0") - Set the maximum character limit for Span names (default 0 = no limit). - ---tracing.zipkin (Default: "false") - Settings for zipkin. - ---tracing.zipkin.debug (Default: "false") - Enable Zipkin debug. - ---tracing.zipkin.httpendpoint (Default: "http://localhost:9411/api/v1/spans") - HTTP Endpoint to report traces to. - ---tracing.zipkin.id128bit (Default: "true") - Use Zipkin 128 bit root span IDs. - ---tracing.zipkin.samespan (Default: "false") - Use Zipkin SameSpan RPC style traces. - ---tracing.zipkin.samplerate (Default: "1.000000") - The rate between 0.0 and 1.0 of requests to trace. diff --git a/docs/content/reference/static-configuration/env-ref.md b/docs/content/reference/static-configuration/env-ref.md new file mode 100644 index 000000000..48fd382b2 --- /dev/null +++ b/docs/content/reference/static-configuration/env-ref.md @@ -0,0 +1,589 @@ + + +`TRAEFIK_ACCESSLOG`: +Access log settings. (Default: ```false```) + +`TRAEFIK_ACCESSLOG_BUFFERINGSIZE`: +Number of access log lines to process in a buffered way. (Default: ```0```) + +`TRAEFIK_ACCESSLOG_FIELDS_DEFAULTMODE`: +Default mode for fields: keep | drop (Default: ```keep```) + +`TRAEFIK_ACCESSLOG_FIELDS_HEADERS_DEFAULTMODE`: +Default mode for fields: keep | drop | redact (Default: ```drop```) + +`TRAEFIK_ACCESSLOG_FIELDS_HEADERS_NAMES_`: +Override mode for headers + +`TRAEFIK_ACCESSLOG_FIELDS_NAMES_`: +Override mode for fields + +`TRAEFIK_ACCESSLOG_FILEPATH`: +Access log file path. Stdout is used when omitted or empty. + +`TRAEFIK_ACCESSLOG_FILTERS_MINDURATION`: +Keep access logs when request took longer than the specified duration. (Default: ```0```) + +`TRAEFIK_ACCESSLOG_FILTERS_RETRYATTEMPTS`: +Keep access logs when at least one retry happened. (Default: ```false```) + +`TRAEFIK_ACCESSLOG_FILTERS_STATUSCODES`: +Keep access logs with status codes in the specified range. + +`TRAEFIK_ACCESSLOG_FORMAT`: +Access log format: json | common (Default: ```common```) + +`TRAEFIK_ACME_ACMELOGGING`: +Enable debug logging of ACME actions. (Default: ```false```) + +`TRAEFIK_ACME_CASERVER`: +CA server to use. (Default: ```https://acme-v02.api.letsencrypt.org/directory```) + +`TRAEFIK_ACME_DNSCHALLENGE`: +Activate DNS-01 Challenge. (Default: ```false```) + +`TRAEFIK_ACME_DNSCHALLENGE_DELAYBEFORECHECK`: +Assume DNS propagates after a delay in seconds rather than finding and querying nameservers. (Default: ```0```) + +`TRAEFIK_ACME_DNSCHALLENGE_DISABLEPROPAGATIONCHECK`: +Disable the DNS propagation checks before notifying ACME that the DNS challenge is ready. [not recommended] (Default: ```false```) + +`TRAEFIK_ACME_DNSCHALLENGE_PROVIDER`: +Use a DNS-01 based challenge provider rather than HTTPS. + +`TRAEFIK_ACME_DNSCHALLENGE_RESOLVERS`: +Use following DNS servers to resolve the FQDN authority. + +`TRAEFIK_ACME_DOMAINS`: +The list of domains for which certificates are generated on startup. Wildcard domains only accepted with DNSChallenge. + +`TRAEFIK_ACME_DOMAINS[n]_MAIN`: +Default subject name. + +`TRAEFIK_ACME_DOMAINS[n]_SANS`: +Subject alternative names. + +`TRAEFIK_ACME_EMAIL`: +Email address used for registration. + +`TRAEFIK_ACME_ENTRYPOINT`: +EntryPoint to use. + +`TRAEFIK_ACME_HTTPCHALLENGE`: +Activate HTTP-01 Challenge. (Default: ```false```) + +`TRAEFIK_ACME_HTTPCHALLENGE_ENTRYPOINT`: +HTTP challenge EntryPoint + +`TRAEFIK_ACME_KEYTYPE`: +KeyType used for generating certificate private key. Allow value 'EC256', 'EC384', 'RSA2048', 'RSA4096', 'RSA8192'. (Default: ```RSA4096```) + +`TRAEFIK_ACME_ONHOSTRULE`: +Enable certificate generation on router Host rules. (Default: ```false```) + +`TRAEFIK_ACME_STORAGE`: +Storage to use. (Default: ```acme.json```) + +`TRAEFIK_ACME_TLSCHALLENGE`: +Activate TLS-ALPN-01 Challenge. (Default: ```true```) + +`TRAEFIK_API`: +Enable api/dashboard. (Default: ```false```) + +`TRAEFIK_API_DASHBOARD`: +Activate dashboard. (Default: ```true```) + +`TRAEFIK_API_DEBUG`: +Enable additional endpoints for debugging and profiling. (Default: ```false```) + +`TRAEFIK_API_ENTRYPOINT`: +The entry point that the API handler will be bound to. (Default: ```traefik```) + +`TRAEFIK_API_MIDDLEWARES`: +Middleware list. + +`TRAEFIK_API_STATISTICS`: +Enable more detailed statistics. (Default: ```false```) + +`TRAEFIK_API_STATISTICS_RECENTERRORS`: +Number of recent errors logged. (Default: ```10```) + +`TRAEFIK_ENTRYPOINTS_`: +Entry points definition. (Default: ```false```) + +`TRAEFIK_ENTRYPOINTS__ADDRESS`: +Entry point address. + +`TRAEFIK_ENTRYPOINTS__FORWARDEDHEADERS_INSECURE`: +Trust all forwarded headers. (Default: ```false```) + +`TRAEFIK_ENTRYPOINTS__FORWARDEDHEADERS_TRUSTEDIPS`: +Trust only forwarded headers from selected IPs. + +`TRAEFIK_ENTRYPOINTS__PROXYPROTOCOL`: +Proxy-Protocol configuration. (Default: ```false```) + +`TRAEFIK_ENTRYPOINTS__PROXYPROTOCOL_INSECURE`: +Trust all. (Default: ```false```) + +`TRAEFIK_ENTRYPOINTS__PROXYPROTOCOL_TRUSTEDIPS`: +Trust only selected IPs. + +`TRAEFIK_ENTRYPOINTS__TRANSPORT_LIFECYCLE_GRACETIMEOUT`: +Duration to give active requests a chance to finish before Traefik stops. (Default: ```10```) + +`TRAEFIK_ENTRYPOINTS__TRANSPORT_LIFECYCLE_REQUESTACCEPTGRACETIMEOUT`: +Duration to keep accepting requests before Traefik initiates the graceful shutdown procedure. (Default: ```0```) + +`TRAEFIK_ENTRYPOINTS__TRANSPORT_RESPONDINGTIMEOUTS_IDLETIMEOUT`: +IdleTimeout is the maximum amount duration an idle (keep-alive) connection will remain idle before closing itself. If zero, no timeout is set. (Default: ```180```) + +`TRAEFIK_ENTRYPOINTS__TRANSPORT_RESPONDINGTIMEOUTS_READTIMEOUT`: +ReadTimeout is the maximum duration for reading the entire request, including the body. If zero, no timeout is set. (Default: ```0```) + +`TRAEFIK_ENTRYPOINTS__TRANSPORT_RESPONDINGTIMEOUTS_WRITETIMEOUT`: +WriteTimeout is the maximum duration before timing out writes of the response. If zero, no timeout is set. (Default: ```0```) + +`TRAEFIK_GLOBAL_CHECKNEWVERSION`: +Periodically check if a new version has been released. (Default: ```false```) + +`TRAEFIK_GLOBAL_SENDANONYMOUSUSAGE`: +Periodically send anonymous usage statistics. If the option is not specified, it will be enabled by default. (Default: ```false```) + +`TRAEFIK_HOSTRESOLVER`: +Enable CNAME Flattening. (Default: ```false```) + +`TRAEFIK_HOSTRESOLVER_CNAMEFLATTENING`: +A flag to enable/disable CNAME flattening (Default: ```false```) + +`TRAEFIK_HOSTRESOLVER_RESOLVCONFIG`: +resolv.conf used for DNS resolving (Default: ```/etc/resolv.conf```) + +`TRAEFIK_HOSTRESOLVER_RESOLVDEPTH`: +The maximal depth of DNS recursive resolving (Default: ```5```) + +`TRAEFIK_LOG`: +Traefik log settings. (Default: ```false```) + +`TRAEFIK_LOG_FILEPATH`: +Traefik log file path. Stdout is used when omitted or empty. + +`TRAEFIK_LOG_FORMAT`: +Traefik log format: json | common (Default: ```common```) + +`TRAEFIK_LOG_LEVEL`: +Log level set to traefik logs. (Default: ```ERROR```) + +`TRAEFIK_METRICS_DATADOG`: +DataDog metrics exporter type. (Default: ```false```) + +`TRAEFIK_METRICS_DATADOG_ADDRESS`: +DataDog's address. (Default: ```localhost:8125```) + +`TRAEFIK_METRICS_DATADOG_PUSHINTERVAL`: +DataDog push interval. (Default: ```10```) + +`TRAEFIK_METRICS_INFLUXDB`: +InfluxDB metrics exporter type. (Default: ```false```) + +`TRAEFIK_METRICS_INFLUXDB_ADDRESS`: +InfluxDB address. (Default: ```localhost:8089```) + +`TRAEFIK_METRICS_INFLUXDB_DATABASE`: +InfluxDB database used when protocol is http. + +`TRAEFIK_METRICS_INFLUXDB_PASSWORD`: +InfluxDB password (only with http). + +`TRAEFIK_METRICS_INFLUXDB_PROTOCOL`: +InfluxDB address protocol (udp or http). (Default: ```udp```) + +`TRAEFIK_METRICS_INFLUXDB_PUSHINTERVAL`: +InfluxDB push interval. (Default: ```10```) + +`TRAEFIK_METRICS_INFLUXDB_RETENTIONPOLICY`: +InfluxDB retention policy used when protocol is http. + +`TRAEFIK_METRICS_INFLUXDB_USERNAME`: +InfluxDB username (only with http). + +`TRAEFIK_METRICS_PROMETHEUS`: +Prometheus metrics exporter type. (Default: ```false```) + +`TRAEFIK_METRICS_PROMETHEUS_BUCKETS`: +Buckets for latency metrics. (Default: ```0.100000, 0.300000, 1.200000, 5.000000```) + +`TRAEFIK_METRICS_PROMETHEUS_ENTRYPOINT`: +EntryPoint. (Default: ```traefik```) + +`TRAEFIK_METRICS_PROMETHEUS_MIDDLEWARES`: +Middlewares. + +`TRAEFIK_METRICS_STATSD`: +StatsD metrics exporter type. (Default: ```false```) + +`TRAEFIK_METRICS_STATSD_ADDRESS`: +StatsD address. (Default: ```localhost:8125```) + +`TRAEFIK_METRICS_STATSD_PUSHINTERVAL`: +StatsD push interval. (Default: ```10```) + +`TRAEFIK_PING`: +Enable ping. (Default: ```false```) + +`TRAEFIK_PING_ENTRYPOINT`: +Ping entryPoint. (Default: ```traefik```) + +`TRAEFIK_PING_MIDDLEWARES`: +Middleware list. + +`TRAEFIK_PROVIDERS_DOCKER`: +Enable Docker backend with default settings. (Default: ```false```) + +`TRAEFIK_PROVIDERS_DOCKER_CONSTRAINTS`: +Constraints is an expression that Traefik matches against the container's labels to determine whether to create any route for that container. + +`TRAEFIK_PROVIDERS_DOCKER_DEFAULTRULE`: +Default rule. (Default: ```Host(`{{ normalize .Name }}`)```) + +`TRAEFIK_PROVIDERS_DOCKER_ENDPOINT`: +Docker server endpoint. Can be a tcp or a unix socket endpoint. (Default: ```unix:///var/run/docker.sock```) + +`TRAEFIK_PROVIDERS_DOCKER_EXPOSEDBYDEFAULT`: +Expose containers by default. (Default: ```true```) + +`TRAEFIK_PROVIDERS_DOCKER_NETWORK`: +Default Docker network used. + +`TRAEFIK_PROVIDERS_DOCKER_SWARMMODE`: +Use Docker on Swarm Mode. (Default: ```false```) + +`TRAEFIK_PROVIDERS_DOCKER_SWARMMODEREFRESHSECONDS`: +Polling interval for swarm mode. (Default: ```15```) + +`TRAEFIK_PROVIDERS_DOCKER_TLS_CA`: +TLS CA + +`TRAEFIK_PROVIDERS_DOCKER_TLS_CAOPTIONAL`: +TLS CA.Optional (Default: ```false```) + +`TRAEFIK_PROVIDERS_DOCKER_TLS_CERT`: +TLS cert + +`TRAEFIK_PROVIDERS_DOCKER_TLS_INSECURESKIPVERIFY`: +TLS insecure skip verify (Default: ```false```) + +`TRAEFIK_PROVIDERS_DOCKER_TLS_KEY`: +TLS key + +`TRAEFIK_PROVIDERS_DOCKER_USEBINDPORTIP`: +Use the ip address from the bound port, rather than from the inner network. (Default: ```false```) + +`TRAEFIK_PROVIDERS_DOCKER_WATCH`: +Watch provider. (Default: ```true```) + +`TRAEFIK_PROVIDERS_FILE`: +Enable File backend with default settings. (Default: ```false```) + +`TRAEFIK_PROVIDERS_FILE_DEBUGLOGGENERATEDTEMPLATE`: +Enable debug logging of generated configuration template. (Default: ```false```) + +`TRAEFIK_PROVIDERS_FILE_DIRECTORY`: +Load configuration from one or more .toml files in a directory. + +`TRAEFIK_PROVIDERS_FILE_FILENAME`: +Override default configuration template. For advanced users :) + +`TRAEFIK_PROVIDERS_FILE_WATCH`: +Watch provider. (Default: ```true```) + +`TRAEFIK_PROVIDERS_KUBERNETES`: +Enable Kubernetes backend with default settings. (Default: ```false```) + +`TRAEFIK_PROVIDERS_KUBERNETESCRD`: +Enable Kubernetes backend with default settings. (Default: ```false```) + +`TRAEFIK_PROVIDERS_KUBERNETESCRD_CERTAUTHFILEPATH`: +Kubernetes certificate authority file path (not needed for in-cluster client). + +`TRAEFIK_PROVIDERS_KUBERNETESCRD_DISABLEPASSHOSTHEADERS`: +Kubernetes disable PassHost Headers. (Default: ```false```) + +`TRAEFIK_PROVIDERS_KUBERNETESCRD_ENDPOINT`: +Kubernetes server endpoint (required for external cluster client). + +`TRAEFIK_PROVIDERS_KUBERNETESCRD_INGRESSCLASS`: +Value of kubernetes.io/ingress.class annotation to watch for. + +`TRAEFIK_PROVIDERS_KUBERNETESCRD_LABELSELECTOR`: +Kubernetes label selector to use. + +`TRAEFIK_PROVIDERS_KUBERNETESCRD_NAMESPACES`: +Kubernetes namespaces. + +`TRAEFIK_PROVIDERS_KUBERNETESCRD_TOKEN`: +Kubernetes bearer token (not needed for in-cluster client). + +`TRAEFIK_PROVIDERS_KUBERNETES_CERTAUTHFILEPATH`: +Kubernetes certificate authority file path (not needed for in-cluster client). + +`TRAEFIK_PROVIDERS_KUBERNETES_DISABLEPASSHOSTHEADERS`: +Kubernetes disable PassHost Headers. (Default: ```false```) + +`TRAEFIK_PROVIDERS_KUBERNETES_ENDPOINT`: +Kubernetes server endpoint (required for external cluster client). + +`TRAEFIK_PROVIDERS_KUBERNETES_INGRESSCLASS`: +Value of kubernetes.io/ingress.class annotation to watch for. + +`TRAEFIK_PROVIDERS_KUBERNETES_INGRESSENDPOINT_HOSTNAME`: +Hostname used for Kubernetes Ingress endpoints. + +`TRAEFIK_PROVIDERS_KUBERNETES_INGRESSENDPOINT_IP`: +IP used for Kubernetes Ingress endpoints. + +`TRAEFIK_PROVIDERS_KUBERNETES_INGRESSENDPOINT_PUBLISHEDSERVICE`: +Published Kubernetes Service to copy status from. + +`TRAEFIK_PROVIDERS_KUBERNETES_LABELSELECTOR`: +Kubernetes Ingress label selector to use. + +`TRAEFIK_PROVIDERS_KUBERNETES_NAMESPACES`: +Kubernetes namespaces. + +`TRAEFIK_PROVIDERS_KUBERNETES_TOKEN`: +Kubernetes bearer token (not needed for in-cluster client). + +`TRAEFIK_PROVIDERS_MARATHON`: +Enable Marathon backend with default settings. (Default: ```false```) + +`TRAEFIK_PROVIDERS_MARATHON_BASIC_HTTPBASICAUTHUSER`: +Basic authentication User. + +`TRAEFIK_PROVIDERS_MARATHON_BASIC_HTTPBASICPASSWORD`: +Basic authentication Password. + +`TRAEFIK_PROVIDERS_MARATHON_CONSTRAINTS`: +Constraints is an expression that Traefik matches against the application's labels to determine whether to create any route for that application. + +`TRAEFIK_PROVIDERS_MARATHON_DCOSTOKEN`: +DCOSToken for DCOS environment, This will override the Authorization header. + +`TRAEFIK_PROVIDERS_MARATHON_DEFAULTRULE`: +Default rule. (Default: ```Host(`{{ normalize .Name }}`)```) + +`TRAEFIK_PROVIDERS_MARATHON_DIALERTIMEOUT`: +Set a dialer timeout for Marathon. (Default: ```5```) + +`TRAEFIK_PROVIDERS_MARATHON_ENDPOINT`: +Marathon server endpoint. You can also specify multiple endpoint for Marathon. (Default: ```http://127.0.0.1:8080```) + +`TRAEFIK_PROVIDERS_MARATHON_EXPOSEDBYDEFAULT`: +Expose Marathon apps by default. (Default: ```true```) + +`TRAEFIK_PROVIDERS_MARATHON_FORCETASKHOSTNAME`: +Force to use the task's hostname. (Default: ```false```) + +`TRAEFIK_PROVIDERS_MARATHON_KEEPALIVE`: +Set a TCP Keep Alive time. (Default: ```10```) + +`TRAEFIK_PROVIDERS_MARATHON_RESPECTREADINESSCHECKS`: +Filter out tasks with non-successful readiness checks during deployments. (Default: ```false```) + +`TRAEFIK_PROVIDERS_MARATHON_RESPONSEHEADERTIMEOUT`: +Set a response header timeout for Marathon. (Default: ```60```) + +`TRAEFIK_PROVIDERS_MARATHON_TLSHANDSHAKETIMEOUT`: +Set a TLS handshake timeout for Marathon. (Default: ```5```) + +`TRAEFIK_PROVIDERS_MARATHON_TLS_CA`: +TLS CA + +`TRAEFIK_PROVIDERS_MARATHON_TLS_CAOPTIONAL`: +TLS CA.Optional (Default: ```false```) + +`TRAEFIK_PROVIDERS_MARATHON_TLS_CERT`: +TLS cert + +`TRAEFIK_PROVIDERS_MARATHON_TLS_INSECURESKIPVERIFY`: +TLS insecure skip verify (Default: ```false```) + +`TRAEFIK_PROVIDERS_MARATHON_TLS_KEY`: +TLS key + +`TRAEFIK_PROVIDERS_MARATHON_TRACE`: +Display additional provider logs. (Default: ```false```) + +`TRAEFIK_PROVIDERS_MARATHON_WATCH`: +Watch provider. (Default: ```true```) + +`TRAEFIK_PROVIDERS_PROVIDERSTHROTTLEDURATION`: +Backends throttle duration: minimum duration between 2 events from providers before applying a new configuration. It avoids unnecessary reloads if multiples events are sent in a short amount of time. (Default: ```0```) + +`TRAEFIK_PROVIDERS_RANCHER`: +Enable Rancher backend with default settings. (Default: ```false```) + +`TRAEFIK_PROVIDERS_RANCHER_CONSTRAINTS`: +Constraints is an expression that Traefik matches against the container's labels to determine whether to create any route for that container. + +`TRAEFIK_PROVIDERS_RANCHER_DEFAULTRULE`: +Default rule. (Default: ```Host(`{{ normalize .Name }}`)```) + +`TRAEFIK_PROVIDERS_RANCHER_ENABLESERVICEHEALTHFILTER`: +Filter services with unhealthy states and inactive states. (Default: ```true```) + +`TRAEFIK_PROVIDERS_RANCHER_EXPOSEDBYDEFAULT`: +Expose containers by default. (Default: ```true```) + +`TRAEFIK_PROVIDERS_RANCHER_INTERVALPOLL`: +Poll the Rancher metadata service every 'rancher.refreshseconds' (less accurate). (Default: ```false```) + +`TRAEFIK_PROVIDERS_RANCHER_PREFIX`: +Prefix used for accessing the Rancher metadata service. (Default: ```latest```) + +`TRAEFIK_PROVIDERS_RANCHER_REFRESHSECONDS`: +Defines the polling interval in seconds. (Default: ```15```) + +`TRAEFIK_PROVIDERS_RANCHER_WATCH`: +Watch provider. (Default: ```true```) + +`TRAEFIK_PROVIDERS_REST`: +Enable Rest backend with default settings. (Default: ```false```) + +`TRAEFIK_PROVIDERS_REST_ENTRYPOINT`: +EntryPoint. (Default: ```traefik```) + +`TRAEFIK_SERVERSTRANSPORT_FORWARDINGTIMEOUTS_DIALTIMEOUT`: +The amount of time to wait until a connection to a backend server can be established. If zero, no timeout exists. (Default: ```30```) + +`TRAEFIK_SERVERSTRANSPORT_FORWARDINGTIMEOUTS_IDLECONNTIMEOUT`: +The maximum period for which an idle HTTP keep-alive connection will remain open before closing itself (Default: ```90```) + +`TRAEFIK_SERVERSTRANSPORT_FORWARDINGTIMEOUTS_RESPONSEHEADERTIMEOUT`: +The amount of time to wait for a server's response headers after fully writing the request (including its body, if any). If zero, no timeout exists. (Default: ```0```) + +`TRAEFIK_SERVERSTRANSPORT_INSECURESKIPVERIFY`: +Disable SSL certificate verification. (Default: ```false```) + +`TRAEFIK_SERVERSTRANSPORT_MAXIDLECONNSPERHOST`: +If non-zero, controls the maximum idle (keep-alive) to keep per-host. If zero, DefaultMaxIdleConnsPerHost is used (Default: ```0```) + +`TRAEFIK_SERVERSTRANSPORT_ROOTCAS`: +Add cert file for self-signed certificate. + +`TRAEFIK_TRACING`: +OpenTracing configuration. (Default: ```false```) + +`TRAEFIK_TRACING_DATADOG`: +Settings for DataDog. (Default: ```false```) + +`TRAEFIK_TRACING_DATADOG_BAGAGEPREFIXHEADERNAME`: +Specifies the header name prefix that will be used to store baggage items in a map. + +`TRAEFIK_TRACING_DATADOG_DEBUG`: +Enable DataDog debug. (Default: ```false```) + +`TRAEFIK_TRACING_DATADOG_GLOBALTAG`: +Key:Value tag to be set on all the spans. + +`TRAEFIK_TRACING_DATADOG_LOCALAGENTHOSTPORT`: +Set datadog-agent's host:port that the reporter will used. (Default: ```localhost:8126```) + +`TRAEFIK_TRACING_DATADOG_PARENTIDHEADERNAME`: +Specifies the header name that will be used to store the parent ID. + +`TRAEFIK_TRACING_DATADOG_PRIORITYSAMPLING`: +Enable priority sampling. When using distributed tracing, this option must be enabled in order to get all the parts of a distributed trace sampled. (Default: ```false```) + +`TRAEFIK_TRACING_DATADOG_SAMPLINGPRIORITYHEADERNAME`: +Specifies the header name that will be used to store the sampling priority. + +`TRAEFIK_TRACING_DATADOG_TRACEIDHEADERNAME`: +Specifies the header name that will be used to store the trace ID. + +`TRAEFIK_TRACING_HAYSTACK`: +Settings for Haystack. (Default: ```false```) + +`TRAEFIK_TRACING_HAYSTACK_BAGGAGEPREFIXHEADERNAME`: +Specifies the header name prefix that will be used to store baggage items in a map. + +`TRAEFIK_TRACING_HAYSTACK_GLOBALTAG`: +Key:Value tag to be set on all the spans. + +`TRAEFIK_TRACING_HAYSTACK_LOCALAGENTHOST`: +Set haystack-agent's host that the reporter will used. (Default: ```LocalAgentHost```) + +`TRAEFIK_TRACING_HAYSTACK_LOCALAGENTPORT`: +Set haystack-agent's port that the reporter will used. (Default: ```35000```) + +`TRAEFIK_TRACING_HAYSTACK_PARENTIDHEADERNAME`: +Specifies the header name that will be used to store the parent ID. + +`TRAEFIK_TRACING_HAYSTACK_SPANIDHEADERNAME`: +Specifies the header name that will be used to store the span ID. + +`TRAEFIK_TRACING_HAYSTACK_TRACEIDHEADERNAME`: +Specifies the header name that will be used to store the trace ID. + +`TRAEFIK_TRACING_INSTANA`: +Settings for Instana. (Default: ```false```) + +`TRAEFIK_TRACING_INSTANA_LOCALAGENTHOST`: +Set instana-agent's host that the reporter will used. (Default: ```localhost```) + +`TRAEFIK_TRACING_INSTANA_LOCALAGENTPORT`: +Set instana-agent's port that the reporter will used. (Default: ```42699```) + +`TRAEFIK_TRACING_INSTANA_LOGLEVEL`: +Set instana-agent's log level. ('error','warn','info','debug') (Default: ```info```) + +`TRAEFIK_TRACING_JAEGER`: +Settings for Jaeger. (Default: ```false```) + +`TRAEFIK_TRACING_JAEGER_GEN128BIT`: +Generate 128 bit span IDs. (Default: ```false```) + +`TRAEFIK_TRACING_JAEGER_LOCALAGENTHOSTPORT`: +Set jaeger-agent's host:port that the reporter will used. (Default: ```127.0.0.1:6831```) + +`TRAEFIK_TRACING_JAEGER_PROPAGATION`: +Which propgation format to use (jaeger/b3). (Default: ```jaeger```) + +`TRAEFIK_TRACING_JAEGER_SAMPLINGPARAM`: +Set the sampling parameter. (Default: ```1.000000```) + +`TRAEFIK_TRACING_JAEGER_SAMPLINGSERVERURL`: +Set the sampling server url. (Default: ```http://localhost:5778/sampling```) + +`TRAEFIK_TRACING_JAEGER_SAMPLINGTYPE`: +Set the sampling type. (Default: ```const```) + +`TRAEFIK_TRACING_JAEGER_TRACECONTEXTHEADERNAME`: +Set the header to use for the trace-id. (Default: ```uber-trace-id```) + +`TRAEFIK_TRACING_SERVICENAME`: +Set the name for this service. (Default: ```traefik```) + +`TRAEFIK_TRACING_SPANNAMELIMIT`: +Set the maximum character limit for Span names (default 0 = no limit). (Default: ```0```) + +`TRAEFIK_TRACING_ZIPKIN`: +Settings for Zipkin. (Default: ```false```) + +`TRAEFIK_TRACING_ZIPKIN_DEBUG`: +Enable Zipkin debug. (Default: ```false```) + +`TRAEFIK_TRACING_ZIPKIN_HTTPENDPOINT`: +HTTP Endpoint to report traces to. (Default: ```http://localhost:9411/api/v1/spans```) + +`TRAEFIK_TRACING_ZIPKIN_ID128BIT`: +Use Zipkin 128 bit root span IDs. (Default: ```true```) + +`TRAEFIK_TRACING_ZIPKIN_SAMESPAN`: +Use Zipkin SameSpan RPC style traces. (Default: ```false```) + +`TRAEFIK_TRACING_ZIPKIN_SAMPLERATE`: +The rate between 0.0 and 1.0 of requests to trace. (Default: ```1.000000```) diff --git a/docs/content/reference/static-configuration/env.md b/docs/content/reference/static-configuration/env.md index 09eb82a09..0885c93d0 100644 --- a/docs/content/reference/static-configuration/env.md +++ b/docs/content/reference/static-configuration/env.md @@ -1,590 +1,3 @@ # Static Configuration: Environment variables -`TRAEFIK_ACCESSLOG`: -Access log settings. (Default: ```false```) - -`TRAEFIK_ACCESSLOG_BUFFERINGSIZE`: -Number of access log lines to process in a buffered way. (Default: ```0```) - -`TRAEFIK_ACCESSLOG_FIELDS_DEFAULTMODE`: -Default mode for fields: keep | drop (Default: ```keep```) - -`TRAEFIK_ACCESSLOG_FIELDS_HEADERS_DEFAULTMODE`: -Default mode for fields: keep | drop | redact (Default: ```keep```) - -`TRAEFIK_ACCESSLOG_FIELDS_HEADERS_NAMES_`: -Override mode for headers - -`TRAEFIK_ACCESSLOG_FIELDS_NAMES_`: -Override mode for fields - -`TRAEFIK_ACCESSLOG_FILEPATH`: -Access log file path. Stdout is used when omitted or empty. - -`TRAEFIK_ACCESSLOG_FILTERS_MINDURATION`: -Keep access logs when request took longer than the specified duration. (Default: ```0```) - -`TRAEFIK_ACCESSLOG_FILTERS_RETRYATTEMPTS`: -Keep access logs when at least one retry happened. (Default: ```false```) - -`TRAEFIK_ACCESSLOG_FILTERS_STATUSCODES`: -Keep access logs with status codes in the specified range. - -`TRAEFIK_ACCESSLOG_FORMAT`: -Access log format: json | common (Default: ```common```) - -`TRAEFIK_ACME_ACMELOGGING`: -Enable debug logging of ACME actions. (Default: ```false```) - -`TRAEFIK_ACME_CASERVER`: -CA server to use. (Default: ```https://acme-v02.api.letsencrypt.org/directory```) - -`TRAEFIK_ACME_DNSCHALLENGE`: -Activate DNS-01 Challenge. (Default: ```false```) - -`TRAEFIK_ACME_DNSCHALLENGE_DELAYBEFORECHECK`: -Assume DNS propagates after a delay in seconds rather than finding and querying nameservers. (Default: ```0```) - -`TRAEFIK_ACME_DNSCHALLENGE_DISABLEPROPAGATIONCHECK`: -Disable the DNS propagation checks before notifying ACME that the DNS challenge is ready. [not recommended] (Default: ```false```) - -`TRAEFIK_ACME_DNSCHALLENGE_PROVIDER`: -Use a DNS-01 based challenge provider rather than HTTPS. - -`TRAEFIK_ACME_DNSCHALLENGE_RESOLVERS`: -Use following DNS servers to resolve the FQDN authority. - -`TRAEFIK_ACME_DOMAINS`: -The list of domains for which certificates are generated on startup. Wildcard domains only accepted with DNSChallenge. - -`TRAEFIK_ACME_DOMAINS[n]_MAIN`: -Default subject name. - -`TRAEFIK_ACME_DOMAINS[n]_SANS`: -Subject alternative names. - -`TRAEFIK_ACME_EMAIL`: -Email address used for registration. - -`TRAEFIK_ACME_ENTRYPOINT`: -EntryPoint to use. - -`TRAEFIK_ACME_HTTPCHALLENGE`: -Activate HTTP-01 Challenge. (Default: ```false```) - -`TRAEFIK_ACME_HTTPCHALLENGE_ENTRYPOINT`: -HTTP challenge EntryPoint - -`TRAEFIK_ACME_KEYTYPE`: -KeyType used for generating certificate private key. Allow value 'EC256', 'EC384', 'RSA2048', 'RSA4096', 'RSA8192'. (Default: ```RSA4096```) - -`TRAEFIK_ACME_ONHOSTRULE`: -Enable certificate generation on router Host rules. (Default: ```false```) - -`TRAEFIK_ACME_STORAGE`: -Storage to use. (Default: ```acme.json```) - -`TRAEFIK_ACME_TLSCHALLENGE`: -Activate TLS-ALPN-01 Challenge. (Default: ```true```) - -`TRAEFIK_API`: -Enable api/dashboard. (Default: ```false```) - -`TRAEFIK_API_DASHBOARD`: -Activate dashboard. (Default: ```true```) - -`TRAEFIK_API_DEBUG`: -Enable additional endpoints for debugging and profiling. (Default: ```false```) - -`TRAEFIK_API_ENTRYPOINT`: -The entry point that the API handler will be bound to. (Default: ```traefik```) - -`TRAEFIK_API_MIDDLEWARES`: -Middleware list. - -`TRAEFIK_API_STATISTICS`: -Enable more detailed statistics. (Default: ```false```) - -`TRAEFIK_API_STATISTICS_RECENTERRORS`: -Number of recent errors logged. (Default: ```10```) - -`TRAEFIK_CONFIGFILE`: -Configuration file to use. If specified all other flags are ignored. (Default: "") - -`TRAEFIK_ENTRYPOINTS_`: -Entry points definition. (Default: ```false```) - -`TRAEFIK_ENTRYPOINTS__ADDRESS`: -Entry point address. - -`TRAEFIK_ENTRYPOINTS__FORWARDEDHEADERS_INSECURE`: -Trust all forwarded headers. (Default: ```false```) - -`TRAEFIK_ENTRYPOINTS__FORWARDEDHEADERS_TRUSTEDIPS`: -Trust only forwarded headers from selected IPs. - -`TRAEFIK_ENTRYPOINTS__PROXYPROTOCOL`: -Proxy-Protocol configuration. (Default: ```false```) - -`TRAEFIK_ENTRYPOINTS__PROXYPROTOCOL_INSECURE`: -Trust all. (Default: ```false```) - -`TRAEFIK_ENTRYPOINTS__PROXYPROTOCOL_TRUSTEDIPS`: -Trust only selected IPs. - -`TRAEFIK_ENTRYPOINTS__TRANSPORT_LIFECYCLE_GRACETIMEOUT`: -Duration to give active requests a chance to finish before Traefik stops. (Default: ```10```) - -`TRAEFIK_ENTRYPOINTS__TRANSPORT_LIFECYCLE_REQUESTACCEPTGRACETIMEOUT`: -Duration to keep accepting requests before Traefik initiates the graceful shutdown procedure. (Default: ```0```) - -`TRAEFIK_ENTRYPOINTS__TRANSPORT_RESPONDINGTIMEOUTS_IDLETIMEOUT`: -IdleTimeout is the maximum amount duration an idle (keep-alive) connection will remain idle before closing itself. If zero, no timeout is set. (Default: ```180```) - -`TRAEFIK_ENTRYPOINTS__TRANSPORT_RESPONDINGTIMEOUTS_READTIMEOUT`: -ReadTimeout is the maximum duration for reading the entire request, including the body. If zero, no timeout is set. (Default: ```0```) - -`TRAEFIK_ENTRYPOINTS__TRANSPORT_RESPONDINGTIMEOUTS_WRITETIMEOUT`: -WriteTimeout is the maximum duration before timing out writes of the response. If zero, no timeout is set. (Default: ```0```) - -`TRAEFIK_GLOBAL_CHECKNEWVERSION`: -Periodically check if a new version has been released. (Default: ```false```) - -`TRAEFIK_GLOBAL_SENDANONYMOUSUSAGE`: -Periodically send anonymous usage statistics. If the option is not specified, it will be enabled by default. - -`TRAEFIK_HOSTRESOLVER`: -Enable CNAME Flattening. (Default: ```false```) - -`TRAEFIK_HOSTRESOLVER_CNAMEFLATTENING`: -A flag to enable/disable CNAME flattening (Default: ```false```) - -`TRAEFIK_HOSTRESOLVER_RESOLVCONFIG`: -resolv.conf used for DNS resolving (Default: ```/etc/resolv.conf```) - -`TRAEFIK_HOSTRESOLVER_RESOLVDEPTH`: -The maximal depth of DNS recursive resolving (Default: ```5```) - -`TRAEFIK_LOG`: -Traefik log settings. (Default: "false") - -`TRAEFIK_LOG_FILEPATH`: -Traefik log file path. Stdout is used when omitted or empty. - -`TRAEFIK_LOG_FORMAT`: -Traefik log format: json | common (Default: ```common```) - -`TRAEFIK_LOG_LEVEL`: -Log level set to traefik logs. (Default: ```ERROR```) - -`TRAEFIK_METRICS_DATADOG`: -DataDog metrics exporter type. (Default: ```false```) - -`TRAEFIK_METRICS_DATADOG_ADDRESS`: -DataDog's address. (Default: ```localhost:8125```) - -`TRAEFIK_METRICS_DATADOG_PUSHINTERVAL`: -DataDog push interval. (Default: ```10```) - -`TRAEFIK_METRICS_INFLUXDB`: -InfluxDB metrics exporter type. (Default: ```false```) - -`TRAEFIK_METRICS_INFLUXDB_ADDRESS`: -InfluxDB address. (Default: ```localhost:8089```) - -`TRAEFIK_METRICS_INFLUXDB_DATABASE`: -InfluxDB database used when protocol is http. - -`TRAEFIK_METRICS_INFLUXDB_PASSWORD`: -InfluxDB password (only with http). - -`TRAEFIK_METRICS_INFLUXDB_PROTOCOL`: -InfluxDB address protocol (udp or http). (Default: ```udp```) - -`TRAEFIK_METRICS_INFLUXDB_PUSHINTERVAL`: -InfluxDB push interval. (Default: ```10```) - -`TRAEFIK_METRICS_INFLUXDB_RETENTIONPOLICY`: -InfluxDB retention policy used when protocol is http. - -`TRAEFIK_METRICS_INFLUXDB_USERNAME`: -InfluxDB username (only with http). - -`TRAEFIK_METRICS_PROMETHEUS`: -Prometheus metrics exporter type. (Default: ```false```) - -`TRAEFIK_METRICS_PROMETHEUS_BUCKETS`: -Buckets for latency metrics. (Default: ```0.100000, 0.300000, 1.200000, 5.000000```) - -`TRAEFIK_METRICS_PROMETHEUS_ENTRYPOINT`: -EntryPoint. (Default: ```traefik```) - -`TRAEFIK_METRICS_PROMETHEUS_MIDDLEWARES`: -Middlewares. - -`TRAEFIK_METRICS_STATSD`: -StatsD metrics exporter type. (Default: ```false```) - -`TRAEFIK_METRICS_STATSD_ADDRESS`: -StatsD address. (Default: ```localhost:8125```) - -`TRAEFIK_METRICS_STATSD_PUSHINTERVAL`: -StatsD push interval. (Default: ```10```) - -`TRAEFIK_PING`: -Enable ping. (Default: ```false```) - -`TRAEFIK_PING_ENTRYPOINT`: -Ping entryPoint. (Default: ```traefik```) - -`TRAEFIK_PING_MIDDLEWARES`: -Middleware list. - -`TRAEFIK_PROVIDERS_DOCKER`: -Enable Docker backend with default settings. (Default: ```false```) - -`TRAEFIK_PROVIDERS_DOCKER_CONSTRAINTS`: -Constraints is an expression that Traefik matches against the container's labels to determine whether to create any route for that container. - -`TRAEFIK_PROVIDERS_DOCKER_DEFAULTRULE`: -Default rule. (Default: ```Host(`{{ normalize .Name }}`)```) - -`TRAEFIK_PROVIDERS_DOCKER_ENDPOINT`: -Docker server endpoint. Can be a tcp or a unix socket endpoint. (Default: ```unix:///var/run/docker.sock```) - -`TRAEFIK_PROVIDERS_DOCKER_EXPOSEDBYDEFAULT`: -Expose containers by default. (Default: ```true```) - -`TRAEFIK_PROVIDERS_DOCKER_NETWORK`: -Default Docker network used. - -`TRAEFIK_PROVIDERS_DOCKER_SWARMMODE`: -Use Docker on Swarm Mode. (Default: ```false```) - -`TRAEFIK_PROVIDERS_DOCKER_SWARMMODEREFRESHSECONDS`: -Polling interval for swarm mode. (Default: ```15```) - -`TRAEFIK_PROVIDERS_DOCKER_TLS_CA`: -TLS CA - -`TRAEFIK_PROVIDERS_DOCKER_TLS_CAOPTIONAL`: -TLS CA.Optional (Default: ```false```) - -`TRAEFIK_PROVIDERS_DOCKER_TLS_CERT`: -TLS cert - -`TRAEFIK_PROVIDERS_DOCKER_TLS_INSECURESKIPVERIFY`: -TLS insecure skip verify (Default: ```false```) - -`TRAEFIK_PROVIDERS_DOCKER_TLS_KEY`: -TLS key - -`TRAEFIK_PROVIDERS_DOCKER_USEBINDPORTIP`: -Use the ip address from the bound port, rather than from the inner network. (Default: ```false```) - -`TRAEFIK_PROVIDERS_DOCKER_WATCH`: -Watch provider. (Default: ```true```) - -`TRAEFIK_PROVIDERS_FILE`: -Enable File backend with default settings. (Default: ```false```) - -`TRAEFIK_PROVIDERS_FILE_DEBUGLOGGENERATEDTEMPLATE`: -Enable debug logging of generated configuration template. (Default: ```false```) - -`TRAEFIK_PROVIDERS_FILE_DIRECTORY`: -Load configuration from one or more .toml files in a directory. - -`TRAEFIK_PROVIDERS_FILE_FILENAME`: -Override default configuration template. For advanced users :) - -`TRAEFIK_PROVIDERS_FILE_WATCH`: -Watch provider. (Default: ```true```) - -`TRAEFIK_PROVIDERS_KUBERNETES`: -Enable Kubernetes backend with default settings. (Default: ```false```) - -`TRAEFIK_PROVIDERS_KUBERNETESCRD`: -Enable Kubernetes backend with default settings. (Default: ```false```) - -`TRAEFIK_PROVIDERS_KUBERNETESCRD_CERTAUTHFILEPATH`: -Kubernetes certificate authority file path (not needed for in-cluster client). - -`TRAEFIK_PROVIDERS_KUBERNETESCRD_DISABLEPASSHOSTHEADERS`: -Kubernetes disable PassHost Headers. (Default: ```false```) - -`TRAEFIK_PROVIDERS_KUBERNETESCRD_ENDPOINT`: -Kubernetes server endpoint (required for external cluster client). - -`TRAEFIK_PROVIDERS_KUBERNETESCRD_INGRESSCLASS`: -Value of kubernetes.io/ingress.class annotation to watch for. - -`TRAEFIK_PROVIDERS_KUBERNETESCRD_LABELSELECTOR`: -Kubernetes label selector to use. - -`TRAEFIK_PROVIDERS_KUBERNETESCRD_NAMESPACES`: -Kubernetes namespaces. - -`TRAEFIK_PROVIDERS_KUBERNETESCRD_TOKEN`: -Kubernetes bearer token (not needed for in-cluster client). - -`TRAEFIK_PROVIDERS_KUBERNETES_CERTAUTHFILEPATH`: -Kubernetes certificate authority file path (not needed for in-cluster client). - -`TRAEFIK_PROVIDERS_KUBERNETES_DISABLEPASSHOSTHEADERS`: -Kubernetes disable PassHost Headers. (Default: ```false```) - -`TRAEFIK_PROVIDERS_KUBERNETES_ENDPOINT`: -Kubernetes server endpoint (required for external cluster client). - -`TRAEFIK_PROVIDERS_KUBERNETES_INGRESSCLASS`: -Value of kubernetes.io/ingress.class annotation to watch for. - -`TRAEFIK_PROVIDERS_KUBERNETES_INGRESSENDPOINT_HOSTNAME`: -Hostname used for Kubernetes Ingress endpoints. - -`TRAEFIK_PROVIDERS_KUBERNETES_INGRESSENDPOINT_IP`: -IP used for Kubernetes Ingress endpoints. - -`TRAEFIK_PROVIDERS_KUBERNETES_INGRESSENDPOINT_PUBLISHEDSERVICE`: -Published Kubernetes Service to copy status from. - -`TRAEFIK_PROVIDERS_KUBERNETES_LABELSELECTOR`: -Kubernetes Ingress label selector to use. - -`TRAEFIK_PROVIDERS_KUBERNETES_NAMESPACES`: -Kubernetes namespaces. - -`TRAEFIK_PROVIDERS_KUBERNETES_TOKEN`: -Kubernetes bearer token (not needed for in-cluster client). - -`TRAEFIK_PROVIDERS_MARATHON`: -Enable Marathon backend with default settings. (Default: ```false```) - -`TRAEFIK_PROVIDERS_MARATHON_BASIC_HTTPBASICAUTHUSER`: -Basic authentication User. - -`TRAEFIK_PROVIDERS_MARATHON_BASIC_HTTPBASICPASSWORD`: -Basic authentication Password. - -`TRAEFIK_PROVIDERS_MARATHON_CONSTRAINTS`: -Constraints is an expression that Traefik matches against the application's labels to determine whether to create any route for that application. - -`TRAEFIK_PROVIDERS_MARATHON_DCOSTOKEN`: -DCOSToken for DCOS environment, This will override the Authorization header. - -`TRAEFIK_PROVIDERS_MARATHON_DEFAULTRULE`: -Default rule. (Default: ```Host(`{{ normalize .Name }}`)```) - -`TRAEFIK_PROVIDERS_MARATHON_DIALERTIMEOUT`: -Set a dialer timeout for Marathon. (Default: ```5```) - -`TRAEFIK_PROVIDERS_MARATHON_ENDPOINT`: -Marathon server endpoint. You can also specify multiple endpoint for Marathon. (Default: ```http://127.0.0.1:8080```) - -`TRAEFIK_PROVIDERS_MARATHON_EXPOSEDBYDEFAULT`: -Expose Marathon apps by default. (Default: ```true```) - -`TRAEFIK_PROVIDERS_MARATHON_FORCETASKHOSTNAME`: -Force to use the task's hostname. (Default: ```false```) - -`TRAEFIK_PROVIDERS_MARATHON_KEEPALIVE`: -Set a TCP Keep Alive time. (Default: ```10```) - -`TRAEFIK_PROVIDERS_MARATHON_RESPECTREADINESSCHECKS`: -Filter out tasks with non-successful readiness checks during deployments. (Default: ```false```) - -`TRAEFIK_PROVIDERS_MARATHON_RESPONSEHEADERTIMEOUT`: -Set a response header timeout for Marathon. (Default: ```60```) - -`TRAEFIK_PROVIDERS_MARATHON_TLSHANDSHAKETIMEOUT`: -Set a TLS handshake timeout for Marathon. (Default: ```5```) - -`TRAEFIK_PROVIDERS_MARATHON_TLS_CA`: -TLS CA - -`TRAEFIK_PROVIDERS_MARATHON_TLS_CAOPTIONAL`: -TLS CA.Optional (Default: ```false```) - -`TRAEFIK_PROVIDERS_MARATHON_TLS_CERT`: -TLS cert - -`TRAEFIK_PROVIDERS_MARATHON_TLS_INSECURESKIPVERIFY`: -TLS insecure skip verify (Default: ```false```) - -`TRAEFIK_PROVIDERS_MARATHON_TLS_KEY`: -TLS key - -`TRAEFIK_PROVIDERS_MARATHON_TRACE`: -Display additional provider logs. (Default: ```false```) - -`TRAEFIK_PROVIDERS_MARATHON_WATCH`: -Watch provider. (Default: ```true```) - -`TRAEFIK_PROVIDERS_PROVIDERSTHROTTLEDURATION`: -Backends throttle duration: minimum duration between 2 events from providers before applying a new configuration. It avoids unnecessary reloads if multiples events are sent in a short amount of time. (Default: ```0```) - -`TRAEFIK_PROVIDERS_RANCHER`: -Enable Rancher backend with default settings. (Default: ```false```) - -`TRAEFIK_PROVIDERS_RANCHER_CONSTRAINTS`: -Constraints is an expression that Traefik matches against the container's labels to determine whether to create any route for that container. - -`TRAEFIK_PROVIDERS_RANCHER_DEFAULTRULE`: -Default rule. (Default: ```Host(`{{ normalize .Name }}`)```) - -`TRAEFIK_PROVIDERS_RANCHER_ENABLESERVICEHEALTHFILTER`: -Filter services with unhealthy states and inactive states. (Default: ```true```) - -`TRAEFIK_PROVIDERS_RANCHER_EXPOSEDBYDEFAULT`: -Expose containers by default. (Default: ```true```) - -`TRAEFIK_PROVIDERS_RANCHER_INTERVALPOLL`: -Poll the Rancher metadata service every 'rancher.refreshseconds' (less accurate). (Default: ```false```) - -`TRAEFIK_PROVIDERS_RANCHER_PREFIX`: -Prefix used for accessing the Rancher metadata service. (Default: ```latest```) - -`TRAEFIK_PROVIDERS_RANCHER_REFRESHSECONDS`: -Defines the polling interval in seconds. (Default: ```15```) - -`TRAEFIK_PROVIDERS_RANCHER_WATCH`: -Watch provider. (Default: ```true```) - -`TRAEFIK_PROVIDERS_REST`: -Enable Rest backend with default settings. (Default: ```false```) - -`TRAEFIK_PROVIDERS_REST_ENTRYPOINT`: -EntryPoint. (Default: ```traefik```) - -`TRAEFIK_SERVERSTRANSPORT_FORWARDINGTIMEOUTS_DIALTIMEOUT`: -The amount of time to wait until a connection to a backend server can be established. If zero, no timeout exists. (Default: ```30```) - -`TRAEFIK_SERVERSTRANSPORT_FORWARDINGTIMEOUTS_RESPONSEHEADERTIMEOUT`: -The amount of time to wait for a server's response headers after fully writing the request (including its body, if any). If zero, no timeout exists. (Default: ```0```) - -`TRAEFIK_SERVERSTRANSPORT_FORWARDINGTIMEOUTS_IDLECONNTIMEOUT`: -The maximum period for which an idle HTTP keep-alive connection to a backend -server will remain open before closing itself. (Default: ```90s```) - -`TRAEFIK_SERVERSTRANSPORT_INSECURESKIPVERIFY`: -Disable SSL certificate verification. (Default: ```false```) - -`TRAEFIK_SERVERSTRANSPORT_MAXIDLECONNSPERHOST`: -If non-zero, controls the maximum idle (keep-alive) to keep per-host. If zero, DefaultMaxIdleConnsPerHost is used (Default: ```0```) - -`TRAEFIK_SERVERSTRANSPORT_ROOTCAS`: -Add cert file for self-signed certificate. - -`TRAEFIK_TRACING`: -OpenTracing configuration. (Default: ```false```) - -`TRAEFIK_TRACING_DATADOG`: -Settings for DataDog. (Default: ```false```) - -`TRAEFIK_TRACING_DATADOG_BAGAGEPREFIXHEADERNAME`: -Specifies the header name prefix that will be used to store baggage items in a map. - -`TRAEFIK_TRACING_DATADOG_DEBUG`: -Enable DataDog debug. (Default: ```false```) - -`TRAEFIK_TRACING_DATADOG_GLOBALTAG`: -Key:Value tag to be set on all the spans. - -`TRAEFIK_TRACING_DATADOG_LOCALAGENTHOSTPORT`: -Set datadog-agent's host:port that the reporter will used. (Default: ```localhost:8126```) - -`TRAEFIK_TRACING_DATADOG_PARENTIDHEADERNAME`: -Specifies the header name that will be used to store the parent ID. - -`TRAEFIK_TRACING_DATADOG_PRIORITYSAMPLING`: -Enable priority sampling. When using distributed tracing, this option must be enabled in order to get all the parts of a distributed trace sampled. (Default: ```false```) - -`TRAEFIK_TRACING_DATADOG_SAMPLINGPRIORITYHEADERNAME`: -Specifies the header name that will be used to store the sampling priority. - -`TRAEFIK_TRACING_DATADOG_TRACEIDHEADERNAME`: -Specifies the header name that will be used to store the trace ID. - -`TRAEFIK_TRACING_HAYSTACK`: -Settings for Haystack. (Default: ```false```) - -`TRAEFIK_TRACING_HAYSTACK_BAGGAGEPREFIXHEADERNAME`: -specifies the header name prefix that will be used to store baggage items in a map. - -`TRAEFIK_TRACING_HAYSTACK_GLOBALTAG`: -Key:Value tag to be set on all the spans. - -`TRAEFIK_TRACING_HAYSTACK_LOCALAGENTHOST`: -Set haystack-agent's host that the reporter will used. (Default: ```LocalAgentHost```) - -`TRAEFIK_TRACING_HAYSTACK_LOCALAGENTPORT`: -Set haystack-agent's port that the reporter will used. (Default: ```35000```) - -`TRAEFIK_TRACING_HAYSTACK_PARENTIDHEADERNAME`: -Specifies the header name that will be used to store the parent ID. - -`TRAEFIK_TRACING_HAYSTACK_SPANIDHEADERNAME`: -Specifies the header name that will be used to store the span ID. - -`TRAEFIK_TRACING_HAYSTACK_TRACEIDHEADERNAME`: -Specifies the header name that will be used to store the trace ID. - -`TRAEFIK_TRACING_INSTANA`: -Settings for Instana. (Default: ```false```) - -`TRAEFIK_TRACING_INSTANA_LOCALAGENTHOST`: -Set instana-agent's host that the reporter will used. (Default: ```localhost```) - -`TRAEFIK_TRACING_INSTANA_LOCALAGENTPORT`: -Set instana-agent's port that the reporter will used. (Default: ```42699```) - -`TRAEFIK_TRACING_INSTANA_LOGLEVEL`: -Set instana-agent's log level. ('error','warn','info','debug') (Default: ```info```) - -`TRAEFIK_TRACING_JAEGER`: -Settings for jaeger. (Default: ```false```) - -`TRAEFIK_TRACING_JAEGER_GEN128BIT`: -Generate 128 bit span IDs. (Default: ```false```) - -`TRAEFIK_TRACING_JAEGER_LOCALAGENTHOSTPORT`: -Set jaeger-agent's host:port that the reporter will used. (Default: ```127.0.0.1:6831```) - -`TRAEFIK_TRACING_JAEGER_PROPAGATION`: -Which propgation format to use (jaeger/b3). (Default: ```jaeger```) - -`TRAEFIK_TRACING_JAEGER_SAMPLINGPARAM`: -Set the sampling parameter. (Default: ```1.000000```) - -`TRAEFIK_TRACING_JAEGER_SAMPLINGSERVERURL`: -Set the sampling server url. (Default: ```http://localhost:5778/sampling```) - -`TRAEFIK_TRACING_JAEGER_SAMPLINGTYPE`: -Set the sampling type. (Default: ```const```) - -`TRAEFIK_TRACING_JAEGER_TRACECONTEXTHEADERNAME`: -Set the header to use for the trace-id. (Default: ```uber-trace-id```) - -`TRAEFIK_TRACING_SERVICENAME`: -Set the name for this service. (Default: ```traefik```) - -`TRAEFIK_TRACING_SPANNAMELIMIT`: -Set the maximum character limit for Span names (default 0 = no limit). (Default: ```0```) - -`TRAEFIK_TRACING_ZIPKIN`: -Settings for zipkin. (Default: ```false```) - -`TRAEFIK_TRACING_ZIPKIN_DEBUG`: -Enable Zipkin debug. (Default: ```false```) - -`TRAEFIK_TRACING_ZIPKIN_HTTPENDPOINT`: -HTTP Endpoint to report traces to. (Default: ```http://localhost:9411/api/v1/spans```) - -`TRAEFIK_TRACING_ZIPKIN_ID128BIT`: -Use Zipkin 128 bit root span IDs. (Default: ```true```) - -`TRAEFIK_TRACING_ZIPKIN_SAMESPAN`: -Use Zipkin SameSpan RPC style traces. (Default: ```false```) - -`TRAEFIK_TRACING_ZIPKIN_SAMPLERATE`: -The rate between 0.0 and 1.0 of requests to trace. (Default: ```1.000000```) +--8<-- "content/reference/static-configuration/env-ref.md" diff --git a/docs/content/reference/static-configuration/file.toml b/docs/content/reference/static-configuration/file.toml index c53815310..5b9236526 100644 --- a/docs/content/reference/static-configuration/file.toml +++ b/docs/content/reference/static-configuration/file.toml @@ -52,7 +52,6 @@ watch = true filename = "foobar" debugLogGeneratedTemplate = true - traefikFile = "foobar" [providers.marathon] constraints = "foobar" trace = true @@ -111,6 +110,7 @@ [api] entryPoint = "foobar" dashboard = true + debug = true middlewares = ["foobar", "foobar"] [api.statistics] recentErrors = 42 @@ -200,6 +200,7 @@ traceIDHeaderName = "foobar" parentIDHeaderName = "foobar" spanIDHeaderName = "foobar" + baggagePrefixHeaderName = "foobar" [hostResolver] cnameFlattening = true diff --git a/docs/content/reference/static-configuration/file.yaml b/docs/content/reference/static-configuration/file.yaml index f0ac4f3db..e7eae1a7c 100644 --- a/docs/content/reference/static-configuration/file.yaml +++ b/docs/content/reference/static-configuration/file.yaml @@ -4,36 +4,36 @@ global: serversTransport: insecureSkipVerify: true rootCAs: - - foobar - - foobar + - foobar + - foobar maxIdleConnsPerHost: 42 forwardingTimeouts: - dialTimeout: 42000000000 - responseHeaderTimeout: 42000000000 - idleConnTimeout: 42000000000 + dialTimeout: 42 + responseHeaderTimeout: 42 + idleConnTimeout: 42 entryPoints: EntryPoint0: address: foobar transport: lifeCycle: - requestAcceptGraceTimeout: 42000000000 - graceTimeOut: 42000000000 + requestAcceptGraceTimeout: 42 + graceTimeOut: 42 respondingTimeouts: - readTimeout: 42000000000 - writeTimeout: 42000000000 - idleTimeout: 42000000000 + readTimeout: 42 + writeTimeout: 42 + idleTimeout: 42 proxyProtocol: insecure: true trustedIPs: - - foobar - - foobar + - foobar + - foobar forwardedHeaders: insecure: true trustedIPs: - - foobar - - foobar + - foobar + - foobar providers: - providersThrottleDuration: 42000000000 + providersThrottleDuration: 42 docker: constraints: foobar watch: true @@ -49,13 +49,12 @@ providers: useBindPortIP: true swarmMode: true network: foobar - swarmModeRefreshSeconds: 42000000000 + swarmModeRefreshSeconds: 42 file: directory: foobar watch: true filename: foobar debugLogGeneratedTemplate: true - traefikFile: foobar marathon: constraints: foobar trace: true @@ -70,10 +69,10 @@ providers: cert: foobar key: foobar insecureSkipVerify: true - dialerTimeout: 42000000000 - responseHeaderTimeout: 42000000000 - tlsHandshakeTimeout: 42000000000 - keepAlive: 42000000000 + dialerTimeout: 42 + responseHeaderTimeout: 42 + tlsHandshakeTimeout: 42 + keepAlive: 42 forceTaskHostname: true basic: httpBasicAuthUser: foobar @@ -85,8 +84,8 @@ providers: certAuthFilePath: foobar disablePassHostHeaders: true namespaces: - - foobar - - foobar + - foobar + - foobar labelSelector: foobar ingressClass: foobar ingressEndpoint: @@ -99,8 +98,8 @@ providers: certAuthFilePath: foobar disablePassHostHeaders: true namespaces: - - foobar - - foobar + - foobar + - foobar labelSelector: foobar ingressClass: foobar rest: @@ -117,30 +116,31 @@ providers: api: entryPoint: foobar dashboard: true + debug: true statistics: recentErrors: 42 middlewares: - - foobar - - foobar + - foobar + - foobar metrics: prometheus: buckets: - - 42 - - 42 + - 42 + - 42 entryPoint: foobar middlewares: - - foobar - - foobar + - foobar + - foobar dataDog: address: foobar - pushInterval: 10000000000 + pushInterval: 42 statsD: address: foobar - pushInterval: 10000000000 + pushInterval: 42 influxDB: address: foobar protocol: foobar - pushInterval: 10000000000 + pushInterval: 42 database: foobar retentionPolicy: foobar username: foobar @@ -148,8 +148,8 @@ metrics: ping: entryPoint: foobar middlewares: - - foobar - - foobar + - foobar + - foobar log: level: foobar filePath: foobar @@ -159,10 +159,10 @@ accessLog: format: foobar filters: statusCodes: - - foobar - - foobar + - foobar + - foobar retryAttempts: true - minDuration: 42000000000 + minDuration: 42 fields: defaultMode: foobar names: @@ -211,6 +211,7 @@ tracing: traceIDHeaderName: foobar parentIDHeaderName: foobar spanIDHeaderName: foobar + baggagePrefixHeaderName: foobar hostResolver: cnameFlattening: true resolvConfig: foobar @@ -225,20 +226,20 @@ acme: onHostRule: true dnsChallenge: provider: foobar - delayBeforeCheck: 42000000000 + delayBeforeCheck: 42 resolvers: - - foobar - - foobar + - foobar + - foobar disablePropagationCheck: true httpChallenge: entryPoint: foobar tlsChallenge: {} domains: - - main: foobar - sans: - - foobar - - foobar - - main: foobar - sans: - - foobar - - foobar + - main: foobar + sans: + - foobar + - foobar + - main: foobar + sans: + - foobar + - foobar diff --git a/generate.go b/generate.go index cc8eedf95..720f4bd40 100644 --- a/generate.go +++ b/generate.go @@ -2,6 +2,7 @@ //go:generate rm -vf autogen/genstatic/gen.go //go:generate mkdir -p static //go:generate go-bindata -pkg genstatic -nocompress -o autogen/genstatic/gen.go ./static/... +//go:generate go run ./internal/ package main diff --git a/internal/gendoc.go b/internal/gendoc.go new file mode 100644 index 000000000..9b9efc01e --- /dev/null +++ b/internal/gendoc.go @@ -0,0 +1,83 @@ +package main + +import ( + "fmt" + "io" + "os" + "strings" + + "github.com/containous/traefik/pkg/config/env" + "github.com/containous/traefik/pkg/config/flag" + "github.com/containous/traefik/pkg/config/generator" + "github.com/containous/traefik/pkg/config/parser" + "github.com/containous/traefik/pkg/config/static" + "github.com/containous/traefik/pkg/log" +) + +func main() { + genStaticConfDoc("./docs/content/reference/static-configuration/env-ref.md", "", env.Encode) + genStaticConfDoc("./docs/content/reference/static-configuration/cli-ref.md", "--", flag.Encode) +} + +func genStaticConfDoc(outputFile string, prefix string, encodeFn func(interface{}) ([]parser.Flat, error)) { + logger := log.WithoutContext().WithField("file", outputFile) + + element := &static.Configuration{} + + generator.Generate(element) + + flats, err := encodeFn(element) + if err != nil { + logger.Fatal(err) + } + + err = os.RemoveAll(outputFile) + if err != nil { + logger.Fatal(err) + } + + file, err := os.OpenFile(outputFile, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0666) + if err != nil { + logger.Fatal(err) + } + + defer file.Close() + + w := errWriter{w: file} + + w.writeln(` +`) + + for i, flat := range flats { + w.writeln("`" + prefix + strings.ReplaceAll(flat.Name, "[0]", "[n]") + "`: ") + if flat.Default == "" { + w.writeln(flat.Description) + } else { + w.writeln(flat.Description + " (Default: ```" + flat.Default + "```)") + } + + if i < len(flats)-1 { + w.writeln() + } + } + + if w.err != nil { + logger.Fatal(err) + } +} + +type errWriter struct { + w io.Writer + err error +} + +func (ew *errWriter) writeln(a ...interface{}) { + if ew.err != nil { + return + } + + _, ew.err = fmt.Fprintln(ew.w, a...) +} diff --git a/pkg/config/parser/tags.go b/pkg/config/parser/tags.go index 3860b9665..a4c479aea 100644 --- a/pkg/config/parser/tags.go +++ b/pkg/config/parser/tags.go @@ -11,6 +11,7 @@ const ( TagLabelSliceAsStruct = "label-slice-as-struct" // TagDescription is the documentation for the field. + // - "-": ignore the field. TagDescription = "description" // TagLabelAllowEmpty is related to TagLabel. diff --git a/pkg/provider/file/file.go b/pkg/provider/file/file.go index 2d64b0375..b7a485342 100644 --- a/pkg/provider/file/file.go +++ b/pkg/provider/file/file.go @@ -32,7 +32,7 @@ type Provider struct { Watch bool `description:"Watch provider." json:"watch,omitempty" toml:"watch,omitempty" yaml:"watch,omitempty" export:"true"` Filename string `description:"Override default configuration template. For advanced users :)" json:"filename,omitempty" toml:"filename,omitempty" yaml:"filename,omitempty" export:"true"` DebugLogGeneratedTemplate bool `description:"Enable debug logging of generated configuration template." json:"debugLogGeneratedTemplate,omitempty" toml:"debugLogGeneratedTemplate,omitempty" yaml:"debugLogGeneratedTemplate,omitempty" export:"true"` - TraefikFile string `description:"-" json:"traefikFile,omitempty" toml:"traefikFile,omitempty" yaml:"traefikFile,omitempty"` + TraefikFile string `description:"-" json:"traefikFile,omitempty" toml:"-" yaml:"-"` } // SetDefaults sets the default values. diff --git a/pkg/types/duration.go b/pkg/types/duration.go index 87bc09f09..936f1f0fb 100644 --- a/pkg/types/duration.go +++ b/pkg/types/duration.go @@ -23,19 +23,11 @@ func (d *Duration) Set(s string) error { return err } -// Get returns the duration value. -func (d *Duration) Get() interface{} { return time.Duration(*d) } - // String returns a string representation of the duration value. -func (d *Duration) String() string { return (*time.Duration)(d).String() } - -// SetValue sets the duration from the given Duration-asserted value. -func (d *Duration) SetValue(val interface{}) { - *d = val.(Duration) -} +func (d Duration) String() string { return (time.Duration)(d).String() } // MarshalText serialize the given duration value into a text. -func (d *Duration) MarshalText() ([]byte, error) { +func (d Duration) MarshalText() ([]byte, error) { return []byte(d.String()), nil } @@ -46,8 +38,8 @@ func (d *Duration) UnmarshalText(text []byte) error { } // MarshalJSON serializes the given duration value. -func (d *Duration) MarshalJSON() ([]byte, error) { - return json.Marshal(time.Duration(*d)) +func (d Duration) MarshalJSON() ([]byte, error) { + return json.Marshal(time.Duration(d)) } // UnmarshalJSON deserializes the given text into a duration value.