diff --git a/docs/content/middlewares/basicauth.md b/docs/content/middlewares/basicauth.md index 49ec0f323..bb4636e69 100644 --- a/docs/content/middlewares/basicauth.md +++ b/docs/content/middlewares/basicauth.md @@ -76,7 +76,7 @@ The file content is a list of `name:encoded-password`. ??? example "A file containing test/test and test2/test2" - ``` + ```txt test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/ test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0 ``` @@ -109,6 +109,12 @@ spec: headerField: X-WebAuth-User ``` +```json tab="Marathon" +"labels": { + "traefik.http.middlewares.my-auth.basicauth.headerField": "X-WebAuth-User" +} +``` + ```toml tab="File" [http.middlewares.my-auth.basicauth] # ... diff --git a/docs/content/middlewares/digestauth.md b/docs/content/middlewares/digestauth.md index 36fe53ecc..70b6a97a6 100644 --- a/docs/content/middlewares/digestauth.md +++ b/docs/content/middlewares/digestauth.md @@ -69,7 +69,7 @@ The file content is a list of `name:realm:encoded-password`. ??? example "A file containing test/test and test2/test2" - ``` + ```txt test:traefik:a2688e031edb4be6a3797f3882655c05 test2:traefik:518845800f9e2bfb1f1f740ec24f074e ``` @@ -109,6 +109,12 @@ labels: - "traefik.http.middlewares.my-auth.digestauth.headerField=X-WebAuth-User" ``` +```json tab="Marathon" +"labels": { + "traefik.http.middlewares.my-auth.digestauth.headerField": "X-WebAuth-User" +} +``` + ```toml tab="File" [http.middlewares.my-auth.digestAuth] # ... diff --git a/docs/content/middlewares/headers.md b/docs/content/middlewares/headers.md index f44d66a3c..d4bef9cf8 100644 --- a/docs/content/middlewares/headers.md +++ b/docs/content/middlewares/headers.md @@ -59,7 +59,7 @@ labels: `X-Script-Name` header added to the proxied request, the `X-Custom-Request-Header` header removed from the request, and the `X-Custom-Response-Header` header removed from the response. -Please note that is not possible to remove headers through the use of Docker labels for now. +Please note that is not possible to remove headers through the use of labels (Docker, Rancher, Marathon, ...) for now. ```yaml tab="Kubernetes" apiVersion: traefik.containo.us/v1alpha1 @@ -78,7 +78,12 @@ spec: ```yaml tab="Rancher" labels: - "traefik.http.middlewares.testHeader.Headers.CustomRequestHeaders.X-Script-Name=test" - - "traefik.http.middlewares.testHeader.Headers.CustomResponseHeaders.X-Custom-Response-Header=True" +``` + +```json tab="Marathon" +"labels": { + "traefik.http.middlewares.testHeader.Headers.CustomRequestHeaders.X-Script-Name": "test", +} ``` ```toml tab="File" @@ -119,6 +124,13 @@ labels: - "traefik.http.middlewares.testHeader.Headers.SSLRedirect=true" ``` +```json tab="Marathon" +"labels": { + "traefik.http.middlewares.testHeader.Headers.FrameDeny": "true", + "traefik.http.middlewares.testHeader.Headers.SSLRedirect": "true" +} +``` + ```toml tab="File" [http.middlewares] [http.middlewares.testHeader.headers] @@ -163,6 +175,15 @@ labels: - "traefik.http.middlewares.testHeader.Headers.AddVaryHeader=true" ``` +```json tab="Marathon" +"labels": { + "traefik.http.middlewares.testHeader.Headers.AccessControlAllowMethods": "GET,OPTIONS,PUT", + "traefik.http.middlewares.testHeader.Headers.AccessControlAllowOrigin": "origin-list-or-null", + "traefik.http.middlewares.testHeader.Headers.AccessControlMaxAge": "100", + "traefik.http.middlewares.testHeader.Headers.AddVaryHeader": "true" +} +``` + ```toml tab="File" [http.middlewares] [http.middlewares.testHeader.headers] diff --git a/docs/content/middlewares/ipwhitelist.md b/docs/content/middlewares/ipwhitelist.md index bf616450b..1d038eaa8 100644 --- a/docs/content/middlewares/ipwhitelist.md +++ b/docs/content/middlewares/ipwhitelist.md @@ -101,6 +101,13 @@ The `depth` option tells Traefik to use the `X-Forwarded-For` header and take th - "traefik.http.middlewares.testIPwhitelist.ipwhitelist.ipstrategy.depth=2" ``` + ```json tab="Marathon" + "labels": { + "traefik.http.middlewares.testIPwhitelist.ipWhiteList.SourceRange": "127.0.0.1/32, 192.168.1.7", + "traefik.http.middlewares.testIPwhitelist.ipwhitelist.ipstrategy.depth": "2" + } + ``` + ```toml tab="File" # Whitelisting Based on `X-Forwarded-For` with `depth=2` [http.middlewares] @@ -158,6 +165,12 @@ labels: - "traefik.http.middlewares.test-ipwhitelist.ipwhitelist.ipstrategy.excludedIPs=127.0.0.1/32, 192.168.1.7" ``` +```json tab="Marathon" +"labels": { + "traefik.http.middlewares.test-ipwhitelist.ipwhitelist.ipstrategy.excludedIPs": "127.0.0.1/32, 192.168.1.7" +} +``` + ```toml tab="File" # Exclude from `X-Forwarded-For` [http.middlewares] diff --git a/docs/content/middlewares/passtlsclientcert.md b/docs/content/middlewares/passtlsclientcert.md index 9fc629903..ed4c073a9 100644 --- a/docs/content/middlewares/passtlsclientcert.md +++ b/docs/content/middlewares/passtlsclientcert.md @@ -121,7 +121,29 @@ labels: - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.issuer.province=true" - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.issuer.serialnumber=true" ``` - + + ```json tab="Marathon" + "labels": { + "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.notafter": "true", + "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.notbefore": "true", + "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.sans": "true", + "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.subject.commonname": "true", + "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.subject.country": "true", + "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.subject.domaincomponent": "true", + "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.subject.locality": "true", + "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.subject.organization": "true", + "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.subject.province": "true", + "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.subject.serialnumber": "true", + "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.issuer.commonname": "true", + "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.issuer.country": "true", + "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.issuer.domaincomponent": "true", + "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.issuer.locality": "true", + "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.issuer.organization": "true", + "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.issuer.province": "true", + "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.issuer.serialnumber": "true" + } + ``` + ```toml tab="File" # Pass all the available info in the `X-Forwarded-Tls-Client-Cert-Info` header [http.middlewares] diff --git a/docs/content/providers/file.md b/docs/content/providers/file.md index 31a55d83d..be90ddfb7 100644 --- a/docs/content/providers/file.md +++ b/docs/content/providers/file.md @@ -7,8 +7,8 @@ The file provider lets you define the [dynamic configuration](./overview.md) in You can write these configuration elements: * At the end of the main Traefik configuration file (by default: `traefik.toml`). -* In [a dedicated file](#filename-optional) -* In [several dedicated files](#directory-optional) +* In [a dedicated file](#filename) +* In [several dedicated files](#directory) !!! note The file provider is the default format used throughout the documentation to show samples of the configuration for many features. @@ -58,7 +58,9 @@ You can write these configuration elements: !!! tip "Browse the Reference" If you're in a hurry, maybe you'd rather go through the [static](../reference/static-configuration.md) and the [dynamic](../reference/dynamic-configuration/file.md) configuration references. -### `filename` (_Optional_) +### `filename` + +_Optional_ Defines the path of the configuration file. @@ -68,7 +70,9 @@ Defines the path of the configuration file. filename = "rules.toml" ``` -### `directory` (_Optional_) +### `directory` + +_Optional_ Defines the directory that contains the configuration files. @@ -78,7 +82,9 @@ Defines the directory that contains the configuration files. directory = "/path/to/config" ``` -### `watch` (_Optional_) +### `watch` + +_Optional_ Set the `watch` option to `true` to allow Traefik to automatically watch for file changes. It works with both the `filename` and the `directory` options. @@ -145,5 +151,4 @@ Thus, it's possible to define easily lot of routers, services and TLS certificat [TLSConfig.TLS{{ $e }}] # ... {{ end }} - ``` diff --git a/docs/content/reference/static-configuration.toml b/docs/content/reference/static-configuration.toml index f22d6d3c6..5cfdf001c 100644 --- a/docs/content/reference/static-configuration.toml +++ b/docs/content/reference/static-configuration.toml @@ -31,8 +31,8 @@ TrustedIPs = ["foobar", "foobar"] [Providers] - ProvidersThrottleDuration = 42 + [Providers.Docker] Watch = true Endpoint = "foobar" @@ -52,18 +52,21 @@ Key = "foobar" MustMatch = true Regex = "foobar" + [Providers.Docker.TLS] CA = "foobar" CAOptional = true Cert = "foobar" Key = "foobar" InsecureSkipVerify = true + [Providers.File] Directory = "foobar" Watch = true Filename = "foobar" DebugLogGeneratedTemplate = true TraefikFile = "foobar" + [Providers.Marathon] Trace = true Watch = true @@ -88,6 +91,7 @@ Key = "foobar" MustMatch = true Regex = "foobar" + [Providers.Marathon.TLS] CA = "foobar" CAOptional = true @@ -97,6 +101,7 @@ [Providers.Marathon.Basic] HTTPBasicAuthUser = "foobar" HTTPBasicPassword = "foobar" + [Providers.Kubernetes] Endpoint = "foobar" Token = "foobar" @@ -109,6 +114,7 @@ IP = "foobar" Hostname = "foobar" PublishedService = "foobar" + [Providers.KubernetesCRD] Endpoint = "foobar" Token = "foobar" @@ -117,9 +123,29 @@ Namespaces = ["foobar", "foobar"] LabelSelector = "foobar" IngressClass = "foobar" + [Providers.Rest] EntryPoint = "foobar" + [Providers.Rancher] + Watch = true + DefaultRule = "foobar" + ExposedByDefault = true + EnableServiceHealthFilter = true + RefreshSeconds = 42 + IntervalPoll = true + Prefix = "foobar" + + [[Providers.Rancher.Constraints]] + Key = "foobar" + MustMatch = true + Regex = "foobar" + + [[Providers.Rancher.Constraints]] + Key = "foobar" + MustMatch = true + Regex = "foobar" + [API] EntryPoint = "foobar" Dashboard = true @@ -128,16 +154,20 @@ RecentErrors = 42 [Metrics] + [Metrics.Prometheus] Buckets = [42.0, 42.0] EntryPoint = "foobar" Middlewares = ["foobar", "foobar"] + [Metrics.Datadog] Address = "foobar" PushInterval = "foobar" + [Metrics.StatsD] Address = "foobar" PushInterval = "foobar" + [Metrics.InfluxDB] Address = "foobar" Protocol = "foobar" @@ -179,6 +209,7 @@ Backend = "foobar" ServiceName = "foobar" SpanNameLimit = 42 + [Tracing.Jaeger] SamplingServerURL = "foobar" SamplingType = "foobar" @@ -187,12 +218,14 @@ Gen128Bit = true Propagation = "foobar" TraceContextHeaderName = "foobar" + [Tracing.Zipkin] HTTPEndpoint = "foobar" SameSpan = true ID128Bit = true Debug = true SampleRate = 42.0 + [Tracing.DataDog] LocalAgentHostPort = "foobar" GlobalTag = "foobar" @@ -202,10 +235,11 @@ ParentIDHeaderName = "foobar" SamplingPriorityHeaderName = "foobar" BagagePrefixHeaderName = "foobar" + [Tracing.Instana] LocalAgentHost = "foobar" LocalAgentPort = 42 - Level = "foobar" + LogLevel = "foobar" [HostResolver] CnameFlattening = true @@ -220,13 +254,16 @@ EntryPoint = "foobar" KeyType = "foobar" OnHostRule = true + [ACME.DNSChallenge] Provider = "foobar" DelayBeforeCheck = 42 Resolvers = ["foobar", "foobar"] DisablePropagationCheck = true + [ACME.HTTPChallenge] EntryPoint = "foobar" + [ACME.TLSChallenge] [[ACME.Domains]]