From ee12424795b520a2a4159a62bd7409e160525369 Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Thu, 6 May 2021 09:32:04 +0200 Subject: [PATCH 01/22] Bump paerser to v0.1.4 --- go.mod | 2 +- go.sum | 22 ++++---- .../testdata/anonymized-dynamic-config.json | 12 ++--- .../testdata/anonymized-static-config.json | 54 +++++++++---------- pkg/api/testdata/entrypoints.json | 22 ++++---- 5 files changed, 57 insertions(+), 55 deletions(-) diff --git a/go.mod b/go.mod index 3d76db417..94dd21d39 100644 --- a/go.mod +++ b/go.mod @@ -71,7 +71,7 @@ require ( github.com/stvp/go-udp-testing v0.0.0-20191102171040-06b61409b154 github.com/tinylib/msgp v1.0.2 // indirect github.com/traefik/gziphandler v1.1.2-0.20210212101304-175e0fad6888 - github.com/traefik/paerser v0.1.2 + github.com/traefik/paerser v0.1.4 github.com/traefik/yaegi v0.9.17 github.com/uber/jaeger-client-go v2.25.0+incompatible github.com/uber/jaeger-lib v2.2.0+incompatible diff --git a/go.sum b/go.sum index ed9ed62ce..32f28bef2 100644 --- a/go.sum +++ b/go.sum @@ -74,16 +74,16 @@ github.com/DataDog/zstd v1.3.6-0.20190409195224-796139022798/go.mod h1:1jcaCB/uf github.com/ExpediaDotCom/haystack-client-go v0.0.0-20190315171017-e7edbdf53a61 h1:1NIUJ+MAMpqDr4LWIfNsoJR+G7zg/8GZVwuRkmJxtTc= github.com/ExpediaDotCom/haystack-client-go v0.0.0-20190315171017-e7edbdf53a61/go.mod h1:62qWSDaEI0BLykU+zQza5CAKgW0lOy9oBSz3/DvYz4w= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= -github.com/Masterminds/goutils v1.1.0 h1:zukEsf/1JZwCMgHiK3GZftabmxiCw4apj3a28RPBiVg= -github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= +github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= +github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/semver v1.4.2 h1:WBLTQ37jOCzSLtXNdoo8bNM8876KhNqOKvrlGITgsTc= github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= -github.com/Masterminds/semver/v3 v3.1.0 h1:Y2lUDsFKVRSYGojLJ1yLxSXdMmMYTYls0rCvoqmMUQk= -github.com/Masterminds/semver/v3 v3.1.0/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= +github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030IGemrRc= +github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= github.com/Masterminds/sprig v2.22.0+incompatible h1:z4yfnGrZ7netVz+0EDJ0Wi+5VZCSYp4Z0m2dk6cEM60= github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= -github.com/Masterminds/sprig/v3 v3.1.0 h1:j7GpgZ7PdFqNsmncycTHsLmVPf5/3wJtlgW9TNDYD9Y= -github.com/Masterminds/sprig/v3 v3.1.0/go.mod h1:ONGMf7UfYGAbMXCZmQLy8x3lCDIPrEZE/rU8pmrbihA= +github.com/Masterminds/sprig/v3 v3.2.2 h1:17jRggJu518dr3QaafizSXOjKYp94wKfABxUmyxvxX8= +github.com/Masterminds/sprig/v3 v3.2.2/go.mod h1:UoaO7Yp8KlPnJIYWTFkMaqPUYKTfGFPhxNuwnnxkKlk= github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5 h1:ygIc8M6trr62pF5DucadTWGdEB4mEyvzi0e2nbcmcyA= github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= github.com/Microsoft/hcsshim v0.8.7 h1:ptnOoufxGSzauVTsdE+wMYnCWA301PdoN4xg5oRdZpg= @@ -554,9 +554,9 @@ github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1: github.com/iij/doapi v0.0.0-20190504054126-0bbf12d6d7df h1:MZf03xP9WdakyXhOWuAD5uPK3wHh96wCsqe3hCMKh8E= github.com/iij/doapi v0.0.0-20190504054126-0bbf12d6d7df/go.mod h1:QMZY7/J/KSQEhKWFeDesPjMj+wCHReeknARU3wqlyN4= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imdario/mergo v0.3.10 h1:6q5mVkdH/vYmqngx7kZQTjJ5HRsx+ImorDIEQ+beJgc= github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= +github.com/imdario/mergo v0.3.11 h1:3tnifQM4i+fbajXKBHXWEH+KvNHqojZ778UH75j3bGA= +github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d h1:/WZQPMZNsjZ7IlCpsLGdQBINg5bxKQ1K1sh6awxLtkA= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= @@ -866,6 +866,8 @@ github.com/santhosh-tekuri/jsonschema v1.2.4/go.mod h1:TEAUOeZSmIxTTuHatJzrvARHi github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= +github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ= +github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= @@ -932,8 +934,8 @@ github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 h1:LnC5Kc github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/traefik/gziphandler v1.1.2-0.20210212101304-175e0fad6888 h1:GMY0C+M/w8xO+/NP3Kq6sroMd+z2KbbdVr1K8o2NLHk= github.com/traefik/gziphandler v1.1.2-0.20210212101304-175e0fad6888/go.mod h1:sLqwoN03tkluITKL+lPEZbfsJQU2suYoKbrR/HeV9aM= -github.com/traefik/paerser v0.1.2 h1:0zvJgdwp2dNUodZHfgf+3IcaeJH2B28NcCGM+iZVtds= -github.com/traefik/paerser v0.1.2/go.mod h1:yYnAgdEC2wJH5CgG75qGWC8SsFDEapg09o9RrA6FfrE= +github.com/traefik/paerser v0.1.4 h1:/IXjV04Gf6di51H8Jl7jyS3OylsLjIasrwXIIwj1aT8= +github.com/traefik/paerser v0.1.4/go.mod h1:FIdQ4Y92ulQUGSeZgxchtBKEcLw1o551PMNg9PoIq/4= github.com/traefik/yaegi v0.9.17 h1:sJ4Wk6S7HHHXtJnOuxC/3qjdQKRy3q9ZhNP0ZGL7Ltw= github.com/traefik/yaegi v0.9.17/go.mod h1:FAYnRlZyuVlEkvnkHq3bvJ1lW5be6XuwgLdkYgYG6Lk= github.com/transip/gotransip/v6 v6.6.0 h1:dAHCTZzX98H6QE2kA4R9acAXu5RPPTwMSUFtpKZF3Nk= diff --git a/pkg/anonymize/testdata/anonymized-dynamic-config.json b/pkg/anonymize/testdata/anonymized-dynamic-config.json index ca116768b..5e5b03f69 100644 --- a/pkg/anonymize/testdata/anonymized-dynamic-config.json +++ b/pkg/anonymize/testdata/anonymized-dynamic-config.json @@ -190,7 +190,7 @@ }, "rateLimit": { "average": 42, - "period": 42, + "period": "42ns", "burst": 42, "sourceCriterion": { "ipStrategy": { @@ -306,7 +306,7 @@ }, "retry": { "attempts": 42, - "initialInterval": 42 + "initialInterval": "42ns" }, "contentType": { "autoDetect": true @@ -352,9 +352,9 @@ ], "maxIdleConnsPerHost": 42, "forwardingTimeouts": { - "dialTimeout": 42, - "responseHeaderTimeout": 42, - "idleConnTimeout": 42 + "dialTimeout": "42ns", + "responseHeaderTimeout": "42ns", + "idleConnTimeout": "42ns" } } } @@ -473,4 +473,4 @@ } } } -} +} \ No newline at end of file diff --git a/pkg/anonymize/testdata/anonymized-static-config.json b/pkg/anonymize/testdata/anonymized-static-config.json index a6ccb1727..ea511146a 100644 --- a/pkg/anonymize/testdata/anonymized-static-config.json +++ b/pkg/anonymize/testdata/anonymized-static-config.json @@ -12,9 +12,9 @@ ], "maxIdleConnsPerHost": 111, "forwardingTimeouts": { - "dialTimeout": 111000000000, - "responseHeaderTimeout": 111000000000, - "idleConnTimeout": 111000000000 + "dialTimeout": "1m51s", + "responseHeaderTimeout": "1m51s", + "idleConnTimeout": "1m51s" } }, "entryPoints": { @@ -22,13 +22,13 @@ "address": "xxxx", "transport": { "lifeCycle": { - "requestAcceptGraceTimeout": 111000000000, - "graceTimeOut": 111000000000 + "requestAcceptGraceTimeout": "1m51s", + "graceTimeOut": "1m51s" }, "respondingTimeouts": { - "readTimeout": 111000000000, - "writeTimeout": 111000000000, - "idleTimeout": 111000000000 + "readTimeout": "1m51s", + "writeTimeout": "1m51s", + "idleTimeout": "1m51s" } }, "proxyProtocol": { @@ -75,7 +75,7 @@ } }, "providers": { - "providersThrottleDuration": 111000000000, + "providersThrottleDuration": "1m51s", "docker": { "constraints": "Label(\"foo\", \"bar\")", "watch": true, @@ -92,8 +92,8 @@ "useBindPortIP": true, "swarmMode": true, "network": "MyNetwork", - "swarmModeRefreshSeconds": 42, - "httpClientTimeout": 42 + "swarmModeRefreshSeconds": "42ns", + "httpClientTimeout": "42ns" }, "file": { "directory": "file Directory", @@ -116,10 +116,10 @@ "key": "xxxx", "insecureSkipVerify": true }, - "dialerTimeout": 42, - "responseHeaderTimeout": 42, - "tlsHandshakeTimeout": 42, - "keepAlive": 42, + "dialerTimeout": "42ns", + "responseHeaderTimeout": "42ns", + "tlsHandshakeTimeout": "42ns", + "keepAlive": "42ns", "forceTaskHostname": true, "basic": { "httpBasicAuthUser": "xxxx", @@ -142,7 +142,7 @@ "hostname": "xxxx", "publishedService": "xxxx" }, - "throttleDuration": 111000000000 + "throttleDuration": "1m51s" }, "kubernetesCRD": { "endpoint": "xxxx", @@ -154,7 +154,7 @@ ], "labelSelector": "myLabelSelector", "ingressClass": "MyIngressClass", - "throttleDuration": 111000000000 + "throttleDuration": "1m51s" }, "kubernetesGateway": { "endpoint": "xxxx", @@ -165,7 +165,7 @@ "b" ], "labelSelector": "myLabelSelector", - "throttleDuration": 111000000000 + "throttleDuration": "1m51s" }, "rest": { "insecure": true @@ -198,10 +198,10 @@ "username": "xxxx", "password": "xxxx" }, - "endpointWaitTime": 42 + "endpointWaitTime": "42ns" }, "prefix": "MyPrefix", - "refreshInterval": 42, + "refreshInterval": "42ns", "requireConsistent": true, "stale": true, "cache": true, @@ -272,8 +272,8 @@ }, "http": { "endpoint": "xxxx", - "pollInterval": 42, - "pollTimeout": 42, + "pollInterval": "42ns", + "pollTimeout": "42ns", "tls": { "ca": "xxxx", "caOptional": true, @@ -303,13 +303,13 @@ }, "datadog": { "address": "xxxx", - "pushInterval": 42, + "pushInterval": "42ns", "addEntryPointsLabels": true, "addServicesLabels": true }, "statsD": { "address": "xxxx", - "pushInterval": 42, + "pushInterval": "42ns", "addEntryPointsLabels": true, "addServicesLabels": true, "prefix": "MyPrefix" @@ -317,7 +317,7 @@ "influxDB": { "address": "xxxx", "protocol": "xxxx", - "pushInterval": 42, + "pushInterval": "42ns", "database": "myDB", "retentionPolicy": "12", "username": "xxxx", @@ -345,7 +345,7 @@ "500" ], "retryAttempts": true, - "minDuration": 42 + "minDuration": "42ns" }, "fields": { "defaultMode": "drop", @@ -428,7 +428,7 @@ "keyType": "MyKeyType", "dnsChallenge": { "provider": "DNSProvider", - "delayBeforeCheck": 42, + "delayBeforeCheck": "42ns", "resolvers": [ "xxxx", "xxxx" diff --git a/pkg/api/testdata/entrypoints.json b/pkg/api/testdata/entrypoints.json index 15c46b787..d93d07bfc 100644 --- a/pkg/api/testdata/entrypoints.json +++ b/pkg/api/testdata/entrypoints.json @@ -19,13 +19,13 @@ }, "transport": { "lifeCycle": { - "graceTimeOut": 2, - "requestAcceptGraceTimeout": 1 + "graceTimeOut": "2ns", + "requestAcceptGraceTimeout": "1ns" }, "respondingTimeouts": { - "idleTimeout": 5, - "readTimeout": 3, - "writeTimeout": 4 + "idleTimeout": "5ns", + "readTimeout": "3ns", + "writeTimeout": "4ns" } } }, @@ -49,14 +49,14 @@ }, "transport": { "lifeCycle": { - "graceTimeOut": 20, - "requestAcceptGraceTimeout": 10 + "graceTimeOut": "20ns", + "requestAcceptGraceTimeout": "10ns" }, "respondingTimeouts": { - "idleTimeout": 50, - "readTimeout": 30, - "writeTimeout": 40 + "idleTimeout": "50ns", + "readTimeout": "30ns", + "writeTimeout": "40ns" } } } -] \ No newline at end of file +] From 40f21f41e1f30da69cc6dfe11ccef957255286c6 Mon Sep 17 00:00:00 2001 From: Romain Date: Thu, 6 May 2021 12:04:08 +0200 Subject: [PATCH 02/22] Fix ingressRouteTCP external name service examples in documentation --- .../routing/providers/kubernetes-crd.md | 35 ++----------------- 1 file changed, 2 insertions(+), 33 deletions(-) diff --git a/docs/content/routing/providers/kubernetes-crd.md b/docs/content/routing/providers/kubernetes-crd.md index d54175da1..c8a1dc2ca 100644 --- a/docs/content/routing/providers/kubernetes-crd.md +++ b/docs/content/routing/providers/kubernetes-crd.md @@ -1202,7 +1202,7 @@ Register the `IngressRouteTCP` [kind](../../reference/dynamic-configuration/kube ??? example "Examples" - ```yaml tab="IngressRouteTCP" + ```yaml tab="Only on IngressRouteTCP" --- apiVersion: traefik.containo.us/v1alpha1 kind: IngressRouteTCP @@ -1232,38 +1232,7 @@ Register the `IngressRouteTCP` [kind](../../reference/dynamic-configuration/kube type: ExternalName ``` - ```yaml tab="ExternalName Service" - --- - apiVersion: traefik.containo.us/v1alpha1 - kind: IngressRouteTCP - metadata: - name: test.route - namespace: default - - spec: - entryPoints: - - foo - - routes: - - match: HostSNI(`*`) - kind: Rule - services: - - name: external-svc - - --- - apiVersion: v1 - kind: Service - metadata: - name: external-svc - namespace: default - spec: - externalName: external.domain - type: ExternalName - ports: - - port: 80 - ``` - - ```yaml tab="Both sides" + ```yaml tab="On both sides" --- apiVersion: traefik.containo.us/v1alpha1 kind: IngressRouteTCP From 6ae194934d50db135d027f488da947f007a4a7e0 Mon Sep 17 00:00:00 2001 From: LandryBe Date: Tue, 11 May 2021 16:46:14 +0200 Subject: [PATCH 03/22] fix: use defaultEntryPoints when no entryPoint is defined in a TCPRouter --- pkg/config/runtime/runtime_tcp.go | 8 +------- pkg/server/aggregator.go | 6 ++++++ pkg/server/aggregator_test.go | 29 +++++++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 7 deletions(-) diff --git a/pkg/config/runtime/runtime_tcp.go b/pkg/config/runtime/runtime_tcp.go index 18a1a0911..47f583da4 100644 --- a/pkg/config/runtime/runtime_tcp.go +++ b/pkg/config/runtime/runtime_tcp.go @@ -15,14 +15,8 @@ func (c *Configuration) GetTCPRoutersByEntryPoints(ctx context.Context, entryPoi for rtName, rt := range c.TCPRouters { logger := log.FromContext(log.With(ctx, log.Str(log.RouterName, rtName))) - eps := rt.EntryPoints - if len(eps) == 0 { - logger.Debugf("No entryPoint defined for this router, using the default one(s) instead: %+v", entryPoints) - eps = entryPoints - } - entryPointsCount := 0 - for _, entryPointName := range eps { + for _, entryPointName := range rt.EntryPoints { if !contains(entryPoints, entryPointName) { rt.AddError(fmt.Errorf("entryPoint %q doesn't exist", entryPointName), false) logger.WithField(log.EntryPointName, entryPointName). diff --git a/pkg/server/aggregator.go b/pkg/server/aggregator.go index 856cce022..8234162df 100644 --- a/pkg/server/aggregator.go +++ b/pkg/server/aggregator.go @@ -61,6 +61,12 @@ func mergeConfiguration(configurations dynamic.Configurations, defaultEntryPoint if configuration.TCP != nil { for routerName, router := range configuration.TCP.Routers { + if len(router.EntryPoints) == 0 { + log.WithoutContext(). + WithField(log.RouterName, routerName). + Debugf("No entryPoint defined for this TCP router, using the default one(s) instead: %+v", defaultEntryPoints) + router.EntryPoints = defaultEntryPoints + } conf.TCP.Routers[provider.MakeQualifiedName(pvd, routerName)] = router } for serviceName, service := range configuration.TCP.Services { diff --git a/pkg/server/aggregator_test.go b/pkg/server/aggregator_test.go index 1e6c6e602..b0c1d34b2 100644 --- a/pkg/server/aggregator_test.go +++ b/pkg/server/aggregator_test.go @@ -449,6 +449,35 @@ func Test_mergeConfiguration_tlsStore(t *testing.T) { } } +func Test_mergeConfiguration_defaultTCPEntryPoint(t *testing.T) { + given := dynamic.Configurations{ + "provider-1": &dynamic.Configuration{ + TCP: &dynamic.TCPConfiguration{ + Routers: map[string]*dynamic.TCPRouter{ + "router-1": {}, + }, + Services: map[string]*dynamic.TCPService{ + "service-1": {}, + }, + }, + }, + } + + expected := &dynamic.TCPConfiguration{ + Routers: map[string]*dynamic.TCPRouter{ + "router-1@provider-1": { + EntryPoints: []string{"defaultEP"}, + }, + }, + Services: map[string]*dynamic.TCPService{ + "service-1@provider-1": {}, + }, + } + + actual := mergeConfiguration(given, []string{"defaultEP"}) + assert.Equal(t, expected, actual.TCP) +} + func Test_applyModel(t *testing.T) { testCases := []struct { desc string From 2408eeceba608216770d3fc1e3b2c05c62216a92 Mon Sep 17 00:00:00 2001 From: Douglas De Toni Machado Date: Mon, 17 May 2021 07:10:09 -0300 Subject: [PATCH 04/22] Fix plugin unzip call on windows --- pkg/plugins/client.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/plugins/client.go b/pkg/plugins/client.go index 26c1f801b..836302f0b 100644 --- a/pkg/plugins/client.go +++ b/pkg/plugins/client.go @@ -281,7 +281,7 @@ func unzipFile(f *zipa.File, dest string) error { defer func() { _ = rc.Close() }() - pathParts := strings.SplitN(f.Name, string(os.PathSeparator), 2) + pathParts := strings.SplitN(f.Name, "/", 2) p := filepath.Join(dest, pathParts[1]) if f.FileInfo().IsDir() { From d6d639d4d7111fd0afbc81686350e75e2d51f6e8 Mon Sep 17 00:00:00 2001 From: Sandro Date: Mon, 17 May 2021 18:07:25 +0200 Subject: [PATCH 05/22] docs: add examples for removing headers --- docs/content/middlewares/headers.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/content/middlewares/headers.md b/docs/content/middlewares/headers.md index 1c720524a..349d1aee7 100644 --- a/docs/content/middlewares/headers.md +++ b/docs/content/middlewares/headers.md @@ -78,6 +78,8 @@ and responses are stripped of their `X-Custom-Response-Header` header. ```yaml tab="Docker" labels: - "traefik.http.middlewares.testheader.headers.customrequestheaders.X-Script-Name=test" + - "traefik.http.middlewares.testheader.headers.customrequestheaders.X-Custom-Request-Header=" + - "traefik.http.middlewares.testheader.headers.customresponseheaders.X-Custom-Response-Header=" ``` ```yaml tab="Kubernetes" @@ -96,17 +98,23 @@ spec: ```yaml tab="Consul Catalog" - "traefik.http.middlewares.testheader.headers.customrequestheaders.X-Script-Name=test" +- "traefik.http.middlewares.testheader.headers.customrequestheaders.X-Custom-Request-Header=" +- "traefik.http.middlewares.testheader.headers.customresponseheaders.X-Custom-Response-Header=" ``` ```json tab="Marathon" "labels": { "traefik.http.middlewares.testheader.headers.customrequestheaders.X-Script-Name": "test", + "traefik.http.middlewares.testheader.headers.customrequestheaders.X-Custom-Request-Header": "", + "traefik.http.middlewares.testheader.headers.customresponseheaders.X-Custom-Response-Header": "", } ``` ```yaml tab="Rancher" labels: - "traefik.http.middlewares.testheader.headers.customrequestheaders.X-Script-Name=test" + - "traefik.http.middlewares.testheader.headers.customrequestheaders.X-Custom-Request-Header=" + - "traefik.http.middlewares.testheader.headers.customresponseheaders.X-Custom-Response-Header=" ``` ```toml tab="File (TOML)" From 21c0195d298e131a524f580126bef5fd4aa08953 Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Thu, 20 May 2021 15:08:12 +0200 Subject: [PATCH 06/22] fix: ACME preferred chain. --- pkg/provider/acme/provider.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkg/provider/acme/provider.go b/pkg/provider/acme/provider.go index 61bc68f1d..811b30efe 100644 --- a/pkg/provider/acme/provider.go +++ b/pkg/provider/acme/provider.go @@ -475,9 +475,10 @@ func (p *Provider) resolveCertificate(ctx context.Context, domain types.Domain, } request := certificate.ObtainRequest{ - Domains: domains, - Bundle: true, - MustStaple: oscpMustStaple, + Domains: domains, + Bundle: true, + MustStaple: oscpMustStaple, + PreferredChain: p.PreferredChain, } cert, err := client.Certificate.Obtain(request) From 376b6f90d9f2379cd998cf4085ec940ed7bb6a49 Mon Sep 17 00:00:00 2001 From: Danshil Kokil Mungur Date: Thu, 27 May 2021 14:16:08 +0400 Subject: [PATCH 07/22] docs: add pilot dashboard flag to static configuration file reference --- docs/content/reference/static-configuration/file.toml | 1 + docs/content/reference/static-configuration/file.yaml | 1 + 2 files changed, 2 insertions(+) diff --git a/docs/content/reference/static-configuration/file.toml b/docs/content/reference/static-configuration/file.toml index d54b7d356..ac6f38c13 100644 --- a/docs/content/reference/static-configuration/file.toml +++ b/docs/content/reference/static-configuration/file.toml @@ -378,6 +378,7 @@ [pilot] token = "foobar" + dashboard = true [experimental] kubernetesGateway = true diff --git a/docs/content/reference/static-configuration/file.yaml b/docs/content/reference/static-configuration/file.yaml index 5f4749ade..7176e6ba4 100644 --- a/docs/content/reference/static-configuration/file.yaml +++ b/docs/content/reference/static-configuration/file.yaml @@ -399,6 +399,7 @@ certificatesResolvers: tlsChallenge: {} pilot: token: foobar + dashboard: true experimental: kubernetesGateway: true plugins: From 1680f00091ce57ede54a32a50d06716e472e3bab Mon Sep 17 00:00:00 2001 From: Jakub Coufal Date: Fri, 28 May 2021 00:58:07 +0200 Subject: [PATCH 08/22] Fix incorrect behaviour with multi-port endpoint subsets --- ...tching-subset-of-service-pods_endpoint.yml | 20 +++++++++++++ ...atching-subset-of-service-pods_ingress.yml | 15 ++++++++++ ...atching-subset-of-service-pods_service.yml | 14 +++++++++ pkg/provider/kubernetes/ingress/kubernetes.go | 2 +- .../kubernetes/ingress/kubernetes_test.go | 30 +++++++++++++++++++ 5 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-named-port-matching-subset-of-service-pods_endpoint.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-named-port-matching-subset-of-service-pods_ingress.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-named-port-matching-subset-of-service-pods_service.yml diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-named-port-matching-subset-of-service-pods_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-named-port-matching-subset-of-service-pods_endpoint.yml new file mode 100644 index 000000000..21004ad0f --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-named-port-matching-subset-of-service-pods_endpoint.yml @@ -0,0 +1,20 @@ +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + - ip: 10.10.0.2 + ports: + - name: tchouk + port: 8089 + - addresses: + - ip: 10.10.0.1 + - ip: 10.10.0.2 + - ip: 10.10.0.3 + ports: + - name: carotte + port: 8090 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-named-port-matching-subset-of-service-pods_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-named-port-matching-subset-of-service-pods_ingress.yml new file mode 100644 index 000000000..ddc20ca40 --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-named-port-matching-subset-of-service-pods_ingress.yml @@ -0,0 +1,15 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1beta1 +metadata: + name: "" + namespace: testing + +spec: + rules: + - host: traefik.tchouk + http: + paths: + - path: /bar + backend: + serviceName: service1 + servicePort: tchouk diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-named-port-matching-subset-of-service-pods_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-named-port-matching-subset-of-service-pods_service.yml new file mode 100644 index 000000000..55437f6b2 --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-named-port-matching-subset-of-service-pods_service.yml @@ -0,0 +1,14 @@ +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - name: carotte + port: 8082 + - name: tchouk + port: 80 + clusterIP: 10.0.0.1 + diff --git a/pkg/provider/kubernetes/ingress/kubernetes.go b/pkg/provider/kubernetes/ingress/kubernetes.go index d6b2ed225..c828d48d1 100644 --- a/pkg/provider/kubernetes/ingress/kubernetes.go +++ b/pkg/provider/kubernetes/ingress/kubernetes.go @@ -529,8 +529,8 @@ func loadService(client Client, namespace string, backend networkingv1beta1.Ingr return nil, errors.New("subset not found") } - var port int32 for _, subset := range endpoints.Subsets { + var port int32 for _, p := range subset.Ports { if portName == p.Name { port = p.Port diff --git a/pkg/provider/kubernetes/ingress/kubernetes_test.go b/pkg/provider/kubernetes/ingress/kubernetes_test.go index fe8b15230..3b3509037 100644 --- a/pkg/provider/kubernetes/ingress/kubernetes_test.go +++ b/pkg/provider/kubernetes/ingress/kubernetes_test.go @@ -633,6 +633,36 @@ func TestLoadConfigurationFromIngresses(t *testing.T) { }, }, }, + { + desc: "Ingress with a named port matching subset of service pods", + expected: &dynamic.Configuration{ + TCP: &dynamic.TCPConfiguration{}, + HTTP: &dynamic.HTTPConfiguration{ + Middlewares: map[string]*dynamic.Middleware{}, + Routers: map[string]*dynamic.Router{ + "testing-traefik-tchouk-bar": { + Rule: "Host(`traefik.tchouk`) && PathPrefix(`/bar`)", + Service: "testing-service1-tchouk", + }, + }, + Services: map[string]*dynamic.Service{ + "testing-service1-tchouk": { + LoadBalancer: &dynamic.ServersLoadBalancer{ + PassHostHeader: Bool(true), + Servers: []dynamic.Server{ + { + URL: "http://10.10.0.1:8089", + }, + { + URL: "http://10.10.0.2:8089", + }, + }, + }, + }, + }, + }, + }, + }, { desc: "2 ingresses in different namespace with same service name", expected: &dynamic.Configuration{ From c10c7619d3340e24bd2e010a18bf4ba9e8328771 Mon Sep 17 00:00:00 2001 From: Jakub Hajek Date: Wed, 2 Jun 2021 18:02:06 +0200 Subject: [PATCH 09/22] Adding Maintainers Guidelines --- CONTRIBUTING.md | 9 ++- README.md | 5 +- .../assets/img/maintainers-guidelines.png | Bin 0 -> 989064 bytes .../contributing/maintainers-guidelines.md | 73 ++++++++++++++++++ docs/content/contributing/maintainers.md | 4 + 5 files changed, 88 insertions(+), 3 deletions(-) create mode 100644 docs/content/assets/img/maintainers-guidelines.png create mode 100644 docs/content/contributing/maintainers-guidelines.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 767c6de93..7b1c8c7d1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,4 +1,9 @@ # Contributing -- https://doc.traefik.io/traefik/contributing/submitting-pull-requests/ -- https://doc.traefik.io/traefik/contributing/submitting-issues/ +Here are some guidelines that should help to start contributing to the project. + +- [Submitting pull Requests](https://github.com/traefik/contributors-guide/blob/master/pr_guidelines.md) +- [Submitting issues](https://doc.traefik.io/traefik/contributing/submitting-issues/) +- [Submitting security issues](docs/content/contributing/submitting-security-issues.md) + +If you are willing to become a maintainer of the project, please take a look at the [maintainers guidelines](docs/content/contributing/maintainers-guidelines.md). diff --git a/README.md b/README.md index 5008675f7..b4da5eb22 100644 --- a/README.md +++ b/README.md @@ -126,7 +126,10 @@ You can find high level and deep dive videos on [videos.traefik.io](https://vide ## Maintainers -[Information about process and maintainers](docs/content/contributing/maintainers.md) +We are strongly promoting a philosophy of openness and sharing, and firmly standing against the elitist closed approach. Being part of the core team should be accessible to anyone who is motivated and want to be part of that journey! +This [document](docs/content/contributing/maintainers-guidelines.md) describes how to be part of the core team as well as various responsibilities and guidelines for Traefik maintainers. +You can also find more information on our process to review pull requests and manage issues [in this document](docs/content/contributing/maintainers.md). + ## Contributing diff --git a/docs/content/assets/img/maintainers-guidelines.png b/docs/content/assets/img/maintainers-guidelines.png new file mode 100644 index 0000000000000000000000000000000000000000..300a6e30d06898cc91ebf360d75f1576b109dc42 GIT binary patch literal 989064 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

u9C%gQax@8u*&dfaWO{q> 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≧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%0A5mQxvCe`C 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 z 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

    Ho=Sg}dt;iS$0rbGB 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%0AN6$zv2)3iXe9MN@H3cxEk$dX$uzqV!ZljvKjQ& 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/content/contributing/maintainers-guidelines.md b/docs/content/contributing/maintainers-guidelines.md new file mode 100644 index 000000000..b22feda91 --- /dev/null +++ b/docs/content/contributing/maintainers-guidelines.md @@ -0,0 +1,73 @@ +

    +Traefik Maintainer's Guidelines +

    + +# The Maintainers Guidelines + +Note: the document is a work in progress. + +Welcome to the Traefik Community. This document describes how to be part of the core team as well as various responsibilities and guidelines for Traefik maintainers. We are strongly promoting a philosophy of openness and sharing, and firmly standing against the elitist closed approach. Being part of the core team should be accessible to anyone who is motivated and want to be part of that journey! + +## Onboarding process + +If you consider joining our community please drop us a line using Twitter or leave a note in the issue. We will schedule a quick call in order to meet you and learn more about your motivation. During the call the team will discuss the process of becoming a maintainer. We will be happy to answer any questions and explain all your doubts. + +## Maintainers requirements + +Note: you do not have to meet all of the listed requirements, but must have achieved several. + +- Enabled [2FA](https://docs.github.com/en/github/authenticating-to-github/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication) on your Github account +- The contributor has opened and successfully run medium to large PR’s in the past 6 months. +- The contributor has participated in multiple code reviews of other PR’s, including those of other maintainers and contributors. +- The contributor showed a consistent pattern of helpful, non-threatening, and friendly behaviour towards other community members in the past. +- The contributor is active on Traefik Community forums or other technical forums / boards such as K8S slack, Reddit, StackOverflow, hacker news. +- Have read and accepted the contributor guidelines. + +## Maintainers responsibilities and privileges + +There are lots of areas where you can contribute to the project but we can suggest you start with activities such as: + +- PR reviewing. + - According to our guidelines we require you have at least 3 reviewers, thus you can review a PR and leave the relevant comment if it is necessary. +- Participating in a daily [issue triage](https://github.com/traefik/contributors-guide/blob/master/issue_triage.md). + - The process helps to understand and prioritize the reported issue according to its importance and severity. This is crucial in order to learn how our users implement Traefik. Each of the issues that are labeled as bug/possible bug/confirmed requires a reproducible use case. You can help in creating a reproducible use case if it has not been added to the issue or use the sample code provided by the reporter. Typically, a simple docker compose should be enough to reproduce the issue. +- Code contribution. +- Documentation contribution. + - Technical documentation is one of the most important components of the product. The ability to set up a testing environment using Traefik in a few minutes using the official documentation is a game changer. +- You will be listed on our Maintainers Github page as well as on our website in the section [maintainers](maintainers.md). +- We will be promoting you in social channels (mostly on Twitter). + +## Governance + +- Roadmap meetings on a regular basis where all maintainers are welcome. + +## Communicating + +- All of our maintainers are added to Slack #traefik-maintainers channel that belongs to Traefik labs workspace. Having the team in one place helps us to communicate effectively. You can reach Traefik core developers directly, which offers the possibility to discuss issues, pull requests, enhancements more efficiently and get the feedback almost immediately. Fewer blockers mean more fun and engaging work. +- We publish a report to the channel on a daily basis that includes all the activities performed during the day. You are updated in regards to the workload that has been processed including: working on the new features and enhancements, activities related to the reported issues and PR’s, other important project-related announcements. +- At 5:00 PM CET every day we review all the created issues that have been reported, assign the specific *[labels](maintainers.md#labels)* and prioritize them based on the severity of the problem. The process is called *[issue triaging](https://github.com/traefik/contributors-guide/blob/master/issue_triage.md).* Each of the maintainers is welcome to join the meeting. For that purpose, we use a dedicated Discord server where you are invited once you have become the official maintainer. + +## Maintainers Activity + +In order to keep the core team efficient and dynamic, maintainers activity and involvement will be reviewed on a regular basis. + +- Has the maintainer engaged with the team and the community by meeting two or more of these benchmarks in the past six months? + - Has the maintainer participated in at least two or three maintainer meetings? + - Substantial review of at least one or two PRs from either contributors or maintainers. + - Opened at least one or two bug fixes or feature request PRs that were eventually merged (or on a trajectory for merge). + - Substantial participation in the Help Wanted program (answered questions, helped identify issues, applied guidelines from the Help Wanted guide to open issues). + - Substantial participation with the community in general. +- Has the maintainer shown a consistent pattern of helpful, non-threatening, and friendly behavior towards other people on the maintainer team and with our community? + +## Additional comments for (not only) maintainers + +- Be able to put yourself in users’ shoes. +- Be open-minded and respectful with other maintainers and other community members. +- Keep the communication public - if anyone tries to communicate with you directly, ask him politely to move the conversation to a public communication channel. +- Stay away from defensive comments. +- Please try to express your thoughts clearly enough and note that some of us are not native English speakers. Try to rephrase your sentences, avoiding mental shortcuts; none of us is able to predict your thoughts. +- There are a lot of use cases of using Traefik and even more issues that are difficult to reproduce. If the issue can’t be replicated due to a lack of reproducible case (a simple docker compose should be enough) - set your own time limits while working on the issue and express it clearly that you were not able to replicate it. You can come back later to that case. +- Be proactive. +- Emoji are fine, but if you express yourself clearly enough they are not necessary. They will not replace good communication. +- Embrace mentorship. +- Keep in mind that we all have the same intent to improve the project. diff --git a/docs/content/contributing/maintainers.md b/docs/content/contributing/maintainers.md index b31613686..e6406ac63 100644 --- a/docs/content/contributing/maintainers.md +++ b/docs/content/contributing/maintainers.md @@ -20,6 +20,10 @@ * Kevin Pollet [@kevinpollet](https://github.com/kevinpollet) * Harold Ozouf [@jspdown](https://github.com/jspdown) +## Maintainers guidelines + +Please read the [maintainers guidelines](maintainers-guidelines.md) + ## Issue Triage Issues and PRs are triaged daily and the process for triaging may be found under [triaging issues](https://github.com/traefik/contributors-guide/blob/master/issue_triage.md) in our [contributors guide repository](https://github.com/traefik/contributors-guide). From 2560626419eaaf2b85982bdb3a70f74953299c72 Mon Sep 17 00:00:00 2001 From: mpl Date: Mon, 7 Jun 2021 17:46:14 +0200 Subject: [PATCH 10/22] doc: clarify usage for ratelimit's excludedIPs --- docs/content/middlewares/ratelimit.md | 45 +++++++++++++++++++++------ pkg/config/dynamic/middlewares.go | 4 +-- pkg/ip/strategy.go | 16 +++++++--- pkg/ip/strategy_test.go | 25 ++++++++------- 4 files changed, 62 insertions(+), 28 deletions(-) diff --git a/docs/content/middlewares/ratelimit.md b/docs/content/middlewares/ratelimit.md index 764a16555..73a609867 100644 --- a/docs/content/middlewares/ratelimit.md +++ b/docs/content/middlewares/ratelimit.md @@ -325,19 +325,46 @@ http: ##### `ipStrategy.excludedIPs` -`excludedIPs` configures Traefik to scan the `X-Forwarded-For` header and select the first IP not in the list. +!!! important "Contrary to what the name might suggest, this option is _not_ about excluding an IP from the rate limiter, and therefore cannot be used to deactivate rate limiting for some IPs." !!! important "If `depth` is specified, `excludedIPs` is ignored." -!!! example "Example of ExcludedIPs & X-Forwarded-For" +`excludedIPs` is meant to address two classes of somewhat distinct use-cases: - | `X-Forwarded-For` | `excludedIPs` | clientIP | - |-----------------------------------------|-----------------------|--------------| - | `"10.0.0.1,11.0.0.1,12.0.0.1,13.0.0.1"` | `"12.0.0.1,13.0.0.1"` | `"11.0.0.1"` | - | `"10.0.0.1,11.0.0.1,12.0.0.1,13.0.0.1"` | `"15.0.0.1,13.0.0.1"` | `"12.0.0.1"` | - | `"10.0.0.1,11.0.0.1,12.0.0.1,13.0.0.1"` | `"10.0.0.1,13.0.0.1"` | `"12.0.0.1"` | - | `"10.0.0.1,11.0.0.1,12.0.0.1,13.0.0.1"` | `"15.0.0.1,16.0.0.1"` | `"13.0.0.1"` | - | `"10.0.0.1,11.0.0.1"` | `"10.0.0.1,11.0.0.1"` | `""` | +1. Distinguish IPs which are behind the same (set of) reverse-proxies so that each of them contributes, independently to the others, + to its own rate-limit "bucket" (cf the [leaky bucket analogy](https://wikipedia.org/wiki/Leaky_bucket)). + In this case, `excludedIPs` should be set to match the list of `X-Forwarded-For IPs` that are to be excluded, + in order to find the actual clientIP. + + !!! example "Each IP as a distinct source" + + | X-Forwarded-For | excludedIPs | clientIP | + |--------------------------------|-----------------------|--------------| + | `"10.0.0.1,11.0.0.1,12.0.0.1"` | `"11.0.0.1,12.0.0.1"` | `"10.0.0.1"` | + | `"10.0.0.2,11.0.0.1,12.0.0.1"` | `"11.0.0.1,12.0.0.1"` | `"10.0.0.2"` | + +2. Group together a set of IPs (also behind a common set of reverse-proxies) so that they are considered the same source, + and all contribute to the same rate-limit bucket. + + !!! example "Group IPs together as same source" + + | X-Forwarded-For | excludedIPs | clientIP | + |--------------------------------|--------------|--------------| + | `"10.0.0.1,11.0.0.1,12.0.0.1"` | `"12.0.0.1"` | `"11.0.0.1"` | + | `"10.0.0.2,11.0.0.1,12.0.0.1"` | `"12.0.0.1"` | `"11.0.0.1"` | + | `"10.0.0.3,11.0.0.1,12.0.0.1"` | `"12.0.0.1"` | `"11.0.0.1"` | + +For completeness, below are additional examples to illustrate how the matching works. +For a given request the list of `X-Forwarded-For` IPs is checked from most recent to most distant against the `excludedIPs` pool, +and the first IP that is _not_ in the pool (if any) is returned. + +!!! example "Matching for clientIP" + + | X-Forwarded-For | excludedIPs | clientIP | + |--------------------------------|-----------------------|--------------| + | `"10.0.0.1,11.0.0.1,13.0.0.1"` | `"11.0.0.1"` | `"13.0.0.1"` | + | `"10.0.0.1,11.0.0.1,13.0.0.1"` | `"15.0.0.1,16.0.0.1"` | `"13.0.0.1"` | + | `"10.0.0.1,11.0.0.1"` | `"10.0.0.1,11.0.0.1"` | `""` | ```yaml tab="Docker" labels: diff --git a/pkg/config/dynamic/middlewares.go b/pkg/config/dynamic/middlewares.go index b931de0d4..a1c2d69a3 100644 --- a/pkg/config/dynamic/middlewares.go +++ b/pkg/config/dynamic/middlewares.go @@ -241,7 +241,7 @@ type IPStrategy struct { // Get an IP selection strategy. // If nil return the RemoteAddr strategy -// else return a strategy base on the configuration using the X-Forwarded-For Header. +// else return a strategy based on the configuration using the X-Forwarded-For Header. // Depth override the ExcludedIPs. func (s *IPStrategy) Get() (ip.Strategy, error) { if s == nil { @@ -259,7 +259,7 @@ func (s *IPStrategy) Get() (ip.Strategy, error) { if err != nil { return nil, err } - return &ip.CheckerStrategy{ + return &ip.PoolStrategy{ Checker: checker, }, nil } diff --git a/pkg/ip/strategy.go b/pkg/ip/strategy.go index 5a32524f6..16e150e95 100644 --- a/pkg/ip/strategy.go +++ b/pkg/ip/strategy.go @@ -43,14 +43,16 @@ func (s *DepthStrategy) GetIP(req *http.Request) string { return strings.TrimSpace(xffs[len(xffs)-s.Depth]) } -// CheckerStrategy a strategy based on an IP Checker -// allows to check that addresses are in a trusted IPs. -type CheckerStrategy struct { +// PoolStrategy is a strategy based on an IP Checker. +// It allows to check whether addresses are in a given pool of IPs. +type PoolStrategy struct { Checker *Checker } -// GetIP return the selected IP. -func (s *CheckerStrategy) GetIP(req *http.Request) string { +// GetIP checks the list of Forwarded IPs (most recent first) against the +// Checker pool of IPs. It returns the first IP that is not in the pool, or the +// empty string otherwise. +func (s *PoolStrategy) GetIP(req *http.Request) string { if s.Checker == nil { return "" } @@ -60,9 +62,13 @@ func (s *CheckerStrategy) GetIP(req *http.Request) string { for i := len(xffs) - 1; i >= 0; i-- { xffTrimmed := strings.TrimSpace(xffs[i]) + if len(xffTrimmed) == 0 { + continue + } if contain, _ := s.Checker.Contains(xffTrimmed); !contain { return xffTrimmed } } + return "" } diff --git a/pkg/ip/strategy_test.go b/pkg/ip/strategy_test.go index 8a05acd63..1409b1d54 100644 --- a/pkg/ip/strategy_test.go +++ b/pkg/ip/strategy_test.go @@ -74,34 +74,35 @@ func TestDepthStrategy_GetIP(t *testing.T) { } } -func TestExcludedIPsStrategy_GetIP(t *testing.T) { +func TestTrustedIPsStrategy_GetIP(t *testing.T) { testCases := []struct { desc string - excludedIPs []string + trustedIPs []string xForwardedFor string expected string + useRemote bool }{ { - desc: "Use excluded all IPs", - excludedIPs: []string{"10.0.0.4", "10.0.0.3", "10.0.0.2", "10.0.0.1"}, + desc: "Trust all IPs", + trustedIPs: []string{"10.0.0.4", "10.0.0.3", "10.0.0.2", "10.0.0.1"}, xForwardedFor: "10.0.0.4,10.0.0.3,10.0.0.2,10.0.0.1", expected: "", }, { - desc: "Use excluded IPs", - excludedIPs: []string{"10.0.0.2", "10.0.0.1"}, + desc: "Do not trust all IPs", + trustedIPs: []string{"10.0.0.2", "10.0.0.1"}, xForwardedFor: "10.0.0.4,10.0.0.3,10.0.0.2,10.0.0.1", expected: "10.0.0.3", }, { - desc: "Use excluded IPs CIDR", - excludedIPs: []string{"10.0.0.1/24"}, + desc: "Do not trust all IPs with CIDR", + trustedIPs: []string{"10.0.0.1/24"}, xForwardedFor: "127.0.0.1,10.0.0.4,10.0.0.3,10.0.0.2,10.0.0.1", expected: "127.0.0.1", }, { - desc: "Use excluded all IPs CIDR", - excludedIPs: []string{"10.0.0.1/24"}, + desc: "Trust all IPs with CIDR", + trustedIPs: []string{"10.0.0.1/24"}, xForwardedFor: "10.0.0.4,10.0.0.3,10.0.0.2,10.0.0.1", expected: "", }, @@ -112,10 +113,10 @@ func TestExcludedIPsStrategy_GetIP(t *testing.T) { t.Run(test.desc, func(t *testing.T) { t.Parallel() - checker, err := NewChecker(test.excludedIPs) + checker, err := NewChecker(test.trustedIPs) require.NoError(t, err) - strategy := CheckerStrategy{Checker: checker} + strategy := PoolStrategy{Checker: checker} req := httptest.NewRequest(http.MethodGet, "http://127.0.0.1", nil) req.Header.Set(xForwardedFor, test.xForwardedFor) actual := strategy.GetIP(req) From 521fed1fea7e67ab0a8d64591ca1d301e504f004 Mon Sep 17 00:00:00 2001 From: "Moritz E. Beber" Date: Tue, 8 Jun 2021 19:02:05 +0200 Subject: [PATCH 11/22] Elaborate on possible use of status codes with the errors middleware --- docs/content/contributing/documentation.md | 12 +++++++----- docs/content/middlewares/errorpages.md | 5 ++++- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/docs/content/contributing/documentation.md b/docs/content/contributing/documentation.md index 6b3e0316c..5b2fb80ea 100644 --- a/docs/content/contributing/documentation.md +++ b/docs/content/contributing/documentation.md @@ -14,10 +14,10 @@ This [documentation](https://doc.traefik.io/traefik/) is built with [mkdocs](htt ### Method 1: `Docker` and `make` -You can build the documentation and test it locally (with live reloading), using the `docs` target: +You can build the documentation and test it locally (with live reloading), using the `docs-serve` target: ```bash -$ make docs +$ make docs-serve docker build -t traefik-docs -f docs.Dockerfile . # […] docker run --rm -v /home/user/go/github/traefik/traefik:/mkdocs -p 8000:8000 traefik-docs mkdocs serve @@ -82,17 +82,19 @@ Running ["HtmlCheck", "ImageCheck", "ScriptCheck", "LinkCheck"] on /app/site/bas !!! note "Clean & Verify" - If you've made changes to the documentation, it's safter to clean it before verifying it. + If you've made changes to the documentation, it's safter to clean it before verifying it. ```bash - $ make docs-clean docs-verify + $ make docs ... ``` + Will perform all necessary steps for you. + !!! note "Disabling Documentation Verification" Verification can be disabled by setting the environment variable `DOCS_VERIFY_SKIP` to `true`: - + ```shell DOCS_VERIFY_SKIP=true make docs-verify ... diff --git a/docs/content/middlewares/errorpages.md b/docs/content/middlewares/errorpages.md index 5bf3b0215..fd04d2b8b 100644 --- a/docs/content/middlewares/errorpages.md +++ b/docs/content/middlewares/errorpages.md @@ -99,7 +99,10 @@ The status code ranges are inclusive (`500-599` will trigger with every code bet !!! note "" - You can define either a status code as a number (`500`) or ranges by separating two codes with a dash (`500-599`). + You can define either a status code as a number (`500`), + as multiple comma-separated numbers (`500,502`), + as ranges by separating two codes with a dash (`500-599`), + or a combination of the two (`404,418,500-599`). ### `service` From b03c5ff5ce47cff6521d6fb71054335a4f0c89ab Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Tue, 8 Jun 2021 23:50:05 +0200 Subject: [PATCH 12/22] Update go-acme/lego to v4.4.0 --- docs/content/https/acme.md | 6 ++++++ go.mod | 6 +++--- go.sum | 42 +++++++++++++++++++++++++++----------- 3 files changed, 39 insertions(+), 15 deletions(-) diff --git a/docs/content/https/acme.md b/docs/content/https/acme.md index 37bb65d82..36426bda5 100644 --- a/docs/content/https/acme.md +++ b/docs/content/https/acme.md @@ -323,6 +323,7 @@ For complete details, refer to your provider's _Additional configuration_ link. | HTTP request | `httpreq` | `HTTPREQ_ENDPOINT`, `HTTPREQ_MODE`, `HTTPREQ_USERNAME`, `HTTPREQ_PASSWORD` [^1] | [Additional configuration](https://go-acme.github.io/lego/dns/httpreq) | | [HyperOne](https://www.hyperone.com) | `hyperone` | `HYPERONE_PASSPORT_LOCATION`, `HYPERONE_LOCATION_ID` | [Additional configuration](https://go-acme.github.io/lego/dns/hyperone) | | [IIJ](https://www.iij.ad.jp/) | `iij` | `IIJ_API_ACCESS_KEY`, `IIJ_API_SECRET_KEY`, `IIJ_DO_SERVICE_CODE` | [Additional configuration](https://go-acme.github.io/lego/dns/iij) | +| [Infoblox](https://www.infoblox.com/) | `infoblox` | `INFOBLOX_USER`, `INFOBLOX_PASSWORD`, `INFOBLOX_HOST` | [Additional configuration](https://go-acme.github.io/lego/dns/infoblox) | | [Infomaniak](https://www.infomaniak.com) | `infomaniak` | `INFOMANIAK_ACCESS_TOKEN` | [Additional configuration](https://go-acme.github.io/lego/dns/infomaniak) | | [INWX](https://www.inwx.de/en) | `inwx` | `INWX_USERNAME`, `INWX_PASSWORD` | [Additional configuration](https://go-acme.github.io/lego/dns/inwx) | | [ionos](https://ionos.com/) | `ionos` | `IONOS_API_KEY` | [Additional configuration](https://go-acme.github.io/lego/dns/ionos) | @@ -347,6 +348,7 @@ For complete details, refer to your provider's _Additional configuration_ link. | [OVH](https://www.ovh.com) | `ovh` | `OVH_ENDPOINT`, `OVH_APPLICATION_KEY`, `OVH_APPLICATION_SECRET`, `OVH_CONSUMER_KEY` | [Additional configuration](https://go-acme.github.io/lego/dns/ovh) | | [Openstack Designate](https://docs.openstack.org/designate) | `designate` | `OS_AUTH_URL`, `OS_USERNAME`, `OS_PASSWORD`, `OS_TENANT_NAME`, `OS_REGION_NAME` | [Additional configuration](https://go-acme.github.io/lego/dns/designate) | | [Oracle Cloud](https://cloud.oracle.com/home) | `oraclecloud` | `OCI_COMPARTMENT_OCID`, `OCI_PRIVKEY_FILE`, `OCI_PRIVKEY_PASS`, `OCI_PUBKEY_FINGERPRINT`, `OCI_REGION`, `OCI_TENANCY_OCID`, `OCI_USER_OCID` | [Additional configuration](https://go-acme.github.io/lego/dns/oraclecloud) | +| [Porkbun](https://porkbun.com/) | `porkbun` | `PORKBUN_SECRET_API_KEY`, `PORKBUN_API_KEY` | [Additional configuration](https://go-acme.github.io/lego/dns/porkbun) | | [PowerDNS](https://www.powerdns.com) | `pdns` | `PDNS_API_KEY`, `PDNS_API_URL` | [Additional configuration](https://go-acme.github.io/lego/dns/pdns) | | [Rackspace](https://www.rackspace.com/cloud/dns) | `rackspace` | `RACKSPACE_USER`, `RACKSPACE_API_KEY` | [Additional configuration](https://go-acme.github.io/lego/dns/rackspace) | | [reg.ru](https://www.reg.ru) | `regru` | `REGRU_USERNAME`, `REGRU_PASSWORD` | [Additional configuration](https://go-acme.github.io/lego/dns/regru) | @@ -357,12 +359,16 @@ For complete details, refer to your provider's _Additional configuration_ link. | [Scaleway](https://www.scaleway.com) | `scaleway` | `SCALEWAY_API_TOKEN` | [Additional configuration](https://go-acme.github.io/lego/dns/scaleway) | | [Selectel](https://selectel.ru/en/) | `selectel` | `SELECTEL_API_TOKEN` | [Additional configuration](https://go-acme.github.io/lego/dns/selectel) | | [Servercow](https://servercow.de) | `servercow` | `SERVERCOW_USERNAME`, `SERVERCOW_PASSWORD` | [Additional configuration](https://go-acme.github.io/lego/dns/servercow) | +| [Simply.com](https://www.simply.com/en/domains/) | `simply` | `SIMPLY_ACCOUNT_NAME`, `SIMPLY_API_KEY` | [Additional configuration](https://go-acme.github.io/lego/dns/simply) | +| [Sonic](https://www.sonic.com/) | `sonic` | `SONIC_USER_ID`, `SONIC_API_KEY` | [Additional configuration](https://go-acme.github.io/lego/dns/sonic) | | [Stackpath](https://www.stackpath.com/) | `stackpath` | `STACKPATH_CLIENT_ID`, `STACKPATH_CLIENT_SECRET`, `STACKPATH_STACK_ID` | [Additional configuration](https://go-acme.github.io/lego/dns/stackpath) | | [TransIP](https://www.transip.nl/) | `transip` | `TRANSIP_ACCOUNT_NAME`, `TRANSIP_PRIVATE_KEY_PATH` | [Additional configuration](https://go-acme.github.io/lego/dns/transip) | | [VegaDNS](https://github.com/shupp/VegaDNS-API) | `vegadns` | `SECRET_VEGADNS_KEY`, `SECRET_VEGADNS_SECRET`, `VEGADNS_URL` | [Additional configuration](https://go-acme.github.io/lego/dns/vegadns) | | [Versio](https://www.versio.nl/domeinnamen) | `versio` | `VERSIO_USERNAME`, `VERSIO_PASSWORD` | [Additional configuration](https://go-acme.github.io/lego/dns/versio) | +| [VinylDNS](https://www.vinyldns.io) | `vinyldns` | `VINYLDNS_ACCESS_KEY`, `VINYLDNS_SECRET_KEY`, `VINYLDNS_HOST` | [Additional configuration](https://go-acme.github.io/lego/dns/vinyldns) | | [Vscale](https://vscale.io/) | `vscale` | `VSCALE_API_TOKEN` | [Additional configuration](https://go-acme.github.io/lego/dns/vscale) | | [VULTR](https://www.vultr.com) | `vultr` | `VULTR_API_KEY` | [Additional configuration](https://go-acme.github.io/lego/dns/vultr) | +| [WEDOS](https://www.wedos.com) | `wedos` | `WEDOS_USERNAME`, `WEDOS_WAPI_PASSWORD` | [Additional configuration](https://go-acme.github.io/lego/dns/wedos) | | [Yandex](https://yandex.com) | `yandex` | `YANDEX_PDD_TOKEN` | [Additional configuration](https://go-acme.github.io/lego/dns/yandex) | | [Zone.ee](https://www.zone.ee) | `zoneee` | `ZONEEE_API_USER`, `ZONEEE_API_KEY` | [Additional configuration](https://go-acme.github.io/lego/dns/zoneee) | | [Zonomi](https://zonomi.com) | `zonomi` | `ZONOMI_API_KEY` | [Additional configuration](https://go-acme.github.io/lego/dns/zonomi) | diff --git a/go.mod b/go.mod index 94dd21d39..5f164113d 100644 --- a/go.mod +++ b/go.mod @@ -32,7 +32,7 @@ require ( github.com/fatih/structs v1.1.0 github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 // indirect github.com/gambol99/go-marathon v0.0.0-20180614232016-99a156b96fb2 - github.com/go-acme/lego/v4 v4.3.1 + github.com/go-acme/lego/v4 v4.4.0 github.com/go-check/check v0.0.0-00010101000000-000000000000 github.com/go-kit/kit v0.10.1-0.20200915143503-439c4d2ed3ea github.com/golang/protobuf v1.4.3 @@ -82,9 +82,9 @@ require ( github.com/vulcand/predicate v1.1.0 go.elastic.co/apm v1.7.0 go.elastic.co/apm/module/apmot v1.7.0 - golang.org/x/mod v0.3.0 + golang.org/x/mod v0.4.2 golang.org/x/net v0.0.0-20210220033124-5f55cee0dc0d - golang.org/x/time v0.0.0-20201208040808-7e3f01d25324 + golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba google.golang.org/grpc v1.27.1 gopkg.in/DataDog/dd-trace-go.v1 v1.19.0 gopkg.in/fsnotify.v1 v1.4.7 diff --git a/go.sum b/go.sum index 32f28bef2..2cc7334ed 100644 --- a/go.sum +++ b/go.sum @@ -235,6 +235,7 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/dimchansky/utfbom v1.1.0 h1:FcM3g+nofKgUteL8dm/UpdRXNC9KmADgTpLKsu0TRo4= github.com/dimchansky/utfbom v1.1.0/go.mod h1:rO41eb7gLfo8SF1jd9F8HplJm1Fewwi4mQvIirEdv+8= +github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= github.com/dnsimple/dnsimple-go v0.63.0 h1:0doY8VW/ckRIMTmOw4E1vwqo+bhtjDzvh1pU2ZteFGA= github.com/dnsimple/dnsimple-go v0.63.0/go.mod h1:O5TJ0/U6r7AfT8niYNlmohpLbCSG+c71tQlGr9SeGrg= github.com/docker/cli v0.0.0-20200221155518-740919cc7fc0 h1:hlGHcYGaaHs/yffSubcUKlp8TyV1v7qhcZZ5nGNQ2Fw= @@ -315,8 +316,8 @@ github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/go-acme/lego/v4 v4.3.1 h1:rzmg0Gpy25B/exXjl+KgpG5Xt6wN5rFTLjRf/Uf3pfg= -github.com/go-acme/lego/v4 v4.3.1/go.mod h1:tySA24ifl6bI7kZ0+ocGtTIv4H1yhYVFAgyMHF2DSRg= +github.com/go-acme/lego/v4 v4.4.0 h1:uHhU5LpOYQOdp3aDU+XY2bajseu8fuExphTL1Ss6/Fc= +github.com/go-acme/lego/v4 v4.4.0/go.mod h1:l3+tFUFZb590dWcqhWZegynUthtaHJbG2fevUpoOOE0= github.com/go-chi/chi v4.0.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= github.com/go-cmd/cmd v1.0.5/go.mod h1:y8q8qlK5wQibcw63djSl/ntiHUHXHGdCkPk0j4QeW4s= github.com/go-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w= @@ -389,6 +390,8 @@ github.com/go-resty/resty/v2 v2.1.1-0.20191201195748-d7b97669fe48/go.mod h1:dZGr github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/gobs/pretty v0.0.0-20180724170744-09732c25a95b h1:/vQ+oYKu+JoyaMPDsv5FzwuL2wwWBgBbtj/YLCi4LuA= +github.com/gobs/pretty v0.0.0-20180724170744-09732c25a95b/go.mod h1:Xo4aNUOrJnVruqWQJBtW6+bTBDTniY8yZum5rF3b5jw= github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/gofrs/uuid v3.2.0+incompatible h1:y12jRkkFxsd7GpqdSZ+/KCs/fJbqpEXSGd4+jfEaewE= @@ -520,8 +523,8 @@ github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1: github.com/hashicorp/go-multierror v1.0.0 h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uPribsnS6o= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= -github.com/hashicorp/go-retryablehttp v0.6.8 h1:92lWxgpa+fF3FozM4B3UZtHZMJX8T5XT+TFdCxsPyWs= -github.com/hashicorp/go-retryablehttp v0.6.8/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= +github.com/hashicorp/go-retryablehttp v0.6.6 h1:HJunrbHTDDbBb/ay4kxa1n+dLmttUlnP3V9oNE4hmsM= +github.com/hashicorp/go-retryablehttp v0.6.6/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= github.com/hashicorp/go-rootcerts v1.0.0 h1:Rqb66Oo1X/eSV1x66xbDccZjhJigjg0+e82kpwzSwCI= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= github.com/hashicorp/go-sockaddr v1.0.0 h1:GeH6tui99pF4NJgfnhp+L6+FfobzVW3Ah46sLo0ICXs= @@ -560,6 +563,8 @@ github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d h1:/WZQPMZNsjZ7IlCpsLGdQBINg5bxKQ1K1sh6awxLtkA= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= +github.com/infobloxopen/infoblox-go-client v1.1.1 h1:728A6LbLjptj/7kZjHyIxQnm768PWHfGFm0HH8FnbtU= +github.com/infobloxopen/infoblox-go-client v1.1.1/go.mod h1:BXiw7S2b9qJoM8MS40vfgCNB2NLHGusk1DtO16BD9zI= github.com/instana/go-sensor v1.5.1 h1:GLxYsYiDWD15RSXDHS70VvTVU/CbwUimWrK6/e4eBPQ= github.com/instana/go-sensor v1.5.1/go.mod h1:5dEieTqu59XZr2/X53xF2Px4v83aSRRZa/47VbxAVa4= github.com/jarcoal/httpmock v1.0.6 h1:e81vOSexXU3mJuJ4l//geOmKIt+Vkxerk1feQBC8D0g= @@ -723,6 +728,8 @@ github.com/nrdcg/goinwx v0.8.1 h1:20EQ/JaGFnSKwiDH2JzjIpicffl3cPk6imJBDqVBVtU= github.com/nrdcg/goinwx v0.8.1/go.mod h1:tILVc10gieBp/5PMvbcYeXM6pVQ+c9jxDZnpaR1UW7c= github.com/nrdcg/namesilo v0.2.1 h1:kLjCjsufdW/IlC+iSfAqj0iQGgKjlbUUeDJio5Y6eMg= github.com/nrdcg/namesilo v0.2.1/go.mod h1:lwMvfQTyYq+BbjJd30ylEG4GPSS6PII0Tia4rRpRiyw= +github.com/nrdcg/porkbun v0.1.1 h1:gxVzQYfFUGXhnBax/aVugoE3OIBAdHgrJgyMPyY5Sjo= +github.com/nrdcg/porkbun v0.1.1/go.mod h1:JWl/WKnguWos4mjfp4YizvvToigk9qpQwrodOk+CPoA= github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= @@ -863,6 +870,8 @@ github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da h1:p3Vo3i64TCL github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/santhosh-tekuri/jsonschema v1.2.4 h1:hNhW8e7t+H1vgY+1QeEQpveR6D4+OwKPXCfD2aieJis= github.com/santhosh-tekuri/jsonschema v1.2.4/go.mod h1:TEAUOeZSmIxTTuHatJzrvARHiuO9LYd+cIxzgEHCQI4= +github.com/scaleway/scaleway-sdk-go v1.0.0-beta.7.0.20210127161313-bd30bebeac4f h1:WSnaD0/cvbKJgSTYbjAPf4RJXVvNNDAwVm+W8wEmnGE= +github.com/scaleway/scaleway-sdk-go v1.0.0-beta.7.0.20210127161313-bd30bebeac4f/go.mod h1:CJJ5VAbozOl0yEw7nHB9+7BXTJbIn6h7W+f6Gau5IP8= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= @@ -876,11 +885,16 @@ github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrf github.com/sirupsen/logrus v1.7.0 h1:ShrD1U9pZB12TX0cVy0DtePoCH97K8EtX+mg7ZARUtM= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c/go.mod h1:sUM3LWHvSMaG192sy56D9F7CNvL7jUJVXoqM1QKLnog= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/assertions v1.0.1 h1:voD4ITNjPL5jjBfgR/r8fPIIBrliWrWHeiJApdr3r4w= +github.com/smartystreets/assertions v1.0.1/go.mod h1:kHHU4qYBaI3q23Pp3VPrmWhuIUrLW/7eUrw0BU5VaoM= +github.com/smartystreets/go-aws-auth v0.0.0-20180515143844-0c1422d1fdb9 h1:hp2CYQUINdZMHdvTdXtPOY2ainKl4IoMcpAXEf2xj3Q= +github.com/smartystreets/go-aws-auth v0.0.0-20180515143844-0c1422d1fdb9/go.mod h1:SnhjPscd9TpLiy1LpzGSKh3bXCfxxXuqd9xmQJy3slM= github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/smartystreets/gunit v1.0.4 h1:tpTjnuH7MLlqhoD21vRoMZbMIi5GmBsAJDFyF67GhZA= +github.com/smartystreets/gunit v1.0.4/go.mod h1:EH5qMBab2UclzXUcpR8b93eHsIlp9u+pDQIRp5DZNzQ= github.com/soheilhy/cmux v0.1.4 h1:0HKaf1o97UwFjHH9o5XsHUOF+tqmdA7KEzXLpiyaw0E= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= @@ -938,8 +952,8 @@ github.com/traefik/paerser v0.1.4 h1:/IXjV04Gf6di51H8Jl7jyS3OylsLjIasrwXIIwj1aT8 github.com/traefik/paerser v0.1.4/go.mod h1:FIdQ4Y92ulQUGSeZgxchtBKEcLw1o551PMNg9PoIq/4= github.com/traefik/yaegi v0.9.17 h1:sJ4Wk6S7HHHXtJnOuxC/3qjdQKRy3q9ZhNP0ZGL7Ltw= github.com/traefik/yaegi v0.9.17/go.mod h1:FAYnRlZyuVlEkvnkHq3bvJ1lW5be6XuwgLdkYgYG6Lk= -github.com/transip/gotransip/v6 v6.6.0 h1:dAHCTZzX98H6QE2kA4R9acAXu5RPPTwMSUFtpKZF3Nk= -github.com/transip/gotransip/v6 v6.6.0/go.mod h1:pQZ36hWWRahCUXkFWlx9Hs711gLd8J4qdgLdRzmtY+g= +github.com/transip/gotransip/v6 v6.2.0 h1:0Z+qVsyeiQdWfcAUeJyF0IEKAPvhJwwpwPi2WGtBIiE= +github.com/transip/gotransip/v6 v6.2.0/go.mod h1:pQZ36hWWRahCUXkFWlx9Hs711gLd8J4qdgLdRzmtY+g= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/uber-go/atomic v1.3.2 h1:Azu9lPBWRNKzYXSIwRfgRuDuS0YKsK4NFhiQv98gkxo= github.com/uber-go/atomic v1.3.2/go.mod h1:/Ct5t2lcmbJ4OSe/waGBoaVvVqtO0bmtfVNex1PFV8g= @@ -956,7 +970,7 @@ github.com/unrolled/secure v1.0.7/go.mod h1:uGc1OcRF8gCVBA+ANksKmvM85Hka6SZtQIbr github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli v1.22.5/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/urfave/cli v1.22.4/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= @@ -964,12 +978,14 @@ github.com/valyala/fasttemplate v1.1.0/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPU github.com/vdemeester/shakers v0.1.0 h1:K+n9sSyUCg2ywmZkv+3c7vsYZfivcfKhMh8kRxCrONM= github.com/vdemeester/shakers v0.1.0/go.mod h1:IZ1HHynUOQt32iQ3rvAeVddXLd19h/6LWiKsh9RZtAQ= github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= +github.com/vinyldns/go-vinyldns v0.0.0-20200917153823-148a5f6b8f14 h1:TFXGGMHmml4rs29PdPisC/aaCzOxUu1Vsh9on/IpUfE= +github.com/vinyldns/go-vinyldns v0.0.0-20200917153823-148a5f6b8f14/go.mod h1:RWc47jtnVuQv6+lY3c768WtXCas/Xi+U5UFc5xULmYg= github.com/vulcand/oxy v1.2.0 h1:Y2Wt1EgQddA/qMnp1+YXjehPsyw2Gy8CAfavkFF+fQk= github.com/vulcand/oxy v1.2.0/go.mod h1:nGeNTWfyYQj3ghi3W8ok7vLSkw7Gkvr0x+G/v8Wk7vM= github.com/vulcand/predicate v1.1.0 h1:Gq/uWopa4rx/tnZu2opOSBqHK63Yqlou/SzrbwdJiNg= github.com/vulcand/predicate v1.1.0/go.mod h1:mlccC5IRBoc2cIFmCB8ZM62I3VDb6p2GXESMHa3CnZg= -github.com/vultr/govultr/v2 v2.4.0 h1:6ySGGAsoOann0lmVNkS8grLvbAT2iYWnO4R1RVYFg0A= -github.com/vultr/govultr/v2 v2.4.0/go.mod h1:U+dZLAmyGD62IGykgC9JYU/zQIOkIhf93nw6dJL/47M= +github.com/vultr/govultr/v2 v2.0.0 h1:+lAtqfWy3g9VwL7tT2Fpyad8Vv4MxOhT/NU8O5dk+EQ= +github.com/vultr/govultr/v2 v2.0.0/go.mod h1:2PsEeg+gs3p/Fo5Pw8F9mv+DUBEOlrNZ8GmCTGmhOhs= github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c= @@ -1083,8 +1099,9 @@ golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2 h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1216,8 +1233,9 @@ golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20201208040808-7e3f01d25324 h1:Hir2P/De0WpUhtrKGGjvSb2YxUgyZ7EFOSLIcSSpiwE= golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba h1:O8mE0/t419eoIwhTFpKVkHiTs/Igowgfkj25AcZrtiE= +golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= From 51ee77b96fabd53a0422ba5fcda6f95b27162cfc Mon Sep 17 00:00:00 2001 From: Romain Date: Fri, 11 Jun 2021 10:00:14 +0200 Subject: [PATCH 13/22] Explains Traefik HTTP response status codes Co-authored-by: Jean-Baptiste Doumenjou <925513+jbdoumenjou@users.noreply.github.com> Co-authored-by: Tom Moulard --- docs/content/getting-started/faq.md | 126 ++++++++++++++++++++++++++++ docs/mkdocs.yml | 1 + 2 files changed, 127 insertions(+) create mode 100644 docs/content/getting-started/faq.md diff --git a/docs/content/getting-started/faq.md b/docs/content/getting-started/faq.md new file mode 100644 index 000000000..89d678116 --- /dev/null +++ b/docs/content/getting-started/faq.md @@ -0,0 +1,126 @@ +# FAQ + +## Why is Traefik Answering `XXX` HTTP Response Status Code? + +Traefik is a dynamic reverse proxy, +and while the documentation often demonstrates configuration options through file examples, +the core feature of Traefik is its dynamic configurability, +directly reacting to changes from providers over time. + +Notably, a part of the configuration is [static](../configuration-overview/#the-static-configuration), +and can be provided by a file on startup, whereas various providers, +such as the file provider, +contribute dynamically all along the traefik instance lifetime to its [dynamic configuration](../configuration-overview/#the-dynamic-configuration) changes. + +In addition, the configuration englobes concepts such as the EntryPoint which can be seen as a listener on the Transport Layer (TCP), +as apposed to the Router which is more about the Presentation (TLS) and Application layers (HTTP). +And there can be as many routers as one wishes for a given EntryPoint. + +In other words, for a given Entrypoint, +at any given time the traffic seen is not bound to be just about one protocol. +It could be HTTP, or otherwise. Over TLS, or not. +Not to mention that dynamic configuration changes potentially make that kind of traffic vary over time. + +Therefore, in this dynamic context, +the static configuration of an `entryPoint` does not give any hint whatsoever about how the traffic going through that `entryPoint` is going to be routed. +Or whether it's even going to be routed at all, +i.e. whether there is a Router matching the kind of traffic going through it. + +### `404 Not found` + +Traefik returns a `404` response code in the following situations: + +- A request reaching an EntryPoint that has no Routers +- An HTTP request reaching an EntryPoint that has no HTTP Router +- An HTTPS request reaching an EntryPoint that has no HTTPS Router +- A request reaching an EntryPoint that has HTTP/HTTPS Routers that cannot be matched + +From Traefik's point of view, +every time a request cannot be matched with a router the correct response code is a `404 Not found`. + +In this situation, the response code is not a `503 Service Unavailable` +because Traefik is not able to confirm that the lack of a matching router for a request is only temporary. +Traefik's routing configuration is dynamic and aggregated from different providers, +hence it's not possible to assume at any moment that a specific route should be handled or not. + +??? info "This behavior is consistent with rfc7231" + + ```txt + The server is currently unable to handle the request due to a + temporary overloading or maintenance of the server. The implication + is that this is a temporary condition which will be alleviated after + some delay. If known, the length of the delay MAY be indicated in a + Retry-After header. If no Retry-After is given, the client SHOULD + handle the response as it would for a 500 response. + + Note: The existence of the 503 status code does not imply that a + server must use it when becoming overloaded. Some servers may wish + to simply refuse the connection. + ``` + + Extract from [rfc7231#section-6.6.4](https://datatracker.ietf.org/doc/html/rfc7231#section-6.6.4). + +### `502 Bad Gateway` + +Traefik returns a `502` response code when an error happens while contacting the upstream service. + +### `503 Service Unavailable` + +Traefik returns a `503` response code when a Router has been matched +but there are no servers ready to handle the request. + +This situation is encountered when a service has been explicitly configured without servers, +or when a service has healthcheck enabled and all servers are unhealthy. + +### `XXX` Instead of `404` + +Sometimes, the `404` response code doesn't play well with other parties or services (such as CDNs). + +In these situations, you may want Traefik to always reply with a `503` response code, +instead of a `404` response code. + +To achieve this behavior, a simple catchall router, +with the lowest possible priority and routing to a service without servers, +can handle all the requests when no other router has been matched. + +The example below is a file provider only version (`yaml`) of what this configuration could look like: + +```yaml tab="Static configuration" +# traefik.yaml + +entrypoints: + web: + address: :80 + +providers: + file: + filename: dynamic.yaml +``` + +```yaml tab="Dynamic configuration" +# dynamic.yaml + +http: + routers: + catchall: + # attached only to web entryPoint + entryPoints: + - "web" + # catchall rule + rule: "PathPrefix(`/`)" + service: unavailable + # lowest possible priority + # evaluated when no other router is matched + priority: 1 + + services: + # Service that will always answer a 503 Service Unavailable response + unavailable: + loadBalancer: + servers: {} +``` + +!!! info "Dedicated service" + If there is a need for a response code other than a `503` and/or a custom message, + the principle of the above example above (a catchall router) still stands, + but the `unavailable` service should be adapted to fit such a need. diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index fe176494c..85749c598 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -68,6 +68,7 @@ nav: - 'Quick Start': 'getting-started/quick-start.md' - 'Configuration Introduction': 'getting-started/configuration-overview.md' - 'Install Traefik': 'getting-started/install-traefik.md' + - 'Frequently Asked Questions': 'getting-started/faq.md' - 'Configuration Discovery': - 'Overview': 'providers/overview.md' - 'Docker': 'providers/docker.md' From fd1eae4f0739ecd5fa952772eee652efdcf29bb0 Mon Sep 17 00:00:00 2001 From: Jakub Hajek Date: Fri, 11 Jun 2021 12:28:11 +0200 Subject: [PATCH 14/22] Adding formatting to the document. --- .../contributing/maintainers-guidelines.md | 108 +++++++++++++----- 1 file changed, 82 insertions(+), 26 deletions(-) diff --git a/docs/content/contributing/maintainers-guidelines.md b/docs/content/contributing/maintainers-guidelines.md index b22feda91..3c7fc3cdd 100644 --- a/docs/content/contributing/maintainers-guidelines.md +++ b/docs/content/contributing/maintainers-guidelines.md @@ -1,41 +1,63 @@ -

    -Traefik Maintainer's Guidelines -

    - # The Maintainers Guidelines +![Maintainers Guidelines](../assets/img/maintainers-guidelines.png) + Note: the document is a work in progress. -Welcome to the Traefik Community. This document describes how to be part of the core team as well as various responsibilities and guidelines for Traefik maintainers. We are strongly promoting a philosophy of openness and sharing, and firmly standing against the elitist closed approach. Being part of the core team should be accessible to anyone who is motivated and want to be part of that journey! +Welcome to the Traefik Community. +This document describes how to be part of the core team +as well as various responsibilities +and guidelines for Traefik maintainers. +We are strongly promoting a philosophy of openness and sharing, +and firmly standing against the elitist closed approach. +Being part of the core team should be accessible to anyone motivated +and wants to be part of that journey! ## Onboarding process -If you consider joining our community please drop us a line using Twitter or leave a note in the issue. We will schedule a quick call in order to meet you and learn more about your motivation. During the call the team will discuss the process of becoming a maintainer. We will be happy to answer any questions and explain all your doubts. +If you consider joining our community please drop us a line using Twitter or leave a note in the issue. +We will schedule a quick call to meet you and learn more about your motivation. +During the call, the team will discuss the process of becoming a maintainer. +We will be happy to answer any questions and explain all your doubts. ## Maintainers requirements -Note: you do not have to meet all of the listed requirements, but must have achieved several. +Note: you do not have to meet all the listed requirements, +but must have achieved several. - Enabled [2FA](https://docs.github.com/en/github/authenticating-to-github/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication) on your Github account - The contributor has opened and successfully run medium to large PR’s in the past 6 months. -- The contributor has participated in multiple code reviews of other PR’s, including those of other maintainers and contributors. -- The contributor showed a consistent pattern of helpful, non-threatening, and friendly behaviour towards other community members in the past. -- The contributor is active on Traefik Community forums or other technical forums / boards such as K8S slack, Reddit, StackOverflow, hacker news. +- The contributor has participated in multiple code reviews of other PR’s, + including those of other maintainers and contributors. +- The contributor showed a consistent pattern of helpful, non-threatening, and friendly behavior towards other community members in the past. +- The contributor is active on Traefik Community forums + or other technical forums/boards such as K8S slack, Reddit, StackOverflow, hacker news. - Have read and accepted the contributor guidelines. ## Maintainers responsibilities and privileges -There are lots of areas where you can contribute to the project but we can suggest you start with activities such as: +There are lots of areas where you can contribute to the project, +but we can suggest you start with activities such as: - PR reviewing. - - According to our guidelines we require you have at least 3 reviewers, thus you can review a PR and leave the relevant comment if it is necessary. + - According to our guidelines we require you have at least 3 reviewers, + thus you can review a PR and leave the relevant comment if it is necessary. - Participating in a daily [issue triage](https://github.com/traefik/contributors-guide/blob/master/issue_triage.md). - - The process helps to understand and prioritize the reported issue according to its importance and severity. This is crucial in order to learn how our users implement Traefik. Each of the issues that are labeled as bug/possible bug/confirmed requires a reproducible use case. You can help in creating a reproducible use case if it has not been added to the issue or use the sample code provided by the reporter. Typically, a simple docker compose should be enough to reproduce the issue. + - The process helps to understand and prioritize the reported issue according to its importance and severity. + This is crucial to learn how our users implement Traefik. + Each of the issues that are labeled as bug/possible bug/confirmed requires a reproducible use case. + You can help in creating a reproducible use case if it has not been added to the issue + or use the sample code provided by the reporter. + Typically, a simple docker compose should be enough to reproduce the issue. - Code contribution. - Documentation contribution. - - Technical documentation is one of the most important components of the product. The ability to set up a testing environment using Traefik in a few minutes using the official documentation is a game changer. -- You will be listed on our Maintainers Github page as well as on our website in the section [maintainers](maintainers.md). -- We will be promoting you in social channels (mostly on Twitter). + - Technical documentation is one of the most important components of the product. + The ability to set up a testing environment in a few minutes, + using the official documentation, + is a game changer. +- You will be listed on our Maintainers Github page + as well as on our website in the section [maintainers](maintainers.md). +- We will be promoting you on social channels (mostly on Twitter). ## Governance @@ -43,31 +65,65 @@ There are lots of areas where you can contribute to the project but we can sugge ## Communicating -- All of our maintainers are added to Slack #traefik-maintainers channel that belongs to Traefik labs workspace. Having the team in one place helps us to communicate effectively. You can reach Traefik core developers directly, which offers the possibility to discuss issues, pull requests, enhancements more efficiently and get the feedback almost immediately. Fewer blockers mean more fun and engaging work. -- We publish a report to the channel on a daily basis that includes all the activities performed during the day. You are updated in regards to the workload that has been processed including: working on the new features and enhancements, activities related to the reported issues and PR’s, other important project-related announcements. -- At 5:00 PM CET every day we review all the created issues that have been reported, assign the specific *[labels](maintainers.md#labels)* and prioritize them based on the severity of the problem. The process is called *[issue triaging](https://github.com/traefik/contributors-guide/blob/master/issue_triage.md).* Each of the maintainers is welcome to join the meeting. For that purpose, we use a dedicated Discord server where you are invited once you have become the official maintainer. +- All of our maintainers are added to Slack #traefik-maintainers channel that belongs to Traefik labs workspace. + Having the team in one place helps us to communicate effectively. + You can reach Traefik core developers directly, + which offers the possibility to discuss issues, pull requests, enhancements more efficiently + and get the feedback almost immediately. + Fewer blockers mean more fun and engaging work. + +- On a daily basis, we publish a report that includes all the activities performed during the day. + You are updated in regard to the workload that has been processed including: + working on the new features and enhancements, + activities related to the reported issues and PR’s, + other important project-related announcements. + +- At 5:00 PM CET every day we review all the created issues that have been reported, + assign them the appropriate *[labels](maintainers.md#labels)* + and prioritize them based on the severity of the problem. + The process is called *[issue triaging](https://github.com/traefik/contributors-guide/blob/master/issue_triage.md)*. + Each of the maintainers is welcome to join the meeting. + For that purpose, we use a dedicated Discord server + where you are invited once you have become the official maintainer. ## Maintainers Activity -In order to keep the core team efficient and dynamic, maintainers activity and involvement will be reviewed on a regular basis. +In order to keep the core team efficient and dynamic, +maintainers' activity and involvement will be reviewed on a regular basis. - Has the maintainer engaged with the team and the community by meeting two or more of these benchmarks in the past six months? - Has the maintainer participated in at least two or three maintainer meetings? - Substantial review of at least one or two PRs from either contributors or maintainers. - - Opened at least one or two bug fixes or feature request PRs that were eventually merged (or on a trajectory for merge). + - Opened at least one or two bug fixes or feature request PRs + that were eventually merged (or on a trajectory for merge). - Substantial participation in the Help Wanted program (answered questions, helped identify issues, applied guidelines from the Help Wanted guide to open issues). - Substantial participation with the community in general. -- Has the maintainer shown a consistent pattern of helpful, non-threatening, and friendly behavior towards other people on the maintainer team and with our community? + +- Has the maintainer shown a consistent pattern of helpful, + non-threatening, + and friendly behavior towards other people on the maintainer team and with our community? ## Additional comments for (not only) maintainers - Be able to put yourself in users’ shoes. - Be open-minded and respectful with other maintainers and other community members. -- Keep the communication public - if anyone tries to communicate with you directly, ask him politely to move the conversation to a public communication channel. +- Keep the communication public - + if anyone tries to communicate with you directly, + ask him politely to move the conversation to a public communication channel. - Stay away from defensive comments. -- Please try to express your thoughts clearly enough and note that some of us are not native English speakers. Try to rephrase your sentences, avoiding mental shortcuts; none of us is able to predict your thoughts. -- There are a lot of use cases of using Traefik and even more issues that are difficult to reproduce. If the issue can’t be replicated due to a lack of reproducible case (a simple docker compose should be enough) - set your own time limits while working on the issue and express it clearly that you were not able to replicate it. You can come back later to that case. +- Please try to express your thoughts clearly enough + and note that some of us are not native English speakers. + Try to rephrase your sentences, avoiding mental shortcuts; + none of us is able to predict your thoughts. +- There are a lot of use cases of using Traefik + and even more issues that are difficult to reproduce. + If the issue can’t be replicated due to a lack of reproducible case (a simple docker compose should be enough) - + set your time limits while working on the issue + and express clearly that you were not able to replicate it. + You can come back later to that case. - Be proactive. -- Emoji are fine, but if you express yourself clearly enough they are not necessary. They will not replace good communication. +- Emoji are fine, + but if you express yourself clearly enough they are not necessary. + They will not replace good communication. - Embrace mentorship. - Keep in mind that we all have the same intent to improve the project. From 5ca210fa60381fb923e3aa8f83ae8a5ed2dd0f85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ABl=20Valais?= Date: Fri, 18 Jun 2021 18:14:07 +0200 Subject: [PATCH 15/22] gateway-api: fix the "values" field in the example of httproute --- docs/content/routing/providers/kubernetes-gateway.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/routing/providers/kubernetes-gateway.md b/docs/content/routing/providers/kubernetes-gateway.md index f9e0772e4..3a413d3af 100644 --- a/docs/content/routing/providers/kubernetes-gateway.md +++ b/docs/content/routing/providers/kubernetes-gateway.md @@ -136,7 +136,7 @@ Kubernetes cluster before creating `HTTPRoute` objects. - headers: # [8] type: Exact # [9] values: # [10] - - foo: bar + foo: bar forwardTo: # [11] - serviceName: whoami # [12] weight: 1 # [13] From 95e0633b2ff46e6d60bb46127e5e73aa9bec41da Mon Sep 17 00:00:00 2001 From: Daniel Tomcej Date: Fri, 18 Jun 2021 09:43:10 -0700 Subject: [PATCH 16/22] Create buffered signals channel --- cmd/context.go | 20 -------------------- cmd/traefik/traefik.go | 4 +++- 2 files changed, 3 insertions(+), 21 deletions(-) delete mode 100644 cmd/context.go diff --git a/cmd/context.go b/cmd/context.go deleted file mode 100644 index 867cb3f72..000000000 --- a/cmd/context.go +++ /dev/null @@ -1,20 +0,0 @@ -package cmd - -import ( - "context" - "os" - "os/signal" - "syscall" -) - -// ContextWithSignal creates a context canceled when SIGINT or SIGTERM are notified. -func ContextWithSignal(ctx context.Context) context.Context { - newCtx, cancel := context.WithCancel(ctx) - signals := make(chan os.Signal) - signal.Notify(signals, syscall.SIGINT, syscall.SIGTERM) - go func() { - <-signals - cancel() - }() - return newCtx -} diff --git a/cmd/traefik/traefik.go b/cmd/traefik/traefik.go index 0a772de1e..887b00c95 100644 --- a/cmd/traefik/traefik.go +++ b/cmd/traefik/traefik.go @@ -6,9 +6,11 @@ import ( stdlog "log" "net/http" "os" + "os/signal" "path/filepath" "sort" "strings" + "syscall" "time" "github.com/coreos/go-systemd/daemon" @@ -119,7 +121,7 @@ func runCmd(staticConfiguration *static.Configuration) error { return err } - ctx := cmd.ContextWithSignal(context.Background()) + ctx, _ := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM) if staticConfiguration.Experimental != nil && staticConfiguration.Experimental.DevPlugin != nil { var cancel context.CancelFunc From 99a23b0414e683470777b90ee6cab00933c22acb Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Fri, 18 Jun 2021 19:24:17 +0200 Subject: [PATCH 17/22] Use a dynamic buffer to handle client Hello SNI detection --- pkg/tcp/router.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkg/tcp/router.go b/pkg/tcp/router.go index ea0f406e7..32080b446 100644 --- a/pkg/tcp/router.go +++ b/pkg/tcp/router.go @@ -15,6 +15,8 @@ import ( "github.com/traefik/traefik/v2/pkg/types" ) +const defaultBufSize = 4096 + // Router is a TCP router. type Router struct { routingTable map[string]Handler @@ -228,6 +230,11 @@ func clientHelloServerName(br *bufio.Reader) (string, bool, string, error) { } recLen := int(hdr[3])<<8 | int(hdr[4]) // ignoring version in hdr[1:3] + + if recordHeaderLen+recLen > defaultBufSize { + br = bufio.NewReaderSize(br, recordHeaderLen+recLen) + } + helloBytes, err := br.Peek(recordHeaderLen + recLen) if err != nil { log.Errorf("Error while Hello: %s", err) From c9df233d246d2f35579d35bb09a10cc06016f078 Mon Sep 17 00:00:00 2001 From: Tom Moulard Date: Sat, 19 Jun 2021 00:08:08 +0200 Subject: [PATCH 18/22] Changing default file format for the snippets from TOML to YAML --- docs/content/contributing/data-collection.md | 76 +- .../getting-started/configuration-overview.md | 20 +- docs/content/getting-started/faq.md | 10 +- .../getting-started/install-traefik.md | 22 +- docs/content/https/acme.md | 232 +++--- .../include-acme-multiple-domains-example.md | 24 +- ...acme-multiple-domains-from-rule-example.md | 18 +- .../include-acme-single-domain-example.md | 18 +- docs/content/https/tls.md | 232 +++--- docs/content/middlewares/addprefix.md | 18 +- docs/content/middlewares/basicauth.md | 102 +-- docs/content/middlewares/buffering.md | 86 +- docs/content/middlewares/chain.md | 56 +- docs/content/middlewares/circuitbreaker.md | 14 +- docs/content/middlewares/compress.md | 24 +- docs/content/middlewares/contenttype.md | 15 +- docs/content/middlewares/digestauth.md | 88 +-- docs/content/middlewares/errorpages.md | 24 +- docs/content/middlewares/forwardauth.md | 168 ++-- docs/content/middlewares/headers.md | 70 +- docs/content/middlewares/inflightreq.md | 84 +- docs/content/middlewares/ipwhitelist.md | 48 +- docs/content/middlewares/overview.md | 40 +- docs/content/middlewares/passtlsclientcert.md | 66 +- docs/content/middlewares/ratelimit.md | 116 +-- docs/content/middlewares/redirectregex.md | 18 +- docs/content/middlewares/redirectscheme.md | 62 +- docs/content/middlewares/replacepath.md | 14 +- docs/content/middlewares/replacepathregex.md | 18 +- docs/content/middlewares/retry.md | 16 +- docs/content/middlewares/stripprefix.md | 28 +- docs/content/middlewares/stripprefixregex.md | 12 +- docs/content/migration/v1-to-v2.md | 516 ++++++------ docs/content/observability/access-logs.md | 106 +-- docs/content/observability/logs.md | 40 +- docs/content/observability/metrics/datadog.md | 58 +- .../content/observability/metrics/influxdb.md | 118 +-- .../content/observability/metrics/overview.md | 8 +- .../observability/metrics/prometheus.md | 78 +- docs/content/observability/metrics/statsd.md | 72 +- docs/content/observability/tracing/datadog.md | 58 +- docs/content/observability/tracing/elastic.md | 46 +- .../content/observability/tracing/haystack.md | 94 +-- docs/content/observability/tracing/instana.md | 46 +- docs/content/observability/tracing/jaeger.md | 142 ++-- .../content/observability/tracing/overview.md | 28 +- docs/content/observability/tracing/zipkin.md | 58 +- docs/content/operations/api.md | 40 +- docs/content/operations/dashboard.md | 32 +- .../operations/include-api-examples.md | 28 +- .../operations/include-dashboard-examples.md | 28 +- docs/content/operations/ping.md | 46 +- docs/content/providers/consul-catalog.md | 248 +++--- docs/content/providers/consul.md | 98 +-- docs/content/providers/docker.md | 224 +++--- docs/content/providers/ecs.md | 82 +- docs/content/providers/etcd.md | 98 +-- docs/content/providers/file.md | 184 ++--- docs/content/providers/http.md | 84 +- docs/content/providers/kubernetes-crd.md | 98 +-- docs/content/providers/kubernetes-gateway.md | 88 +-- docs/content/providers/kubernetes-ingress.md | 128 +-- docs/content/providers/marathon.md | 234 +++--- docs/content/providers/overview.md | 24 +- docs/content/providers/rancher.md | 100 +-- docs/content/providers/redis.md | 98 +-- docs/content/providers/zookeeper.md | 98 +-- .../reference/dynamic-configuration/file.md | 8 +- .../reference/static-configuration/cli-ref.md | 2 +- .../reference/static-configuration/env-ref.md | 2 +- .../reference/static-configuration/file.md | 8 +- docs/content/routing/entrypoints.md | 618 +++++++-------- docs/content/routing/overview.md | 246 +++--- docs/content/routing/providers/docker.md | 34 +- .../routing/providers/kubernetes-ingress.md | 102 +-- docs/content/routing/routers/index.md | 732 +++++++++--------- docs/content/routing/services/index.md | 666 ++++++++-------- docs/content/user-guides/grpc.md | 142 ++-- pkg/provider/file/file.go | 2 +- 79 files changed, 3965 insertions(+), 3964 deletions(-) diff --git a/docs/content/contributing/data-collection.md b/docs/content/contributing/data-collection.md index 0f8e6078b..c230a23e7 100644 --- a/docs/content/contributing/data-collection.md +++ b/docs/content/contributing/data-collection.md @@ -9,19 +9,19 @@ Understanding how you use Traefik is very important to us: it helps us improve t For this very reason, the sendAnonymousUsage option is mandatory: we want you to take time to consider whether or not you wish to share anonymous data with us so we can benefit from your experience and use cases. !!! example "Enabling Data Collection" - - ```toml tab="File (TOML)" - [global] - # Send anonymous usage data - sendAnonymousUsage = true - ``` - + ```yaml tab="File (YAML)" global: # Send anonymous usage data sendAnonymousUsage: true ``` - + + ```toml tab="File (TOML)" + [global] + # Send anonymous usage data + sendAnonymousUsage = true + ``` + ```bash tab="CLI" # Send anonymous usage data --global.sendAnonymousUsage @@ -45,49 +45,51 @@ Once a day (the first call begins 10 minutes after the start of Traefik), we col - an **anonymized version** of the static configuration (token, user name, password, URL, IP, domain, email, etc, are removed). !!! info - + - We do not collect the dynamic configuration information (routers & services). - We do not collect this data to run advertising programs. - We do not sell this data to third-parties. ### Example of Collected Data -```toml tab="Original configuration" -[entryPoints] - [entryPoints.web] - address = ":80" +```yaml tab="Original configuration" +entryPoints: + web: + address: ":80" -[api] +api: {} -[providers.docker] - endpoint = "tcp://10.10.10.10:2375" - exposedByDefault = true - swarmMode = true +providers: + docker: + endpoint: "tcp://10.10.10.10:2375" + exposedByDefault: true + swarmMode: true - [providers.docker.TLS] - ca = "dockerCA" - cert = "dockerCert" - key = "dockerKey" - insecureSkipVerify = true + tls: + ca: dockerCA + cert: dockerCert + key: dockerKey + insecureSkipVerify: true ``` -```toml tab="Resulting Obfuscated Configuration" -[entryPoints] - [entryPoints.web] - address = ":80" +```yaml tab="Resulting Obfuscated Configuration" +entryPoints: + web: + address: ":80" -[api] +api: {} -[providers.docker] - endpoint = "xxxx" - exposedByDefault = true - swarmMode = true +providers: + docker: + endpoint: "xxxx" + exposedByDefault: true + swarmMode: true - [providers.docker.TLS] - ca = "xxxx" - cert = "xxxx" - key = "xxxx" - insecureSkipVerify = true + tls: + ca: xxxx + cert: xxxx + key: xxxx + insecureSkipVerify: true ``` ## The Code for Data Collection diff --git a/docs/content/getting-started/configuration-overview.md b/docs/content/getting-started/configuration-overview.md index 51bcb69a3..425e2a74d 100644 --- a/docs/content/getting-started/configuration-overview.md +++ b/docs/content/getting-started/configuration-overview.md @@ -13,13 +13,13 @@ Configuration in Traefik can refer to two different things: Elements in the _static configuration_ set up connections to [providers](../providers/overview.md) and define the [entrypoints](../routing/entrypoints.md) Traefik will listen to (these elements don't change often). The _dynamic configuration_ contains everything that defines how the requests are handled by your system. -This configuration can change and is seamlessly hot-reloaded, without any request interruption or connection loss. +This configuration can change and is seamlessly hot-reloaded, without any request interruption or connection loss. !!! warning "Incompatible Configuration" Please be aware that the old configurations for Traefik v1.x are NOT compatible with the v2.x config as of now. If you are running v2, please ensure you are using a v2 configuration. -## The Dynamic Configuration +## The Dynamic Configuration Traefik gets its _dynamic configuration_ from [providers](../providers/overview.md): whether an orchestrator, a service registry, or a plain old configuration file. @@ -28,11 +28,11 @@ Since this configuration is specific to your infrastructure choices, we invite y !!! info "" In the [Quick Start example](../getting-started/quick-start.md), the dynamic configuration comes from docker in the form of labels attached to your containers. - + !!! info "HTTPS Certificates also belong to the dynamic configuration." - - You can add / update / remove them without restarting your Traefik instance. - + + You can add / update / remove them without restarting your Traefik instance. + ## The Static Configuration There are three different, **mutually exclusive** (i.e. you can use only one at the same time), ways to define static configuration options in Traefik: @@ -45,13 +45,13 @@ These ways are evaluated in the order listed above. If no value was provided for a given option, a default value applies. Moreover, if an option has sub-options, and any of these sub-options is not specified, a default value will apply as well. - + For example, the `--providers.docker` option is enough by itself to enable the docker provider, even though sub-options like `--providers.docker.endpoint` exist. Once positioned, this option sets (and resets) all the default values of the sub-options of `--providers.docker`. - + ### Configuration File -At startup, Traefik searches for a file named `traefik.toml` (or `traefik.yml` or `traefik.yaml`) in: +At startup, Traefik searches for a file named `traefik.yml` (or `traefik.yaml` or `traefik.toml`) in: - `/etc/traefik/` - `$XDG_CONFIG_HOME/` @@ -61,7 +61,7 @@ At startup, Traefik searches for a file named `traefik.toml` (or `traefik.yml` o You can override this using the `configFile` argument. ```bash -traefik --configFile=foo/bar/myconfigfile.toml +traefik --configFile=foo/bar/myconfigfile.yml ``` ### Arguments diff --git a/docs/content/getting-started/faq.md b/docs/content/getting-started/faq.md index 89d678116..66ae963af 100644 --- a/docs/content/getting-started/faq.md +++ b/docs/content/getting-started/faq.md @@ -35,7 +35,7 @@ Traefik returns a `404` response code in the following situations: - An HTTPS request reaching an EntryPoint that has no HTTPS Router - A request reaching an EntryPoint that has HTTP/HTTPS Routers that cannot be matched -From Traefik's point of view, +From Traefik's point of view, every time a request cannot be matched with a router the correct response code is a `404 Not found`. In this situation, the response code is not a `503 Service Unavailable` @@ -52,7 +52,7 @@ hence it's not possible to assume at any moment that a specific route should be some delay. If known, the length of the delay MAY be indicated in a Retry-After header. If no Retry-After is given, the client SHOULD handle the response as it would for a 500 response. - + Note: The existence of the 503 status code does not imply that a server must use it when becoming overloaded. Some servers may wish to simply refuse the connection. @@ -66,7 +66,7 @@ Traefik returns a `502` response code when an error happens while contacting the ### `503 Service Unavailable` -Traefik returns a `503` response code when a Router has been matched +Traefik returns a `503` response code when a Router has been matched but there are no servers ready to handle the request. This situation is encountered when a service has been explicitly configured without servers, @@ -79,14 +79,14 @@ Sometimes, the `404` response code doesn't play well with other parties or servi In these situations, you may want Traefik to always reply with a `503` response code, instead of a `404` response code. -To achieve this behavior, a simple catchall router, +To achieve this behavior, a simple catchall router, with the lowest possible priority and routing to a service without servers, can handle all the requests when no other router has been matched. The example below is a file provider only version (`yaml`) of what this configuration could look like: ```yaml tab="Static configuration" -# traefik.yaml +# traefik.yml entrypoints: web: diff --git a/docs/content/getting-started/install-traefik.md b/docs/content/getting-started/install-traefik.md index c2948a591..8a5aef403 100644 --- a/docs/content/getting-started/install-traefik.md +++ b/docs/content/getting-started/install-traefik.md @@ -11,12 +11,12 @@ You can install Traefik with the following flavors: Choose one of the [official Docker images](https://hub.docker.com/_/traefik) and run it with one sample configuration file: -* [TOML](https://raw.githubusercontent.com/traefik/traefik/v2.4/traefik.sample.toml) * [YAML](https://raw.githubusercontent.com/traefik/traefik/v2.4/traefik.sample.yml) +* [TOML](https://raw.githubusercontent.com/traefik/traefik/v2.4/traefik.sample.toml) ```bash docker run -d -p 8080:8080 -p 80:80 \ - -v $PWD/traefik.toml:/etc/traefik/traefik.toml traefik:v2.4 + -v $PWD/traefik.yml:/etc/traefik/traefik.yml traefik:v2.4 ``` For more details, go to the [Docker provider documentation](../providers/docker.md) @@ -31,8 +31,8 @@ For more details, go to the [Docker provider documentation](../providers/docker. ## Use the Helm Chart !!! warning - - The Traefik Chart from + + The Traefik Chart from [Helm's default charts repository](https://github.com/helm/charts/tree/master/stable/traefik) is still using [Traefik v1.7](https://doc.traefik.io/traefik/v1.7). Traefik can be installed in Kubernetes using the Helm chart from . @@ -61,7 +61,7 @@ helm install traefik traefik/traefik ``` !!! tip "Helm Features" - + All [Helm features](https://helm.sh/docs/intro/using_helm/) are supported. For instance, installing the chart in a dedicated namespace: @@ -73,30 +73,30 @@ helm install traefik traefik/traefik ``` ??? example "Installing with Custom Values" - + You can customize the installation by specifying custom values, as with [any helm chart](https://helm.sh/docs/intro/using_helm/#customizing-the-chart-before-installing). {: #helm-custom-values } - + The values are not (yet) documented, but are self-explanatory: you can look at the [default `values.yaml`](https://github.com/traefik/traefik-helm-chart/blob/master/traefik/values.yaml) file to explore possibilities. - + You can also set Traefik command line flags using `additionalArguments`. Example of installation with logging set to `DEBUG`: - + ```bash tab="Using Helm CLI" helm install --namespace=traefik-v2 \ --set="additionalArguments={--log.level=DEBUG}" \ traefik traefik/traefik ``` - + ```yml tab="With a custom values file" # File custom-values.yml ## Install with "helm install --values=./custom-values.yml traefik traefik/traefik additionalArguments: - "--log.level=DEBUG" ``` - + ### Exposing the Traefik dashboard This HelmChart does not expose the Traefik dashboard by default, for security concerns. diff --git a/docs/content/https/acme.md b/docs/content/https/acme.md index 36426bda5..0383d0fd3 100644 --- a/docs/content/https/acme.md +++ b/docs/content/https/acme.md @@ -13,7 +13,7 @@ You can configure Traefik to use an ACME provider (like Let's Encrypt) for autom ## Certificate Resolvers -Traefik requires you to define "Certificate Resolvers" in the [static configuration](../getting-started/configuration-overview.md#the-static-configuration), +Traefik requires you to define "Certificate Resolvers" in the [static configuration](../getting-started/configuration-overview.md#the-static-configuration), which are responsible for retrieving certificates from an ACME server. Then, each ["router"](../routing/routers/index.md) is configured to enable TLS, @@ -26,33 +26,33 @@ You can read more about this retrieval mechanism in the following section: [ACME !!! important "Defining a certificates resolver does not result in all routers automatically using it. Each router that is supposed to use the resolver must [reference](../routing/routers/index.md#certresolver) it." ??? note "Configuration Reference" - + There are many available options for ACME. For a quick glance at what's possible, browse the configuration reference: - - ```toml tab="File (TOML)" - --8<-- "content/https/ref-acme.toml" - ``` - + ```yaml tab="File (YAML)" --8<-- "content/https/ref-acme.yaml" ``` - + + ```toml tab="File (TOML)" + --8<-- "content/https/ref-acme.toml" + ``` + ```bash tab="CLI" --8<-- "content/https/ref-acme.txt" ``` ## Domain Definition -Certificate resolvers request certificates for a set of the domain names +Certificate resolvers request certificates for a set of the domain names inferred from routers, with the following logic: - If the router has a [`tls.domains`](../routing/routers/index.md#domains) option set, then the certificate resolver uses the `main` (and optionally `sans`) option of `tls.domains` to know the domain names for this router. -- If no [`tls.domains`](../routing/routers/index.md#domains) option is set, - then the certificate resolver uses the [router's rule](../routing/routers/index.md#rule), - by checking the `Host()` matchers. +- If no [`tls.domains`](../routing/routers/index.md#domains) option is set, + then the certificate resolver uses the [router's rule](../routing/routers/index.md#rule), + by checking the `Host()` matchers. Please note that [multiple `Host()` matchers can be used](../routing/routers/index.md#certresolver)) for specifying multiple domain names for this router. Please note that: @@ -69,31 +69,15 @@ Please check the [configuration examples below](#configuration-examples) for mor ## Configuration Examples ??? example "Enabling ACME" - - ```toml tab="File (TOML)" - [entryPoints] - [entryPoints.web] - address = ":80" - - [entryPoints.websecure] - address = ":443" - - [certificatesResolvers.myresolver.acme] - email = "your-email@example.com" - storage = "acme.json" - [certificatesResolvers.myresolver.acme.httpChallenge] - # used during the challenge - entryPoint = "web" - ``` - + ```yaml tab="File (YAML)" entryPoints: web: address: ":80" - + websecure: address: ":443" - + certificatesResolvers: myresolver: acme: @@ -103,7 +87,23 @@ Please check the [configuration examples below](#configuration-examples) for mor # used during the challenge entryPoint: web ``` - + + ```toml tab="File (TOML)" + [entryPoints] + [entryPoints.web] + address = ":80" + + [entryPoints.websecure] + address = ":443" + + [certificatesResolvers.myresolver.acme] + email = "your-email@example.com" + storage = "acme.json" + [certificatesResolvers.myresolver.acme.httpChallenge] + # used during the challenge + entryPoint = "web" + ``` + ```bash tab="CLI" --entrypoints.web.address=:80 --entrypoints.websecure.address=:443 @@ -117,23 +117,23 @@ Please check the [configuration examples below](#configuration-examples) for mor !!! important "Defining a certificates resolver does not result in all routers automatically using it. Each router that is supposed to use the resolver must [reference](../routing/routers/index.md#certresolver) it." ??? example "Single Domain from Router's Rule Example" - + * A certificate for the domain `example.com` is requested: --8<-- "content/https/include-acme-single-domain-example.md" ??? example "Multiple Domains from Router's Rule Example" - + * A certificate for the domains `example.com` (main) and `blog.example.org` is requested: - + --8<-- "content/https/include-acme-multiple-domains-from-rule-example.md" - + ??? example "Multiple Domains from Router's `tls.domain` Example" * A certificate for the domains `example.com` (main) and `*.example.org` (SAN) is requested: - + --8<-- "content/https/include-acme-multiple-domains-example.md" ## Automatic Renewals @@ -165,12 +165,6 @@ when using the `TLS-ALPN-01` challenge, Traefik must be reachable by Let's Encry ??? example "Configuring the `tlsChallenge`" - ```toml tab="File (TOML)" - [certificatesResolvers.myresolver.acme] - # ... - [certificatesResolvers.myresolver.acme.tlsChallenge] - ``` - ```yaml tab="File (YAML)" certificatesResolvers: myresolver: @@ -178,7 +172,13 @@ when using the `TLS-ALPN-01` challenge, Traefik must be reachable by Let's Encry # ... tlsChallenge: {} ``` - + + ```toml tab="File (TOML)" + [certificatesResolvers.myresolver.acme] + # ... + [certificatesResolvers.myresolver.acme.tlsChallenge] + ``` + ```bash tab="CLI" # ... --certificatesresolvers.myresolver.acme.tlschallenge=true @@ -193,28 +193,14 @@ when using the `HTTP-01` challenge, `certificatesresolvers.myresolver.acme.httpc ??? example "Using an EntryPoint Called web for the `httpChallenge`" - ```toml tab="File (TOML)" - [entryPoints] - [entryPoints.web] - address = ":80" - - [entryPoints.websecure] - address = ":443" - - [certificatesResolvers.myresolver.acme] - # ... - [certificatesResolvers.myresolver.acme.httpChallenge] - entryPoint = "web" - ``` - ```yaml tab="File (YAML)" entryPoints: web: address: ":80" - + websecure: address: ":443" - + certificatesResolvers: myresolver: acme: @@ -222,7 +208,21 @@ when using the `HTTP-01` challenge, `certificatesresolvers.myresolver.acme.httpc httpChallenge: entryPoint: web ``` - + + ```toml tab="File (TOML)" + [entryPoints] + [entryPoints.web] + address = ":80" + + [entryPoints.websecure] + address = ":443" + + [certificatesResolvers.myresolver.acme] + # ... + [certificatesResolvers.myresolver.acme.httpChallenge] + entryPoint = "web" + ``` + ```bash tab="CLI" --entrypoints.web.address=:80 --entrypoints.websecure.address=:443 @@ -239,15 +239,6 @@ Use the `DNS-01` challenge to generate and renew ACME certificates by provisioni ??? example "Configuring a `dnsChallenge` with the DigitalOcean Provider" - ```toml tab="File (TOML)" - [certificatesResolvers.myresolver.acme] - # ... - [certificatesResolvers.myresolver.acme.dnsChallenge] - provider = "digitalocean" - delayBeforeCheck = 0 - # ... - ``` - ```yaml tab="File (YAML)" certificatesResolvers: myresolver: @@ -258,7 +249,16 @@ Use the `DNS-01` challenge to generate and renew ACME certificates by provisioni delayBeforeCheck: 0 # ... ``` - + + ```toml tab="File (TOML)" + [certificatesResolvers.myresolver.acme] + # ... + [certificatesResolvers.myresolver.acme.dnsChallenge] + provider = "digitalocean" + delayBeforeCheck = 0 + # ... + ``` + ```bash tab="CLI" # ... --certificatesresolvers.myresolver.acme.dnschallenge.provider=digitalocean @@ -270,7 +270,7 @@ Use the `DNS-01` challenge to generate and renew ACME certificates by provisioni A `provider` is mandatory. #### `providers` - + Here is a list of supported `providers`, that can automate the DNS verification, along with the required environment variables and their [wildcard & root domain support](#wildcard-domains). Do not hesitate to complete it. @@ -388,14 +388,6 @@ For complete details, refer to your provider's _Additional configuration_ link. Use custom DNS servers to resolve the FQDN authority. -```toml tab="File (TOML)" -[certificatesResolvers.myresolver.acme] - # ... - [certificatesResolvers.myresolver.acme.dnsChallenge] - # ... - resolvers = ["1.1.1.1:53", "8.8.8.8:53"] -``` - ```yaml tab="File (YAML)" certificatesResolvers: myresolver: @@ -408,6 +400,14 @@ certificatesResolvers: - "8.8.8.8:53" ``` +```toml tab="File (TOML)" +[certificatesResolvers.myresolver.acme] + # ... + [certificatesResolvers.myresolver.acme.dnsChallenge] + # ... + resolvers = ["1.1.1.1:53", "8.8.8.8:53"] +``` + ```bash tab="CLI" # ... --certificatesresolvers.myresolver.acme.dnschallenge.resolvers=1.1.1.1:53,8.8.8.8:53 @@ -423,14 +423,6 @@ As described in [Let's Encrypt's post](https://community.letsencrypt.org/t/stagi - `kid`: Key identifier from External CA - `hmacEncoded`: HMAC key from External CA, should be in Base64 URL Encoding without padding format -```toml tab="File (TOML)" -[certificatesResolvers.myresolver.acme] - # ... - [certificatesResolvers.myresolver.acme.eab] - kid = "abc-keyID-xyz" - hmacEncoded = "abc-hmac-xyz" -``` - ```yaml tab="File (YAML)" certificatesResolvers: myresolver: @@ -441,6 +433,14 @@ certificatesResolvers: hmacEncoded: abc-hmac-xyz ``` +```toml tab="File (TOML)" +[certificatesResolvers.myresolver.acme] + # ... + [certificatesResolvers.myresolver.acme.eab] + kid = "abc-keyID-xyz" + hmacEncoded = "abc-hmac-xyz" +``` + ```bash tab="CLI" # ... --certificatesresolvers.myresolver.acme.eab.kid=abc-keyID-xyz @@ -460,13 +460,6 @@ The CA server to use: ??? example "Using the Let's Encrypt staging server" - ```toml tab="File (TOML)" - [certificatesResolvers.myresolver.acme] - # ... - caServer = "https://acme-staging-v02.api.letsencrypt.org/directory" - # ... - ``` - ```yaml tab="File (YAML)" certificatesResolvers: myresolver: @@ -476,6 +469,13 @@ The CA server to use: # ... ``` + ```toml tab="File (TOML)" + [certificatesResolvers.myresolver.acme] + # ... + caServer = "https://acme-staging-v02.api.letsencrypt.org/directory" + # ... + ``` + ```bash tab="CLI" # ... --certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory @@ -488,13 +488,6 @@ _Required, Default="acme.json"_ The `storage` option sets the location where your ACME certificates are saved to. -```toml tab="File (TOML)" -[certificatesResolvers.myresolver.acme] - # ... - storage = "acme.json" - # ... -``` - ```yaml tab="File (YAML)" certificatesResolvers: myresolver: @@ -504,6 +497,13 @@ certificatesResolvers: # ... ``` +```toml tab="File (TOML)" +[certificatesResolvers.myresolver.acme] + # ... + storage = "acme.json" + # ... +``` + ```bash tab="CLI" # ... --certificatesresolvers.myresolver.acme.storage=acme.json @@ -534,13 +534,6 @@ Preferred chain to use. If the CA offers multiple certificate chains, prefer the chain with an issuer matching this Subject Common Name. If no match, the default offered chain will be used. -```toml tab="File (TOML)" -[certificatesResolvers.myresolver.acme] - # ... - preferredChain = "ISRG Root X1" - # ... -``` - ```yaml tab="File (YAML)" certificatesResolvers: myresolver: @@ -550,6 +543,13 @@ certificatesResolvers: # ... ``` +```toml tab="File (TOML)" +[certificatesResolvers.myresolver.acme] + # ... + preferredChain = "ISRG Root X1" + # ... +``` + ```bash tab="CLI" # ... --certificatesresolvers.myresolver.acme.preferredChain="ISRG Root X1" @@ -562,13 +562,6 @@ _Optional, Default="RSA4096"_ KeyType used for generating certificate private key. Allow value 'EC256', 'EC384', 'RSA2048', 'RSA4096', 'RSA8192'. -```toml tab="File (TOML)" -[certificatesResolvers.myresolver.acme] - # ... - keyType = "RSA4096" - # ... -``` - ```yaml tab="File (YAML)" certificatesResolvers: myresolver: @@ -578,6 +571,13 @@ certificatesResolvers: # ... ``` +```toml tab="File (TOML)" +[certificatesResolvers.myresolver.acme] + # ... + keyType = "RSA4096" + # ... +``` + ```bash tab="CLI" # ... --certificatesresolvers.myresolver.acme.keyType="RSA4096" diff --git a/docs/content/https/include-acme-multiple-domains-example.md b/docs/content/https/include-acme-multiple-domains-example.md index 7fbeb9e06..8107eb24f 100644 --- a/docs/content/https/include-acme-multiple-domains-example.md +++ b/docs/content/https/include-acme-multiple-domains-example.md @@ -64,18 +64,6 @@ labels: - traefik.http.routers.blog.tls.domains[0].sans=*.example.org ``` -```toml tab="File (TOML)" -## Dynamic configuration -[http.routers] - [http.routers.blog] - rule = "Host(`example.com`) && Path(`/blog`)" - [http.routers.blog.tls] - certResolver = "myresolver" # From static configuration - [[http.routers.blog.tls.domains]] - main = "example.org" - sans = ["*.example.org"] -``` - ```yaml tab="File (YAML)" ## Dynamic configuration http: @@ -89,3 +77,15 @@ http: sans: - "*.example.org" ``` + +```toml tab="File (TOML)" +## Dynamic configuration +[http.routers] + [http.routers.blog] + rule = "Host(`example.com`) && Path(`/blog`)" + [http.routers.blog.tls] + certResolver = "myresolver" # From static configuration + [[http.routers.blog.tls.domains]] + main = "example.org" + sans = ["*.example.org"] +``` diff --git a/docs/content/https/include-acme-multiple-domains-from-rule-example.md b/docs/content/https/include-acme-multiple-domains-from-rule-example.md index 4bf9b23c4..01252360b 100644 --- a/docs/content/https/include-acme-multiple-domains-from-rule-example.md +++ b/docs/content/https/include-acme-multiple-domains-from-rule-example.md @@ -52,15 +52,6 @@ labels: - traefik.http.routers.blog.tls.certresolver=myresolver ``` -```toml tab="File (TOML)" -## Dynamic configuration -[http.routers] - [http.routers.blog] - rule = "(Host(`example.com`) && Path(`/blog`)) || Host(`blog.example.org`)" - [http.routers.blog.tls] - certResolver = "myresolver" -``` - ```yaml tab="File (YAML)" ## Dynamic configuration http: @@ -70,3 +61,12 @@ http: tls: certResolver: myresolver ``` + +```toml tab="File (TOML)" +## Dynamic configuration +[http.routers] + [http.routers.blog] + rule = "(Host(`example.com`) && Path(`/blog`)) || Host(`blog.example.org`)" + [http.routers.blog.tls] + certResolver = "myresolver" +``` diff --git a/docs/content/https/include-acme-single-domain-example.md b/docs/content/https/include-acme-single-domain-example.md index e3aea2309..30bfa9229 100644 --- a/docs/content/https/include-acme-single-domain-example.md +++ b/docs/content/https/include-acme-single-domain-example.md @@ -52,15 +52,6 @@ labels: - traefik.http.routers.blog.tls.certresolver=myresolver ``` -```toml tab="File (TOML)" -## Dynamic configuration -[http.routers] - [http.routers.blog] - rule = "Host(`example.com`) && Path(`/blog`)" - [http.routers.blog.tls] - certResolver = "myresolver" -``` - ```yaml tab="File (YAML)" ## Dynamic configuration http: @@ -70,3 +61,12 @@ http: tls: certResolver: myresolver ``` + +```toml tab="File (TOML)" +## Dynamic configuration +[http.routers] + [http.routers.blog] + rule = "Host(`example.com`) && Path(`/blog`)" + [http.routers.blog.tls] + certResolver = "myresolver" +``` diff --git a/docs/content/https/tls.md b/docs/content/https/tls.md index e8513a746..be1ec3cbf 100644 --- a/docs/content/https/tls.md +++ b/docs/content/https/tls.md @@ -13,18 +13,6 @@ See the [Let's Encrypt](./acme.md) page. To add / remove TLS certificates, even when Traefik is already running, their definition can be added to the [dynamic configuration](../getting-started/configuration-overview.md), in the `[[tls.certificates]]` section: -```toml tab="File (TOML)" -# Dynamic configuration - -[[tls.certificates]] - certFile = "/path/to/domain.cert" - keyFile = "/path/to/domain.key" - -[[tls.certificates]] - certFile = "/path/to/other-domain.cert" - keyFile = "/path/to/other-domain.key" -``` - ```yaml tab="File (YAML)" # Dynamic configuration @@ -36,23 +24,28 @@ tls: keyFile: /path/to/other-domain.key ``` +```toml tab="File (TOML)" +# Dynamic configuration + +[[tls.certificates]] + certFile = "/path/to/domain.cert" + keyFile = "/path/to/domain.key" + +[[tls.certificates]] + certFile = "/path/to/other-domain.cert" + keyFile = "/path/to/other-domain.key" +``` + !!! important "Restriction" In the above example, we've used the [file provider](../providers/file.md) to handle these definitions. It is the only available method to configure the certificates (as well as the options and the stores). - However, in [Kubernetes](../providers/kubernetes-crd.md), the certificates can and must be provided by [secrets](https://kubernetes.io/docs/concepts/configuration/secret/). + However, in [Kubernetes](../providers/kubernetes-crd.md), the certificates can and must be provided by [secrets](https://kubernetes.io/docs/concepts/configuration/secret/). ## Certificates Stores In Traefik, certificates are grouped together in certificates stores, which are defined as such: -```toml tab="File (TOML)" -# Dynamic configuration - -[tls.stores] - [tls.stores.default] -``` - ```yaml tab="File (YAML)" # Dynamic configuration @@ -61,6 +54,13 @@ tls: default: {} ``` +```toml tab="File (TOML)" +# Dynamic configuration + +[tls.stores] + [tls.stores.default] +``` + !!! important "Restriction" Any store definition other than the default one (named `default`) will be ignored, @@ -68,21 +68,6 @@ tls: In the `tls.certificates` section, a list of stores can then be specified to indicate where the certificates should be stored: -```toml tab="File (TOML)" -# Dynamic configuration - -[[tls.certificates]] - certFile = "/path/to/domain.cert" - keyFile = "/path/to/domain.key" - stores = ["default"] - -[[tls.certificates]] - # Note that since no store is defined, - # the certificate below will be stored in the `default` store. - certFile = "/path/to/other-domain.cert" - keyFile = "/path/to/other-domain.key" -``` - ```yaml tab="File (YAML)" # Dynamic configuration @@ -98,6 +83,21 @@ tls: keyFile: /path/to/other-domain.key ``` +```toml tab="File (TOML)" +# Dynamic configuration + +[[tls.certificates]] + certFile = "/path/to/domain.cert" + keyFile = "/path/to/domain.key" + stores = ["default"] + +[[tls.certificates]] + # Note that since no store is defined, + # the certificate below will be stored in the `default` store. + certFile = "/path/to/other-domain.cert" + keyFile = "/path/to/other-domain.key" +``` + !!! important "Restriction" The `stores` list will actually be ignored and automatically set to `["default"]`. @@ -107,16 +107,6 @@ tls: Traefik can use a default certificate for connections without a SNI, or without a matching domain. This default certificate should be defined in a TLS store: -```toml tab="File (TOML)" -# Dynamic configuration - -[tls.stores] - [tls.stores.default] - [tls.stores.default.defaultCertificate] - certFile = "path/to/cert.crt" - keyFile = "path/to/cert.key" -``` - ```yaml tab="File (YAML)" # Dynamic configuration @@ -128,6 +118,16 @@ tls: keyFile: path/to/cert.key ``` +```toml tab="File (TOML)" +# Dynamic configuration + +[tls.stores] + [tls.stores.default] + [tls.stores.default.defaultCertificate] + certFile = "path/to/cert.crt" + keyFile = "path/to/cert.key" +``` + If no default certificate is provided, Traefik generates and uses a self-signed certificate. ## TLS Options @@ -155,18 +155,6 @@ The TLS options allow one to configure some parameters of the TLS connection. ### Minimum TLS Version -```toml tab="File (TOML)" -# Dynamic configuration - -[tls.options] - - [tls.options.default] - minVersion = "VersionTLS12" - - [tls.options.mintls13] - minVersion = "VersionTLS13" -``` - ```yaml tab="File (YAML)" # Dynamic configuration @@ -179,6 +167,18 @@ tls: minVersion: VersionTLS13 ``` +```toml tab="File (TOML)" +# Dynamic configuration + +[tls.options] + + [tls.options.default] + minVersion = "VersionTLS12" + + [tls.options.mintls13] + minVersion = "VersionTLS13" +``` + ```yaml tab="Kubernetes" apiVersion: traefik.containo.us/v1alpha1 kind: TLSOption @@ -206,18 +206,6 @@ We discourage the use of this setting to disable TLS1.3. The recommended approach is to update the clients to support TLS1.3. -```toml tab="File (TOML)" -# Dynamic configuration - -[tls.options] - - [tls.options.default] - maxVersion = "VersionTLS13" - - [tls.options.maxtls12] - maxVersion = "VersionTLS12" -``` - ```yaml tab="File (YAML)" # Dynamic configuration @@ -230,6 +218,18 @@ tls: maxVersion: VersionTLS12 ``` +```toml tab="File (TOML)" +# Dynamic configuration + +[tls.options] + + [tls.options.default] + maxVersion = "VersionTLS13" + + [tls.options.maxtls12] + maxVersion = "VersionTLS12" +``` + ```yaml tab="Kubernetes" apiVersion: traefik.containo.us/v1alpha1 kind: TLSOption @@ -255,16 +255,6 @@ spec: See [cipherSuites](https://godoc.org/crypto/tls#pkg-constants) for more information. -```toml tab="File (TOML)" -# Dynamic configuration - -[tls.options] - [tls.options.default] - cipherSuites = [ - "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" - ] -``` - ```yaml tab="File (YAML)" # Dynamic configuration @@ -275,6 +265,16 @@ tls: - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ``` +```toml tab="File (TOML)" +# Dynamic configuration + +[tls.options] + [tls.options.default] + cipherSuites = [ + "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" + ] +``` + ```yaml tab="Kubernetes" apiVersion: traefik.containo.us/v1alpha1 kind: TLSOption @@ -301,14 +301,6 @@ The names of the curves defined by [`crypto`](https://godoc.org/crypto/tls#Curve See [CurveID](https://godoc.org/crypto/tls#CurveID) for more information. -```toml tab="File (TOML)" -# Dynamic configuration - -[tls.options] - [tls.options.default] - curvePreferences = ["CurveP521", "CurveP384"] -``` - ```yaml tab="File (YAML)" # Dynamic configuration @@ -320,6 +312,14 @@ tls: - CurveP384 ``` +```toml tab="File (TOML)" +# Dynamic configuration + +[tls.options] + [tls.options.default] + curvePreferences = ["CurveP521", "CurveP384"] +``` + ```yaml tab="Kubernetes" apiVersion: traefik.containo.us/v1alpha1 kind: TLSOption @@ -338,14 +338,6 @@ spec: With strict SNI checking enabled, Traefik won't allow connections from clients that do not specify a server_name extension or don't match any certificate configured on the tlsOption. -```toml tab="File (TOML)" -# Dynamic configuration - -[tls.options] - [tls.options.default] - sniStrict = true -``` - ```yaml tab="File (YAML)" # Dynamic configuration @@ -355,6 +347,14 @@ tls: sniStrict: true ``` +```toml tab="File (TOML)" +# Dynamic configuration + +[tls.options] + [tls.options.default] + sniStrict = true +``` + ```yaml tab="Kubernetes" apiVersion: traefik.containo.us/v1alpha1 kind: TLSOption @@ -371,14 +371,6 @@ spec: This option allows the server to choose its most preferred cipher suite instead of the client's. Please note that this is enabled automatically when `minVersion` or `maxVersion` are set. -```toml tab="File (TOML)" -# Dynamic configuration - -[tls.options] - [tls.options.default] - preferServerCipherSuites = true -``` - ```yaml tab="File (YAML)" # Dynamic configuration @@ -388,6 +380,14 @@ tls: preferServerCipherSuites: true ``` +```toml tab="File (TOML)" +# Dynamic configuration + +[tls.options] + [tls.options.default] + preferServerCipherSuites = true +``` + ```yaml tab="Kubernetes" apiVersion: traefik.containo.us/v1alpha1 kind: TLSOption @@ -404,25 +404,14 @@ spec: Traefik supports mutual authentication, through the `clientAuth` section. For authentication policies that require verification of the client certificate, the certificate authority for the certificate should be set in `clientAuth.caFiles`. - + The `clientAuth.clientAuthType` option governs the behaviour as follows: - `NoClientCert`: disregards any client certificate. - `RequestClientCert`: asks for a certificate but proceeds anyway if none is provided. - `RequireAnyClientCert`: requires a certificate but does not verify if it is signed by a CA listed in `clientAuth.caFiles`. - `VerifyClientCertIfGiven`: if a certificate is provided, verifies if it is signed by a CA listed in `clientAuth.caFiles`. Otherwise proceeds without any certificate. -- `RequireAndVerifyClientCert`: requires a certificate, which must be signed by a CA listed in `clientAuth.caFiles`. - -```toml tab="File (TOML)" -# Dynamic configuration - -[tls.options] - [tls.options.default] - [tls.options.default.clientAuth] - # in PEM format. each file can contain multiple CAs. - caFiles = ["tests/clientca1.crt", "tests/clientca2.crt"] - clientAuthType = "RequireAndVerifyClientCert" -``` +- `RequireAndVerifyClientCert`: requires a certificate, which must be signed by a CA listed in `clientAuth.caFiles`. ```yaml tab="File (YAML)" # Dynamic configuration @@ -438,6 +427,17 @@ tls: clientAuthType: RequireAndVerifyClientCert ``` +```toml tab="File (TOML)" +# Dynamic configuration + +[tls.options] + [tls.options.default] + [tls.options.default.clientAuth] + # in PEM format. each file can contain multiple CAs. + caFiles = ["tests/clientca1.crt", "tests/clientca2.crt"] + clientAuthType = "RequireAndVerifyClientCert" +``` + ```yaml tab="Kubernetes" apiVersion: traefik.containo.us/v1alpha1 kind: TLSOption diff --git a/docs/content/middlewares/addprefix.md b/docs/content/middlewares/addprefix.md index fb33e8552..98835a270 100644 --- a/docs/content/middlewares/addprefix.md +++ b/docs/content/middlewares/addprefix.md @@ -1,9 +1,9 @@ # Add Prefix -Prefixing the Path +Prefixing the Path {: .subtitle } -![AddPrefix](../assets/img/middleware/addprefix.png) +![AddPrefix](../assets/img/middleware/addprefix.png) The AddPrefix middleware updates the path of a request before forwarding it. @@ -43,13 +43,6 @@ labels: - "traefik.http.middlewares.add-foo.addprefix.prefix=/foo" ``` -```toml tab="File (TOML)" -# Prefixing with /foo -[http.middlewares] - [http.middlewares.add-foo.addPrefix] - prefix = "/foo" -``` - ```yaml tab="File (YAML)" # Prefixing with /foo http: @@ -59,6 +52,13 @@ http: prefix: "/foo" ``` +```toml tab="File (TOML)" +# Prefixing with /foo +[http.middlewares] + [http.middlewares.add-foo.addPrefix] + prefix = "/foo" +``` + ## Configuration Options ### `prefix` diff --git a/docs/content/middlewares/basicauth.md b/docs/content/middlewares/basicauth.md index be9691357..450a30514 100644 --- a/docs/content/middlewares/basicauth.md +++ b/docs/content/middlewares/basicauth.md @@ -48,16 +48,6 @@ labels: - "traefik.http.middlewares.test-auth.basicauth.users=test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/,test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0" ``` -```toml tab="File (TOML)" -# Declaring the user list -[http.middlewares] - [http.middlewares.test-auth.basicAuth] - users = [ - "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/", - "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0", - ] -``` - ```yaml tab="File (YAML)" # Declaring the user list http: @@ -65,17 +55,27 @@ http: test-auth: basicAuth: users: - - "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/" + - "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/" - "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0" ``` +```toml tab="File (TOML)" +# Declaring the user list +[http.middlewares] + [http.middlewares.test-auth.basicAuth] + users = [ + "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/", + "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0", + ] +``` + ## Configuration Options ### General Passwords must be hashed using MD5, SHA1, or BCrypt. -!!! tip +!!! tip Use `htpasswd` to generate the passwords. @@ -84,7 +84,7 @@ Passwords must be hashed using MD5, SHA1, or BCrypt. The `users` option is an array of authorized users. Each user must be declared using the `name:hashed-password` format. !!! note "" - + - If both `users` and `usersFile` are provided, the two are merged. The contents of `usersFile` have precedence over the values in `users`. - For security reasons, the field `users` doesn't exist for Kubernetes IngressRoute, and one should use the `secret` field instead. @@ -142,16 +142,6 @@ labels: - "traefik.http.middlewares.test-auth.basicauth.users=test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/,test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0" ``` -```toml tab="File (TOML)" -# Declaring the user list -[http.middlewares] - [http.middlewares.test-auth.basicAuth] - users = [ - "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/", - "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0", - ] -``` - ```yaml tab="File (YAML)" # Declaring the user list http: @@ -159,10 +149,20 @@ http: test-auth: basicAuth: users: - - "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/" + - "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/" - "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0" ``` +```toml tab="File (TOML)" +# Declaring the user list +[http.middlewares] + [http.middlewares.test-auth.basicAuth] + users = [ + "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/", + "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0", + ] +``` + ### `usersFile` The `usersFile` option is the path to an external file that contains the authorized users for the middleware. @@ -170,9 +170,9 @@ The `usersFile` option is the path to an external file that contains the authori The file content is a list of `name:hashed-password`. !!! note "" - + - If both `users` and `usersFile` are provided, the two are merged. The contents of `usersFile` have precedence over the values in `users`. - - Because it does not make much sense to refer to a file path on Kubernetes, the `usersFile` field doesn't exist for Kubernetes IngressRoute, and one should use the `secret` field instead. + - Because it does not make much sense to refer to a file path on Kubernetes, the `usersFile` field doesn't exist for Kubernetes IngressRoute, and one should use the `secret` field instead. ```yaml tab="Docker" labels: @@ -216,12 +216,6 @@ labels: - "traefik.http.middlewares.test-auth.basicauth.usersfile=/path/to/my/usersfile" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.test-auth.basicAuth] - usersFile = "/path/to/my/usersfile" -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -230,6 +224,12 @@ http: usersFile: "/path/to/my/usersfile" ``` +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.test-auth.basicAuth] + usersFile = "/path/to/my/usersfile" +``` + ??? example "A file containing test/test and test2/test2" ```txt @@ -239,7 +239,7 @@ http: ### `realm` -You can customize the realm for the authentication with the `realm` option. The default value is `traefik`. +You can customize the realm for the authentication with the `realm` option. The default value is `traefik`. ```yaml tab="Docker" labels: @@ -271,12 +271,6 @@ labels: - "traefik.http.middlewares.test-auth.basicauth.realm=MyRealm" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.test-auth.basicAuth] - realm = "MyRealm" -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -285,6 +279,12 @@ http: realm: "MyRealm" ``` +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.test-auth.basicAuth] + realm = "MyRealm" +``` + ### `headerField` You can define a header field to store the authenticated user using the `headerField`option. @@ -315,12 +315,6 @@ spec: } ``` -```toml tab="File (TOML)" -[http.middlewares.my-auth.basicAuth] - # ... - headerField = "X-WebAuth-User" -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -330,6 +324,12 @@ http: headerField: "X-WebAuth-User" ``` +```toml tab="File (TOML)" +[http.middlewares.my-auth.basicAuth] + # ... + headerField = "X-WebAuth-User" +``` + ### `removeHeader` Set the `removeHeader` option to `true` to remove the authorization header before forwarding the request to your service. (Default value is `false`.) @@ -364,12 +364,6 @@ labels: - "traefik.http.middlewares.test-auth.basicauth.removeheader=true" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.test-auth.basicAuth] - removeHeader = true -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -377,3 +371,9 @@ http: basicAuth: removeHeader: true ``` + +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.test-auth.basicAuth] + removeHeader = true +``` diff --git a/docs/content/middlewares/buffering.md b/docs/content/middlewares/buffering.md index d455981a4..e996286b6 100644 --- a/docs/content/middlewares/buffering.md +++ b/docs/content/middlewares/buffering.md @@ -47,13 +47,6 @@ labels: - "traefik.http.middlewares.limit.buffering.maxRequestBodyBytes=2000000" ``` -```toml tab="File (TOML)" -# Sets the maximum request body to 2MB -[http.middlewares] - [http.middlewares.limit.buffering] - maxRequestBodyBytes = 2000000 -``` - ```yaml tab="File (YAML)" # Sets the maximum request body to 2MB http: @@ -63,6 +56,13 @@ http: maxRequestBodyBytes: 2000000 ``` +```toml tab="File (TOML)" +# Sets the maximum request body to 2MB +[http.middlewares] + [http.middlewares.limit.buffering] + maxRequestBodyBytes = 2000000 +``` + ## Configuration Options ### `maxRequestBodyBytes` @@ -101,12 +101,6 @@ labels: - "traefik.http.middlewares.limit.buffering.maxRequestBodyBytes=2000000" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.limit.buffering] - maxRequestBodyBytes = 2000000 -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -115,6 +109,12 @@ http: maxRequestBodyBytes: 2000000 ``` +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.limit.buffering] + maxRequestBodyBytes = 2000000 +``` + ### `memRequestBodyBytes` You can configure a threshold (in bytes) from which the request will be buffered on disk instead of in memory with the `memRequestBodyBytes` option. @@ -149,12 +149,6 @@ labels: - "traefik.http.middlewares.limit.buffering.memRequestBodyBytes=2000000" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.limit.buffering] - memRequestBodyBytes = 2000000 -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -163,6 +157,12 @@ http: memRequestBodyBytes: 2000000 ``` +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.limit.buffering] + memRequestBodyBytes = 2000000 +``` + ### `maxResponseBodyBytes` The `maxResponseBodyBytes` option configures the maximum allowed response size from the service (in bytes). @@ -199,12 +199,6 @@ labels: - "traefik.http.middlewares.limit.buffering.maxResponseBodyBytes=2000000" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.limit.buffering] - maxResponseBodyBytes = 2000000 -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -213,6 +207,12 @@ http: maxResponseBodyBytes: 2000000 ``` +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.limit.buffering] + maxResponseBodyBytes = 2000000 +``` + ### `memResponseBodyBytes` You can configure a threshold (in bytes) from which the response will be buffered on disk instead of in memory with the `memResponseBodyBytes` option. @@ -247,12 +247,6 @@ labels: - "traefik.http.middlewares.limit.buffering.memResponseBodyBytes=2000000" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.limit.buffering] - memResponseBodyBytes = 2000000 -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -261,17 +255,23 @@ http: memResponseBodyBytes: 2000000 ``` +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.limit.buffering] + memResponseBodyBytes = 2000000 +``` + ### `retryExpression` You can have the Buffering middleware replay the request using `retryExpression`. ??? example "Retries once in the case of a network error" - + ```yaml tab="Docker" labels: - "traefik.http.middlewares.limit.buffering.retryExpression=IsNetworkError() && Attempts() < 2" ``` - + ```yaml tab="Kubernetes" apiVersion: traefik.containo.us/v1alpha1 kind: Middleware @@ -281,28 +281,22 @@ You can have the Buffering middleware replay the request using `retryExpression` buffering: retryExpression: "IsNetworkError() && Attempts() < 2" ``` - + ```yaml tab="Consul Catalog" - "traefik.http.middlewares.limit.buffering.retryExpression=IsNetworkError() && Attempts() < 2" ``` - + ```json tab="Marathon" "labels": { "traefik.http.middlewares.limit.buffering.retryExpression": "IsNetworkError() && Attempts() < 2" } ``` - + ```yaml tab="Rancher" labels: - "traefik.http.middlewares.limit.buffering.retryExpression=IsNetworkError() && Attempts() < 2" ``` - - ```toml tab="File (TOML)" - [http.middlewares] - [http.middlewares.limit.buffering] - retryExpression = "IsNetworkError() && Attempts() < 2" - ``` - + ```yaml tab="File (YAML)" http: middlewares: @@ -311,6 +305,12 @@ You can have the Buffering middleware replay the request using `retryExpression` retryExpression: "IsNetworkError() && Attempts() < 2" ``` + ```toml tab="File (TOML)" + [http.middlewares] + [http.middlewares.limit.buffering] + retryExpression = "IsNetworkError() && Attempts() < 2" + ``` + The retry expression is defined as a logical combination of the functions below with the operators AND (`&&`) and OR (`||`). At least one function is required: - `Attempts()` number of attempts (the first one counts) diff --git a/docs/content/middlewares/chain.md b/docs/content/middlewares/chain.md index 146b5d2ca..ec82a20e2 100644 --- a/docs/content/middlewares/chain.md +++ b/docs/content/middlewares/chain.md @@ -117,34 +117,6 @@ labels: - "traefik.http.services.service1.loadbalancer.server.port=80" ``` -```toml tab="File (TOML)" -# ... -[http.routers] - [http.routers.router1] - service = "service1" - middlewares = ["secured"] - rule = "Host(`mydomain`)" - -[http.middlewares] - [http.middlewares.secured.chain] - middlewares = ["https-only", "known-ips", "auth-users"] - - [http.middlewares.auth-users.basicAuth] - users = ["test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/"] - - [http.middlewares.https-only.redirectScheme] - scheme = "https" - - [http.middlewares.known-ips.ipWhiteList] - sourceRange = ["192.168.1.7", "127.0.0.1/32"] - -[http.services] - [http.services.service1] - [http.services.service1.loadBalancer] - [[http.services.service1.loadBalancer.servers]] - url = "http://127.0.0.1:80" -``` - ```yaml tab="File (YAML)" # ... http: @@ -184,3 +156,31 @@ http: servers: - url: "http://127.0.0.1:80" ``` + +```toml tab="File (TOML)" +# ... +[http.routers] + [http.routers.router1] + service = "service1" + middlewares = ["secured"] + rule = "Host(`mydomain`)" + +[http.middlewares] + [http.middlewares.secured.chain] + middlewares = ["https-only", "known-ips", "auth-users"] + + [http.middlewares.auth-users.basicAuth] + users = ["test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/"] + + [http.middlewares.https-only.redirectScheme] + scheme = "https" + + [http.middlewares.known-ips.ipWhiteList] + sourceRange = ["192.168.1.7", "127.0.0.1/32"] + +[http.services] + [http.services.service1] + [http.services.service1.loadBalancer] + [[http.services.service1.loadBalancer.servers]] + url = "http://127.0.0.1:80" +``` diff --git a/docs/content/middlewares/circuitbreaker.md b/docs/content/middlewares/circuitbreaker.md index 14ffa91b4..a173fd1dc 100644 --- a/docs/content/middlewares/circuitbreaker.md +++ b/docs/content/middlewares/circuitbreaker.md @@ -59,13 +59,6 @@ labels: - "traefik.http.middlewares.latency-check.circuitbreaker.expression=LatencyAtQuantileMS(50.0) > 100" ``` -```toml tab="File (TOML)" -# Latency Check -[http.middlewares] - [http.middlewares.latency-check.circuitBreaker] - expression = "LatencyAtQuantileMS(50.0) > 100" -``` - ```yaml tab="File (YAML)" # Latency Check http: @@ -75,6 +68,13 @@ http: expression: "LatencyAtQuantileMS(50.0) > 100" ``` +```toml tab="File (TOML)" +# Latency Check +[http.middlewares] + [http.middlewares.latency-check.circuitBreaker] + expression = "LatencyAtQuantileMS(50.0) > 100" +``` + ## Possible States There are three possible states for your circuit breaker: diff --git a/docs/content/middlewares/compress.md b/docs/content/middlewares/compress.md index 311820e67..9e71e910f 100644 --- a/docs/content/middlewares/compress.md +++ b/docs/content/middlewares/compress.md @@ -42,12 +42,6 @@ labels: - "traefik.http.middlewares.test-compress.compress=true" ``` -```toml tab="File (TOML)" -# Enable gzip compression -[http.middlewares] - [http.middlewares.test-compress.compress] -``` - ```yaml tab="File (YAML)" # Enable gzip compression http: @@ -56,6 +50,12 @@ http: compress: {} ``` +```toml tab="File (TOML)" +# Enable gzip compression +[http.middlewares] + [http.middlewares.test-compress.compress] +``` + !!! info Responses are compressed when the following criteria are all met: @@ -108,12 +108,6 @@ labels: - "traefik.http.middlewares.test-compress.compress.excludedcontenttypes=text/event-stream" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.test-compress.compress] - excludedContentTypes = ["text/event-stream"] -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -122,3 +116,9 @@ http: excludedContentTypes: - text/event-stream ``` + +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.test-compress.compress] + excludedContentTypes = ["text/event-stream"] +``` diff --git a/docs/content/middlewares/contenttype.md b/docs/content/middlewares/contenttype.md index 941384882..2d738759c 100644 --- a/docs/content/middlewares/contenttype.md +++ b/docs/content/middlewares/contenttype.md @@ -1,4 +1,3 @@ - # ContentType Handling Content-Type auto-detection @@ -62,13 +61,6 @@ labels: - "traefik.http.middlewares.autodetect.contenttype.autodetect=false" ``` -```toml tab="File (TOML)" -# Disable auto-detection -[http.middlewares] - [http.middlewares.autodetect.contentType] - autoDetect=false -``` - ```yaml tab="File (YAML)" # Disable auto-detection http: @@ -78,6 +70,13 @@ http: autoDetect: false ``` +```toml tab="File (TOML)" +# Disable auto-detection +[http.middlewares] + [http.middlewares.autodetect.contentType] + autoDetect=false +``` + ## Configuration Options ### `autoDetect` diff --git a/docs/content/middlewares/digestauth.md b/docs/content/middlewares/digestauth.md index ccdaa6979..529dc71c6 100644 --- a/docs/content/middlewares/digestauth.md +++ b/docs/content/middlewares/digestauth.md @@ -43,16 +43,6 @@ labels: - "traefik.http.middlewares.test-auth.digestauth.users=test:traefik:a2688e031edb4be6a3797f3882655c05,test2:traefik:518845800f9e2bfb1f1f740ec24f074e" ``` -```toml tab="File (TOML)" -# Declaring the user list -[http.middlewares] - [http.middlewares.test-auth.digestAuth] - users = [ - "test:traefik:a2688e031edb4be6a3797f3882655c05", - "test2:traefik:518845800f9e2bfb1f1f740ec24f074e", - ] -``` - ```yaml tab="File (YAML)" # Declaring the user list http: @@ -64,6 +54,16 @@ http: - "test2:traefik:518845800f9e2bfb1f1f740ec24f074e" ``` +```toml tab="File (TOML)" +# Declaring the user list +[http.middlewares] + [http.middlewares.test-auth.digestAuth] + users = [ + "test:traefik:a2688e031edb4be6a3797f3882655c05", + "test2:traefik:518845800f9e2bfb1f1f740ec24f074e", + ] +``` + ## Configuration Options !!! tip @@ -120,15 +120,6 @@ labels: - "traefik.http.middlewares.test-auth.digestauth.users=test:traefik:a2688e031edb4be6a3797f3882655c05,test2:traefik:518845800f9e2bfb1f1f740ec24f074e" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.test-auth.digestAuth] - users = [ - "test:traefik:a2688e031edb4be6a3797f3882655c05", - "test2:traefik:518845800f9e2bfb1f1f740ec24f074e", - ] -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -139,6 +130,15 @@ http: - "test2:traefik:518845800f9e2bfb1f1f740ec24f074e" ``` +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.test-auth.digestAuth] + users = [ + "test:traefik:a2688e031edb4be6a3797f3882655c05", + "test2:traefik:518845800f9e2bfb1f1f740ec24f074e", + ] +``` + ### `usersFile` The `usersFile` option is the path to an external file that contains the authorized users for the middleware. @@ -148,7 +148,7 @@ The file content is a list of `name:realm:encoded-password`. !!! note "" - If both `users` and `usersFile` are provided, the two are merged. The contents of `usersFile` have precedence over the values in `users`. - - Because it does not make much sense to refer to a file path on Kubernetes, the `usersFile` field doesn't exist for Kubernetes IngressRoute, and one should use the `secret` field instead. + - Because it does not make much sense to refer to a file path on Kubernetes, the `usersFile` field doesn't exist for Kubernetes IngressRoute, and one should use the `secret` field instead. ```yaml tab="Docker" labels: @@ -192,12 +192,6 @@ labels: - "traefik.http.middlewares.test-auth.digestauth.usersfile=/path/to/my/usersfile" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.test-auth.digestAuth] - usersFile = "/path/to/my/usersfile" -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -206,6 +200,12 @@ http: usersFile: "/path/to/my/usersfile" ``` +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.test-auth.digestAuth] + usersFile = "/path/to/my/usersfile" +``` + ??? example "A file containing test/test and test2/test2" ```txt @@ -247,12 +247,6 @@ labels: - "traefik.http.middlewares.test-auth.digestauth.realm=MyRealm" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.test-auth.digestAuth] - realm = "MyRealm" -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -261,6 +255,12 @@ http: realm: "MyRealm" ``` +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.test-auth.digestAuth] + realm = "MyRealm" +``` + ### `headerField` You can customize the header field for the authenticated user using the `headerField`option. @@ -296,12 +296,6 @@ labels: - "traefik.http.middlewares.my-auth.digestauth.headerField=X-WebAuth-User" ``` -```toml tab="File (TOML)" -[http.middlewares.my-auth.digestAuth] - # ... - headerField = "X-WebAuth-User" -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -311,6 +305,12 @@ http: headerField: "X-WebAuth-User" ``` +```toml tab="File (TOML)" +[http.middlewares.my-auth.digestAuth] + # ... + headerField = "X-WebAuth-User" +``` + ### `removeHeader` Set the `removeHeader` option to `true` to remove the authorization header before forwarding the request to your service. (Default value is `false`.) @@ -345,12 +345,6 @@ labels: - "traefik.http.middlewares.test-auth.digestauth.removeheader=true" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.test-auth.digestAuth] - removeHeader = true -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -358,3 +352,9 @@ http: digestAuth: removeHeader: true ``` + +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.test-auth.digestAuth] + removeHeader = true +``` diff --git a/docs/content/middlewares/errorpages.md b/docs/content/middlewares/errorpages.md index fd04d2b8b..cd567732a 100644 --- a/docs/content/middlewares/errorpages.md +++ b/docs/content/middlewares/errorpages.md @@ -58,18 +58,6 @@ labels: - "traefik.http.middlewares.test-errorpage.errors.query=/{status}.html" ``` -```toml tab="File (TOML)" -# Custom Error Page for 5XX -[http.middlewares] - [http.middlewares.test-errorpage.errors] - status = ["500-599"] - service = "serviceError" - query = "/{status}.html" - -[http.services] - # ... definition of error-handler-service and my-service -``` - ```yaml tab="File (YAML)" # Custom Error Page for 5XX http: @@ -81,6 +69,18 @@ http: service: serviceError query: "/{status}.html" + services: + # ... definition of error-handler-service and my-service +``` + +```toml tab="File (TOML)" +# Custom Error Page for 5XX +[http.middlewares] + [http.middlewares.test-errorpage.errors] + status = ["500-599"] + service = "serviceError" + query = "/{status}.html" + [http.services] # ... definition of error-handler-service and my-service ``` diff --git a/docs/content/middlewares/forwardauth.md b/docs/content/middlewares/forwardauth.md index 710d5eb5c..b6a2ad4e2 100644 --- a/docs/content/middlewares/forwardauth.md +++ b/docs/content/middlewares/forwardauth.md @@ -45,13 +45,6 @@ labels: - "traefik.http.middlewares.test-auth.forwardauth.address=https://example.com/auth" ``` -```toml tab="File (TOML)" -# Forward authentication to example.com -[http.middlewares] - [http.middlewares.test-auth.forwardAuth] - address = "https://example.com/auth" -``` - ```yaml tab="File (YAML)" # Forward authentication to example.com http: @@ -61,6 +54,13 @@ http: address: "https://example.com/auth" ``` +```toml tab="File (TOML)" +# Forward authentication to example.com +[http.middlewares] + [http.middlewares.test-auth.forwardAuth] + address = "https://example.com/auth" +``` + ## Forward-Request Headers The following request properties are provided to the forward-auth target endpoint as `X-Forwarded-` headers. @@ -91,7 +91,7 @@ metadata: name: test-auth spec: forwardAuth: - address: https://example.com/auth + address: https://example.com/auth ``` ```yaml tab="Consul Catalog" @@ -109,12 +109,6 @@ labels: - "traefik.http.middlewares.test-auth.forwardauth.address=https://example.com/auth" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.test-auth.forwardAuth] - address = "https://example.com/auth" -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -123,6 +117,12 @@ http: address: "https://example.com/auth" ``` +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.test-auth.forwardAuth] + address = "https://example.com/auth" +``` + ### `trustForwardHeader` Set the `trustForwardHeader` option to `true` to trust all `X-Forwarded-*` headers. @@ -158,13 +158,6 @@ labels: - "traefik.http.middlewares.test-auth.forwardauth.trustForwardHeader=true" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.test-auth.forwardAuth] - address = "https://example.com/auth" - trustForwardHeader = true -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -174,6 +167,13 @@ http: trustForwardHeader: true ``` +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.test-auth.forwardAuth] + address = "https://example.com/auth" + trustForwardHeader = true +``` + ### `authResponseHeaders` The `authResponseHeaders` option is the list of headers to copy from the authentication server response and set on @@ -212,13 +212,6 @@ labels: - "traefik.http.middlewares.test-auth.forwardauth.authResponseHeaders=X-Auth-User, X-Secret" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.test-auth.forwardAuth] - address = "https://example.com/auth" - authResponseHeaders = ["X-Auth-User", "X-Secret"] -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -230,6 +223,13 @@ http: - "X-Secret" ``` +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.test-auth.forwardAuth] + address = "https://example.com/auth" + authResponseHeaders = ["X-Auth-User", "X-Secret"] +``` + ### `authResponseHeadersRegex` The `authResponseHeadersRegex` option is the regex to match headers to copy from the authentication server response and @@ -268,13 +268,6 @@ labels: - "traefik.http.middlewares.test-auth.forwardauth.authResponseHeadersRegex=^X-" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.test-auth.forwardAuth] - address = "https://example.com/auth" - authResponseHeadersRegex = "^X-" -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -284,6 +277,13 @@ http: authResponseHeadersRegex: "^X-" ``` +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.test-auth.forwardAuth] + address = "https://example.com/auth" + authResponseHeadersRegex = "^X-" +``` + ### `authRequestHeaders` The `authRequestHeaders` option is the list of the headers to copy from the request to the authentication server. @@ -323,13 +323,6 @@ labels: - "traefik.http.middlewares.test-auth.forwardauth.authRequestHeaders=Accept,X-CustomHeader" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.test-auth.forwardAuth] - address = "https://example.com/auth" - authRequestHeaders = "Accept,X-CustomHeader" -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -341,6 +334,13 @@ http: - "X-CustomHeader" ``` +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.test-auth.forwardAuth] + address = "https://example.com/auth" + authRequestHeaders = "Accept,X-CustomHeader" +``` + ### `tls` The `tls` option is the TLS configuration from Traefik to the authentication server. @@ -391,14 +391,6 @@ labels: - "traefik.http.middlewares.test-auth.forwardauth.tls.ca=path/to/local.crt" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.test-auth.forwardAuth] - address = "https://example.com/auth" - [http.middlewares.test-auth.forwardAuth.tls] - ca = "path/to/local.crt" -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -409,6 +401,14 @@ http: ca: "path/to/local.crt" ``` +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.test-auth.forwardAuth] + address = "https://example.com/auth" + [http.middlewares.test-auth.forwardAuth.tls] + ca = "path/to/local.crt" +``` + #### `tls.caOptional` The value of `tls.caOptional` defines which policy should be used for the secure connection with TLS Client Authentication to the authentication server. @@ -453,14 +453,6 @@ labels: - "traefik.http.middlewares.test-auth.forwardauth.tls.caOptional=true" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.test-auth.forwardAuth] - address = "https://example.com/auth" - [http.middlewares.test-auth.forwardAuth.tls] - caOptional = true -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -471,6 +463,14 @@ http: caOptional: true ``` +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.test-auth.forwardAuth] + address = "https://example.com/auth" + [http.middlewares.test-auth.forwardAuth.tls] + caOptional = true +``` + #### `tls.cert` The public certificate used for the secure connection to the authentication server. @@ -522,15 +522,6 @@ labels: - "traefik.http.middlewares.test-auth.forwardauth.tls.key=path/to/foo.key" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.test-auth.forwardAuth] - address = "https://example.com/auth" - [http.middlewares.test-auth.forwardAuth.tls] - cert = "path/to/foo.cert" - key = "path/to/foo.key" -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -542,6 +533,15 @@ http: key: "path/to/foo.key" ``` +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.test-auth.forwardAuth] + address = "https://example.com/auth" + [http.middlewares.test-auth.forwardAuth.tls] + cert = "path/to/foo.cert" + key = "path/to/foo.key" +``` + !!! info For security reasons, the field does not exist for Kubernetes IngressRoute, and one should use the `secret` field instead. @@ -597,15 +597,6 @@ labels: - "traefik.http.middlewares.test-auth.forwardauth.tls.key=path/to/foo.key" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.test-auth.forwardAuth] - address = "https://example.com/auth" - [http.middlewares.test-auth.forwardAuth.tls] - cert = "path/to/foo.cert" - key = "path/to/foo.key" -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -617,6 +608,15 @@ http: key: "path/to/foo.key" ``` +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.test-auth.forwardAuth] + address = "https://example.com/auth" + [http.middlewares.test-auth.forwardAuth.tls] + cert = "path/to/foo.cert" + key = "path/to/foo.key" +``` + !!! info For security reasons, the field does not exist for Kubernetes IngressRoute, and one should use the `secret` field instead. @@ -657,14 +657,6 @@ labels: - "traefik.http.middlewares.test-auth.forwardauth.tls.InsecureSkipVerify=true" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.test-auth.forwardAuth] - address = "https://example.com/auth" - [http.middlewares.test-auth.forwardAuth.tls] - insecureSkipVerify: true -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -674,3 +666,11 @@ http: tls: insecureSkipVerify: true ``` + +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.test-auth.forwardAuth] + address = "https://example.com/auth" + [http.middlewares.test-auth.forwardAuth.tls] + insecureSkipVerify: true +``` diff --git a/docs/content/middlewares/headers.md b/docs/content/middlewares/headers.md index 349d1aee7..4b95afa3a 100644 --- a/docs/content/middlewares/headers.md +++ b/docs/content/middlewares/headers.md @@ -50,15 +50,6 @@ labels: - "traefik.http.middlewares.testheader.headers.customresponseheaders.X-Custom-Response-Header=value" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.testHeader.headers] - [http.middlewares.testHeader.headers.customRequestHeaders] - X-Script-Name = "test" - [http.middlewares.testHeader.headers.customResponseHeaders] - X-Custom-Response-Header = "value" -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -70,6 +61,15 @@ http: X-Custom-Response-Header: "value" ``` +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.testHeader.headers] + [http.middlewares.testHeader.headers.customRequestHeaders] + X-Script-Name = "test" + [http.middlewares.testHeader.headers.customResponseHeaders] + X-Custom-Response-Header = "value" +``` + ### Adding and Removing Headers In the following example, requests are proxied with an extra `X-Script-Name` header while their `X-Custom-Request-Header` header gets stripped, @@ -117,16 +117,6 @@ labels: - "traefik.http.middlewares.testheader.headers.customresponseheaders.X-Custom-Response-Header=" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.testHeader.headers] - [http.middlewares.testHeader.headers.customRequestHeaders] - X-Script-Name = "test" # Adds - X-Custom-Request-Header = "" # Removes - [http.middlewares.testHeader.headers.customResponseHeaders] - X-Custom-Response-Header = "" # Removes -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -139,6 +129,16 @@ http: X-Custom-Response-Header: "" # Removes ``` +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.testHeader.headers] + [http.middlewares.testHeader.headers.customRequestHeaders] + X-Script-Name = "test" # Adds + X-Custom-Request-Header = "" # Removes + [http.middlewares.testHeader.headers.customResponseHeaders] + X-Custom-Response-Header = "" # Removes +``` + ### Using Security Headers Security-related headers (HSTS headers, SSL redirection, Browser XSS filter, etc) can be managed similarly to custom headers as shown above. @@ -179,13 +179,6 @@ labels: - "traefik.http.middlewares.testheader.headers.sslredirect=true" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.testHeader.headers] - frameDeny = true - sslRedirect = true -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -195,6 +188,13 @@ http: sslRedirect: true ``` +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.testHeader.headers] + frameDeny = true + sslRedirect = true +``` + ### CORS Headers CORS (Cross-Origin Resource Sharing) headers can be added and configured in a manner similar to the custom headers above. @@ -250,15 +250,6 @@ labels: - "traefik.http.middlewares.testheader.headers.addvaryheader=true" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.testHeader.headers] - accessControlAllowMethods= ["GET", "OPTIONS", "PUT"] - accessControlAllowOriginList = ["https://foo.bar.org","https://example.org"] - accessControlMaxAge = 100 - addVaryHeader = true -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -275,6 +266,15 @@ http: addVaryHeader: true ``` +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.testHeader.headers] + accessControlAllowMethods= ["GET", "OPTIONS", "PUT"] + accessControlAllowOriginList = ["https://foo.bar.org","https://example.org"] + accessControlMaxAge = 100 + addVaryHeader = true +``` + ## Configuration Options ### General diff --git a/docs/content/middlewares/inflightreq.md b/docs/content/middlewares/inflightreq.md index fd3ae2dd9..ce9edd7d5 100644 --- a/docs/content/middlewares/inflightreq.md +++ b/docs/content/middlewares/inflightreq.md @@ -41,13 +41,6 @@ labels: - "traefik.http.middlewares.test-inflightreq.inflightreq.amount=10" ``` -```toml tab="File (TOML)" -# Limiting to 10 simultaneous connections -[http.middlewares] - [http.middlewares.test-inflightreq.inFlightReq] - amount = 10 -``` - ```yaml tab="File (YAML)" # Limiting to 10 simultaneous connections http: @@ -57,6 +50,13 @@ http: amount: 10 ``` +```toml tab="File (TOML)" +# Limiting to 10 simultaneous connections +[http.middlewares] + [http.middlewares.test-inflightreq.inFlightReq] + amount = 10 +``` + ## Configuration Options ### `amount` @@ -96,13 +96,6 @@ labels: - "traefik.http.middlewares.test-inflightreq.inflightreq.amount=10" ``` -```toml tab="File (TOML)" -# Limiting to 10 simultaneous connections -[http.middlewares] - [http.middlewares.test-inflightreq.inFlightReq] - amount = 10 -``` - ```yaml tab="File (YAML)" # Limiting to 10 simultaneous connections http: @@ -112,6 +105,13 @@ http: amount: 10 ``` +```toml tab="File (TOML)" +# Limiting to 10 simultaneous connections +[http.middlewares] + [http.middlewares.test-inflightreq.inFlightReq] + amount = 10 +``` + ### `sourceCriterion` The `sourceCriterion` option defines what criterion is used to group requests as originating from a common source. @@ -171,13 +171,6 @@ labels: - "traefik.http.middlewares.test-inflightreq.inflightreq.sourcecriterion.ipstrategy.depth=2" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.test-inflightreq.inflightreq] - [http.middlewares.test-inflightreq.inFlightReq.sourceCriterion.ipStrategy] - depth = 2 -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -188,6 +181,13 @@ http: depth: 2 ``` +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.test-inflightreq.inflightreq] + [http.middlewares.test-inflightreq.inFlightReq.sourceCriterion.ipStrategy] + depth = 2 +``` + ##### `ipStrategy.excludedIPs` `excludedIPs` configures Traefik to scan the `X-Forwarded-For` header and select the first IP not in the list. @@ -238,13 +238,6 @@ labels: - "traefik.http.middlewares.test-inflightreq.inflightreq.sourcecriterion.ipstrategy.excludedips=127.0.0.1/32, 192.168.1.7" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.test-inflightreq.inflightreq] - [http.middlewares.test-inflightreq.inFlightReq.sourceCriterion.ipStrategy] - excludedIPs = ["127.0.0.1/32", "192.168.1.7"] -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -257,6 +250,13 @@ http: - "192.168.1.7" ``` +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.test-inflightreq.inflightreq] + [http.middlewares.test-inflightreq.inFlightReq.sourceCriterion.ipStrategy] + excludedIPs = ["127.0.0.1/32", "192.168.1.7"] +``` + #### `sourceCriterion.requestHeaderName` Name of the header used to group incoming requests. @@ -292,13 +292,6 @@ labels: - "traefik.http.middlewares.test-inflightreq.inflightreq.sourcecriterion.requestheadername=username" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.test-inflightreq.inflightreq] - [http.middlewares.test-inflightreq.inFlightReq.sourceCriterion] - requestHeaderName = "username" -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -308,6 +301,13 @@ http: requestHeaderName: username ``` +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.test-inflightreq.inflightreq] + [http.middlewares.test-inflightreq.inFlightReq.sourceCriterion] + requestHeaderName = "username" +``` + #### `sourceCriterion.requestHost` Whether to consider the request host as the source. @@ -343,13 +343,6 @@ labels: - "traefik.http.middlewares.test-inflightreq.inflightreq.sourcecriterion.requesthost=true" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.test-inflightreq.inflightreq] - [http.middlewares.test-inflightreq.inFlightReq.sourceCriterion] - requestHost = true -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -358,3 +351,10 @@ http: sourceCriterion: requestHost: true ``` + +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.test-inflightreq.inflightreq] + [http.middlewares.test-inflightreq.inFlightReq.sourceCriterion] + requestHost = true +``` diff --git a/docs/content/middlewares/ipwhitelist.md b/docs/content/middlewares/ipwhitelist.md index d09e86971..40aca521f 100644 --- a/docs/content/middlewares/ipwhitelist.md +++ b/docs/content/middlewares/ipwhitelist.md @@ -44,13 +44,6 @@ labels: - "traefik.http.middlewares.test-ipwhitelist.ipwhitelist.sourcerange=127.0.0.1/32, 192.168.1.7" ``` -```toml tab="File (TOML)" -# Accepts request from defined IP -[http.middlewares] - [http.middlewares.test-ipwhitelist.ipWhiteList] - sourceRange = ["127.0.0.1/32", "192.168.1.7"] -``` - ```yaml tab="File (YAML)" # Accepts request from defined IP http: @@ -62,6 +55,13 @@ http: - "192.168.1.7" ``` +```toml tab="File (TOML)" +# Accepts request from defined IP +[http.middlewares] + [http.middlewares.test-ipwhitelist.ipWhiteList] + sourceRange = ["127.0.0.1/32", "192.168.1.7"] +``` + ## Configuration Options ### `sourceRange` @@ -131,15 +131,6 @@ labels: - "traefik.http.middlewares.testIPwhitelist.ipwhitelist.ipstrategy.depth=2" ``` -```toml tab="File (TOML)" -# Whitelisting Based on `X-Forwarded-For` with `depth=2` -[http.middlewares] - [http.middlewares.test-ipwhitelist.ipWhiteList] - sourceRange = ["127.0.0.1/32", "192.168.1.7"] - [http.middlewares.test-ipwhitelist.ipWhiteList.ipStrategy] - depth = 2 -``` - ```yaml tab="File (YAML)" # Whitelisting Based on `X-Forwarded-For` with `depth=2` http: @@ -153,6 +144,15 @@ http: depth: 2 ``` +```toml tab="File (TOML)" +# Whitelisting Based on `X-Forwarded-For` with `depth=2` +[http.middlewares] + [http.middlewares.test-ipwhitelist.ipWhiteList] + sourceRange = ["127.0.0.1/32", "192.168.1.7"] + [http.middlewares.test-ipwhitelist.ipWhiteList.ipStrategy] + depth = 2 +``` + #### `ipStrategy.excludedIPs` `excludedIPs` configures Traefik to scan the `X-Forwarded-For` header and select the first IP not in the list. @@ -206,14 +206,6 @@ labels: - "traefik.http.middlewares.test-ipwhitelist.ipwhitelist.ipstrategy.excludedips=127.0.0.1/32, 192.168.1.7" ``` -```toml tab="File (TOML)" -# Exclude from `X-Forwarded-For` -[http.middlewares] - [http.middlewares.test-ipwhitelist.ipWhiteList] - [http.middlewares.test-ipwhitelist.ipWhiteList.ipStrategy] - excludedIPs = ["127.0.0.1/32", "192.168.1.7"] -``` - ```yaml tab="File (YAML)" # Exclude from `X-Forwarded-For` http: @@ -225,3 +217,11 @@ http: - "127.0.0.1/32" - "192.168.1.7" ``` + +```toml tab="File (TOML)" +# Exclude from `X-Forwarded-For` +[http.middlewares] + [http.middlewares.test-ipwhitelist.ipWhiteList] + [http.middlewares.test-ipwhitelist.ipWhiteList.ipStrategy] + excludedIPs = ["127.0.0.1/32", "192.168.1.7"] +``` diff --git a/docs/content/middlewares/overview.md b/docs/content/middlewares/overview.md index 86fe2808c..6fd4e6f69 100644 --- a/docs/content/middlewares/overview.md +++ b/docs/content/middlewares/overview.md @@ -91,26 +91,6 @@ labels: - "traefik.http.routers.router1.middlewares=foo-add-prefix@rancher" ``` -```toml tab="File (TOML)" -# As TOML Configuration File -[http.routers] - [http.routers.router1] - service = "myService" - middlewares = ["foo-add-prefix"] - rule = "Host(`example.com`)" - -[http.middlewares] - [http.middlewares.foo-add-prefix.addPrefix] - prefix = "/foo" - -[http.services] - [http.services.service1] - [http.services.service1.loadBalancer] - - [[http.services.service1.loadBalancer.servers]] - url = "http://127.0.0.1:80" -``` - ```yaml tab="File (YAML)" # As YAML Configuration File http: @@ -133,6 +113,26 @@ http: - url: "http://127.0.0.1:80" ``` +```toml tab="File (TOML)" +# As TOML Configuration File +[http.routers] + [http.routers.router1] + service = "myService" + middlewares = ["foo-add-prefix"] + rule = "Host(`example.com`)" + +[http.middlewares] + [http.middlewares.foo-add-prefix.addPrefix] + prefix = "/foo" + +[http.services] + [http.services.service1] + [http.services.service1.loadBalancer] + + [[http.services.service1.loadBalancer.servers]] + url = "http://127.0.0.1:80" +``` + ## Available Middlewares | Middleware | Purpose | Area | diff --git a/docs/content/middlewares/passtlsclientcert.md b/docs/content/middlewares/passtlsclientcert.md index 17a27d08c..ca4b19bc9 100644 --- a/docs/content/middlewares/passtlsclientcert.md +++ b/docs/content/middlewares/passtlsclientcert.md @@ -46,13 +46,6 @@ labels: - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.pem=true" ``` -```toml tab="File (TOML)" -# Pass the escaped pem in the `X-Forwarded-Tls-Client-Cert` header. -[http.middlewares] - [http.middlewares.test-passtlsclientcert.passTLSClientCert] - pem = true -``` - ```yaml tab="File (YAML)" # Pass the escaped pem in the `X-Forwarded-Tls-Client-Cert` header. http: @@ -62,6 +55,13 @@ http: pem: true ``` +```toml tab="File (TOML)" +# Pass the escaped pem in the `X-Forwarded-Tls-Client-Cert` header. +[http.middlewares] + [http.middlewares.test-passtlsclientcert.passTLSClientCert] + pem = true +``` + ??? example "Pass the escaped pem in the `X-Forwarded-Tls-Client-Cert` header" ```yaml tab="Docker" @@ -182,32 +182,6 @@ http: - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.issuer.serialnumber=true" ``` - ```toml tab="File (TOML)" - # Pass all the available info in the `X-Forwarded-Tls-Client-Cert-Info` header - [http.middlewares] - [http.middlewares.test-passtlsclientcert.passTLSClientCert] - [http.middlewares.test-passtlsclientcert.passTLSClientCert.info] - notAfter = true - notBefore = true - sans = true - [http.middlewares.test-passtlsclientcert.passTLSClientCert.info.subject] - country = true - province = true - locality = true - organization = true - commonName = true - serialNumber = true - domainComponent = true - [http.middlewares.test-passtlsclientcert.passTLSClientCert.info.issuer] - country = true - province = true - locality = true - organization = true - commonName = true - serialNumber = true - domainComponent = true - ``` - ```yaml tab="File (YAML)" # Pass all the available info in the `X-Forwarded-Tls-Client-Cert-Info` header http: @@ -236,6 +210,32 @@ http: domainComponent: true ``` + ```toml tab="File (TOML)" + # Pass all the available info in the `X-Forwarded-Tls-Client-Cert-Info` header + [http.middlewares] + [http.middlewares.test-passtlsclientcert.passTLSClientCert] + [http.middlewares.test-passtlsclientcert.passTLSClientCert.info] + notAfter = true + notBefore = true + sans = true + [http.middlewares.test-passtlsclientcert.passTLSClientCert.info.subject] + country = true + province = true + locality = true + organization = true + commonName = true + serialNumber = true + domainComponent = true + [http.middlewares.test-passtlsclientcert.passTLSClientCert.info.issuer] + country = true + province = true + locality = true + organization = true + commonName = true + serialNumber = true + domainComponent = true + ``` + ## Configuration Options ### General diff --git a/docs/content/middlewares/ratelimit.md b/docs/content/middlewares/ratelimit.md index 73a609867..8c382de10 100644 --- a/docs/content/middlewares/ratelimit.md +++ b/docs/content/middlewares/ratelimit.md @@ -50,15 +50,6 @@ labels: - "traefik.http.middlewares.test-ratelimit.ratelimit.burst=50" ``` -```toml tab="File (TOML)" -# Here, an average of 100 requests per second is allowed. -# In addition, a burst of 50 requests is allowed. -[http.middlewares] - [http.middlewares.test-ratelimit.rateLimit] - average = 100 - burst = 50 -``` - ```yaml tab="File (YAML)" # Here, an average of 100 requests per second is allowed. # In addition, a burst of 50 requests is allowed. @@ -70,6 +61,15 @@ http: burst: 50 ``` +```toml tab="File (TOML)" +# Here, an average of 100 requests per second is allowed. +# In addition, a burst of 50 requests is allowed. +[http.middlewares] + [http.middlewares.test-ratelimit.rateLimit] + average = 100 + burst = 50 +``` + ## Configuration Options ### `average` @@ -114,13 +114,6 @@ labels: - "traefik.http.middlewares.test-ratelimit.ratelimit.average=100" ``` -```toml tab="File (TOML)" -# 100 reqs/s -[http.middlewares] - [http.middlewares.test-ratelimit.rateLimit] - average = 100 -``` - ```yaml tab="File (YAML)" # 100 reqs/s http: @@ -130,6 +123,13 @@ http: average: 100 ``` +```toml tab="File (TOML)" +# 100 reqs/s +[http.middlewares] + [http.middlewares.test-ratelimit.rateLimit] + average = 100 +``` + ### `period` `period`, in combination with `average`, defines the actual maximum rate, such as: @@ -179,14 +179,6 @@ labels: - "traefik.http.middlewares.test-ratelimit.ratelimit.period=1m" ``` -```toml tab="File (TOML)" -# 6 reqs/minute -[http.middlewares] - [http.middlewares.test-ratelimit.rateLimit] - average = 6 - period = "1m" -``` - ```yaml tab="File (YAML)" # 6 reqs/minute http: @@ -197,6 +189,14 @@ http: period: 1m ``` +```toml tab="File (TOML)" +# 6 reqs/minute +[http.middlewares] + [http.middlewares.test-ratelimit.rateLimit] + average = 6 + period = "1m" +``` + ### `burst` `burst` is the maximum number of requests allowed to go through in the same arbitrarily small period of time. @@ -233,12 +233,6 @@ labels: - "traefik.http.middlewares.test-ratelimit.ratelimit.burst=100" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.test-ratelimit.rateLimit] - burst = 100 -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -247,6 +241,12 @@ http: burst: 100 ``` +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.test-ratelimit.rateLimit] + burst = 100 +``` + ### `sourceCriterion` The `sourceCriterion` option defines what criterion is used to group requests as originating from a common source. @@ -306,13 +306,6 @@ labels: - "traefik.http.middlewares.test-ratelimit.ratelimit.sourcecriterion.ipstrategy.depth=2" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.test-ratelimit.rateLimit] - [http.middlewares.test-ratelimit.rateLimit.sourceCriterion.ipStrategy] - depth = 2 -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -323,6 +316,13 @@ http: depth: 2 ``` +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.test-ratelimit.rateLimit] + [http.middlewares.test-ratelimit.rateLimit.sourceCriterion.ipStrategy] + depth = 2 +``` + ##### `ipStrategy.excludedIPs` !!! important "Contrary to what the name might suggest, this option is _not_ about excluding an IP from the rate limiter, and therefore cannot be used to deactivate rate limiting for some IPs." @@ -400,13 +400,6 @@ labels: - "traefik.http.middlewares.test-ratelimit.ratelimit.sourcecriterion.ipstrategy.excludedips=127.0.0.1/32, 192.168.1.7" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.test-ratelimit.rateLimit] - [http.middlewares.test-ratelimit.rateLimit.sourceCriterion.ipStrategy] - excludedIPs = ["127.0.0.1/32", "192.168.1.7"] -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -419,6 +412,13 @@ http: - "192.168.1.7" ``` +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.test-ratelimit.rateLimit] + [http.middlewares.test-ratelimit.rateLimit.sourceCriterion.ipStrategy] + excludedIPs = ["127.0.0.1/32", "192.168.1.7"] +``` + #### `sourceCriterion.requestHeaderName` Name of the header used to group incoming requests. @@ -454,13 +454,6 @@ labels: - "traefik.http.middlewares.test-ratelimit.ratelimit.sourcecriterion.requestheadername=username" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.test-ratelimit.rateLimit] - [http.middlewares.test-ratelimit.rateLimit.sourceCriterion] - requestHeaderName = "username" -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -470,6 +463,13 @@ http: requestHeaderName: username ``` +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.test-ratelimit.rateLimit] + [http.middlewares.test-ratelimit.rateLimit.sourceCriterion] + requestHeaderName = "username" +``` + #### `sourceCriterion.requestHost` Whether to consider the request host as the source. @@ -505,13 +505,6 @@ labels: - "traefik.http.middlewares.test-ratelimit.ratelimit.sourcecriterion.requesthost=true" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.test-ratelimit.rateLimit] - [http.middlewares.test-ratelimit.rateLimit.sourceCriterion] - requestHost = true -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -520,3 +513,10 @@ http: sourceCriterion: requestHost: true ``` + +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.test-ratelimit.rateLimit] + [http.middlewares.test-ratelimit.rateLimit.sourceCriterion] + requestHost = true +``` diff --git a/docs/content/middlewares/redirectregex.md b/docs/content/middlewares/redirectregex.md index 2fb3965aa..ecf3566b7 100644 --- a/docs/content/middlewares/redirectregex.md +++ b/docs/content/middlewares/redirectregex.md @@ -53,14 +53,6 @@ labels: - "traefik.http.middlewares.test-redirectregex.redirectregex.replacement=http://mydomain/$${1}" ``` -```toml tab="File (TOML)" -# Redirect with domain replacement -[http.middlewares] - [http.middlewares.test-redirectregex.redirectRegex] - regex = "^http://localhost/(.*)" - replacement = "http://mydomain/${1}" -``` - ```yaml tab="File (YAML)" # Redirect with domain replacement http: @@ -71,6 +63,14 @@ http: replacement: "http://mydomain/${1}" ``` +```toml tab="File (TOML)" +# Redirect with domain replacement +[http.middlewares] + [http.middlewares.test-redirectregex.redirectRegex] + regex = "^http://localhost/(.*)" + replacement = "http://mydomain/${1}" +``` + ## Configuration Options !!! tip @@ -84,7 +84,7 @@ Set the `permanent` option to `true` to apply a permanent redirection. ### `regex` The `regex` option is the regular expression to match and capture elements from the request URL. - + ### `replacement` The `replacement` option defines how to modify the URL to have the new target URL. diff --git a/docs/content/middlewares/redirectscheme.md b/docs/content/middlewares/redirectscheme.md index 5c49bfb70..e53c98fbe 100644 --- a/docs/content/middlewares/redirectscheme.md +++ b/docs/content/middlewares/redirectscheme.md @@ -51,14 +51,6 @@ labels: - "traefik.http.middlewares.test-redirectscheme.redirectscheme.permanent=true" ``` -```toml tab="File (TOML)" -# Redirect to https -[http.middlewares] - [http.middlewares.test-redirectscheme.redirectScheme] - scheme = "https" - permanent = true -``` - ```yaml tab="File (YAML)" # Redirect to https http: @@ -69,6 +61,14 @@ http: permanent: true ``` +```toml tab="File (TOML)" +# Redirect to https +[http.middlewares] + [http.middlewares.test-redirectscheme.redirectScheme] + scheme = "https" + permanent = true +``` + ## Configuration Options ### `permanent` @@ -115,14 +115,6 @@ labels: - "traefik.http.middlewares.test-redirectscheme.redirectscheme.permanent=true" ``` -```toml tab="File (TOML)" -# Redirect to https -[http.middlewares] - [http.middlewares.test-redirectscheme.redirectScheme] - # ... - permanent = true -``` - ```yaml tab="File (YAML)" # Redirect to https http: @@ -133,6 +125,14 @@ http: permanent: true ``` +```toml tab="File (TOML)" +# Redirect to https +[http.middlewares] + [http.middlewares.test-redirectscheme.redirectScheme] + # ... + permanent = true +``` + ### `scheme` The `scheme` option defines the scheme of the new URL. @@ -172,13 +172,6 @@ labels: - "traefik.http.middlewares.test-redirectscheme.redirectscheme.scheme=https" ``` -```toml tab="File (TOML)" -# Redirect to https -[http.middlewares] - [http.middlewares.test-redirectscheme.redirectScheme] - scheme = "https" -``` - ```yaml tab="File (YAML)" # Redirect to https http: @@ -188,6 +181,13 @@ http: scheme: https ``` +```toml tab="File (TOML)" +# Redirect to https +[http.middlewares] + [http.middlewares.test-redirectscheme.redirectScheme] + scheme = "https" +``` + ### `port` The `port` option defines the port of the new URL. @@ -232,14 +232,6 @@ labels: - "traefik.http.middlewares.test-redirectscheme.redirectscheme.port=443" ``` -```toml tab="File (TOML)" -# Redirect to https -[http.middlewares] - [http.middlewares.test-redirectscheme.redirectScheme] - # ... - port = 443 -``` - ```yaml tab="File (YAML)" # Redirect to https http: @@ -250,4 +242,12 @@ http: port: "443" ``` +```toml tab="File (TOML)" +# Redirect to https +[http.middlewares] + [http.middlewares.test-redirectscheme.redirectScheme] + # ... + port = 443 +``` + !!! info "Port in this configuration is a string, not a numeric value." diff --git a/docs/content/middlewares/replacepath.md b/docs/content/middlewares/replacepath.md index aad0d3bf2..7da144f1e 100644 --- a/docs/content/middlewares/replacepath.md +++ b/docs/content/middlewares/replacepath.md @@ -45,13 +45,6 @@ labels: - "traefik.http.middlewares.test-replacepath.replacepath.path=/foo" ``` -```toml tab="File (TOML)" -# Replace the path with /foo -[http.middlewares] - [http.middlewares.test-replacepath.replacePath] - path = "/foo" -``` - ```yaml tab="File (YAML)" # Replace the path with /foo http: @@ -61,6 +54,13 @@ http: path: "/foo" ``` +```toml tab="File (TOML)" +# Replace the path with /foo +[http.middlewares] + [http.middlewares.test-replacepath.replacePath] + path = "/foo" +``` + ## Configuration Options ### General diff --git a/docs/content/middlewares/replacepathregex.md b/docs/content/middlewares/replacepathregex.md index 928691a79..329ceedd0 100644 --- a/docs/content/middlewares/replacepathregex.md +++ b/docs/content/middlewares/replacepathregex.md @@ -50,14 +50,6 @@ labels: - "traefik.http.middlewares.test-replacepathregex.replacepathregex.replacement=/bar/$1" ``` -```toml tab="File (TOML)" -# Replace path with regex -[http.middlewares] - [http.middlewares.test-replacepathregex.replacePathRegex] - regex = "^/foo/(.*)" - replacement = "/bar/$1" -``` - ```yaml tab="File (YAML)" # Replace path with regex http: @@ -68,6 +60,14 @@ http: replacement: "/bar/$1" ``` +```toml tab="File (TOML)" +# Replace path with regex +[http.middlewares] + [http.middlewares.test-replacepathregex.replacePathRegex] + regex = "^/foo/(.*)" + replacement = "/bar/$1" +``` + ## Configuration Options ### General @@ -84,7 +84,7 @@ The ReplacePathRegex middleware will: ### `regex` The `regex` option is the regular expression to match and capture the path from the request URL. - + ### `replacement` The `replacement` option defines the replacement path format, which can include captured variables. diff --git a/docs/content/middlewares/retry.md b/docs/content/middlewares/retry.md index 7f1a8fe0b..d5ef43c95 100644 --- a/docs/content/middlewares/retry.md +++ b/docs/content/middlewares/retry.md @@ -52,14 +52,6 @@ labels: - "traefik.http.middlewares.test-retry.retry.initialinterval=100ms" ``` -```toml tab="File (TOML)" -# Retry 4 times with exponential backoff -[http.middlewares] - [http.middlewares.test-retry.retry] - attempts = 4 - initialInterval = "100ms" -``` - ```yaml tab="File (YAML)" # Retry 4 times with exponential backoff http: @@ -70,6 +62,14 @@ http: initialInterval: 100ms ``` +```toml tab="File (TOML)" +# Retry 4 times with exponential backoff +[http.middlewares] + [http.middlewares.test-retry.retry] + attempts = 4 + initialInterval = "100ms" +``` + ## Configuration Options ### `attempts` diff --git a/docs/content/middlewares/stripprefix.md b/docs/content/middlewares/stripprefix.md index 0fa19a7ce..fc55fb444 100644 --- a/docs/content/middlewares/stripprefix.md +++ b/docs/content/middlewares/stripprefix.md @@ -47,13 +47,6 @@ labels: - "traefik.http.middlewares.test-stripprefix.stripprefix.prefixes=/foobar,/fiibar" ``` -```toml tab="File (TOML)" -# Strip prefix /foobar and /fiibar -[http.middlewares] - [http.middlewares.test-stripprefix.stripPrefix] - prefixes = ["/foobar", "/fiibar"] -``` - ```yaml tab="File (YAML)" # Strip prefix /foobar and /fiibar http: @@ -65,6 +58,13 @@ http: - "/fiibar" ``` +```toml tab="File (TOML)" +# Strip prefix /foobar and /fiibar +[http.middlewares] + [http.middlewares.test-stripprefix.stripPrefix] + prefixes = ["/foobar", "/fiibar"] +``` + ## Configuration Options ### General @@ -149,13 +149,6 @@ labels: - "traefik.http.middlewares.example.stripprefix.forceSlash=false" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.example.stripPrefix] - prefixes = ["/foobar"] - forceSlash = false -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -165,3 +158,10 @@ http: - "/foobar" forceSlash: false ``` + +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.example.stripPrefix] + prefixes = ["/foobar"] + forceSlash = false +``` diff --git a/docs/content/middlewares/stripprefixregex.md b/docs/content/middlewares/stripprefixregex.md index 5b7f7a7ca..768a05994 100644 --- a/docs/content/middlewares/stripprefixregex.md +++ b/docs/content/middlewares/stripprefixregex.md @@ -38,12 +38,6 @@ labels: - "traefik.http.middlewares.test-stripprefixregex.stripprefixregex.regex=/foo/[a-z0-9]+/[0-9]+/" ``` -```toml tab="File (TOML)" -[http.middlewares] - [http.middlewares.test-stripprefixregex.stripPrefixRegex] - regex = ["/foo/[a-z0-9]+/[0-9]+/"] -``` - ```yaml tab="File (YAML)" http: middlewares: @@ -53,6 +47,12 @@ http: - "/foo/[a-z0-9]+/[0-9]+/" ``` +```toml tab="File (TOML)" +[http.middlewares] + [http.middlewares.test-stripprefixregex.stripPrefixRegex] + regex = ["/foo/[a-z0-9]+/[0-9]+/"] +``` + ## Configuration Options ### General diff --git a/docs/content/migration/v1-to-v2.md b/docs/content/migration/v1-to-v2.md index 3c0c58080..015bd3200 100644 --- a/docs/content/migration/v1-to-v2.md +++ b/docs/content/migration/v1-to-v2.md @@ -68,27 +68,27 @@ Then any router can refer to an instance of the wanted middleware. [frontends.frontend1] entryPoints = ["http"] backend = "backend1" - + [frontends.frontend1.routes] [frontends.frontend1.routes.route0] rule = "Host:test.localhost" [frontends.frontend1.routes.route0] rule = "PathPrefix:/test" - + [frontends.frontend1.auth] [frontends.frontend1.auth.basic] users = [ "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/", "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0", ] - + [backends] [backends.backend1] [backends.backend1.servers.server0] url = "http://10.10.10.1:80" [backends.backend1.servers.server1] url = "http://10.10.10.2:80" - + [backends.backend1.loadBalancer] method = "wrr" ``` @@ -110,19 +110,19 @@ Then any router can refer to an instance of the wanted middleware. metadata: name: basicauth namespace: foo - + spec: basicAuth: users: - test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/ - test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0 - + --- apiVersion: traefik.containo.us/v1alpha1 kind: IngressRoute metadata: name: ingressroutebar - + spec: entryPoints: - http @@ -139,27 +139,6 @@ Then any router can refer to an instance of the wanted middleware. namespace: foo ``` - ```toml tab="File (TOML)" - [http.routers] - [http.routers.router0] - rule = "Host(`test.localhost`) && PathPrefix(`/test`)" - middlewares = ["auth"] - service = "my-service" - - [http.services] - [[http.services.my-service.loadBalancer.servers]] - url = "http://10.10.10.1:80" - [[http.services.my-service.loadBalancer.servers]] - url = "http://10.10.10.2:80" - - [http.middlewares] - [http.middlewares.auth.basicAuth] - users = [ - "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/", - "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0", - ] - ``` - ```yaml tab="File (YAML)" http: routers: @@ -168,14 +147,14 @@ Then any router can refer to an instance of the wanted middleware. service: my-service middlewares: - auth - + services: my-service: loadBalancer: servers: - url: http://10.10.10.1:80 - url: http://10.10.10.2:80 - + middlewares: auth: basicAuth: @@ -184,6 +163,27 @@ Then any router can refer to an instance of the wanted middleware. - "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0" ``` + ```toml tab="File (TOML)" + [http.routers] + [http.routers.router0] + rule = "Host(`test.localhost`) && PathPrefix(`/test`)" + middlewares = ["auth"] + service = "my-service" + + [http.services] + [[http.services.my-service.loadBalancer.servers]] + url = "http://10.10.10.1:80" + [[http.services.my-service.loadBalancer.servers]] + url = "http://10.10.10.2:80" + + [http.middlewares] + [http.middlewares.auth.basicAuth] + users = [ + "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/", + "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0", + ] + ``` + ## TLS Configuration is Now Dynamic, per Router. TLS parameters used to be specified in the static configuration, as an entryPoint field. @@ -193,13 +193,13 @@ Then, a [router's TLS field](../routing/routers/index.md#tls) can refer to one o !!! example "TLS on websecure entryPoint becomes TLS option on Router-1" !!! info "v1" - + ```toml tab="File (TOML)" # static configuration [entryPoints] [entryPoints.websecure] address = ":443" - + [entryPoints.websecure.tls] minVersion = "VersionTLS12" cipherSuites = [ @@ -221,33 +221,6 @@ Then, a [router's TLS field](../routing/routers/index.md#tls) can refer to one o !!! info "v2" - ```toml tab="File (TOML)" - # dynamic configuration - [http.routers] - [http.routers.Router-1] - rule = "Host(`example.com`)" - service = "service-id" - # will terminate the TLS request - [http.routers.Router-1.tls] - options = "myTLSOptions" - - [[tls.certificates]] - certFile = "/path/to/domain.cert" - keyFile = "/path/to/domain.key" - - [tls.options] - [tls.options.myTLSOptions] - minVersion = "VersionTLS12" - cipherSuites = [ - "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", - "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", - "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256", - "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256", - "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", - "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", - ] - ``` - ```yaml tab="File (YAML)" http: routers: @@ -257,7 +230,7 @@ Then, a [router's TLS field](../routing/routers/index.md#tls) can refer to one o # will terminate the TLS request tls: options: myTLSOptions - + tls: certificates: - certFile: /path/to/domain.cert @@ -273,6 +246,33 @@ Then, a [router's TLS field](../routing/routers/index.md#tls) can refer to one o - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ``` + ```toml tab="File (TOML)" + # dynamic configuration + [http.routers] + [http.routers.Router-1] + rule = "Host(`example.com`)" + service = "service-id" + # will terminate the TLS request + [http.routers.Router-1.tls] + options = "myTLSOptions" + + [[tls.certificates]] + certFile = "/path/to/domain.cert" + keyFile = "/path/to/domain.key" + + [tls.options] + [tls.options.myTLSOptions] + minVersion = "VersionTLS12" + cipherSuites = [ + "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", + "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", + "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256", + "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256", + "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", + "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", + ] + ``` + ```yaml tab="K8s IngressRoute" # The definitions below require the definitions for the TLSOption and IngressRoute kinds. # https://doc.traefik.io/traefik/v2.3/reference/dynamic-configuration/kubernetes-crd/#definitions @@ -281,7 +281,7 @@ Then, a [router's TLS field](../routing/routers/index.md#tls) can refer to one o metadata: name: mytlsoption namespace: default - + spec: minVersion: VersionTLS12 cipherSuites: @@ -290,13 +290,13 @@ Then, a [router's TLS field](../routing/routers/index.md#tls) can refer to one o - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 - TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 - + --- apiVersion: traefik.containo.us/v1alpha1 kind: IngressRoute metadata: name: ingressroutebar - + spec: entryPoints: - web @@ -322,7 +322,7 @@ Then, a [router's TLS field](../routing/routers/index.md#tls) can refer to one o ## HTTP to HTTPS Redirection is Now Configured on Routers Previously on Traefik v1, the redirection was applied on an entry point or on a frontend. -With Traefik v2 it is applied on an entry point or a [Router](../routing/routers/index.md). +With Traefik v2 it is applied on an entry point or a [Router](../routing/routers/index.md). To apply a redirection: @@ -332,11 +332,11 @@ To apply a redirection: !!! example "Global HTTP to HTTPS redirection" !!! info "v1" - + ```toml tab="File (TOML)" # static configuration defaultEntryPoints = ["web", "websecure"] - + [entryPoints] [entryPoints.web] address = ":80" @@ -354,35 +354,11 @@ To apply a redirection: ``` !!! info "v2" - - ```bash tab="CLI" - ## static configuration - - --entrypoints.web.address=:80 - --entrypoints.web.http.redirections.entrypoint.to=websecure - --entrypoints.web.http.redirections.entrypoint.scheme=https - --entrypoints.websecure.address=:443 - --providers.docker=true - ``` - - ```toml tab="File (TOML)" - # traefik.toml - ## static configuration - - [entryPoints.web] - address = ":80" - [entryPoints.web.http.redirections.entryPoint] - to = "websecure" - scheme = "https" - - [entryPoints.websecure] - address = ":443" - ``` - + ```yaml tab="File (YAML)" - # traefik.yaml + # traefik.yml ## static configuration - + entryPoints: web: address: ":80" @@ -391,15 +367,39 @@ To apply a redirection: entrypoint: to: websecure scheme: https - + websecure: address: ":443" ``` + ```toml tab="File (TOML)" + # traefik.toml + ## static configuration + + [entryPoints.web] + address = ":80" + [entryPoints.web.http.redirections.entryPoint] + to = "websecure" + scheme = "https" + + [entryPoints.websecure] + address = ":443" + ``` + + ```bash tab="CLI" + ## static configuration + + --entrypoints.web.address=:80 + --entrypoints.web.http.redirections.entrypoint.to=websecure + --entrypoints.web.http.redirections.entrypoint.scheme=https + --entrypoints.websecure.address=:443 + --providers.docker=true + ``` + !!! example "HTTP to HTTPS redirection per domain" !!! info "v1" - + ```toml tab="File (TOML)" [entryPoints] [entryPoints.web] @@ -408,9 +408,9 @@ To apply a redirection: [entryPoints.websecure] address = ":443" [entryPoints.websecure.tls] - + [file] - + [frontends] [frontends.frontend1] entryPoints = ["web", "websecure"] @@ -428,11 +428,11 @@ To apply a redirection: traefik.http.routers.app.rule: Host(`example.net`) traefik.http.routers.app.entrypoints: web traefik.http.routers.app.middlewares: https_redirect - + traefik.http.routers.appsecured.rule: Host(`example.net`) traefik.http.routers.appsecured.entrypoints: websecure traefik.http.routers.appsecured.tls: true - + traefik.http.middlewares.https_redirect.redirectscheme.scheme: https traefik.http.middlewares.https_redirect.redirectscheme.permanent: true ``` @@ -442,7 +442,7 @@ To apply a redirection: kind: IngressRoute metadata: name: http-redirect-ingressRoute - + spec: entryPoints: - web @@ -454,13 +454,13 @@ To apply a redirection: port: 80 middlewares: - name: https-redirect - + --- apiVersion: traefik.containo.us/v1alpha1 kind: IngressRoute metadata: name: https-ingressRoute - + spec: entryPoints: - websecure @@ -471,7 +471,7 @@ To apply a redirection: - name: whoami port: 80 tls: {} - + --- apiVersion: traefik.containo.us/v1alpha1 kind: Middleware @@ -483,33 +483,10 @@ To apply a redirection: permanent: true ``` - ```toml tab="File (TOML)" - ## dynamic configuration - # dynamic-conf.toml - - [http.routers] - [http.routers.router0] - rule = "Host(`example.net`)" - service = "my-service" - entrypoints = ["web"] - middlewares = ["https_redirect"] - - [http.routers.router1] - rule = "Host(`example.net`)" - service = "my-service" - entrypoints = ["websecure"] - [http.routers.router1.tls] - - [http.middlewares] - [http.middlewares.https_redirect.redirectScheme] - scheme = "https" - permanent = true - ``` - ```yaml tab="File (YAML)" ## dynamic configuration # dynamic-conf.yml - + http: routers: router0: @@ -519,14 +496,14 @@ To apply a redirection: middlewares: - https_redirect service: my-service - + router1: rule: "Host(`example.net`)" entryPoints: - websecure service: my-service tls: {} - + middlewares: https-redirect: redirectScheme: @@ -534,6 +511,29 @@ To apply a redirection: permanent: true ``` + ```toml tab="File (TOML)" + ## dynamic configuration + # dynamic-conf.toml + + [http.routers] + [http.routers.router0] + rule = "Host(`example.net`)" + service = "my-service" + entrypoints = ["web"] + middlewares = ["https_redirect"] + + [http.routers.router1] + rule = "Host(`example.net`)" + service = "my-service" + entrypoints = ["websecure"] + [http.routers.router1.tls] + + [http.middlewares] + [http.middlewares.https_redirect.redirectScheme] + scheme = "https" + permanent = true + ``` + ## Strip and Rewrite Path Prefixes With the new core notions of v2 (introduced earlier in the section @@ -619,23 +619,6 @@ with the path `/admin` stripped, e.g. to `http://:/`. In this case, yo - /admin ``` - ```toml tab="File (TOML)" - ## Dynamic configuration - # dynamic-conf.toml - - [http.routers.router1] - rule = "Host(`example.org`) && PathPrefix(`/admin`)" - service = "admin-svc" - entrypoints = ["web"] - middlewares = ["admin-stripprefix"] - - [http.middlewares] - [http.middlewares.admin-stripprefix.stripPrefix] - prefixes = ["/admin"] - - # ... - ``` - ```yaml tab="File (YAML)" ## Dynamic Configuration # dynamic-conf.yml @@ -652,12 +635,29 @@ with the path `/admin` stripped, e.g. to `http://:/`. In this case, yo middlewares: admin-stripprefix: stripPrefix: - prefixes: + prefixes: - "/admin" # ... ``` + ```toml tab="File (TOML)" + ## Dynamic configuration + # dynamic-conf.toml + + [http.routers.router1] + rule = "Host(`example.org`) && PathPrefix(`/admin`)" + service = "admin-svc" + entrypoints = ["web"] + middlewares = ["admin-stripprefix"] + + [http.middlewares] + [http.middlewares.admin-stripprefix.stripPrefix] + prefixes = ["/admin"] + + # ... + ``` + ??? question "What About Other Path Transformations?" Instead of removing the path prefix with the [`stripprefix` middleware](../../middlewares/stripprefix/), you can also: @@ -674,11 +674,11 @@ with the path `/admin` stripped, e.g. to `http://:/`. In this case, yo !!! example "ACME from provider to a specific Certificate Resolver" !!! info "v1" - + ```toml tab="File (TOML)" # static configuration defaultEntryPoints = ["websecure","web"] - + [entryPoints.web] address = ":80" [entryPoints.web.redirect] @@ -686,7 +686,7 @@ with the path `/admin` stripped, e.g. to `http://:/`. In this case, yo [entryPoints.websecure] address = ":443" [entryPoints.websecure.tls] - + [acme] email = "your-email-here@example.com" storage = "acme.json" @@ -708,34 +708,17 @@ with the path `/admin` stripped, e.g. to `http://:/`. In this case, yo !!! info "v2" - ```toml tab="File (TOML)" - # static configuration - [entryPoints] - [entryPoints.web] - address = ":80" - - [entryPoints.websecure] - address = ":443" - [entryPoints.websecure.http.tls] - certResolver = "myresolver" - - [certificatesResolvers.myresolver.acme] - email = "your-email@example.com" - storage = "acme.json" - [certificatesResolvers.myresolver.acme.tlsChallenge] - ``` - ```yaml tab="File (YAML)" entryPoints: web: address: ":80" - + websecure: address: ":443" http: tls: certResolver: myresolver - + certificatesResolvers: myresolver: acme: @@ -744,6 +727,23 @@ with the path `/admin` stripped, e.g. to `http://:/`. In this case, yo tlsChallenge: {} ``` + ```toml tab="File (TOML)" + # static configuration + [entryPoints] + [entryPoints.web] + address = ":80" + + [entryPoints.websecure] + address = ":443" + [entryPoints.websecure.http.tls] + certResolver = "myresolver" + + [certificatesResolvers.myresolver.acme] + email = "your-email@example.com" + storage = "acme.json" + [certificatesResolvers.myresolver.acme.tlsChallenge] + ``` + ```bash tab="CLI" --entrypoints.web.address=:80 --entrypoints.websecure.address=:443 @@ -764,7 +764,7 @@ There is no more log configuration at the root level. ```toml tab="File (TOML)" # static configuration logLevel = "DEBUG" - + [traefikLog] filePath = "/path/to/traefik.log" format = "json" @@ -778,14 +778,6 @@ There is no more log configuration at the root level. !!! info "v2" - ```toml tab="File (TOML)" - # static configuration - [log] - level = "DEBUG" - filePath = "/path/to/log-file.log" - format = "json" - ``` - ```yaml tab="File (YAML)" # static configuration log: @@ -794,6 +786,14 @@ There is no more log configuration at the root level. format: json ``` + ```toml tab="File (TOML)" + # static configuration + [log] + level = "DEBUG" + filePath = "/path/to/log-file.log" + format = "json" + ``` + ```bash tab="CLI" --log.level=DEBUG --log.filePath=/path/to/traefik.log @@ -838,17 +838,6 @@ Traefik v2 retains OpenTracing support. The `backend` root option from the v1 is !!! info "v2" - ```toml tab="File (TOML)" - # static configuration - [tracing] - servicename = "tracing" - [tracing.jaeger] - samplingParam = 1.0 - samplingServerURL = "http://12.0.0.1:5778/sampling" - samplingType = "const" - localAgentHostPort = "12.0.0.1:6831" - ``` - ```yaml tab="File (YAML)" # static configuration tracing: @@ -860,6 +849,17 @@ Traefik v2 retains OpenTracing support. The `backend` root option from the v1 is localAgentHostPort: '12.0.0.1:6831' ``` + ```toml tab="File (TOML)" + # static configuration + [tracing] + servicename = "tracing" + [tracing.jaeger] + samplingParam = 1.0 + samplingServerURL = "http://12.0.0.1:5778/sampling" + samplingType = "const" + localAgentHostPort = "12.0.0.1:6831" + ``` + ```bash tab="CLI" --tracing.servicename=tracing --tracing.jaeger.localagenthostport=12.0.0.1:6831 @@ -891,13 +891,6 @@ For a basic configuration, the [metrics configuration](../observability/metrics/ !!! info "v2" - ```toml tab="File (TOML)" - # static configuration - [metrics.prometheus] - buckets = [0.1,0.3,1.2,5.0] - entryPoint = "metrics" - ``` - ```yaml tab="File (YAML)" # static configuration metrics: @@ -910,6 +903,13 @@ For a basic configuration, the [metrics configuration](../observability/metrics/ entryPoint: metrics ``` + ```toml tab="File (TOML)" + # static configuration + [metrics.prometheus] + buckets = [0.1,0.3,1.2,5.0] + entryPoint = "metrics" + ``` + ```bash tab="CLI" --metrics.prometheus.buckets=[0.1,0.3,1.2,5.0] --metrics.prometheus.entrypoint=metrics @@ -955,43 +955,43 @@ Each root item has been moved to a related section or removed. !!! info "v2" - ```toml tab="File (TOML)" - # static configuration - [global] - checkNewVersion = true - sendAnonymousUsage = true - - [log] - level = "DEBUG" - - [serversTransport] - insecureSkipVerify = true - rootCAs = [ "/mycert.cert" ] - maxIdleConnsPerHost = 42 - - [providers] - providersThrottleDuration = 42 - ``` - ```yaml tab="File (YAML)" # static configuration global: checkNewVersion: true sendAnonymousUsage: true - + log: level: DEBUG - + serversTransport: insecureSkipVerify: true rootCAs: - /mycert.cert maxIdleConnsPerHost: 42 - + providers: providersThrottleDuration: 42 ``` + ```toml tab="File (TOML)" + # static configuration + [global] + checkNewVersion = true + sendAnonymousUsage = true + + [log] + level = "DEBUG" + + [serversTransport] + insecureSkipVerify = true + rootCAs = [ "/mycert.cert" ] + maxIdleConnsPerHost = 42 + + [providers] + providersThrottleDuration = 42 + ``` + ```bash tab="CLI" --global.checknewversion=true --global.sendanonymoususage=true @@ -1018,7 +1018,7 @@ To activate the dashboard, you can either: ```toml tab="File (TOML)" ## static configuration # traefik.toml - + [entryPoints.websecure] address = ":443" [entryPoints.websecure.tls] @@ -1027,7 +1027,7 @@ To activate the dashboard, you can either: users = [ "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/" ] - + [api] entryPoint = "websecure" ``` @@ -1050,55 +1050,25 @@ To activate the dashboard, you can either: - "traefik.http.middlewares.myAuth.basicauth.users=test:$$apr1$$H6uskkkW$$IgXLP6ewTrSuBkTrqE8wj/" ``` - ```toml tab="File (TOML)" - ## static configuration - # traefik.toml - - [entryPoints.websecure] - address = ":443" - - [api] - - [providers.file] - directory = "/path/to/dynamic/config" - - ##---------------------## - - ## dynamic configuration - # /path/to/dynamic/config/dynamic-conf.toml - - [http.routers.api] - rule = "Host(`traefik.docker.localhost`)" - entrypoints = ["websecure"] - service = "api@internal" - middlewares = ["myAuth"] - [http.routers.api.tls] - - [http.middlewares.myAuth.basicAuth] - users = [ - "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/" - ] - ``` - ```yaml tab="File (YAML)" ## static configuration - # traefik.yaml - + # traefik.yml + entryPoints: websecure: address: ':443' - + api: {} - + providers: file: directory: /path/to/dynamic/config - + ##---------------------## - + ## dynamic configuration - # /path/to/dynamic/config/dynamic-conf.yaml - + # /path/to/dynamic/config/dynamic-conf.yml + http: routers: api: @@ -1109,7 +1079,7 @@ To activate the dashboard, you can either: middlewares: - myAuth tls: {} - + middlewares: myAuth: basicAuth: @@ -1117,6 +1087,36 @@ To activate the dashboard, you can either: - 'test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/' ``` + ```toml tab="File (TOML)" + ## static configuration + # traefik.toml + + [entryPoints.websecure] + address = ":443" + + [api] + + [providers.file] + directory = "/path/to/dynamic/config" + + ##---------------------## + + ## dynamic configuration + # /path/to/dynamic/config/dynamic-conf.toml + + [http.routers.api] + rule = "Host(`traefik.docker.localhost`)" + entrypoints = ["websecure"] + service = "api@internal" + middlewares = ["myAuth"] + [http.routers.api.tls] + + [http.middlewares.myAuth.basicAuth] + users = [ + "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/" + ] + ``` + ## Providers Supported [providers](../providers/overview.md), for now: diff --git a/docs/content/observability/access-logs.md b/docs/content/observability/access-logs.md index 829be2a4f..2acf381e3 100644 --- a/docs/content/observability/access-logs.md +++ b/docs/content/observability/access-logs.md @@ -5,18 +5,18 @@ Who Calls Whom? By default, logs are written to stdout, in text format. -## Configuration +## Configuration To enable the access logs: -```toml tab="File (TOML)" -[accessLog] -``` - ```yaml tab="File (YAML)" accessLog: {} ``` +```toml tab="File (TOML)" +[accessLog] +``` + ```bash tab="CLI" --accesslog=true ``` @@ -26,28 +26,28 @@ accessLog: {} By default access logs are written to the standard output. To write the logs into a log file, use the `filePath` option. -```toml tab="File (TOML)" -[accessLog] - filePath = "/path/to/access.log" -``` - ```yaml tab="File (YAML)" accessLog: filePath: "/path/to/access.log" ``` +```toml tab="File (TOML)" +[accessLog] + filePath = "/path/to/access.log" +``` + ```bash tab="CLI" --accesslog.filepath=/path/to/access.log ``` ### `format` - + By default, logs are written using the Common Log Format (CLF). To write logs in JSON, use `json` in the `format` option. If the given format is unsupported, the default (CLF) is used instead. !!! info "Common Log Format" - + ```html - [] " " "" "" "" "" ms ``` @@ -58,13 +58,6 @@ To write the logs in an asynchronous fashion, specify a `bufferingSize` option. This option represents the number of log lines Traefik will keep in memory before writing them to the selected output. In some cases, this option can greatly help performances. -```toml tab="File (TOML)" -# Configuring a buffer of 100 lines -[accessLog] - filePath = "/path/to/access.log" - bufferingSize = 100 -``` - ```yaml tab="File (YAML)" # Configuring a buffer of 100 lines accessLog: @@ -72,6 +65,13 @@ accessLog: bufferingSize: 100 ``` +```toml tab="File (TOML)" +# Configuring a buffer of 100 lines +[accessLog] + filePath = "/path/to/access.log" + bufferingSize = 100 +``` + ```bash tab="CLI" # Configuring a buffer of 100 lines --accesslog.filepath=/path/to/access.log @@ -80,40 +80,40 @@ accessLog: ### Filtering -To filter logs, you can specify a set of filters which are logically "OR-connected". +To filter logs, you can specify a set of filters which are logically "OR-connected". Thus, specifying multiple filters will keep more access logs than specifying only one. -The available filters are: +The available filters are: - `statusCodes`, to limit the access logs to requests with a status codes in the specified range - `retryAttempts`, to keep the access logs when at least one retry has happened - `minDuration`, to keep access logs when requests take longer than the specified duration (provided in seconds or as a valid duration format, see [time.ParseDuration](https://golang.org/pkg/time/#ParseDuration)) +```yaml tab="File (YAML)" +# Configuring Multiple Filters +accessLog: + filePath: "/path/to/access.log" + format: json + filters: + statusCodes: + - "200" + - "300-302" + retryAttempts: true + minDuration: "10ms" +``` + ```toml tab="File (TOML)" # Configuring Multiple Filters [accessLog] filePath = "/path/to/access.log" format = "json" - [accessLog.filters] + [accessLog.filters] statusCodes = ["200", "300-302"] retryAttempts = true minDuration = "10ms" ``` -```yaml tab="File (YAML)" -# Configuring Multiple Filters -accessLog: - filePath: "/path/to/access.log" - format: json - filters: - statusCodes: - - "200" - - "300-302" - retryAttempts: true - minDuration: "10ms" -``` - ```bash tab="CLI" # Configuring Multiple Filters --accesslog.filepath=/path/to/access.log @@ -135,27 +135,9 @@ Each field can be set to: The `defaultMode` for `fields.headers` is `drop`. -```toml tab="File (TOML)" -# Limiting the Logs to Specific Fields -[accessLog] - filePath = "/path/to/access.log" - format = "json" - [accessLog.fields] defaultMode = "keep" - [accessLog.fields.names] - "ClientUsername" = "drop" - - [accessLog.fields.headers] - defaultMode = "keep" - - [accessLog.fields.headers.names] - "User-Agent" = "redact" - "Authorization" = "drop" - "Content-Type" = "keep" -``` - ```yaml tab="File (YAML)" # Limiting the Logs to Specific Fields accessLog: @@ -173,6 +155,24 @@ accessLog: Content-Type: keep ``` +```toml tab="File (TOML)" +# Limiting the Logs to Specific Fields +[accessLog] + filePath = "/path/to/access.log" + format = "json" + + [accessLog.fields.names] + "ClientUsername" = "drop" + + [accessLog.fields.headers] + defaultMode = "keep" + + [accessLog.fields.headers.names] + "User-Agent" = "redact" + "Authorization" = "drop" + "Content-Type" = "keep" +``` + ```bash tab="CLI" # Limiting the Logs to Specific Fields --accesslog.filepath=/path/to/access.log diff --git a/docs/content/observability/logs.md b/docs/content/observability/logs.md index 3aa0d6c15..2c77dea39 100644 --- a/docs/content/observability/logs.md +++ b/docs/content/observability/logs.md @@ -16,18 +16,18 @@ Traefik logs concern everything that happens to Traefik itself (startup, configu By default, the logs are written to the standard output. You can configure a file path instead using the `filePath` option. -```toml tab="File (TOML)" -# Writing Logs to a File -[log] - filePath = "/path/to/traefik.log" -``` - ```yaml tab="File (YAML)" # Writing Logs to a File log: filePath: "/path/to/traefik.log" ``` +```toml tab="File (TOML)" +# Writing Logs to a File +[log] + filePath = "/path/to/traefik.log" +``` + ```bash tab="CLI" # Writing Logs to a File --log.filePath=/path/to/traefik.log @@ -35,14 +35,7 @@ log: #### `format` -By default, the logs use a text format (`common`), but you can also ask for the `json` format in the `format` option. - -```toml tab="File (TOML)" -# Writing Logs to a File, in JSON -[log] - filePath = "/path/to/log-file.log" - format = "json" -``` +By default, the logs use a text format (`common`), but you can also ask for the `json` format in the `format` option. ```yaml tab="File (YAML)" # Writing Logs to a File, in JSON @@ -51,6 +44,13 @@ log: format: json ``` +```toml tab="File (TOML)" +# Writing Logs to a File, in JSON +[log] + filePath = "/path/to/log-file.log" + format = "json" +``` + ```bash tab="CLI" # Writing Logs to a File, in JSON --log.filePath=/path/to/traefik.log @@ -59,18 +59,18 @@ log: #### `level` -By default, the `level` is set to `ERROR`. Alternative logging levels are `DEBUG`, `PANIC`, `FATAL`, `ERROR`, `WARN`, and `INFO`. - -```toml tab="File (TOML)" -[log] - level = "DEBUG" -``` +By default, the `level` is set to `ERROR`. Alternative logging levels are `DEBUG`, `PANIC`, `FATAL`, `ERROR`, `WARN`, and `INFO`. ```yaml tab="File (YAML)" log: level: DEBUG ``` +```toml tab="File (TOML)" +[log] + level = "DEBUG" +``` + ```bash tab="CLI" --log.level=DEBUG ``` diff --git a/docs/content/observability/metrics/datadog.md b/docs/content/observability/metrics/datadog.md index b7763ec5c..1e39f3d17 100644 --- a/docs/content/observability/metrics/datadog.md +++ b/docs/content/observability/metrics/datadog.md @@ -2,16 +2,16 @@ To enable the Datadog: -```toml tab="File (TOML)" -[metrics] - [metrics.datadog] -``` - ```yaml tab="File (YAML)" metrics: datadog: {} ``` +```toml tab="File (TOML)" +[metrics] + [metrics.datadog] +``` + ```bash tab="CLI" --metrics.datadog=true ``` @@ -22,18 +22,18 @@ _Required, Default="127.0.0.1:8125"_ Address instructs exporter to send metrics to datadog-agent at this address. -```toml tab="File (TOML)" -[metrics] - [metrics.datadog] - address = "127.0.0.1:8125" -``` - ```yaml tab="File (YAML)" metrics: datadog: address: 127.0.0.1:8125 ``` +```toml tab="File (TOML)" +[metrics] + [metrics.datadog] + address = "127.0.0.1:8125" +``` + ```bash tab="CLI" --metrics.datadog.address=127.0.0.1:8125 ``` @@ -44,18 +44,18 @@ _Optional, Default=true_ Enable metrics on entry points. -```toml tab="File (TOML)" -[metrics] - [metrics.datadog] - addEntryPointsLabels = true -``` - ```yaml tab="File (YAML)" metrics: datadog: addEntryPointsLabels: true ``` +```toml tab="File (TOML)" +[metrics] + [metrics.datadog] + addEntryPointsLabels = true +``` + ```bash tab="CLI" --metrics.datadog.addEntryPointsLabels=true ``` @@ -66,18 +66,18 @@ _Optional, Default=true_ Enable metrics on services. -```toml tab="File (TOML)" -[metrics] - [metrics.datadog] - addServicesLabels = true -``` - ```yaml tab="File (YAML)" metrics: datadog: addServicesLabels: true ``` +```toml tab="File (TOML)" +[metrics] + [metrics.datadog] + addServicesLabels = true +``` + ```bash tab="CLI" --metrics.datadog.addServicesLabels=true ``` @@ -88,18 +88,18 @@ _Optional, Default=10s_ The interval used by the exporter to push metrics to datadog-agent. -```toml tab="File (TOML)" -[metrics] - [metrics.datadog] - pushInterval = 10s -``` - ```yaml tab="File (YAML)" metrics: datadog: pushInterval: 10s ``` +```toml tab="File (TOML)" +[metrics] + [metrics.datadog] + pushInterval = 10s +``` + ```bash tab="CLI" --metrics.datadog.pushInterval=10s ``` diff --git a/docs/content/observability/metrics/influxdb.md b/docs/content/observability/metrics/influxdb.md index 6ffa760b3..0a4157122 100644 --- a/docs/content/observability/metrics/influxdb.md +++ b/docs/content/observability/metrics/influxdb.md @@ -2,16 +2,16 @@ To enable the InfluxDB: -```toml tab="File (TOML)" -[metrics] - [metrics.influxDB] -``` - ```yaml tab="File (YAML)" metrics: influxDB: {} ``` +```toml tab="File (TOML)" +[metrics] + [metrics.influxDB] +``` + ```bash tab="CLI" --metrics.influxdb=true ``` @@ -22,18 +22,18 @@ _Required, Default="localhost:8089"_ Address instructs exporter to send metrics to influxdb at this address. -```toml tab="File (TOML)" -[metrics] - [metrics.influxDB] - address = "localhost:8089" -``` - ```yaml tab="File (YAML)" metrics: influxDB: address: localhost:8089 ``` +```toml tab="File (TOML)" +[metrics] + [metrics.influxDB] + address = "localhost:8089" +``` + ```bash tab="CLI" --metrics.influxdb.address=localhost:8089 ``` @@ -44,18 +44,18 @@ _Required, Default="udp"_ InfluxDB's address protocol (udp or http). -```toml tab="File (TOML)" -[metrics] - [metrics.influxDB] - protocol = "udp" -``` - ```yaml tab="File (YAML)" metrics: influxDB: protocol: udp ``` +```toml tab="File (TOML)" +[metrics] + [metrics.influxDB] + protocol = "udp" +``` + ```bash tab="CLI" --metrics.influxdb.protocol=udp ``` @@ -66,18 +66,18 @@ _Optional, Default=""_ InfluxDB database used when protocol is http. -```toml tab="File (TOML)" -[metrics] - [metrics.influxDB] - database = "db" -``` - ```yaml tab="File (YAML)" metrics: influxDB: database: "db" ``` +```toml tab="File (TOML)" +[metrics] + [metrics.influxDB] + database = "db" +``` + ```bash tab="CLI" --metrics.influxdb.database=db ``` @@ -88,18 +88,18 @@ _Optional, Default=""_ InfluxDB retention policy used when protocol is http. -```toml tab="File (TOML)" -[metrics] - [metrics.influxDB] - retentionPolicy = "two_hours" -``` - ```yaml tab="File (YAML)" metrics: influxDB: retentionPolicy: "two_hours" ``` +```toml tab="File (TOML)" +[metrics] + [metrics.influxDB] + retentionPolicy = "two_hours" +``` + ```bash tab="CLI" --metrics.influxdb.retentionPolicy=two_hours ``` @@ -110,18 +110,18 @@ _Optional, Default=""_ InfluxDB username (only with http). -```toml tab="File (TOML)" -[metrics] - [metrics.influxDB] - username = "john" -``` - ```yaml tab="File (YAML)" metrics: influxDB: username: "john" ``` +```toml tab="File (TOML)" +[metrics] + [metrics.influxDB] + username = "john" +``` + ```bash tab="CLI" --metrics.influxdb.username=john ``` @@ -132,18 +132,18 @@ _Optional, Default=""_ InfluxDB password (only with http). -```toml tab="File (TOML)" -[metrics] - [metrics.influxDB] - password = "secret" -``` - ```yaml tab="File (YAML)" metrics: influxDB: password: "secret" ``` +```toml tab="File (TOML)" +[metrics] + [metrics.influxDB] + password = "secret" +``` + ```bash tab="CLI" --metrics.influxdb.password=secret ``` @@ -154,18 +154,18 @@ _Optional, Default=true_ Enable metrics on entry points. -```toml tab="File (TOML)" -[metrics] - [metrics.influxDB] - addEntryPointsLabels = true -``` - ```yaml tab="File (YAML)" metrics: influxDB: addEntryPointsLabels: true ``` +```toml tab="File (TOML)" +[metrics] + [metrics.influxDB] + addEntryPointsLabels = true +``` + ```bash tab="CLI" --metrics.influxdb.addEntryPointsLabels=true ``` @@ -176,18 +176,18 @@ _Optional, Default=true_ Enable metrics on services. -```toml tab="File (TOML)" -[metrics] - [metrics.influxDB] - addServicesLabels = true -``` - ```yaml tab="File (YAML)" metrics: influxDB: addServicesLabels: true ``` +```toml tab="File (TOML)" +[metrics] + [metrics.influxDB] + addServicesLabels = true +``` + ```bash tab="CLI" --metrics.influxdb.addServicesLabels=true ``` @@ -198,18 +198,18 @@ _Optional, Default=10s_ The interval used by the exporter to push metrics to influxdb. -```toml tab="File (TOML)" -[metrics] - [metrics.influxDB] - pushInterval = 10s -``` - ```yaml tab="File (YAML)" metrics: influxDB: pushInterval: 10s ``` +```toml tab="File (TOML)" +[metrics] + [metrics.influxDB] + pushInterval = 10s +``` + ```bash tab="CLI" --metrics.influxdb.pushInterval=10s ``` diff --git a/docs/content/observability/metrics/overview.md b/docs/content/observability/metrics/overview.md index 34ec9d4a3..8ce450373 100644 --- a/docs/content/observability/metrics/overview.md +++ b/docs/content/observability/metrics/overview.md @@ -11,14 +11,14 @@ Traefik supports 4 metrics backends: To enable metrics: -```toml tab="File (TOML)" -[metrics] -``` - ```yaml tab="File (YAML)" metrics: {} ``` +```toml tab="File (TOML)" +[metrics] +``` + ```bash tab="CLI" --metrics=true ``` diff --git a/docs/content/observability/metrics/prometheus.md b/docs/content/observability/metrics/prometheus.md index 3ecf62f92..827464f8b 100644 --- a/docs/content/observability/metrics/prometheus.md +++ b/docs/content/observability/metrics/prometheus.md @@ -2,16 +2,16 @@ To enable the Prometheus: -```toml tab="File (TOML)" -[metrics] - [metrics.prometheus] -``` - ```yaml tab="File (YAML)" metrics: prometheus: {} ``` +```toml tab="File (TOML)" +[metrics] + [metrics.prometheus] +``` + ```bash tab="CLI" --metrics.prometheus=true ``` @@ -22,12 +22,6 @@ _Optional, Default="0.100000, 0.300000, 1.200000, 5.000000"_ Buckets for latency metrics. -```toml tab="File (TOML)" -[metrics] - [metrics.prometheus] - buckets = [0.1,0.3,1.2,5.0] -``` - ```yaml tab="File (YAML)" metrics: prometheus: @@ -38,6 +32,12 @@ metrics: - 5.0 ``` +```toml tab="File (TOML)" +[metrics] + [metrics.prometheus] + buckets = [0.1,0.3,1.2,5.0] +``` + ```bash tab="CLI" --metrics.prometheus.buckets=0.100000, 0.300000, 1.200000, 5.000000 ``` @@ -48,18 +48,18 @@ _Optional, Default=true_ Enable metrics on entry points. -```toml tab="File (TOML)" -[metrics] - [metrics.prometheus] - addEntryPointsLabels = true -``` - ```yaml tab="File (YAML)" metrics: prometheus: addEntryPointsLabels: true ``` +```toml tab="File (TOML)" +[metrics] + [metrics.prometheus] + addEntryPointsLabels = true +``` + ```bash tab="CLI" --metrics.prometheus.addEntryPointsLabels=true ``` @@ -70,18 +70,18 @@ _Optional, Default=true_ Enable metrics on services. -```toml tab="File (TOML)" -[metrics] - [metrics.prometheus] - addServicesLabels = true -``` - ```yaml tab="File (YAML)" metrics: prometheus: addServicesLabels: true ``` +```toml tab="File (TOML)" +[metrics] + [metrics.prometheus] + addServicesLabels = true +``` + ```bash tab="CLI" --metrics.prometheus.addServicesLabels=true ``` @@ -92,16 +92,6 @@ _Optional, Default=traefik_ Entry point used to expose metrics. -```toml tab="File (TOML)" -[entryPoints] - [entryPoints.metrics] - address = ":8082" - -[metrics] - [metrics.prometheus] - entryPoint = "metrics" -``` - ```yaml tab="File (YAML)" entryPoints: metrics: @@ -112,6 +102,16 @@ metrics: entryPoint: metrics ``` +```toml tab="File (TOML)" +[entryPoints] + [entryPoints.metrics] + address = ":8082" + +[metrics] + [metrics.prometheus] + entryPoint = "metrics" +``` + ```bash tab="CLI" --entryPoints.metrics.address=:8082 --metrics.prometheus.entryPoint=metrics @@ -123,18 +123,18 @@ _Optional, Default=false_ If `manualRouting` is `true`, it disables the default internal router in order to allow one to create a custom router for the `prometheus@internal` service. -```toml tab="File (TOML)" -[metrics] - [metrics.prometheus] - manualRouting = true -``` - ```yaml tab="File (YAML)" metrics: prometheus: manualRouting: true ``` +```toml tab="File (TOML)" +[metrics] + [metrics.prometheus] + manualRouting = true +``` + ```bash tab="CLI" --metrics.prometheus.manualrouting=true ``` diff --git a/docs/content/observability/metrics/statsd.md b/docs/content/observability/metrics/statsd.md index bbdcc9513..7f6b85627 100644 --- a/docs/content/observability/metrics/statsd.md +++ b/docs/content/observability/metrics/statsd.md @@ -2,16 +2,16 @@ To enable the Statsd: -```toml tab="File (TOML)" -[metrics] - [metrics.statsD] -``` - ```yaml tab="File (YAML)" metrics: statsD: {} ``` +```toml tab="File (TOML)" +[metrics] + [metrics.statsD] +``` + ```bash tab="CLI" --metrics.statsd=true ``` @@ -22,18 +22,18 @@ _Required, Default="localhost:8125"_ Address instructs exporter to send metrics to statsd at this address. -```toml tab="File (TOML)" -[metrics] - [metrics.statsD] - address = "localhost:8125" -``` - ```yaml tab="File (YAML)" metrics: statsD: address: localhost:8125 ``` +```toml tab="File (TOML)" +[metrics] + [metrics.statsD] + address = "localhost:8125" +``` + ```bash tab="CLI" --metrics.statsd.address=localhost:8125 ``` @@ -44,18 +44,18 @@ _Optional, Default=true_ Enable metrics on entry points. -```toml tab="File (TOML)" -[metrics] - [metrics.statsD] - addEntryPointsLabels = true -``` - ```yaml tab="File (YAML)" metrics: statsD: addEntryPointsLabels: true ``` +```toml tab="File (TOML)" +[metrics] + [metrics.statsD] + addEntryPointsLabels = true +``` + ```bash tab="CLI" --metrics.statsd.addEntryPointsLabels=true ``` @@ -66,18 +66,18 @@ _Optional, Default=true_ Enable metrics on services. -```toml tab="File (TOML)" -[metrics] - [metrics.statsD] - addServicesLabels = true -``` - ```yaml tab="File (YAML)" metrics: statsD: addServicesLabels: true ``` +```toml tab="File (TOML)" +[metrics] + [metrics.statsD] + addServicesLabels = true +``` + ```bash tab="CLI" --metrics.statsd.addServicesLabels=true ``` @@ -88,18 +88,18 @@ _Optional, Default=10s_ The interval used by the exporter to push metrics to statsD. -```toml tab="File (TOML)" -[metrics] - [metrics.statsD] - pushInterval = 10s -``` - ```yaml tab="File (YAML)" metrics: statsD: pushInterval: 10s ``` +```toml tab="File (TOML)" +[metrics] + [metrics.statsD] + pushInterval = 10s +``` + ```bash tab="CLI" --metrics.statsd.pushInterval=10s ``` @@ -110,18 +110,18 @@ _Optional, Default="traefik"_ The prefix to use for metrics collection. -```toml tab="File (TOML)" -[metrics] - [metrics.statsD] - prefix = "traefik" -``` - ```yaml tab="File (YAML)" metrics: statsD: prefix: traefik ``` +```toml tab="File (TOML)" +[metrics] + [metrics.statsD] + prefix = "traefik" +``` + ```bash tab="CLI" --metrics.statsd.prefix="traefik" -``` \ No newline at end of file +``` diff --git a/docs/content/observability/tracing/datadog.md b/docs/content/observability/tracing/datadog.md index a6ce77d5d..1b85ec32e 100644 --- a/docs/content/observability/tracing/datadog.md +++ b/docs/content/observability/tracing/datadog.md @@ -2,16 +2,16 @@ To enable the Datadog: -```toml tab="File (TOML)" -[tracing] - [tracing.datadog] -``` - ```yaml tab="File (YAML)" tracing: datadog: {} ``` +```toml tab="File (TOML)" +[tracing] + [tracing.datadog] +``` + ```bash tab="CLI" --tracing.datadog=true ``` @@ -22,18 +22,18 @@ _Required, Default="127.0.0.1:8126"_ Local Agent Host Port instructs reporter to send spans to datadog-tracing-agent at this address. -```toml tab="File (TOML)" -[tracing] - [tracing.datadog] - localAgentHostPort = "127.0.0.1:8126" -``` - ```yaml tab="File (YAML)" tracing: datadog: localAgentHostPort: 127.0.0.1:8126 ``` +```toml tab="File (TOML)" +[tracing] + [tracing.datadog] + localAgentHostPort = "127.0.0.1:8126" +``` + ```bash tab="CLI" --tracing.datadog.localAgentHostPort=127.0.0.1:8126 ``` @@ -44,18 +44,18 @@ _Optional, Default=false_ Enable Datadog debug. -```toml tab="File (TOML)" -[tracing] - [tracing.datadog] - debug = true -``` - ```yaml tab="File (YAML)" tracing: datadog: debug: true ``` +```toml tab="File (TOML)" +[tracing] + [tracing.datadog] + debug = true +``` + ```bash tab="CLI" --tracing.datadog.debug=true ``` @@ -66,18 +66,18 @@ _Optional, Default=empty_ Apply shared tag in a form of Key:Value to all the traces. -```toml tab="File (TOML)" -[tracing] - [tracing.datadog] - globalTag = "sample" -``` - ```yaml tab="File (YAML)" tracing: datadog: globalTag: sample ``` +```toml tab="File (TOML)" +[tracing] + [tracing.datadog] + globalTag = "sample" +``` + ```bash tab="CLI" --tracing.datadog.globalTag=sample ``` @@ -89,18 +89,18 @@ _Optional, 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. -```toml tab="File (TOML)" -[tracing] - [tracing.datadog] - prioritySampling = true -``` - ```yaml tab="File (YAML)" tracing: datadog: prioritySampling: true ``` +```toml tab="File (TOML)" +[tracing] + [tracing.datadog] + prioritySampling = true +``` + ```bash tab="CLI" --tracing.datadog.prioritySampling=true ``` diff --git a/docs/content/observability/tracing/elastic.md b/docs/content/observability/tracing/elastic.md index 97042d73f..16513c14a 100644 --- a/docs/content/observability/tracing/elastic.md +++ b/docs/content/observability/tracing/elastic.md @@ -2,16 +2,16 @@ To enable the Elastic: -```toml tab="File (TOML)" -[tracing] - [tracing.elastic] -``` - ```yaml tab="File (YAML)" tracing: elastic: {} ``` +```toml tab="File (TOML)" +[tracing] + [tracing.elastic] +``` + ```bash tab="CLI" --tracing.elastic=true ``` @@ -22,18 +22,18 @@ _Optional, Default="http://localhost:8200"_ APM ServerURL is the URL of the Elastic APM server. -```toml tab="File (TOML)" -[tracing] - [tracing.elastic] - serverURL = "http://apm:8200" -``` - ```yaml tab="File (YAML)" tracing: elastic: serverURL: "http://apm:8200" ``` +```toml tab="File (TOML)" +[tracing] + [tracing.elastic] + serverURL = "http://apm:8200" +``` + ```bash tab="CLI" --tracing.elastic.serverurl="http://apm:8200" ``` @@ -44,18 +44,18 @@ _Optional, Default=""_ APM Secret Token is the token used to connect to Elastic APM Server. -```toml tab="File (TOML)" -[tracing] - [tracing.elastic] - secretToken = "mytoken" -``` - ```yaml tab="File (YAML)" tracing: elastic: secretToken: "mytoken" ``` +```toml tab="File (TOML)" +[tracing] + [tracing.elastic] + secretToken = "mytoken" +``` + ```bash tab="CLI" --tracing.elastic.secrettoken="mytoken" ``` @@ -66,18 +66,18 @@ _Optional, Default=""_ APM Service Environment is the name of the environment Traefik is deployed in, e.g. `production` or `staging`. -```toml tab="File (TOML)" -[tracing] - [tracing.elastic] - serviceEnvironment = "production" -``` - ```yaml tab="File (YAML)" tracing: elastic: serviceEnvironment: "production" ``` +```toml tab="File (TOML)" +[tracing] + [tracing.elastic] + serviceEnvironment = "production" +``` + ```bash tab="CLI" --tracing.elastic.serviceenvironment="production" ``` diff --git a/docs/content/observability/tracing/haystack.md b/docs/content/observability/tracing/haystack.md index 99895860e..2b78f43fb 100644 --- a/docs/content/observability/tracing/haystack.md +++ b/docs/content/observability/tracing/haystack.md @@ -2,16 +2,16 @@ To enable the Haystack: -```toml tab="File (TOML)" -[tracing] - [tracing.haystack] -``` - ```yaml tab="File (YAML)" tracing: haystack: {} ``` +```toml tab="File (TOML)" +[tracing] + [tracing.haystack] +``` + ```bash tab="CLI" --tracing.haystack=true ``` @@ -22,18 +22,18 @@ _Require, Default="127.0.0.1"_ Local Agent Host instructs reporter to send spans to haystack-agent at this address. -```toml tab="File (TOML)" -[tracing] - [tracing.haystack] - localAgentHost = "127.0.0.1" -``` - ```yaml tab="File (YAML)" tracing: haystack: localAgentHost: 127.0.0.1 ``` +```toml tab="File (TOML)" +[tracing] + [tracing.haystack] + localAgentHost = "127.0.0.1" +``` + ```bash tab="CLI" --tracing.haystack.localAgentHost=127.0.0.1 ``` @@ -44,18 +44,18 @@ _Require, Default=35000_ Local Agent port instructs reporter to send spans to the haystack-agent at this port. -```toml tab="File (TOML)" -[tracing] - [tracing.haystack] - localAgentPort = 35000 -``` - ```yaml tab="File (YAML)" tracing: haystack: localAgentPort: 35000 ``` +```toml tab="File (TOML)" +[tracing] + [tracing.haystack] + localAgentPort = 35000 +``` + ```bash tab="CLI" --tracing.haystack.localAgentPort=35000 ``` @@ -66,18 +66,18 @@ _Optional, Default=empty_ Apply shared tag in a form of Key:Value to all the traces. -```toml tab="File (TOML)" -[tracing] - [tracing.haystack] - globalTag = "sample:test" -``` - ```yaml tab="File (YAML)" tracing: haystack: globalTag: sample:test ``` +```toml tab="File (TOML)" +[tracing] + [tracing.haystack] + globalTag = "sample:test" +``` + ```bash tab="CLI" --tracing.haystack.globalTag=sample:test ``` @@ -88,18 +88,18 @@ _Optional, Default=empty_ Specifies the header name that will be used to store the trace ID. -```toml tab="File (TOML)" -[tracing] - [tracing.haystack] - traceIDHeaderName = "Trace-ID" -``` - ```yaml tab="File (YAML)" tracing: haystack: traceIDHeaderName: Trace-ID ``` +```toml tab="File (TOML)" +[tracing] + [tracing.haystack] + traceIDHeaderName = "Trace-ID" +``` + ```bash tab="CLI" --tracing.haystack.traceIDHeaderName=Trace-ID ``` @@ -110,18 +110,18 @@ _Optional, Default=empty_ Specifies the header name that will be used to store the parent ID. -```toml tab="File (TOML)" -[tracing] - [tracing.haystack] - parentIDHeaderName = "Parent-Message-ID" -``` - ```yaml tab="File (YAML)" tracing: haystack: parentIDHeaderName: Parent-Message-ID ``` +```toml tab="File (TOML)" +[tracing] + [tracing.haystack] + parentIDHeaderName = "Parent-Message-ID" +``` + ```bash tab="CLI" --tracing.haystack.parentIDHeaderName=Parent-Message-ID ``` @@ -132,18 +132,18 @@ _Optional, Default=empty_ Specifies the header name that will be used to store the span ID. -```toml tab="File (TOML)" -[tracing] - [tracing.haystack] - spanIDHeaderName = "Message-ID" -``` - ```yaml tab="File (YAML)" tracing: haystack: spanIDHeaderName: Message-ID ``` +```toml tab="File (TOML)" +[tracing] + [tracing.haystack] + spanIDHeaderName = "Message-ID" +``` + ```bash tab="CLI" --tracing.haystack.spanIDHeaderName=Message-ID ``` @@ -154,18 +154,18 @@ _Optional, Default=empty_ Specifies the header name prefix that will be used to store baggage items in a map. -```toml tab="File (TOML)" -[tracing] - [tracing.haystack] - baggagePrefixHeaderName = "sample" -``` - ```yaml tab="File (YAML)" tracing: haystack: baggagePrefixHeaderName: "sample" ``` +```toml tab="File (TOML)" +[tracing] + [tracing.haystack] + baggagePrefixHeaderName = "sample" +``` + ```bash tab="CLI" --tracing.haystack.baggagePrefixHeaderName=sample diff --git a/docs/content/observability/tracing/instana.md b/docs/content/observability/tracing/instana.md index bc6b69958..e9eac66cf 100644 --- a/docs/content/observability/tracing/instana.md +++ b/docs/content/observability/tracing/instana.md @@ -2,16 +2,16 @@ To enable the Instana: -```toml tab="File (TOML)" -[tracing] - [tracing.instana] -``` - ```yaml tab="File (YAML)" tracing: instana: {} ``` +```toml tab="File (TOML)" +[tracing] + [tracing.instana] +``` + ```bash tab="CLI" --tracing.instana=true ``` @@ -22,18 +22,18 @@ _Require, Default="127.0.0.1"_ Local Agent Host instructs reporter to send spans to instana-agent at this address. -```toml tab="File (TOML)" -[tracing] - [tracing.instana] - localAgentHost = "127.0.0.1" -``` - ```yaml tab="File (YAML)" tracing: instana: localAgentHost: 127.0.0.1 ``` +```toml tab="File (TOML)" +[tracing] + [tracing.instana] + localAgentHost = "127.0.0.1" +``` + ```bash tab="CLI" --tracing.instana.localAgentHost=127.0.0.1 ``` @@ -44,18 +44,18 @@ _Require, Default=42699_ Local Agent port instructs reporter to send spans to the instana-agent at this port. -```toml tab="File (TOML)" -[tracing] - [tracing.instana] - localAgentPort = 42699 -``` - ```yaml tab="File (YAML)" tracing: instana: localAgentPort: 42699 ``` +```toml tab="File (TOML)" +[tracing] + [tracing.instana] + localAgentPort = 42699 +``` + ```bash tab="CLI" --tracing.instana.localAgentPort=42699 ``` @@ -73,18 +73,18 @@ Valid values for logLevel field are: - `debug` - `info` -```toml tab="File (TOML)" -[tracing] - [tracing.instana] - logLevel = "info" -``` - ```yaml tab="File (YAML)" tracing: instana: logLevel: info ``` +```toml tab="File (TOML)" +[tracing] + [tracing.instana] + logLevel = "info" +``` + ```bash tab="CLI" --tracing.instana.logLevel=info ``` diff --git a/docs/content/observability/tracing/jaeger.md b/docs/content/observability/tracing/jaeger.md index 5d4b747a3..836856932 100644 --- a/docs/content/observability/tracing/jaeger.md +++ b/docs/content/observability/tracing/jaeger.md @@ -2,16 +2,16 @@ To enable the Jaeger: -```toml tab="File (TOML)" -[tracing] - [tracing.jaeger] -``` - ```yaml tab="File (YAML)" tracing: jaeger: {} ``` +```toml tab="File (TOML)" +[tracing] + [tracing.jaeger] +``` + ```bash tab="CLI" --tracing.jaeger=true ``` @@ -26,18 +26,18 @@ _Required, Default="http://localhost:5778/sampling"_ Sampling Server URL is the address of jaeger-agent's HTTP sampling server. -```toml tab="File (TOML)" -[tracing] - [tracing.jaeger] - samplingServerURL = "http://localhost:5778/sampling" -``` - ```yaml tab="File (YAML)" tracing: jaeger: samplingServerURL: http://localhost:5778/sampling ``` +```toml tab="File (TOML)" +[tracing] + [tracing.jaeger] + samplingServerURL = "http://localhost:5778/sampling" +``` + ```bash tab="CLI" --tracing.jaeger.samplingServerURL=http://localhost:5778/sampling ``` @@ -48,18 +48,18 @@ _Required, Default="const"_ Sampling Type specifies the type of the sampler: `const`, `probabilistic`, `rateLimiting`. -```toml tab="File (TOML)" -[tracing] - [tracing.jaeger] - samplingType = "const" -``` - ```yaml tab="File (YAML)" tracing: jaeger: samplingType: const ``` +```toml tab="File (TOML)" +[tracing] + [tracing.jaeger] + samplingType = "const" +``` + ```bash tab="CLI" --tracing.jaeger.samplingType=const ``` @@ -76,18 +76,18 @@ Valid values for Param field are: - for `probabilistic` sampler, a probability between 0 and 1 - for `rateLimiting` sampler, the number of spans per second -```toml tab="File (TOML)" -[tracing] - [tracing.jaeger] - samplingParam = 1.0 -``` - ```yaml tab="File (YAML)" tracing: jaeger: samplingParam: 1.0 ``` +```toml tab="File (TOML)" +[tracing] + [tracing.jaeger] + samplingParam = 1.0 +``` + ```bash tab="CLI" --tracing.jaeger.samplingParam=1.0 ``` @@ -98,18 +98,18 @@ _Required, Default="127.0.0.1:6831"_ Local Agent Host Port instructs reporter to send spans to jaeger-agent at this address. -```toml tab="File (TOML)" -[tracing] - [tracing.jaeger] - localAgentHostPort = "127.0.0.1:6831" -``` - ```yaml tab="File (YAML)" tracing: jaeger: localAgentHostPort: 127.0.0.1:6831 ``` +```toml tab="File (TOML)" +[tracing] + [tracing.jaeger] + localAgentHostPort = "127.0.0.1:6831" +``` + ```bash tab="CLI" --tracing.jaeger.localAgentHostPort=127.0.0.1:6831 ``` @@ -120,18 +120,18 @@ _Optional, Default=false_ Generate 128-bit trace IDs, compatible with OpenCensus. -```toml tab="File (TOML)" -[tracing] - [tracing.jaeger] - gen128Bit = true -``` - ```yaml tab="File (YAML)" tracing: jaeger: gen128Bit: true ``` +```toml tab="File (TOML)" +[tracing] + [tracing.jaeger] + gen128Bit = true +``` + ```bash tab="CLI" --tracing.jaeger.gen128Bit ``` @@ -146,18 +146,18 @@ This can be either: - `jaeger`, jaeger's default trace header. - `b3`, compatible with OpenZipkin -```toml tab="File (TOML)" -[tracing] - [tracing.jaeger] - propagation = "jaeger" -``` - ```yaml tab="File (YAML)" tracing: jaeger: propagation: jaeger ``` +```toml tab="File (TOML)" +[tracing] + [tracing.jaeger] + propagation = "jaeger" +``` + ```bash tab="CLI" --tracing.jaeger.propagation=jaeger ``` @@ -169,18 +169,18 @@ _Required, Default="uber-trace-id"_ Trace Context Header Name is the http header name used to propagate tracing context. This must be in lower-case to avoid mismatches when decoding incoming headers. -```toml tab="File (TOML)" -[tracing] - [tracing.jaeger] - traceContextHeaderName = "uber-trace-id" -``` - ```yaml tab="File (YAML)" tracing: jaeger: traceContextHeaderName: uber-trace-id ``` +```toml tab="File (TOML)" +[tracing] + [tracing.jaeger] + traceContextHeaderName = "uber-trace-id" +``` + ```bash tab="CLI" --tracing.jaeger.traceContextHeaderName=uber-trace-id ``` @@ -192,18 +192,18 @@ _Optional, Default=true_ Disable the UDP connection helper that periodically re-resolves the agent's hostname and reconnects if there was a change. Enabling the re-resolving of UDP address make the client more robust in Kubernetes deployments. -```toml tab="File (TOML)" -[tracing] - [tracing.jaeger] - disableAttemptReconnecting = false -``` - ```yaml tab="File (YAML)" tracing: jaeger: disableAttemptReconnecting: false ``` +```toml tab="File (TOML)" +[tracing] + [tracing.jaeger] + disableAttemptReconnecting = false +``` + ```bash tab="CLI" --tracing.jaeger.disableAttemptReconnecting=false ``` @@ -215,12 +215,6 @@ _Optional, Default=""_ Collector Endpoint instructs reporter to send spans to jaeger-collector at this URL. -```toml tab="File (TOML)" -[tracing] - [tracing.jaeger.collector] - endpoint = "http://127.0.0.1:14268/api/traces?format=jaeger.thrift" -``` - ```yaml tab="File (YAML)" tracing: jaeger: @@ -228,6 +222,12 @@ tracing: endpoint: http://127.0.0.1:14268/api/traces?format=jaeger.thrift ``` +```toml tab="File (TOML)" +[tracing] + [tracing.jaeger.collector] + endpoint = "http://127.0.0.1:14268/api/traces?format=jaeger.thrift" +``` + ```bash tab="CLI" --tracing.jaeger.collector.endpoint=http://127.0.0.1:14268/api/traces?format=jaeger.thrift ``` @@ -238,12 +238,6 @@ _Optional, Default=""_ User instructs reporter to include a user for basic http authentication when sending spans to jaeger-collector. -```toml tab="File (TOML)" -[tracing] - [tracing.jaeger.collector] - user = "my-user" -``` - ```yaml tab="File (YAML)" tracing: jaeger: @@ -251,6 +245,12 @@ tracing: user: my-user ``` +```toml tab="File (TOML)" +[tracing] + [tracing.jaeger.collector] + user = "my-user" +``` + ```bash tab="CLI" --tracing.jaeger.collector.user=my-user ``` @@ -261,12 +261,6 @@ _Optional, Default=""_ Password instructs reporter to include a password for basic http authentication when sending spans to jaeger-collector. -```toml tab="File (TOML)" -[tracing] - [tracing.jaeger.collector] - password = "my-password" -``` - ```yaml tab="File (YAML)" tracing: jaeger: @@ -274,6 +268,12 @@ tracing: password: my-password ``` +```toml tab="File (TOML)" +[tracing] + [tracing.jaeger.collector] + password = "my-password" +``` + ```bash tab="CLI" --tracing.jaeger.collector.password=my-password ``` diff --git a/docs/content/observability/tracing/overview.md b/docs/content/observability/tracing/overview.md index 1471209e9..17f6a522a 100644 --- a/docs/content/observability/tracing/overview.md +++ b/docs/content/observability/tracing/overview.md @@ -22,14 +22,14 @@ By default, Traefik uses Jaeger as tracing backend. To enable the tracing: -```toml tab="File (TOML)" -[tracing] -``` - ```yaml tab="File (YAML)" tracing: {} ``` +```toml tab="File (TOML)" +[tracing] +``` + ```bash tab="CLI" --tracing=true ``` @@ -42,16 +42,16 @@ _Required, Default="traefik"_ Service name used in selected backend. -```toml tab="File (TOML)" -[tracing] - serviceName = "traefik" -``` - ```yaml tab="File (YAML)" tracing: serviceName: traefik ``` +```toml tab="File (TOML)" +[tracing] + serviceName = "traefik" +``` + ```bash tab="CLI" --tracing.serviceName=traefik ``` @@ -65,16 +65,16 @@ This can prevent certain tracing providers to drop traces that exceed their leng `0` means no truncation will occur. -```toml tab="File (TOML)" -[tracing] - spanNameLimit = 150 -``` - ```yaml tab="File (YAML)" tracing: spanNameLimit: 150 ``` +```toml tab="File (TOML)" +[tracing] + spanNameLimit = 150 +``` + ```bash tab="CLI" --tracing.spanNameLimit=150 ``` diff --git a/docs/content/observability/tracing/zipkin.md b/docs/content/observability/tracing/zipkin.md index dcd76323e..9b8eff9e1 100644 --- a/docs/content/observability/tracing/zipkin.md +++ b/docs/content/observability/tracing/zipkin.md @@ -2,16 +2,16 @@ To enable the Zipkin: -```toml tab="File (TOML)" -[tracing] - [tracing.zipkin] -``` - ```yaml tab="File (YAML)" tracing: zipkin: {} ``` +```toml tab="File (TOML)" +[tracing] + [tracing.zipkin] +``` + ```bash tab="CLI" --tracing.zipkin=true ``` @@ -22,18 +22,18 @@ _Required, Default="http://localhost:9411/api/v2/spans"_ Zipkin HTTP endpoint used to send data. -```toml tab="File (TOML)" -[tracing] - [tracing.zipkin] - httpEndpoint = "http://localhost:9411/api/v2/spans" -``` - ```yaml tab="File (YAML)" tracing: zipkin: httpEndpoint: http://localhost:9411/api/v2/spans ``` +```toml tab="File (TOML)" +[tracing] + [tracing.zipkin] + httpEndpoint = "http://localhost:9411/api/v2/spans" +``` + ```bash tab="CLI" --tracing.zipkin.httpEndpoint=http://localhost:9411/api/v2/spans ``` @@ -44,18 +44,18 @@ _Optional, Default=false_ Use Zipkin SameSpan RPC style traces. -```toml tab="File (TOML)" -[tracing] - [tracing.zipkin] - sameSpan = true -``` - ```yaml tab="File (YAML)" tracing: zipkin: sameSpan: true ``` +```toml tab="File (TOML)" +[tracing] + [tracing.zipkin] + sameSpan = true +``` + ```bash tab="CLI" --tracing.zipkin.sameSpan=true ``` @@ -66,18 +66,18 @@ _Optional, Default=true_ Use Zipkin 128 bit trace IDs. -```toml tab="File (TOML)" -[tracing] - [tracing.zipkin] - id128Bit = false -``` - ```yaml tab="File (YAML)" tracing: zipkin: id128Bit: false ``` +```toml tab="File (TOML)" +[tracing] + [tracing.zipkin] + id128Bit = false +``` + ```bash tab="CLI" --tracing.zipkin.id128Bit=false ``` @@ -88,18 +88,18 @@ _Required, Default=1.0_ The rate between 0.0 and 1.0 of requests to trace. -```toml tab="File (TOML)" -[tracing] - [tracing.zipkin] - sampleRate = 0.2 -``` - ```yaml tab="File (YAML)" tracing: zipkin: sampleRate: 0.2 ``` +```toml tab="File (TOML)" +[tracing] + [tracing.zipkin] + sampleRate = 0.2 +``` + ```bash tab="CLI" --tracing.zipkin.sampleRate=0.2 ``` diff --git a/docs/content/operations/api.md b/docs/content/operations/api.md index 9450eb3ae..5b14c3e21 100644 --- a/docs/content/operations/api.md +++ b/docs/content/operations/api.md @@ -26,16 +26,16 @@ If you enable the API, a new special `service` named `api@internal` is created a To enable the API handler, use the following option on the [static configuration](../getting-started/configuration-overview.md#the-static-configuration): -```toml tab="File (TOML)" -# Static Configuration -[api] -``` - ```yaml tab="File (YAML)" # Static Configuration api: {} ``` +```toml tab="File (TOML)" +# Static Configuration +[api] +``` + ```bash tab="CLI" --api=true ``` @@ -74,16 +74,16 @@ Enable the API in `insecure` mode, which means that the API will be available di !!! info If the entryPoint named `traefik` is not configured, it will be automatically created on port 8080. -```toml tab="File (TOML)" -[api] - insecure = true -``` - ```yaml tab="File (YAML)" api: insecure: true ``` +```toml tab="File (TOML)" +[api] + insecure = true +``` + ```bash tab="CLI" --api.insecure=true ``` @@ -94,16 +94,16 @@ _Optional, Default=true_ Enable the dashboard. More about the dashboard features [here](./dashboard.md). -```toml tab="File (TOML)" -[api] - dashboard = true -``` - ```yaml tab="File (YAML)" api: dashboard: true ``` +```toml tab="File (TOML)" +[api] + dashboard = true +``` + ```bash tab="CLI" --api.dashboard=true ``` @@ -117,16 +117,16 @@ _Optional, Default=false_ Enable additional [endpoints](./api.md#endpoints) for debugging and profiling, served under `/debug/`. -```toml tab="File (TOML)" -[api] - debug = true -``` - ```yaml tab="File (YAML)" api: debug: true ``` +```toml tab="File (TOML)" +[api] + debug = true +``` + ```bash tab="CLI" --api.debug=true ``` diff --git a/docs/content/operations/dashboard.md b/docs/content/operations/dashboard.md index 879ae1e06..20e7ee5fa 100644 --- a/docs/content/operations/dashboard.md +++ b/docs/content/operations/dashboard.md @@ -31,16 +31,6 @@ This is the **recommended** method. Start by enabling the dashboard by using the following option from [Traefik's API](./api.md) on the [static configuration](../getting-started/configuration-overview.md#the-static-configuration): -```toml tab="File (TOML)" -[api] - # Dashboard - # - # Optional - # Default: true - # - dashboard = true -``` - ```yaml tab="File (YAML)" api: # Dashboard @@ -51,6 +41,16 @@ api: dashboard: true ``` +```toml tab="File (TOML)" +[api] + # Dashboard + # + # Optional + # Default: true + # + dashboard = true +``` + ```bash tab="CLI" # Dashboard # @@ -105,18 +105,18 @@ This mode is not recommended because it does not allow the use of security featu To enable the "insecure mode", use the following options from [Traefik's API](./api.md#insecure): -```toml tab="File (TOML)" -[api] - dashboard = true - insecure = true -``` - ```yaml tab="File (YAML)" api: dashboard: true insecure: true ``` +```toml tab="File (TOML)" +[api] + dashboard = true + insecure = true +``` + ```bash tab="CLI" --api.dashboard=true --api.insecure=true ``` diff --git a/docs/content/operations/include-api-examples.md b/docs/content/operations/include-api-examples.md index 9bd416ea3..33fc71a09 100644 --- a/docs/content/operations/include-api-examples.md +++ b/docs/content/operations/include-api-examples.md @@ -69,20 +69,6 @@ labels: - "traefik.http.middlewares.auth.basicauth.users=test:$$apr1$$H6uskkkW$$IgXLP6ewTrSuBkTrqE8wj/,test2:$$apr1$$d9hr9HBB$$4HxwgUir3HP4EsggP/QNo0" ``` -```toml tab="File (TOML)" -# Dynamic Configuration -[http.routers.my-api] - rule = "Host(`traefik.example.com`)" - service = "api@internal" - middlewares = ["auth"] - -[http.middlewares.auth.basicAuth] - users = [ - "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/", - "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0", - ] -``` - ```yaml tab="File (YAML)" # Dynamic Configuration http: @@ -99,3 +85,17 @@ http: - "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/" - "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0" ``` + +```toml tab="File (TOML)" +# Dynamic Configuration +[http.routers.my-api] + rule = "Host(`traefik.example.com`)" + service = "api@internal" + middlewares = ["auth"] + +[http.middlewares.auth.basicAuth] + users = [ + "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/", + "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0", + ] +``` diff --git a/docs/content/operations/include-dashboard-examples.md b/docs/content/operations/include-dashboard-examples.md index 8e3201482..eb72d3a0a 100644 --- a/docs/content/operations/include-dashboard-examples.md +++ b/docs/content/operations/include-dashboard-examples.md @@ -69,20 +69,6 @@ labels: - "traefik.http.middlewares.auth.basicauth.users=test:$$apr1$$H6uskkkW$$IgXLP6ewTrSuBkTrqE8wj/,test2:$$apr1$$d9hr9HBB$$4HxwgUir3HP4EsggP/QNo0" ``` -```toml tab="File (TOML)" -# Dynamic Configuration -[http.routers.my-api] - rule = "Host(`traefik.example.com`) && (PathPrefix(`/api`) || PathPrefix(`/dashboard`))" - service = "api@internal" - middlewares = ["auth"] - -[http.middlewares.auth.basicAuth] - users = [ - "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/", - "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0", - ] -``` - ```yaml tab="File (YAML)" # Dynamic Configuration http: @@ -99,3 +85,17 @@ http: - "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/" - "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0" ``` + +```toml tab="File (TOML)" +# Dynamic Configuration +[http.routers.my-api] + rule = "Host(`traefik.example.com`) && (PathPrefix(`/api`) || PathPrefix(`/dashboard`))" + service = "api@internal" + middlewares = ["auth"] + +[http.middlewares.auth.basicAuth] + users = [ + "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/", + "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0", + ] +``` diff --git a/docs/content/operations/ping.md b/docs/content/operations/ping.md index 95b2266f1..cc187bb9f 100644 --- a/docs/content/operations/ping.md +++ b/docs/content/operations/ping.md @@ -7,14 +7,14 @@ Checking the Health of Your Traefik Instances To enable the API handler: -```toml tab="File (TOML)" -[ping] -``` - ```yaml tab="File (YAML)" ping: {} ``` +```toml tab="File (TOML)" +[ping] +``` + ```bash tab="CLI" --ping=true ``` @@ -39,15 +39,6 @@ _Optional, Default="traefik"_ Enabling /ping on a dedicated EntryPoint. -```toml tab="File (TOML)" -[entryPoints] - [entryPoints.ping] - address = ":8082" - -[ping] - entryPoint = "ping" -``` - ```yaml tab="File (YAML)" entryPoints: ping: @@ -57,6 +48,15 @@ ping: entryPoint: "ping" ``` +```toml tab="File (TOML)" +[entryPoints] + [entryPoints.ping] + address = ":8082" + +[ping] + entryPoint = "ping" +``` + ```bash tab="CLI" --entryPoints.ping.address=:8082 --ping.entryPoint=ping @@ -68,16 +68,16 @@ _Optional, Default=false_ If `manualRouting` is `true`, it disables the default internal router in order to allow one to create a custom router for the `ping@internal` service. -```toml tab="File (TOML)" -[ping] - manualRouting = true -``` - ```yaml tab="File (YAML)" ping: manualRouting: true ``` +```toml tab="File (TOML)" +[ping] + manualRouting = true +``` + ```bash tab="CLI" --ping.manualrouting=true ``` @@ -93,16 +93,16 @@ be expected as the signal for graceful termination. In which case, the terminatingStatusCode can be used to set the code returned by the ping handler during termination. -```toml tab="File (TOML)" -[ping] - terminatingStatusCode = 204 -``` - ```yaml tab="File (YAML)" ping: terminatingStatusCode: 204 ``` +```toml tab="File (TOML)" +[ping] + terminatingStatusCode = 204 +``` + ```bash tab="CLI" --ping.terminatingStatusCode=204 ``` diff --git a/docs/content/providers/consul-catalog.md b/docs/content/providers/consul-catalog.md index d0f85cf79..23f71af86 100644 --- a/docs/content/providers/consul-catalog.md +++ b/docs/content/providers/consul-catalog.md @@ -13,15 +13,15 @@ Attach tags to your services and let Traefik do the rest! Enabling the consul catalog provider - ```toml tab="File (TOML)" - [providers.consulCatalog] - ``` - ```yaml tab="File (YAML)" providers: consulCatalog: {} ``` + ```toml tab="File (TOML)" + [providers.consulCatalog] + ``` + ```bash tab="CLI" --providers.consulcatalog=true ``` @@ -44,12 +44,6 @@ _Optional, Default=15s_ Defines the polling interval. -```toml tab="File (TOML)" -[providers.consulCatalog] - refreshInterval = "30s" - # ... -``` - ```yaml tab="File (YAML)" providers: consulCatalog: @@ -57,6 +51,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.consulCatalog] + refreshInterval = "30s" + # ... +``` + ```bash tab="CLI" --providers.consulcatalog.refreshInterval=30s # ... @@ -68,12 +68,6 @@ _required, Default="traefik"_ The prefix for Consul Catalog tags defining Traefik labels. -```toml tab="File (TOML)" -[providers.consulCatalog] - prefix = "test" - # ... -``` - ```yaml tab="File (YAML)" providers: consulCatalog: @@ -81,6 +75,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.consulCatalog] + prefix = "test" + # ... +``` + ```bash tab="CLI" --providers.consulcatalog.prefix=test # ... @@ -98,12 +98,6 @@ Forces the read to be fully consistent. For more information, see the consul [documentation on consistency](https://www.consul.io/api-docs/features/consistency). -```toml tab="File (TOML)" -[providers.consulCatalog] - requireConsistent = true - # ... -``` - ```yaml tab="File (YAML)" providers: consulCatalog: @@ -111,6 +105,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.consulCatalog] + requireConsistent = true + # ... +``` + ```bash tab="CLI" --providers.consulcatalog.requireConsistent=true # ... @@ -128,12 +128,6 @@ Use stale consistency for catalog reads. For more information, see the consul [documentation on consistency](https://www.consul.io/api-docs/features/consistency). -```toml tab="File (TOML)" -[providers.consulCatalog] - stale = true - # ... -``` - ```yaml tab="File (YAML)" providers: consulCatalog: @@ -141,6 +135,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.consulCatalog] + stale = true + # ... +``` + ```bash tab="CLI" --providers.consulcatalog.stale=true # ... @@ -152,12 +152,6 @@ _Optional, Default=false_ Use local agent caching for catalog reads. -```toml tab="File (TOML)" -[providers.consulCatalog] - cache = true - # ... -``` - ```yaml tab="File (YAML)" providers: consulCatalog: @@ -165,6 +159,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.consulCatalog] + cache = true + # ... +``` + ```bash tab="CLI" --providers.consulcatalog.cache=true # ... @@ -180,13 +180,6 @@ Defines the address of the Consul server. _Optional, Default="127.0.0.1:8500"_ -```toml tab="File (TOML)" -[providers.consulCatalog] - [providers.consulCatalog.endpoint] - address = "127.0.0.1:8500" - # ... -``` - ```yaml tab="File (YAML)" providers: consulCatalog: @@ -195,6 +188,13 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.consulCatalog] + [providers.consulCatalog.endpoint] + address = "127.0.0.1:8500" + # ... +``` + ```bash tab="CLI" --providers.consulcatalog.endpoint.address=127.0.0.1:8500 # ... @@ -206,13 +206,6 @@ _Optional, Default=""_ Defines the URI scheme for the Consul server. -```toml tab="File (TOML)" -[providers.consulCatalog] - [providers.consulCatalog.endpoint] - scheme = "https" - # ... -``` - ```yaml tab="File (YAML)" providers: consulCatalog: @@ -221,6 +214,13 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.consulCatalog] + [providers.consulCatalog.endpoint] + scheme = "https" + # ... +``` + ```bash tab="CLI" --providers.consulcatalog.endpoint.scheme=https # ... @@ -233,13 +233,6 @@ _Optional, Default=""_ Defines the datacenter to use. If not provided in Traefik, Consul uses the default agent datacenter. -```toml tab="File (TOML)" -[providers.consulCatalog] - [providers.consulCatalog.endpoint] - datacenter = "test" - # ... -``` - ```yaml tab="File (YAML)" providers: consulCatalog: @@ -248,6 +241,13 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.consulCatalog] + [providers.consulCatalog.endpoint] + datacenter = "test" + # ... +``` + ```bash tab="CLI" --providers.consulcatalog.endpoint.datacenter=test # ... @@ -259,13 +259,6 @@ _Optional, Default=""_ Token is used to provide a per-request ACL token which overwrites the agent's default token. -```toml tab="File (TOML)" -[providers.consulCatalog] - [providers.consulCatalog.endpoint] - token = "test" - # ... -``` - ```yaml tab="File (YAML)" providers: consulCatalog: @@ -274,6 +267,13 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.consulCatalog] + [providers.consulCatalog.endpoint] + token = "test" + # ... +``` + ```bash tab="CLI" --providers.consulcatalog.endpoint.token=test # ... @@ -286,13 +286,6 @@ _Optional, Default=""_ Limits the duration for which a Watch can block. If not provided, the agent default values will be used. -```toml tab="File (TOML)" -[providers.consulCatalog] - [providers.consulCatalog.endpoint] - endpointWaitTime = "15s" - # ... -``` - ```yaml tab="File (YAML)" providers: consulCatalog: @@ -301,6 +294,13 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.consulCatalog] + [providers.consulCatalog.endpoint] + endpointWaitTime = "15s" + # ... +``` + ```bash tab="CLI" --providers.consulcatalog.endpoint.endpointwaittime=15s # ... @@ -318,11 +318,6 @@ _Optional, Default=""_ Username to use for HTTP Basic Authentication. -```toml tab="File (TOML)" -[providers.consulCatalog.endpoint.httpAuth] - username = "test" -``` - ```yaml tab="File (YAML)" providers: consulCatalog: @@ -331,6 +326,11 @@ providers: username: test ``` +```toml tab="File (TOML)" +[providers.consulCatalog.endpoint.httpAuth] + username = "test" +``` + ```bash tab="CLI" --providers.consulcatalog.endpoint.httpauth.username=test ``` @@ -341,11 +341,6 @@ _Optional, Default=""_ Password to use for HTTP Basic Authentication. -```toml tab="File (TOML)" -[providers.consulCatalog.endpoint.httpAuth] - password = "test" -``` - ```yaml tab="File (YAML)" providers: consulCatalog: @@ -354,6 +349,11 @@ providers: password: test ``` +```toml tab="File (TOML)" +[providers.consulCatalog.endpoint.httpAuth] + password = "test" +``` + ```bash tab="CLI" --providers.consulcatalog.endpoint.httpauth.password=test ``` @@ -370,11 +370,6 @@ _Optional_ `ca` is the path to the CA certificate used for Consul communication, defaults to the system bundle if not specified. -```toml tab="File (TOML)" -[providers.consulCatalog.endpoint.tls] - ca = "path/to/ca.crt" -``` - ```yaml tab="File (YAML)" providers: consulCatalog: @@ -383,6 +378,11 @@ providers: ca: path/to/ca.crt ``` +```toml tab="File (TOML)" +[providers.consulCatalog.endpoint.tls] + ca = "path/to/ca.crt" +``` + ```bash tab="CLI" --providers.consulcatalog.endpoint.tls.ca=path/to/ca.crt ``` @@ -401,11 +401,6 @@ When this option is set to `true`, a client certificate is requested during the When this option is set to `false`, a client certificate is requested during the handshake, and at least one valid certificate should be sent by the client. -```toml tab="File (TOML)" -[providers.consulCatalog.endpoint.tls] - caOptional = true -``` - ```yaml tab="File (YAML)" providers: consulCatalog: @@ -414,6 +409,11 @@ providers: caOptional: true ``` +```toml tab="File (TOML)" +[providers.consulCatalog.endpoint.tls] + caOptional = true +``` + ```bash tab="CLI" --providers.consulcatalog.endpoint.tls.caoptional=true ``` @@ -426,12 +426,6 @@ _Optional_ When using this option, setting the `key` option is required. -```toml tab="File (TOML)" -[providers.consulCatalog.endpoint.tls] - cert = "path/to/foo.cert" - key = "path/to/foo.key" -``` - ```yaml tab="File (YAML)" providers: consulCatalog: @@ -441,6 +435,12 @@ providers: key: path/to/foo.key ``` +```toml tab="File (TOML)" +[providers.consulCatalog.endpoint.tls] + cert = "path/to/foo.cert" + key = "path/to/foo.key" +``` + ```bash tab="CLI" --providers.consulcatalog.endpoint.tls.cert=path/to/foo.cert --providers.consulcatalog.endpoint.tls.key=path/to/foo.key @@ -454,12 +454,6 @@ _Optional_ When using this option, setting the `cert` option is required. -```toml tab="File (TOML)" -[providers.consulCatalog.endpoint.tls] - cert = "path/to/foo.cert" - key = "path/to/foo.key" -``` - ```yaml tab="File (YAML)" providers: consulCatalog: @@ -469,6 +463,12 @@ providers: key: path/to/foo.key ``` +```toml tab="File (TOML)" +[providers.consulCatalog.endpoint.tls] + cert = "path/to/foo.cert" + key = "path/to/foo.key" +``` + ```bash tab="CLI" --providers.consulcatalog.endpoint.tls.cert=path/to/foo.cert --providers.consulcatalog.endpoint.tls.key=path/to/foo.key @@ -480,11 +480,6 @@ _Optional_ If `insecureSkipVerify` is `true`, the TLS connection to Consul accepts any certificate presented by the server regardless of the hostnames it covers. -```toml tab="File (TOML)" -[providers.consulCatalog.endpoint.tls] - insecureSkipVerify = true -``` - ```yaml tab="File (YAML)" providers: consulCatalog: @@ -493,6 +488,11 @@ providers: insecureSkipVerify: true ``` +```toml tab="File (TOML)" +[providers.consulCatalog.endpoint.tls] + insecureSkipVerify = true +``` + ```bash tab="CLI" --providers.consulcatalog.endpoint.tls.insecureskipverify=true ``` @@ -506,12 +506,6 @@ If set to `false`, services that don't have a `traefik.enable=true` tag will be For additional information, refer to [Restrict the Scope of Service Discovery](./overview.md#restrict-the-scope-of-service-discovery). -```toml tab="File (TOML)" -[providers.consulCatalog] - exposedByDefault = false - # ... -``` - ```yaml tab="File (YAML)" providers: consulCatalog: @@ -519,6 +513,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.consulCatalog] + exposedByDefault = false + # ... +``` + ```bash tab="CLI" --providers.consulcatalog.exposedByDefault=false # ... @@ -538,12 +538,6 @@ and the template has access to all the labels (i.e. tags beginning with the `pre The option can be overridden on an instance basis with the `traefik.http.routers.{name-of-your-choice}.rule` tag. -```toml tab="File (TOML)" -[providers.consulCatalog] - defaultRule = "Host(`{{ .Name }}.{{ index .Labels \"customLabel\"}}`)" - # ... -``` - ```yaml tab="File (YAML)" providers: consulCatalog: @@ -551,6 +545,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.consulCatalog] + defaultRule = "Host(`{{ .Name }}.{{ index .Labels \"customLabel\"}}`)" + # ... +``` + ```bash tab="CLI" --providers.consulcatalog.defaultRule="Host(`{{ .Name }}.{{ index .Labels \"customLabel\"}}`)" # ... @@ -599,12 +599,6 @@ as well as the usual boolean logic, as shown in examples below. constraints = "TagRegex(`a\.tag\.t.+`)" ``` -```toml tab="File (TOML)" -[providers.consulCatalog] - constraints = "Tag(`a.tag.name`)" - # ... -``` - ```yaml tab="File (YAML)" providers: consulCatalog: @@ -612,6 +606,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.consulCatalog] + constraints = "Tag(`a.tag.name`)" + # ... +``` + ```bash tab="CLI" --providers.consulcatalog.constraints="Tag(`a.tag.name`)" # ... diff --git a/docs/content/providers/consul.md b/docs/content/providers/consul.md index 7de8b88fe..f3fbf3fa3 100644 --- a/docs/content/providers/consul.md +++ b/docs/content/providers/consul.md @@ -17,11 +17,6 @@ _Required, Default="127.0.0.1:8500"_ Defines how to access to Consul. -```toml tab="File (TOML)" -[providers.consul] - endpoints = ["127.0.0.1:8500"] -``` - ```yaml tab="File (YAML)" providers: consul: @@ -29,6 +24,11 @@ providers: - "127.0.0.1:8500" ``` +```toml tab="File (TOML)" +[providers.consul] + endpoints = ["127.0.0.1:8500"] +``` + ```bash tab="CLI" --providers.consul.endpoints=127.0.0.1:8500 ``` @@ -39,17 +39,17 @@ _Required, Default="traefik"_ Defines the root key of the configuration. -```toml tab="File (TOML)" -[providers.consul] - rootKey = "traefik" -``` - ```yaml tab="File (YAML)" providers: consul: rootKey: "traefik" ``` +```toml tab="File (TOML)" +[providers.consul] + rootKey = "traefik" +``` + ```bash tab="CLI" --providers.consul.rootkey=traefik ``` @@ -60,12 +60,6 @@ _Optional, Default=""_ Defines a username to connect to Consul with. -```toml tab="File (TOML)" -[providers.consul] - # ... - username = "foo" -``` - ```yaml tab="File (YAML)" providers: consul: @@ -73,6 +67,12 @@ providers: usename: "foo" ``` +```toml tab="File (TOML)" +[providers.consul] + # ... + username = "foo" +``` + ```bash tab="CLI" --providers.consul.username=foo ``` @@ -83,12 +83,6 @@ _Optional, Default=""_ Defines a password with which to connect to Consul. -```toml tab="File (TOML)" -[providers.consul] - # ... - password = "bar" -``` - ```yaml tab="File (YAML)" providers: consul: @@ -96,6 +90,12 @@ providers: password: "bar" ``` +```toml tab="File (TOML)" +[providers.consul] + # ... + password = "bar" +``` + ```bash tab="CLI" --providers.consul.password=foo ``` @@ -108,11 +108,6 @@ _Optional_ Certificate Authority used for the secure connection to Consul. -```toml tab="File (TOML)" -[providers.consul.tls] - ca = "path/to/ca.crt" -``` - ```yaml tab="File (YAML)" providers: consul: @@ -120,6 +115,11 @@ providers: ca: path/to/ca.crt ``` +```toml tab="File (TOML)" +[providers.consul.tls] + ca = "path/to/ca.crt" +``` + ```bash tab="CLI" --providers.consul.tls.ca=path/to/ca.crt ``` @@ -136,11 +136,6 @@ When this option is set to `true`, a client certificate is requested during the When this option is set to `false`, a client certificate is requested during the handshake, and at least one valid certificate should be sent by the client. -```toml tab="File (TOML)" -[providers.consul.tls] - caOptional = true -``` - ```yaml tab="File (YAML)" providers: consul: @@ -148,6 +143,11 @@ providers: caOptional: true ``` +```toml tab="File (TOML)" +[providers.consul.tls] + caOptional = true +``` + ```bash tab="CLI" --providers.consul.tls.caOptional=true ``` @@ -156,12 +156,6 @@ providers: Public certificate used for the secure connection to Consul. -```toml tab="File (TOML)" -[providers.consul.tls] - cert = "path/to/foo.cert" - key = "path/to/foo.key" -``` - ```yaml tab="File (YAML)" providers: consul: @@ -170,6 +164,12 @@ providers: key: path/to/foo.key ``` +```toml tab="File (TOML)" +[providers.consul.tls] + cert = "path/to/foo.cert" + key = "path/to/foo.key" +``` + ```bash tab="CLI" --providers.consul.tls.cert=path/to/foo.cert --providers.consul.tls.key=path/to/foo.key @@ -179,12 +179,6 @@ providers: Private certificate used for the secure connection to Consul. -```toml tab="File (TOML)" -[providers.consul.tls] - cert = "path/to/foo.cert" - key = "path/to/foo.key" -``` - ```yaml tab="File (YAML)" providers: consul: @@ -193,6 +187,12 @@ providers: key: path/to/foo.key ``` +```toml tab="File (TOML)" +[providers.consul.tls] + cert = "path/to/foo.cert" + key = "path/to/foo.key" +``` + ```bash tab="CLI" --providers.consul.tls.cert=path/to/foo.cert --providers.consul.tls.key=path/to/foo.key @@ -202,11 +202,6 @@ providers: If `insecureSkipVerify` is `true`, the TLS connection to Consul accepts any certificate presented by the server regardless of the hostnames it covers. -```toml tab="File (TOML)" -[providers.consul.tls] - insecureSkipVerify = true -``` - ```yaml tab="File (YAML)" providers: consul: @@ -214,6 +209,11 @@ providers: insecureSkipVerify: true ``` +```toml tab="File (TOML)" +[providers.consul.tls] + insecureSkipVerify = true +``` + ```bash tab="CLI" --providers.consul.tls.insecureSkipVerify=true ``` diff --git a/docs/content/providers/docker.md b/docs/content/providers/docker.md index 6b407e1f8..502e564f9 100644 --- a/docs/content/providers/docker.md +++ b/docs/content/providers/docker.md @@ -20,15 +20,15 @@ and [Docker Swarm Mode](https://docs.docker.com/engine/swarm/). Enabling the docker provider - ```toml tab="File (TOML)" - [providers.docker] - ``` - ```yaml tab="File (YAML)" providers: docker: {} ``` + ```toml tab="File (TOML)" + [providers.docker] + ``` + ```bash tab="CLI" --providers.docker=true ``` @@ -48,15 +48,6 @@ and [Docker Swarm Mode](https://docs.docker.com/engine/swarm/). Enabling the docker provider (Swarm Mode) - ```toml tab="File (TOML)" - [providers.docker] - # swarm classic (1.12-) - # endpoint = "tcp://127.0.0.1:2375" - # docker swarm mode (1.12+) - endpoint = "tcp://127.0.0.1:2377" - swarmMode = true - ``` - ```yaml tab="File (YAML)" providers: docker: @@ -67,6 +58,15 @@ and [Docker Swarm Mode](https://docs.docker.com/engine/swarm/). swarmMode: true ``` + ```toml tab="File (TOML)" + [providers.docker] + # swarm classic (1.12-) + # endpoint = "tcp://127.0.0.1:2375" + # docker swarm mode (1.12+) + endpoint = "tcp://127.0.0.1:2377" + swarmMode = true + ``` + ```bash tab="CLI" # swarm classic (1.12-) # --providers.docker.endpoint=tcp://127.0.0.1:2375 @@ -117,7 +117,7 @@ Port detection works as follows: - If a container [exposes](https://docs.docker.com/engine/reference/builder/#expose) a single port, then Traefik uses this port for private communication. - If a container [exposes](https://docs.docker.com/engine/reference/builder/#expose) multiple ports, - or does not expose any port, then you must manually specify which port Traefik should use for communication + or does not expose any port, then you must manually specify which port Traefik should use for communication by using the label `traefik.http.services..loadbalancer.server.port` (Read more on this label in the dedicated section in [routing](../routing/providers/docker.md#port)). @@ -261,12 +261,6 @@ See the sections [Docker API Access](#docker-api-access) and [Docker Swarm API A We specify the docker.sock in traefik's configuration file. - ```toml tab="File (TOML)" - [providers.docker] - endpoint = "unix:///var/run/docker.sock" - # ... - ``` - ```yaml tab="File (YAML)" providers: docker: @@ -274,6 +268,12 @@ See the sections [Docker API Access](#docker-api-access) and [Docker Swarm API A # ... ``` + ```toml tab="File (TOML)" + [providers.docker] + endpoint = "unix:///var/run/docker.sock" + # ... + ``` + ```bash tab="CLI" --providers.docker.endpoint=unix:///var/run/docker.sock # ... @@ -285,12 +285,6 @@ See the sections [Docker API Access](#docker-api-access) and [Docker Swarm API A We specify the SSH host and user in Traefik's configuration file. Note that is server requires public keys for authentication you must have those accessible for user who runs Traefik. - ```toml tab="File (TOML)" - [providers.docker] - endpoint = "ssh://traefik@192.168.2.5:2022" - # ... - ``` - ```yaml tab="File (YAML)" providers: docker: @@ -298,22 +292,28 @@ See the sections [Docker API Access](#docker-api-access) and [Docker Swarm API A # ... ``` + ```toml tab="File (TOML)" + [providers.docker] + endpoint = "ssh://traefik@192.168.2.5:2022" + # ... + ``` + ```bash tab="CLI" --providers.docker.endpoint=ssh://traefik@192.168.2.5:2022 # ... ``` -```toml tab="File (TOML)" -[providers.docker] - endpoint = "unix:///var/run/docker.sock" -``` - ```yaml tab="File (YAML)" providers: docker: endpoint: "unix:///var/run/docker.sock" ``` +```toml tab="File (TOML)" +[providers.docker] + endpoint = "unix:///var/run/docker.sock" +``` + ```bash tab="CLI" --providers.docker.endpoint=unix:///var/run/docker.sock ``` @@ -350,12 +350,6 @@ but still uses the `traefik.http.services..loadbalancer.server.port` that - `ExtPort` stands for "external Port found in the binding" - `IntPort` stands for "internal network container's port." -```toml tab="File (TOML)" -[providers.docker] - useBindPortIP = true - # ... -``` - ```yaml tab="File (YAML)" providers: docker: @@ -363,6 +357,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.docker] + useBindPortIP = true + # ... +``` + ```bash tab="CLI" --providers.docker.useBindPortIP=true # ... @@ -377,12 +377,6 @@ If set to `false`, containers that do not have a `traefik.enable=true` label are For additional information, refer to [Restrict the Scope of Service Discovery](./overview.md#restrict-the-scope-of-service-discovery). -```toml tab="File (TOML)" -[providers.docker] - exposedByDefault = false - # ... -``` - ```yaml tab="File (YAML)" providers: docker: @@ -390,6 +384,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.docker] + exposedByDefault = false + # ... +``` + ```bash tab="CLI" --providers.docker.exposedByDefault=false # ... @@ -403,12 +403,6 @@ Defines a default docker network to use for connections to all containers. This option can be overridden on a per-container basis with the `traefik.docker.network` label. -```toml tab="File (TOML)" -[providers.docker] - network = "test" - # ... -``` - ```yaml tab="File (YAML)" providers: docker: @@ -416,6 +410,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.docker] + network = "test" + # ... +``` + ```bash tab="CLI" --providers.docker.network=test # ... @@ -432,12 +432,6 @@ It must be a valid [Go template](https://golang.org/pkg/text/template/), and can The container service name can be accessed with the `Name` identifier, and the template has access to all the labels defined on this container. -```toml tab="File (TOML)" -[providers.docker] - defaultRule = "Host(`{{ .Name }}.{{ index .Labels \"customLabel\"}}`)" - # ... -``` - ```yaml tab="File (YAML)" providers: docker: @@ -445,6 +439,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.docker] + defaultRule = "Host(`{{ .Name }}.{{ index .Labels \"customLabel\"}}`)" + # ... +``` + ```bash tab="CLI" --providers.docker.defaultRule=Host(`{{ .Name }}.{{ index .Labels \"customLabel\"}}`) # ... @@ -456,12 +456,6 @@ _Optional, Default=false_ Enables the Swarm Mode (instead of standalone Docker). -```toml tab="File (TOML)" -[providers.docker] - swarmMode = true - # ... -``` - ```yaml tab="File (YAML)" providers: docker: @@ -469,6 +463,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.docker] + swarmMode = true + # ... +``` + ```bash tab="CLI" --providers.docker.swarmMode=true # ... @@ -480,12 +480,6 @@ _Optional, Default=15_ Defines the polling interval (in seconds) for Swarm Mode. -```toml tab="File (TOML)" -[providers.docker] - swarmModeRefreshSeconds = 30 - # ... -``` - ```yaml tab="File (YAML)" providers: docker: @@ -493,6 +487,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.docker] + swarmModeRefreshSeconds = 30 + # ... +``` + ```bash tab="CLI" --providers.docker.swarmModeRefreshSeconds=30 # ... @@ -504,12 +504,6 @@ _Optional, Default=0_ Defines the client timeout (in seconds) for HTTP connections. If its value is `0`, no timeout is set. -```toml tab="File (TOML)" -[providers.docker] - httpClientTimeout = 300 - # ... -``` - ```yaml tab="File (YAML)" providers: docker: @@ -517,6 +511,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.docker] + httpClientTimeout = 300 + # ... +``` + ```bash tab="CLI" --providers.docker.httpClientTimeout=300 # ... @@ -528,12 +528,6 @@ _Optional, Default=true_ Watch Docker Swarm events. -```toml tab="File (TOML)" -[providers.docker] - watch = false - # ... -``` - ```yaml tab="File (YAML)" providers: docker: @@ -541,6 +535,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.docker] + watch = false + # ... +``` + ```bash tab="CLI" --providers.docker.watch=false # ... @@ -591,12 +591,6 @@ as well as the usual boolean logic, as shown in examples below. For additional information, refer to [Restrict the Scope of Service Discovery](./overview.md#restrict-the-scope-of-service-discovery). -```toml tab="File (TOML)" -[providers.docker] - constraints = "Label(`a.label.name`,`foo`)" - # ... -``` - ```yaml tab="File (YAML)" providers: docker: @@ -604,6 +598,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.docker] + constraints = "Label(`a.label.name`,`foo`)" + # ... +``` + ```bash tab="CLI" --providers.docker.constraints=Label(`a.label.name`,`foo`) # ... @@ -617,11 +617,6 @@ _Optional_ Certificate Authority used for the secure connection to Docker. -```toml tab="File (TOML)" -[providers.docker.tls] - ca = "path/to/ca.crt" -``` - ```yaml tab="File (YAML)" providers: docker: @@ -629,6 +624,11 @@ providers: ca: path/to/ca.crt ``` +```toml tab="File (TOML)" +[providers.docker.tls] + ca = "path/to/ca.crt" +``` + ```bash tab="CLI" --providers.docker.tls.ca=path/to/ca.crt ``` @@ -645,11 +645,6 @@ When this option is set to `true`, a client certificate is requested during the When this option is set to `false`, a client certificate is requested during the handshake, and at least one valid certificate should be sent by the client. -```toml tab="File (TOML)" -[providers.docker.tls] - caOptional = true -``` - ```yaml tab="File (YAML)" providers: docker: @@ -657,6 +652,11 @@ providers: caOptional: true ``` +```toml tab="File (TOML)" +[providers.docker.tls] + caOptional = true +``` + ```bash tab="CLI" --providers.docker.tls.caOptional=true ``` @@ -665,12 +665,6 @@ providers: Public certificate used for the secure connection to Docker. -```toml tab="File (TOML)" -[providers.docker.tls] - cert = "path/to/foo.cert" - key = "path/to/foo.key" -``` - ```yaml tab="File (YAML)" providers: docker: @@ -679,6 +673,12 @@ providers: key: path/to/foo.key ``` +```toml tab="File (TOML)" +[providers.docker.tls] + cert = "path/to/foo.cert" + key = "path/to/foo.key" +``` + ```bash tab="CLI" --providers.docker.tls.cert=path/to/foo.cert --providers.docker.tls.key=path/to/foo.key @@ -688,12 +688,6 @@ providers: Private certificate used for the secure connection to Docker. -```toml tab="File (TOML)" -[providers.docker.tls] - cert = "path/to/foo.cert" - key = "path/to/foo.key" -``` - ```yaml tab="File (YAML)" providers: docker: @@ -702,6 +696,12 @@ providers: key: path/to/foo.key ``` +```toml tab="File (TOML)" +[providers.docker.tls] + cert = "path/to/foo.cert" + key = "path/to/foo.key" +``` + ```bash tab="CLI" --providers.docker.tls.cert=path/to/foo.cert --providers.docker.tls.key=path/to/foo.key @@ -711,11 +711,6 @@ providers: If `insecureSkipVerify` is `true`, the TLS connection to Docker accepts any certificate presented by the server regardless of the hostnames it covers. -```toml tab="File (TOML)" -[providers.docker.tls] - insecureSkipVerify = true -``` - ```yaml tab="File (YAML)" providers: docker: @@ -723,6 +718,11 @@ providers: insecureSkipVerify: true ``` +```toml tab="File (TOML)" +[providers.docker.tls] + insecureSkipVerify = true +``` + ```bash tab="CLI" --providers.docker.tls.insecureSkipVerify=true ``` diff --git a/docs/content/providers/ecs.md b/docs/content/providers/ecs.md index efc3e062a..39cb0945b 100644 --- a/docs/content/providers/ecs.md +++ b/docs/content/providers/ecs.md @@ -11,15 +11,15 @@ Attach labels to your ECS containers and let Traefik do the rest! Enabling the ECS provider: - ```toml tab="File (TOML)" - [providers.ecs] - ``` - ```yaml tab="File (YAML)" providers: ecs: {} ``` + ```toml tab="File (TOML)" + [providers.ecs] + ``` + ```bash tab="CLI" --providers.ecs=true ``` @@ -63,12 +63,6 @@ Search for services in cluster list. - If set to `true` service discovery is disabled on configured clusters, but enabled for all other clusters. - If set to `false` service discovery is enabled on configured clusters only. -```toml tab="File (TOML)" -[providers.ecs] - autoDiscoverClusters = true - # ... -``` - ```yaml tab="File (YAML)" providers: ecs: @@ -76,6 +70,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.ecs] + autoDiscoverClusters = true + # ... +``` + ```bash tab="CLI" --providers.ecs.autoDiscoverClusters=true # ... @@ -87,12 +87,6 @@ _Optional, Default=["default"]_ Search for services in cluster list. -```toml tab="File (TOML)" -[providers.ecs] - clusters = ["default"] - # ... -``` - ```yaml tab="File (YAML)" providers: ecs: @@ -101,6 +95,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.ecs] + clusters = ["default"] + # ... +``` + ```bash tab="CLI" --providers.ecs.clusters=default # ... @@ -114,12 +114,6 @@ Expose ECS services by default in Traefik. If set to `false`, services that do not have a `traefik.enable=true` label are ignored from the resulting routing configuration. -```toml tab="File (TOML)" -[providers.ecs] - exposedByDefault = false - # ... -``` - ```yaml tab="File (YAML)" providers: ecs: @@ -127,6 +121,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.ecs] + exposedByDefault = false + # ... +``` + ```bash tab="CLI" --providers.ecs.exposedByDefault=false # ... @@ -143,12 +143,6 @@ It must be a valid [Go template](https://golang.org/pkg/text/template/), and can The container service name can be accessed with the `Name` identifier, and the template has access to all the labels defined on this container. -```toml tab="File (TOML)" -[providers.ecs] - defaultRule = "Host(`{{ .Name }}.{{ index .Labels \"customLabel\"}}`)" - # ... -``` - ```yaml tab="File (YAML)" providers: ecs: @@ -156,6 +150,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.ecs] + defaultRule = "Host(`{{ .Name }}.{{ index .Labels \"customLabel\"}}`)" + # ... +``` + ```bash tab="CLI" --providers.ecs.defaultRule=Host(`{{ .Name }}.{{ index .Labels \"customLabel\"}}`) # ... @@ -167,12 +167,6 @@ _Optional, Default=15_ Polling interval (in seconds). -```toml tab="File (TOML)" -[providers.ecs] - refreshSeconds = 15 - # ... -``` - ```yaml tab="File (YAML)" providers: ecs: @@ -180,6 +174,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.ecs] + refreshSeconds = 15 + # ... +``` + ```bash tab="CLI" --providers.ecs.refreshSeconds=15 # ... @@ -198,13 +198,6 @@ If `accessKeyID` and `secretAccessKey` are not provided, credentials are resolve - Using shared credentials, determined by `AWS_PROFILE` and `AWS_SHARED_CREDENTIALS_FILE`, defaults to `default` and `~/.aws/credentials`. - Using EC2 instance role or ECS task role -```toml tab="File (TOML)" -[providers.ecs] - region = "us-east-1" - accessKeyID = "abc" - secretAccessKey = "123" -``` - ```yaml tab="File (YAML)" providers: ecs: @@ -214,6 +207,13 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.ecs] + region = "us-east-1" + accessKeyID = "abc" + secretAccessKey = "123" +``` + ```bash tab="CLI" --providers.ecs.region="us-east-1" --providers.ecs.accessKeyID="abc" diff --git a/docs/content/providers/etcd.md b/docs/content/providers/etcd.md index a9bc31fad..2d2ab9ba4 100644 --- a/docs/content/providers/etcd.md +++ b/docs/content/providers/etcd.md @@ -17,11 +17,6 @@ _Required, Default="127.0.0.1:2379"_ Defines how to access etcd. -```toml tab="File (TOML)" -[providers.etcd] - endpoints = ["127.0.0.1:2379"] -``` - ```yaml tab="File (YAML)" providers: etcd: @@ -29,6 +24,11 @@ providers: - "127.0.0.1:2379" ``` +```toml tab="File (TOML)" +[providers.etcd] + endpoints = ["127.0.0.1:2379"] +``` + ```bash tab="CLI" --providers.etcd.endpoints=127.0.0.1:2379 ``` @@ -39,17 +39,17 @@ _Required, Default="traefik"_ Defines the root key of the configuration. -```toml tab="File (TOML)" -[providers.etcd] - rootKey = "traefik" -``` - ```yaml tab="File (YAML)" providers: etcd: rootKey: "traefik" ``` +```toml tab="File (TOML)" +[providers.etcd] + rootKey = "traefik" +``` + ```bash tab="CLI" --providers.etcd.rootkey=traefik ``` @@ -60,12 +60,6 @@ _Optional, Default=""_ Defines a username with which to connect to etcd. -```toml tab="File (TOML)" -[providers.etcd] - # ... - username = "foo" -``` - ```yaml tab="File (YAML)" providers: etcd: @@ -73,6 +67,12 @@ providers: usename: "foo" ``` +```toml tab="File (TOML)" +[providers.etcd] + # ... + username = "foo" +``` + ```bash tab="CLI" --providers.etcd.username=foo ``` @@ -83,12 +83,6 @@ _Optional, Default=""_ Defines a password with which to connect to etcd. -```toml tab="File (TOML)" -[providers.etcd] - # ... - password = "bar" -``` - ```yaml tab="File (YAML)" providers: etcd: @@ -96,6 +90,12 @@ providers: password: "bar" ``` +```toml tab="File (TOML)" +[providers.etcd] + # ... + password = "bar" +``` + ```bash tab="CLI" --providers.etcd.password=foo ``` @@ -108,11 +108,6 @@ _Optional_ Certificate Authority used for the secure connection to etcd. -```toml tab="File (TOML)" -[providers.etcd.tls] - ca = "path/to/ca.crt" -``` - ```yaml tab="File (YAML)" providers: etcd: @@ -120,6 +115,11 @@ providers: ca: path/to/ca.crt ``` +```toml tab="File (TOML)" +[providers.etcd.tls] + ca = "path/to/ca.crt" +``` + ```bash tab="CLI" --providers.etcd.tls.ca=path/to/ca.crt ``` @@ -136,11 +136,6 @@ When this option is set to `true`, a client certificate is requested during the When this option is set to `false`, a client certificate is requested during the handshake, and at least one valid certificate should be sent by the client. -```toml tab="File (TOML)" -[providers.etcd.tls] - caOptional = true -``` - ```yaml tab="File (YAML)" providers: etcd: @@ -148,6 +143,11 @@ providers: caOptional: true ``` +```toml tab="File (TOML)" +[providers.etcd.tls] + caOptional = true +``` + ```bash tab="CLI" --providers.etcd.tls.caOptional=true ``` @@ -156,12 +156,6 @@ providers: Public certificate used for the secure connection to etcd. -```toml tab="File (TOML)" -[providers.etcd.tls] - cert = "path/to/foo.cert" - key = "path/to/foo.key" -``` - ```yaml tab="File (YAML)" providers: etcd: @@ -170,6 +164,12 @@ providers: key: path/to/foo.key ``` +```toml tab="File (TOML)" +[providers.etcd.tls] + cert = "path/to/foo.cert" + key = "path/to/foo.key" +``` + ```bash tab="CLI" --providers.etcd.tls.cert=path/to/foo.cert --providers.etcd.tls.key=path/to/foo.key @@ -179,12 +179,6 @@ providers: Private certificate used for the secure connection to etcd. -```toml tab="File (TOML)" -[providers.etcd.tls] - cert = "path/to/foo.cert" - key = "path/to/foo.key" -``` - ```yaml tab="File (YAML)" providers: etcd: @@ -193,6 +187,12 @@ providers: key: path/to/foo.key ``` +```toml tab="File (TOML)" +[providers.etcd.tls] + cert = "path/to/foo.cert" + key = "path/to/foo.key" +``` + ```bash tab="CLI" --providers.etcd.tls.cert=path/to/foo.cert --providers.etcd.tls.key=path/to/foo.key @@ -202,11 +202,6 @@ providers: If `insecureSkipVerify` is `true`, the TLS connection to etcd accepts any certificate presented by the server regardless of the hostnames it covers. -```toml tab="File (TOML)" -[providers.etcd.tls] - insecureSkipVerify = true -``` - ```yaml tab="File (YAML)" providers: etcd: @@ -214,6 +209,11 @@ providers: insecureSkipVerify: true ``` +```toml tab="File (TOML)" +[providers.etcd.tls] + insecureSkipVerify = true +``` + ```bash tab="CLI" --providers.etcd.tls.insecureSkipVerify=true ``` diff --git a/docs/content/providers/file.md b/docs/content/providers/file.md index b393dd0c9..ceff58686 100644 --- a/docs/content/providers/file.md +++ b/docs/content/providers/file.md @@ -3,7 +3,7 @@ Good Old Configuration File {: .subtitle } -The file provider lets you define the [dynamic configuration](./overview.md) in a TOML or YAML file. +The file provider lets you define the [dynamic configuration](./overview.md) in a YAML or TOML file. It supports providing configuration through a [single configuration file](#filename) or [multiple separate files](#directory). @@ -21,50 +21,23 @@ It supports providing configuration through a [single configuration file](#filen Enabling the file provider: - ```toml tab="File (TOML)" - [providers.file] - directory = "/path/to/dynamic/conf" - ``` - ```yaml tab="File (YAML)" providers: file: directory: "/path/to/dynamic/conf" ``` + ```toml tab="File (TOML)" + [providers.file] + directory = "/path/to/dynamic/conf" + ``` + ```bash tab="CLI" --providers.file.directory=/path/to/dynamic/conf ``` Declaring Routers, Middlewares & Services: - ```toml tab="TOML" - [http] - # Add the router - [http.routers] - [http.routers.router0] - entryPoints = ["web"] - middlewares = ["my-basic-auth"] - service = "service-foo" - rule = "Path(`/foo`)" - - # Add the middleware - [http.middlewares] - [http.middlewares.my-basic-auth.basicAuth] - users = ["test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/", - "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0"] - usersFile = "etc/traefik/.htpasswd" - - # Add the service - [http.services] - [http.services.service-foo] - [http.services.service-foo.loadBalancer] - [[http.services.service-foo.loadBalancer.servers]] - url = "http://foo/" - [[http.services.service-foo.loadBalancer.servers]] - url = "http://bar/" - ``` - ```yaml tab="YAML" http: # Add the router @@ -96,6 +69,33 @@ It supports providing configuration through a [single configuration file](#filen passHostHeader: false ``` + ```toml tab="TOML" + [http] + # Add the router + [http.routers] + [http.routers.router0] + entryPoints = ["web"] + middlewares = ["my-basic-auth"] + service = "service-foo" + rule = "Path(`/foo`)" + + # Add the middleware + [http.middlewares] + [http.middlewares.my-basic-auth.basicAuth] + users = ["test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/", + "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0"] + usersFile = "etc/traefik/.htpasswd" + + # Add the service + [http.services] + [http.services.service-foo] + [http.services.service-foo.loadBalancer] + [[http.services.service-foo.loadBalancer.servers]] + url = "http://foo/" + [[http.services.service-foo.loadBalancer.servers]] + url = "http://bar/" + ``` + ## Provider Configuration For an overview of all the options that can be set with the file provider, see the [dynamic configuration](../reference/dynamic-configuration/file.md) and [static configuration](../reference/static-configuration/overview.md) references. @@ -105,7 +105,7 @@ For an overview of all the options that can be set with the file provider, see t With the file provider, Traefik listens for file system notifications to update the dynamic configuration. If you use a mounted/bound file system in your orchestrator (like docker or kubernetes), the way the files are linked may be a source of errors. - If the link between the file systems is broken, when a source file/directory is changed/renamed, nothing will be reported to the linked file/directory, so the file system notifications will be neither triggered nor caught. + If the link between the file systems is broken, when a source file/directory is changed/renamed, nothing will be reported to the linked file/directory, so the file system notifications will be neither triggered nor caught. For example, in Docker, if the host file is renamed, the link to the mounted file is broken and the container's file is no longer updated. To avoid this kind of issue, it is recommended to: @@ -125,20 +125,20 @@ Defines the path to the configuration file. The `filename` and `directory` options are mutually exclusive. It is recommended to use `directory`. -```toml tab="File (TOML)" -[providers] - [providers.file] - filename = "/path/to/config/dynamic_conf.toml" -``` - ```yaml tab="File (YAML)" providers: file: filename: /path/to/config/dynamic_conf.yml ``` +```toml tab="File (TOML)" +[providers] + [providers.file] + filename = "/path/to/config/dynamic_conf.toml" +``` + ```bash tab="CLI" ---providers.file.filename=/path/to/config/dynamic_conf.toml +--providers.file.filename=/path/to/config/dynamic_conf.yml ``` ### `directory` @@ -150,18 +150,18 @@ Defines the path to the directory that contains the configuration files. The `filename` and `directory` options are mutually exclusive. It is recommended to use `directory`. -```toml tab="File (TOML)" -[providers] - [providers.file] - directory = "/path/to/config" -``` - ```yaml tab="File (YAML)" providers: file: directory: /path/to/config ``` +```toml tab="File (TOML)" +[providers] + [providers.file] + directory = "/path/to/config" +``` + ```bash tab="CLI" --providers.file.directory=/path/to/config ``` @@ -171,13 +171,6 @@ providers: 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. -```toml tab="File (TOML)" -[providers] - [providers.file] - directory = "/path/to/dynamic/conf" - watch = true -``` - ```yaml tab="File (YAML)" providers: file: @@ -185,6 +178,13 @@ providers: watch: true ``` +```toml tab="File (TOML)" +[providers] + [providers.file] + directory = "/path/to/dynamic/conf" + watch = true +``` + ```bash tab="CLI" --providers.file.directory=/my/path/to/dynamic/conf --providers.file.watch=true @@ -205,6 +205,44 @@ To illustrate, it is possible to easily define multiple routers, services, and T ??? example "Configuring Using Templating" + ```yaml tab="YAML" + http: + routers: + {{range $i, $e := until 100 }} + router{{ $e }}-{{ env "MY_ENV_VAR" }}: + # ... + {{end}} + + services: + {{range $i, $e := until 100 }} + application{{ $e }}: + # ... + {{end}} + + tcp: + routers: + {{range $i, $e := until 100 }} + router{{ $e }}: + # ... + {{end}} + + services: + {{range $i, $e := until 100 }} + service{{ $e }}: + # ... + {{end}} + + tls: + certificates: + {{ range $i, $e := until 10 }} + - certFile: "/etc/traefik/cert-{{ $e }}.pem" + keyFile: "/etc/traefik/cert-{{ $e }}.key" + store: + - "my-store-foo-{{ $e }}" + - "my-store-bar-{{ $e }}" + {{end}} + ``` + ```toml tab="TOML" # template-rules.toml [http] @@ -248,41 +286,3 @@ To illustrate, it is possible to easily define multiple routers, services, and T # ... {{ end }} ``` - - ```yaml tab="YAML" - http: - routers: - {{range $i, $e := until 100 }} - router{{ $e }}-{{ env "MY_ENV_VAR" }}: - # ... - {{end}} - - services: - {{range $i, $e := until 100 }} - application{{ $e }}: - # ... - {{end}} - - tcp: - routers: - {{range $i, $e := until 100 }} - router{{ $e }}: - # ... - {{end}} - - services: - {{range $i, $e := until 100 }} - service{{ $e }}: - # ... - {{end}} - - tls: - certificates: - {{ range $i, $e := until 10 }} - - certFile: "/etc/traefik/cert-{{ $e }}.pem" - keyFile: "/etc/traefik/cert-{{ $e }}.key" - store: - - "my-store-foo-{{ $e }}" - - "my-store-bar-{{ $e }}" - {{end}} - ``` diff --git a/docs/content/providers/http.md b/docs/content/providers/http.md index 290fb828c..5c611cef9 100644 --- a/docs/content/providers/http.md +++ b/docs/content/providers/http.md @@ -14,11 +14,6 @@ _Required_ Defines the HTTP(S) endpoint to poll. -```toml tab="File (TOML)" -[providers.http] - endpoint = "http://127.0.0.1:9000/api" -``` - ```yaml tab="File (YAML)" providers: http: @@ -26,6 +21,11 @@ providers: - "http://127.0.0.1:9000/api" ``` +```toml tab="File (TOML)" +[providers.http] + endpoint = "http://127.0.0.1:9000/api" +``` + ```bash tab="CLI" --providers.http.endpoint=http://127.0.0.1:9000/api ``` @@ -36,17 +36,17 @@ _Optional, Default="5s"_ Defines the polling interval. -```toml tab="File (TOML)" -[providers.http] - pollInterval = "5s" -``` - ```yaml tab="File (YAML)" providers: http: pollInterval: "5s" ``` +```toml tab="File (TOML)" +[providers.http] + pollInterval = "5s" +``` + ```bash tab="CLI" --providers.http.pollInterval=5s ``` @@ -57,17 +57,17 @@ _Optional, Default="5s"_ Defines the polling timeout when connecting to the configured endpoint. -```toml tab="File (TOML)" -[providers.http] - pollTimeout = "5s" -``` - ```yaml tab="File (YAML)" providers: http: pollTimeout: "5s" ``` +```toml tab="File (TOML)" +[providers.http] + pollTimeout = "5s" +``` + ```bash tab="CLI" --providers.http.pollTimeout=5s ``` @@ -80,11 +80,6 @@ _Optional_ Certificate Authority used for the secure connection to the configured endpoint. -```toml tab="File (TOML)" -[providers.http.tls] - ca = "path/to/ca.crt" -``` - ```yaml tab="File (YAML)" providers: http: @@ -92,6 +87,11 @@ providers: ca: path/to/ca.crt ``` +```toml tab="File (TOML)" +[providers.http.tls] + ca = "path/to/ca.crt" +``` + ```bash tab="CLI" --providers.http.tls.ca=path/to/ca.crt ``` @@ -108,11 +108,6 @@ When this option is set to `true`, a client certificate is requested during the When this option is set to `false`, a client certificate is requested during the handshake, and at least one valid certificate should be sent by the client. -```toml tab="File (TOML)" -[providers.http.tls] - caOptional = true -``` - ```yaml tab="File (YAML)" providers: http: @@ -120,6 +115,11 @@ providers: caOptional: true ``` +```toml tab="File (TOML)" +[providers.http.tls] + caOptional = true +``` + ```bash tab="CLI" --providers.http.tls.caOptional=true ``` @@ -128,12 +128,6 @@ providers: Public certificate used for the secure connection to the configured endpoint. -```toml tab="File (TOML)" -[providers.http.tls] - cert = "path/to/foo.cert" - key = "path/to/foo.key" -``` - ```yaml tab="File (YAML)" providers: http: @@ -142,6 +136,12 @@ providers: key: path/to/foo.key ``` +```toml tab="File (TOML)" +[providers.http.tls] + cert = "path/to/foo.cert" + key = "path/to/foo.key" +``` + ```bash tab="CLI" --providers.http.tls.cert=path/to/foo.cert --providers.http.tls.key=path/to/foo.key @@ -151,12 +151,6 @@ providers: Private certificate used for the secure connection to the configured endpoint. -```toml tab="File (TOML)" -[providers.http.tls] - cert = "path/to/foo.cert" - key = "path/to/foo.key" -``` - ```yaml tab="File (YAML)" providers: http: @@ -165,6 +159,12 @@ providers: key: path/to/foo.key ``` +```toml tab="File (TOML)" +[providers.http.tls] + cert = "path/to/foo.cert" + key = "path/to/foo.key" +``` + ```bash tab="CLI" --providers.http.tls.cert=path/to/foo.cert --providers.http.tls.key=path/to/foo.key @@ -174,11 +174,6 @@ providers: If `insecureSkipVerify` is `true`, the TLS connection to the endpoint accepts any certificate presented by the server regardless of the hostnames it covers. -```toml tab="File (TOML)" -[providers.http.tls] - insecureSkipVerify = true -``` - ```yaml tab="File (YAML)" providers: http: @@ -186,6 +181,11 @@ providers: insecureSkipVerify: true ``` +```toml tab="File (TOML)" +[providers.http.tls] + insecureSkipVerify = true +``` + ```bash tab="CLI" --providers.http.tls.insecureSkipVerify=true ``` diff --git a/docs/content/providers/kubernetes-crd.md b/docs/content/providers/kubernetes-crd.md index 4465b66f2..814c4fe43 100644 --- a/docs/content/providers/kubernetes-crd.md +++ b/docs/content/providers/kubernetes-crd.md @@ -15,7 +15,7 @@ the Traefik engineering team developed a [Custom Resource Definition](https://ku * Add/update **all** the Traefik resources [definitions](../reference/dynamic-configuration/kubernetes-crd.md#definitions) * Add/update the [RBAC](https://kubernetes.io/docs/reference/access-authn-authz/rbac/) for the Traefik custom resources - * Use [Helm Chart](../getting-started/install-traefik.md#use-the-helm-chart) or use a custom Traefik Deployment + * Use [Helm Chart](../getting-started/install-traefik.md#use-the-helm-chart) or use a custom Traefik Deployment * Enable the kubernetesCRD provider * Apply the needed kubernetesCRD provider [configuration](#provider-configuration) * Add all necessary Traefik custom [resources](../reference/dynamic-configuration/kubernetes-crd.md#resources) @@ -81,12 +81,6 @@ When the environment variables are not found, Traefik tries to connect to the Ku In this case, the endpoint is required. Specifically, it may be set to the URL used by `kubectl proxy` to connect to a Kubernetes cluster using the granted authentication and authorization of the associated kubeconfig. -```toml tab="File (TOML)" -[providers.kubernetesCRD] - endpoint = "http://localhost:8080" - # ... -``` - ```yaml tab="File (YAML)" providers: kubernetesCRD: @@ -94,6 +88,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.kubernetesCRD] + endpoint = "http://localhost:8080" + # ... +``` + ```bash tab="CLI" --providers.kubernetescrd.endpoint=http://localhost:8080 ``` @@ -104,12 +104,6 @@ _Optional, Default=""_ Bearer token used for the Kubernetes client configuration. -```toml tab="File (TOML)" -[providers.kubernetesCRD] - token = "mytoken" - # ... -``` - ```yaml tab="File (YAML)" providers: kubernetesCRD: @@ -117,6 +111,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.kubernetesCRD] + token = "mytoken" + # ... +``` + ```bash tab="CLI" --providers.kubernetescrd.token=mytoken ``` @@ -128,12 +128,6 @@ _Optional, Default=""_ Path to the certificate authority file. Used for the Kubernetes client configuration. -```toml tab="File (TOML)" -[providers.kubernetesCRD] - certAuthFilePath = "/my/ca.crt" - # ... -``` - ```yaml tab="File (YAML)" providers: kubernetesCRD: @@ -141,6 +135,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.kubernetesCRD] + certAuthFilePath = "/my/ca.crt" + # ... +``` + ```bash tab="CLI" --providers.kubernetescrd.certauthfilepath=/my/ca.crt ``` @@ -152,12 +152,6 @@ _Optional, Default: []_ Array of namespaces to watch. If left empty, watches all namespaces if the value of `namespaces`. -```toml tab="File (TOML)" -[providers.kubernetesCRD] - namespaces = ["default", "production"] - # ... -``` - ```yaml tab="File (YAML)" providers: kubernetesCRD: @@ -167,6 +161,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.kubernetesCRD] + namespaces = ["default", "production"] + # ... +``` + ```bash tab="CLI" --providers.kubernetescrd.namespaces=default,production ``` @@ -186,12 +186,6 @@ See [label-selectors](https://kubernetes.io/docs/concepts/overview/working-with- Because the label selector is applied to all Traefik Custom Resources, they all must match the filter. -```toml tab="File (TOML)" -[providers.kubernetesCRD] - labelselector = "app=traefik" - # ... -``` - ```yaml tab="File (YAML)" providers: kubernetesCRD: @@ -199,6 +193,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.kubernetesCRD] + labelselector = "app=traefik" + # ... +``` + ```bash tab="CLI" --providers.kubernetescrd.labelselector="app=traefik" ``` @@ -212,12 +212,6 @@ Value of `kubernetes.io/ingress.class` annotation that identifies resource objec If the parameter is set, only resources containing an annotation with the same value are processed. Otherwise, resources missing the annotation, having an empty value, or the value `traefik` are processed. -```toml tab="File (TOML)" -[providers.kubernetesCRD] - ingressClass = "traefik-internal" - # ... -``` - ```yaml tab="File (YAML)" providers: kubernetesCRD: @@ -225,6 +219,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.kubernetesCRD] + ingressClass = "traefik-internal" + # ... +``` + ```bash tab="CLI" --providers.kubernetescrd.ingressclass=traefik-internal ``` @@ -241,12 +241,6 @@ If left empty, the provider does not apply any throttling and does not drop any The value of `throttleDuration` should be provided in seconds or as a valid duration format, see [time.ParseDuration](https://golang.org/pkg/time/#ParseDuration). -```toml tab="File (TOML)" -[providers.kubernetesCRD] - throttleDuration = "10s" - # ... -``` - ```yaml tab="File (YAML)" providers: kubernetesCRD: @@ -254,6 +248,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.kubernetesCRD] + throttleDuration = "10s" + # ... +``` + ```bash tab="CLI" --providers.kubernetescrd.throttleDuration=10s ``` @@ -268,12 +268,6 @@ If the parameter is set to `false`, IngressRoutes are not able to reference any Please note that the default value for this option will be set to `false` in a future version. -```toml tab="File (TOML)" -[providers.kubernetesCRD] - allowCrossNamespace = false - # ... -``` - ```yaml tab="File (YAML)" providers: kubernetesCRD: @@ -281,6 +275,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.kubernetesCRD] + allowCrossNamespace = false + # ... +``` + ```bash tab="CLI" --providers.kubernetescrd.allowCrossNamespace=false ``` diff --git a/docs/content/providers/kubernetes-gateway.md b/docs/content/providers/kubernetes-gateway.md index 7c5c37d08..03db45fcd 100644 --- a/docs/content/providers/kubernetes-gateway.md +++ b/docs/content/providers/kubernetes-gateway.md @@ -15,14 +15,6 @@ This provider is proposed as an experimental feature and partially supports the Since this provider is still experimental, it needs to be activated in the experimental section of the static configuration. - ```toml tab="File (TOML)" - [experimental] - kubernetesGateway = true - - [providers.kubernetesGateway] - #... - ``` - ```yaml tab="File (YAML)" experimental: kubernetesGateway: true @@ -32,6 +24,14 @@ This provider is proposed as an experimental feature and partially supports the #... ``` + ```toml tab="File (TOML)" + [experimental] + kubernetesGateway = true + + [providers.kubernetesGateway] + #... + ``` + ```bash tab="CLI" --experimental.kubernetesgateway=true --providers.kubernetesgateway=true #... ``` @@ -117,12 +117,6 @@ When the environment variables are not found, Traefik tries to connect to the Ku In this case, the endpoint is required. Specifically, it may be set to the URL used by `kubectl proxy` to connect to a Kubernetes cluster using the granted authentication and authorization of the associated kubeconfig. -```toml tab="File (TOML)" -[providers.kubernetesGateway] - endpoint = "http://localhost:8080" - # ... -``` - ```yaml tab="File (YAML)" providers: kubernetesGateway: @@ -130,6 +124,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.kubernetesGateway] + endpoint = "http://localhost:8080" + # ... +``` + ```bash tab="CLI" --providers.kubernetesgateway.endpoint=http://localhost:8080 ``` @@ -140,12 +140,6 @@ _Optional, Default=""_ Bearer token used for the Kubernetes client configuration. -```toml tab="File (TOML)" -[providers.kubernetesGateway] - token = "mytoken" - # ... -``` - ```yaml tab="File (YAML)" providers: kubernetesGateway: @@ -153,6 +147,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.kubernetesGateway] + token = "mytoken" + # ... +``` + ```bash tab="CLI" --providers.kubernetesgateway.token=mytoken ``` @@ -164,12 +164,6 @@ _Optional, Default=""_ Path to the certificate authority file. Used for the Kubernetes client configuration. -```toml tab="File (TOML)" -[providers.kubernetesGateway] - certAuthFilePath = "/my/ca.crt" - # ... -``` - ```yaml tab="File (YAML)" providers: kubernetesGateway: @@ -177,6 +171,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.kubernetesGateway] + certAuthFilePath = "/my/ca.crt" + # ... +``` + ```bash tab="CLI" --providers.kubernetesgateway.certauthfilepath=/my/ca.crt ``` @@ -188,12 +188,6 @@ _Optional, Default: []_ Array of namespaces to watch. If left empty, watches all namespaces if the value of `namespaces`. -```toml tab="File (TOML)" -[providers.kubernetesGateway] - namespaces = ["default", "production"] - # ... -``` - ```yaml tab="File (YAML)" providers: kubernetesGateway: @@ -203,6 +197,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.kubernetesGateway] + namespaces = ["default", "production"] + # ... +``` + ```bash tab="CLI" --providers.kubernetesgateway.namespaces=default,production ``` @@ -216,12 +216,6 @@ If left empty, Traefik processes all GatewayClass objects in the configured name See [label-selectors](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors) for details. -```toml tab="File (TOML)" -[providers.kubernetesGateway] - labelselector = "app=traefik" - # ... -``` - ```yaml tab="File (YAML)" providers: kubernetesGateway: @@ -229,6 +223,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.kubernetesGateway] + labelselector = "app=traefik" + # ... +``` + ```bash tab="CLI" --providers.kubernetesgateway.labelselector="app=traefik" ``` @@ -245,12 +245,6 @@ If left empty, the provider does not apply any throttling and does not drop any The value of `throttleDuration` should be provided in seconds or as a valid duration format, see [time.ParseDuration](https://golang.org/pkg/time/#ParseDuration). -```toml tab="File (TOML)" -[providers.kubernetesGateway] - throttleDuration = "10s" - # ... -``` - ```yaml tab="File (YAML)" providers: kubernetesGateway: @@ -258,6 +252,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.kubernetesGateway] + throttleDuration = "10s" + # ... +``` + ```bash tab="CLI" --providers.kubernetesgateway.throttleDuration=10s ``` diff --git a/docs/content/providers/kubernetes-ingress.md b/docs/content/providers/kubernetes-ingress.md index 438d16a29..c2be26d1f 100644 --- a/docs/content/providers/kubernetes-ingress.md +++ b/docs/content/providers/kubernetes-ingress.md @@ -14,15 +14,15 @@ See the dedicated section in [routing](../routing/providers/kubernetes-ingress.m You can enable the provider in the static configuration: -```toml tab="File (TOML)" -[providers.kubernetesIngress] -``` - ```yaml tab="File (YAML)" providers: kubernetesIngress: {} ``` +```toml tab="File (TOML)" +[providers.kubernetesIngress] +``` + ```bash tab="CLI" --providers.kubernetesingress=true ``` @@ -95,12 +95,6 @@ When the environment variables are not found, Traefik tries to connect to the Ku In this case, the endpoint is required. Specifically, it may be set to the URL used by `kubectl proxy` to connect to a Kubernetes cluster using the granted authentication and authorization of the associated kubeconfig. -```toml tab="File (TOML)" -[providers.kubernetesIngress] - endpoint = "http://localhost:8080" - # ... -``` - ```yaml tab="File (YAML)" providers: kubernetesIngress: @@ -108,6 +102,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.kubernetesIngress] + endpoint = "http://localhost:8080" + # ... +``` + ```bash tab="CLI" --providers.kubernetesingress.endpoint=http://localhost:8080 ``` @@ -118,12 +118,6 @@ _Optional, Default=""_ Bearer token used for the Kubernetes client configuration. -```toml tab="File (TOML)" -[providers.kubernetesIngress] - token = "mytoken" - # ... -``` - ```yaml tab="File (YAML)" providers: kubernetesIngress: @@ -131,6 +125,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.kubernetesIngress] + token = "mytoken" + # ... +``` + ```bash tab="CLI" --providers.kubernetesingress.token=mytoken ``` @@ -142,12 +142,6 @@ _Optional, Default=""_ Path to the certificate authority file. Used for the Kubernetes client configuration. -```toml tab="File (TOML)" -[providers.kubernetesIngress] - certAuthFilePath = "/my/ca.crt" - # ... -``` - ```yaml tab="File (YAML)" providers: kubernetesIngress: @@ -155,6 +149,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.kubernetesIngress] + certAuthFilePath = "/my/ca.crt" + # ... +``` + ```bash tab="CLI" --providers.kubernetesingress.certauthfilepath=/my/ca.crt ``` @@ -166,12 +166,6 @@ _Optional, Default: []_ Array of namespaces to watch. If left empty, watches all namespaces if the value of `namespaces`. -```toml tab="File (TOML)" -[providers.kubernetesIngress] - namespaces = ["default", "production"] - # ... -``` - ```yaml tab="File (YAML)" providers: kubernetesIngress: @@ -181,6 +175,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.kubernetesIngress] + namespaces = ["default", "production"] + # ... +``` + ```bash tab="CLI" --providers.kubernetesingress.namespaces=default,production ``` @@ -194,12 +194,6 @@ If left empty, Traefik processes all Ingress objects in the configured namespace See [label-selectors](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors) for details. -```toml tab="File (TOML)" -[providers.kubernetesIngress] - labelSelector = "app=traefik" - # ... -``` - ```yaml tab="File (YAML)" providers: kubernetesIngress: @@ -207,6 +201,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.kubernetesIngress] + labelSelector = "app=traefik" + # ... +``` + ```bash tab="CLI" --providers.kubernetesingress.labelselector="app=traefik" ``` @@ -254,12 +254,6 @@ Otherwise, Ingresses missing the annotation, having an empty value, or the value servicePort: 80 ``` -```toml tab="File (TOML)" -[providers.kubernetesIngress] - ingressClass = "traefik-internal" - # ... -``` - ```yaml tab="File (YAML)" providers: kubernetesIngress: @@ -267,6 +261,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.kubernetesIngress] + ingressClass = "traefik-internal" + # ... +``` + ```bash tab="CLI" --providers.kubernetesingress.ingressclass=traefik-internal ``` @@ -279,12 +279,6 @@ _Optional, Default: ""_ Hostname used for Kubernetes Ingress endpoints. -```toml tab="File (TOML)" -[providers.kubernetesIngress.ingressEndpoint] - hostname = "example.net" - # ... -``` - ```yaml tab="File (YAML)" providers: kubernetesIngress: @@ -293,6 +287,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.kubernetesIngress.ingressEndpoint] + hostname = "example.net" + # ... +``` + ```bash tab="CLI" --providers.kubernetesingress.ingressendpoint.hostname=example.net ``` @@ -303,12 +303,6 @@ _Optional, Default: ""_ IP used for Kubernetes Ingress endpoints. -```toml tab="File (TOML)" -[providers.kubernetesIngress.ingressEndpoint] - ip = "1.2.3.4" - # ... -``` - ```yaml tab="File (YAML)" providers: kubernetesIngress: @@ -317,6 +311,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.kubernetesIngress.ingressEndpoint] + ip = "1.2.3.4" + # ... +``` + ```bash tab="CLI" --providers.kubernetesingress.ingressendpoint.ip=1.2.3.4 ``` @@ -328,12 +328,6 @@ _Optional, Default: ""_ Published Kubernetes Service to copy status from. Format: `namespace/servicename`. -```toml tab="File (TOML)" -[providers.kubernetesIngress.ingressEndpoint] - publishedService = "namespace/foo-service" - # ... -``` - ```yaml tab="File (YAML)" providers: kubernetesIngress: @@ -342,6 +336,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.kubernetesIngress.ingressEndpoint] + publishedService = "namespace/foo-service" + # ... +``` + ```bash tab="CLI" --providers.kubernetesingress.ingressendpoint.publishedservice=namespace/foo-service ``` @@ -358,12 +358,6 @@ If left empty, the provider does not apply any throttling and does not drop any The value of `throttleDuration` should be provided in seconds or as a valid duration format, see [time.ParseDuration](https://golang.org/pkg/time/#ParseDuration). -```toml tab="File (TOML)" -[providers.kubernetesIngress] - throttleDuration = "10s" - # ... -``` - ```yaml tab="File (YAML)" providers: kubernetesIngress: @@ -371,6 +365,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.kubernetesIngress] + throttleDuration = "10s" + # ... +``` + ```bash tab="CLI" --providers.kubernetesingress.throttleDuration=10s ``` diff --git a/docs/content/providers/marathon.md b/docs/content/providers/marathon.md index ee973749e..e5428d378 100644 --- a/docs/content/providers/marathon.md +++ b/docs/content/providers/marathon.md @@ -11,15 +11,15 @@ For additional information, refer to [Marathon user guide](../user-guides/marath Enabling the Marathon provider - ```toml tab="File (TOML)" - [providers.marathon] - ``` - ```yaml tab="File (YAML)" providers: marathon: {} ``` + ```toml tab="File (TOML)" + [providers.marathon] + ``` + ```bash tab="CLI" --providers.marathon=true ``` @@ -61,12 +61,6 @@ _Optional_ Enables Marathon basic authentication. -```toml tab="File (TOML)" -[providers.marathon.basic] - httpBasicAuthUser = "foo" - httpBasicPassword = "bar" -``` - ```yaml tab="File (YAML)" providers: marathon: @@ -75,6 +69,12 @@ providers: httpBasicPassword: bar ``` +```toml tab="File (TOML)" +[providers.marathon.basic] + httpBasicAuthUser = "foo" + httpBasicPassword = "bar" +``` + ```bash tab="CLI" --providers.marathon.basic.httpbasicauthuser=foo --providers.marathon.basic.httpbasicpassword=bar @@ -88,12 +88,6 @@ Datacenter Operating System (DCOS) Token for DCOS environment. If set, it overrides the Authorization header. -```toml tab="File (TOML)" -[providers.marathon] - dcosToken = "xxxxxx" - # ... -``` - ```toml tab="File (YAML)" providers: marathon: @@ -101,6 +95,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.marathon] + dcosToken = "xxxxxx" + # ... +``` + ```bash tab="CLI" --providers.marathon.dcosToken=xxxxxx ``` @@ -119,12 +119,6 @@ and can include [sprig template functions](http://masterminds.github.io/sprig/). The app ID can be accessed with the `Name` identifier, and the template has access to all the labels defined on this Marathon application. -```toml tab="File (TOML)" -[providers.marathon] - defaultRule = "Host(`{{ .Name }}.{{ index .Labels \"customLabel\"}}`)" - # ... -``` - ```yaml tab="File (YAML)" providers: marathon: @@ -132,6 +126,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.marathon] + defaultRule = "Host(`{{ .Name }}.{{ index .Labels \"customLabel\"}}`)" + # ... +``` + ```bash tab="CLI" --providers.marathon.defaultRule=Host(`{{ .Name }}.{{ index .Labels \"customLabel\"}}`) # ... @@ -147,19 +147,19 @@ when trying to open a TCP connection to a Marathon master. The value of `dialerTimeout` should be provided in seconds or as a valid duration format, see [time.ParseDuration](https://golang.org/pkg/time/#ParseDuration). -```toml tab="File (TOML)" -[providers.marathon] - dialerTimeout = "10s" - # ... -``` - -```toml tab="File (YAML)" +```yaml tab="File (YAML)" providers: marathon: dialerTimeout: "10s" # ... ``` +```toml tab="File (TOML)" +[providers.marathon] + dialerTimeout = "10s" + # ... +``` + ```bash tab="CLI" --providers.marathon.dialerTimeout=10s ``` @@ -172,19 +172,19 @@ Marathon server endpoint. You can optionally specify multiple endpoints. -```toml tab="File (TOML)" -[providers.marathon] - endpoint = "http://10.241.1.71:8080,10.241.1.72:8080,10.241.1.73:8080" - # ... -``` - -```toml tab="File (YAML)" +```yaml tab="File (YAML)" providers: marathon: endpoint: "http://10.241.1.71:8080,10.241.1.72:8080,10.241.1.73:8080" # ... ``` +```toml tab="File (TOML)" +[providers.marathon] + endpoint = "http://10.241.1.71:8080,10.241.1.72:8080,10.241.1.73:8080" + # ... +``` + ```bash tab="CLI" --providers.marathon.endpoint=http://10.241.1.71:8080,10.241.1.72:8080,10.241.1.73:8080 ``` @@ -199,12 +199,6 @@ If set to `false`, applications that do not have a `traefik.enable=true` label a For additional information, refer to [Restrict the Scope of Service Discovery](./overview.md#restrict-the-scope-of-service-discovery). -```toml tab="File (TOML)" -[providers.marathon] - exposedByDefault = false - # ... -``` - ```yaml tab="File (YAML)" providers: marathon: @@ -212,6 +206,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.marathon] + exposedByDefault = false + # ... +``` + ```bash tab="CLI" --providers.marathon.exposedByDefault=false # ... @@ -274,12 +274,6 @@ In addition, to match against Marathon constraints, the function `MarathonConstr For additional information, refer to [Restrict the Scope of Service Discovery](./overview.md#restrict-the-scope-of-service-discovery). -```toml tab="File (TOML)" -[providers.marathon] - constraints = "Label(`a.label.name`,`foo`)" - # ... -``` - ```yaml tab="File (YAML)" providers: marathon: @@ -287,6 +281,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.marathon] + constraints = "Label(`a.label.name`,`foo`)" + # ... +``` + ```bash tab="CLI" --providers.marathon.constraints=Label(`a.label.name`,`foo`) # ... @@ -300,12 +300,6 @@ By default, the task IP address (as returned by the Marathon API) is used as bac otherwise, the name of the host running the task is used. The latter behavior can be enforced by setting this option to `true`. -```toml tab="File (TOML)" -[providers.marathon] - forceTaskHostname = true - # ... -``` - ```yaml tab="File (YAML)" providers: marathon: @@ -313,6 +307,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.marathon] + forceTaskHostname = true + # ... +``` + ```bash tab="CLI" --providers.marathon.forceTaskHostname=true # ... @@ -326,12 +326,6 @@ Set the TCP Keep Alive duration for the Marathon HTTP Client. The value of `keepAlive` should be provided in seconds or as a valid duration format, see [time.ParseDuration](https://golang.org/pkg/time/#ParseDuration). -```toml tab="File (TOML)" -[providers.marathon] - keepAlive = "30s" - # ... -``` - ```yaml tab="File (YAML)" providers: marathon: @@ -339,6 +333,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.marathon] + keepAlive = "30s" + # ... +``` + ```bash tab="CLI" --providers.marathon.keepAlive=30s # ... @@ -354,12 +354,6 @@ Note that the checks are only valid during deployments. See the Marathon guide for details. -```toml tab="File (TOML)" -[providers.marathon] - respectReadinessChecks = true - # ... -``` - ```yaml tab="File (YAML)" providers: marathon: @@ -367,6 +361,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.marathon] + respectReadinessChecks = true + # ... +``` + ```bash tab="CLI" --providers.marathon.respectReadinessChecks=true # ... @@ -382,12 +382,6 @@ from a Marathon master. The value of `responseHeaderTimeout` should be provided in seconds or as a valid duration format, see [time.ParseDuration](https://golang.org/pkg/time/#ParseDuration). -```toml tab="File (TOML)" -[providers.marathon] - responseHeaderTimeout = "66s" - # ... -``` - ```yaml tab="File (YAML)" providers: marathon: @@ -395,6 +389,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.marathon] + responseHeaderTimeout = "66s" + # ... +``` + ```bash tab="CLI" --providers.marathon.responseHeaderTimeout=66s # ... @@ -408,11 +408,6 @@ _Optional_ Certificate Authority used for the secure connection to Marathon. -```toml tab="File (TOML)" -[providers.marathon.tls] - ca = "path/to/ca.crt" -``` - ```yaml tab="File (YAML)" providers: marathon: @@ -420,6 +415,11 @@ providers: ca: path/to/ca.crt ``` +```toml tab="File (TOML)" +[providers.marathon.tls] + ca = "path/to/ca.crt" +``` + ```bash tab="CLI" --providers.marathon.tls.ca=path/to/ca.crt ``` @@ -436,11 +436,6 @@ When this option is set to `true`, a client certificate is requested during the When this option is set to `false`, a client certificate is requested during the handshake, and at least one valid certificate should be sent by the client. -```toml tab="File (TOML)" -[providers.marathon.tls] - caOptional = true -``` - ```yaml tab="File (YAML)" providers: marathon: @@ -448,6 +443,11 @@ providers: caOptional: true ``` +```toml tab="File (TOML)" +[providers.marathon.tls] + caOptional = true +``` + ```bash tab="CLI" --providers.marathon.tls.caOptional=true ``` @@ -456,12 +456,6 @@ providers: Public certificate used for the secure connection to Marathon. -```toml tab="File (TOML)" -[providers.marathon.tls] - cert = "path/to/foo.cert" - key = "path/to/foo.key" -``` - ```yaml tab="File (YAML)" providers: marathon: @@ -470,6 +464,12 @@ providers: key: path/to/foo.key ``` +```toml tab="File (TOML)" +[providers.marathon.tls] + cert = "path/to/foo.cert" + key = "path/to/foo.key" +``` + ```bash tab="CLI" --providers.marathon.tls.cert=path/to/foo.cert --providers.marathon.tls.key=path/to/foo.key @@ -479,12 +479,6 @@ providers: Private certificate used for the secure connection to Marathon. -```toml tab="File (TOML)" -[providers.marathon.tls] - cert = "path/to/foo.cert" - key = "path/to/foo.key" -``` - ```yaml tab="File (YAML)" providers: marathon: @@ -493,6 +487,12 @@ providers: key: path/to/foo.key ``` +```toml tab="File (TOML)" +[providers.marathon.tls] + cert = "path/to/foo.cert" + key = "path/to/foo.key" +``` + ```bash tab="CLI" --providers.marathon.tls.cert=path/to/foo.cert --providers.marathon.tls.key=path/to/foo.key @@ -502,11 +502,6 @@ providers: If `insecureSkipVerify` is `true`, the TLS connection to Marathon accepts any certificate presented by the server regardless of the hostnames it covers. -```toml tab="File (TOML)" -[providers.marathon.tls] - insecureSkipVerify = true -``` - ```yaml tab="File (YAML)" providers: marathon: @@ -514,6 +509,11 @@ providers: insecureSkipVerify: true ``` +```toml tab="File (TOML)" +[providers.marathon.tls] + insecureSkipVerify = true +``` + ```bash tab="CLI" --providers.marathon.tls.insecureSkipVerify=true ``` @@ -528,12 +528,6 @@ when waiting for the TLS handshake to complete. The value of `tlsHandshakeTimeout` should be provided in seconds or as a valid duration format, see [time.ParseDuration](https://golang.org/pkg/time/#ParseDuration). -```toml tab="File (TOML)" -[providers.marathon] - responseHeaderTimeout = "10s" - # ... -``` - ```yaml tab="File (YAML)" providers: marathon: @@ -541,6 +535,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.marathon] + responseHeaderTimeout = "10s" + # ... +``` + ```bash tab="CLI" --providers.marathon.responseHeaderTimeout=10s # ... @@ -552,12 +552,6 @@ _Optional, Default=false_ Displays additional provider logs when available. -```toml tab="File (TOML)" -[providers.marathon] - trace = true - # ... -``` - ```yaml tab="File (YAML)" providers: marathon: @@ -565,6 +559,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.marathon] + trace = true + # ... +``` + ```bash tab="CLI" --providers.marathon.trace=true # ... @@ -576,12 +576,6 @@ _Optional, Default=true_ When set to `true`, watches for Marathon changes. -```toml tab="File (TOML)" -[providers.marathon] - watch = false - # ... -``` - ```yaml tab="File (YAML)" providers: marathon: @@ -589,6 +583,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.marathon] + watch = false + # ... +``` + ```bash tab="CLI" --providers.marathon.watch=false # ... diff --git a/docs/content/providers/overview.md b/docs/content/providers/overview.md index 35f478a11..bbd97f4d2 100644 --- a/docs/content/providers/overview.md +++ b/docs/content/providers/overview.md @@ -49,12 +49,6 @@ separator, and the provider name. Declaring the add-foo-prefix in the file provider. - ```toml tab="File (TOML)" - [http.middlewares] - [http.middlewares.add-foo-prefix.addPrefix] - prefix = "/foo" - ``` - ```yaml tab="File (YAML)" http: middlewares: @@ -63,6 +57,12 @@ separator, and the provider name. prefix: "/foo" ``` + ```toml tab="File (TOML)" + [http.middlewares] + [http.middlewares.add-foo-prefix.addPrefix] + prefix = "/foo" + ``` + Using the add-foo-prefix middleware from other providers: ```yaml tab="Docker" @@ -133,7 +133,7 @@ Below is the list of the currently supported providers in Traefik. | [ECS](./ecs.md) | Orchestrator | Label | | [Marathon](./marathon.md) | Orchestrator | Label | | [Rancher](./rancher.md) | Orchestrator | Label | -| [File](./file.md) | Manual | TOML/YAML format | +| [File](./file.md) | Manual | YAML/TOML format | | [Consul](./consul.md) | KV | KV | | [Etcd](./etcd.md) | KV | KV | | [ZooKeeper](./zookeeper.md) | KV | KV | @@ -169,16 +169,16 @@ but the throttling algorithm applies to each of them independently. The value of `providers.providersThrottleDuration` should be provided in seconds or as a valid duration format, see [time.ParseDuration](https://golang.org/pkg/time/#ParseDuration). -```toml tab="File (TOML)" -[providers] - providers.providersThrottleDuration = 10s -``` - ```yaml tab="File (YAML)" providers: providersThrottleDuration: 10s ``` +```toml tab="File (TOML)" +[providers] + providers.providersThrottleDuration = 10s +``` + ```bash tab="CLI" --providers.providersThrottleDuration=10s ``` diff --git a/docs/content/providers/rancher.md b/docs/content/providers/rancher.md index 5a86d4b32..c30569087 100644 --- a/docs/content/providers/rancher.md +++ b/docs/content/providers/rancher.md @@ -18,15 +18,15 @@ Attach labels to your services and let Traefik do the rest! Enabling the Rancher provider - ```toml tab="File (TOML)" - [providers.rancher] - ``` - ```yaml tab="File (YAML)" providers: rancher: {} ``` + ```toml tab="File (TOML)" + [providers.rancher] + ``` + ```bash tab="CLI" --providers.rancher=true ``` @@ -48,14 +48,14 @@ See the dedicated section in [routing](../routing/providers/rancher.md). For an overview of all the options that can be set with the Rancher provider, see the following snippets: - ```toml tab="File (TOML)" - --8<-- "content/providers/rancher.toml" - ``` - ```yaml tab="File (YAML)" --8<-- "content/providers/rancher.yml" ``` + ```toml tab="File (TOML)" + --8<-- "content/providers/rancher.toml" + ``` + ```bash tab="CLI" --8<-- "content/providers/rancher.txt" ``` @@ -69,12 +69,6 @@ If set to `false`, services that do not have a `traefik.enable=true` label are i For additional information, refer to [Restrict the Scope of Service Discovery](./overview.md#restrict-the-scope-of-service-discovery). -```toml tab="File (TOML)" -[providers.rancher] - exposedByDefault = false - # ... -``` - ```yaml tab="File (YAML)" providers: rancher: @@ -82,6 +76,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.rancher] + exposedByDefault = false + # ... +``` + ```bash tab="CLI" --providers.rancher.exposedByDefault=false # ... @@ -102,12 +102,6 @@ and the template has access to all the labels defined on this container. This option can be overridden on a container basis with the `traefik.http.routers.Router1.rule` label. -```toml tab="File (TOML)" -[providers.rancher] - defaultRule = "Host(`{{ .Name }}.{{ index .Labels \"customLabel\"}}`)" - # ... -``` - ```yaml tab="File (YAML)" providers: rancher: @@ -115,6 +109,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.rancher] + defaultRule = "Host(`{{ .Name }}.{{ index .Labels \"customLabel\"}}`)" + # ... +``` + ```bash tab="CLI" --providers.rancher.defaultRule=Host(`{{ .Name }}.{{ index .Labels \"customLabel\"}}`) # ... @@ -126,12 +126,6 @@ _Optional, Default=true_ Filter out services with unhealthy states and inactive states. -```toml tab="File (TOML)" -[providers.rancher] - enableServiceHealthFilter = false - # ... -``` - ```yaml tab="File (YAML)" providers: rancher: @@ -139,6 +133,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.rancher] + enableServiceHealthFilter = false + # ... +``` + ```bash tab="CLI" --providers.rancher.enableServiceHealthFilter=false # ... @@ -150,12 +150,6 @@ _Optional, Default=15_ Defines the polling interval (in seconds). -```toml tab="File (TOML)" -[providers.rancher] - refreshSeconds = 30 - # ... -``` - ```yaml tab="File (YAML)" providers: rancher: @@ -163,6 +157,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.rancher] + refreshSeconds = 30 + # ... +``` + ```bash tab="CLI" --providers.rancher.refreshSeconds=30 # ... @@ -175,12 +175,6 @@ _Optional, Default=false_ Poll the Rancher metadata service for changes every `rancher.refreshSeconds`, which is less accurate than the default long polling technique which provides near instantaneous updates to Traefik. -```toml tab="File (TOML)" -[providers.rancher] - intervalPoll = true - # ... -``` - ```yaml tab="File (YAML)" providers: rancher: @@ -188,6 +182,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.rancher] + intervalPoll = true + # ... +``` + ```bash tab="CLI" --providers.rancher.intervalPoll=true # ... @@ -199,12 +199,6 @@ _Optional, Default="/latest"_ Prefix used for accessing the Rancher metadata service. -```toml tab="File (TOML)" -[providers.rancher] - prefix = "/test" - # ... -``` - ```yaml tab="File (YAML)" providers: rancher: @@ -212,6 +206,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.rancher] + prefix = "/test" + # ... +``` + ```bash tab="CLI" --providers.rancher.prefix=/test # ... @@ -262,12 +262,6 @@ the usual boolean logic, as shown in examples below. For additional information, refer to [Restrict the Scope of Service Discovery](./overview.md#restrict-the-scope-of-service-discovery). -```toml tab="File (TOML)" -[providers.rancher] - constraints = "Label(`a.label.name`,`foo`)" - # ... -``` - ```yaml tab="File (YAML)" providers: rancher: @@ -275,6 +269,12 @@ providers: # ... ``` +```toml tab="File (TOML)" +[providers.rancher] + constraints = "Label(`a.label.name`,`foo`)" + # ... +``` + ```bash tab="CLI" --providers.rancher.constraints=Label(`a.label.name`,`foo`) # ... diff --git a/docs/content/providers/redis.md b/docs/content/providers/redis.md index abf16cdf9..d38cdcd7f 100644 --- a/docs/content/providers/redis.md +++ b/docs/content/providers/redis.md @@ -17,11 +17,6 @@ _Required, Default="127.0.0.1:6379"_ Defines how to access to Redis. -```toml tab="File (TOML)" -[providers.redis] - endpoints = ["127.0.0.1:6379"] -``` - ```yaml tab="File (YAML)" providers: redis: @@ -29,6 +24,11 @@ providers: - "127.0.0.1:6379" ``` +```toml tab="File (TOML)" +[providers.redis] + endpoints = ["127.0.0.1:6379"] +``` + ```bash tab="CLI" --providers.redis.endpoints=127.0.0.1:6379 ``` @@ -39,17 +39,17 @@ _Required, Default="traefik"_ Defines the root key of the configuration. -```toml tab="File (TOML)" -[providers.redis] - rootKey = "traefik" -``` - ```yaml tab="File (YAML)" providers: redis: rootKey: "traefik" ``` +```toml tab="File (TOML)" +[providers.redis] + rootKey = "traefik" +``` + ```bash tab="CLI" --providers.redis.rootkey=traefik ``` @@ -60,12 +60,6 @@ _Optional, Default=""_ Defines a username to connect with Redis. -```toml tab="File (TOML)" -[providers.redis] - # ... - username = "foo" -``` - ```yaml tab="File (YAML)" providers: redis: @@ -73,6 +67,12 @@ providers: usename: "foo" ``` +```toml tab="File (TOML)" +[providers.redis] + # ... + username = "foo" +``` + ```bash tab="CLI" --providers.redis.username=foo ``` @@ -83,12 +83,6 @@ _Optional, Default=""_ Defines a password to connect with Redis. -```toml tab="File (TOML)" -[providers.redis] - # ... - password = "bar" -``` - ```yaml tab="File (YAML)" providers: redis: @@ -96,6 +90,12 @@ providers: password: "bar" ``` +```toml tab="File (TOML)" +[providers.redis] + # ... + password = "bar" +``` + ```bash tab="CLI" --providers.redis.password=foo ``` @@ -108,11 +108,6 @@ _Optional_ Certificate Authority used for the secure connection to Redis. -```toml tab="File (TOML)" -[providers.redis.tls] - ca = "path/to/ca.crt" -``` - ```yaml tab="File (YAML)" providers: redis: @@ -120,6 +115,11 @@ providers: ca: path/to/ca.crt ``` +```toml tab="File (TOML)" +[providers.redis.tls] + ca = "path/to/ca.crt" +``` + ```bash tab="CLI" --providers.redis.tls.ca=path/to/ca.crt ``` @@ -136,11 +136,6 @@ When this option is set to `true`, a client certificate is requested during the When this option is set to `false`, a client certificate is requested during the handshake, and at least one valid certificate should be sent by the client. -```toml tab="File (TOML)" -[providers.redis.tls] - caOptional = true -``` - ```yaml tab="File (YAML)" providers: redis: @@ -148,6 +143,11 @@ providers: caOptional: true ``` +```toml tab="File (TOML)" +[providers.redis.tls] + caOptional = true +``` + ```bash tab="CLI" --providers.redis.tls.caOptional=true ``` @@ -156,12 +156,6 @@ providers: Public certificate used for the secure connection to Redis. -```toml tab="File (TOML)" -[providers.redis.tls] - cert = "path/to/foo.cert" - key = "path/to/foo.key" -``` - ```yaml tab="File (YAML)" providers: redis: @@ -170,6 +164,12 @@ providers: key: path/to/foo.key ``` +```toml tab="File (TOML)" +[providers.redis.tls] + cert = "path/to/foo.cert" + key = "path/to/foo.key" +``` + ```bash tab="CLI" --providers.redis.tls.cert=path/to/foo.cert --providers.redis.tls.key=path/to/foo.key @@ -179,12 +179,6 @@ providers: Private certificate used for the secure connection to Redis. -```toml tab="File (TOML)" -[providers.redis.tls] - cert = "path/to/foo.cert" - key = "path/to/foo.key" -``` - ```yaml tab="File (YAML)" providers: redis: @@ -193,6 +187,12 @@ providers: key: path/to/foo.key ``` +```toml tab="File (TOML)" +[providers.redis.tls] + cert = "path/to/foo.cert" + key = "path/to/foo.key" +``` + ```bash tab="CLI" --providers.redis.tls.cert=path/to/foo.cert --providers.redis.tls.key=path/to/foo.key @@ -202,11 +202,6 @@ providers: If `insecureSkipVerify` is `true`, the TLS connection to Redis accepts any certificate presented by the server regardless of the hostnames it covers. -```toml tab="File (TOML)" -[providers.redis.tls] - insecureSkipVerify = true -``` - ```yaml tab="File (YAML)" providers: redis: @@ -214,6 +209,11 @@ providers: insecureSkipVerify: true ``` +```toml tab="File (TOML)" +[providers.redis.tls] + insecureSkipVerify = true +``` + ```bash tab="CLI" --providers.redis.tls.insecureSkipVerify=true ``` diff --git a/docs/content/providers/zookeeper.md b/docs/content/providers/zookeeper.md index 1cb354e53..e749a42bf 100644 --- a/docs/content/providers/zookeeper.md +++ b/docs/content/providers/zookeeper.md @@ -17,11 +17,6 @@ _Required, Default="127.0.0.1:2181"_ Defines how to access to ZooKeeper. -```toml tab="File (TOML)" -[providers.zooKeeper] - endpoints = ["127.0.0.1:2181"] -``` - ```yaml tab="File (YAML)" providers: zooKeeper: @@ -29,6 +24,11 @@ providers: - "127.0.0.1:2181" ``` +```toml tab="File (TOML)" +[providers.zooKeeper] + endpoints = ["127.0.0.1:2181"] +``` + ```bash tab="CLI" --providers.zookeeper.endpoints=127.0.0.1:2181 ``` @@ -39,17 +39,17 @@ _Required, Default="traefik"_ Defines the root key of the configuration. -```toml tab="File (TOML)" -[providers.zooKeeper] - rootKey = "traefik" -``` - ```yaml tab="File (YAML)" providers: zooKeeper: rootKey: "traefik" ``` +```toml tab="File (TOML)" +[providers.zooKeeper] + rootKey = "traefik" +``` + ```bash tab="CLI" --providers.zookeeper.rootkey=traefik ``` @@ -60,12 +60,6 @@ _Optional, Default=""_ Defines a username to connect with ZooKeeper. -```toml tab="File (TOML)" -[providers.zooKeeper] - # ... - username = "foo" -``` - ```yaml tab="File (YAML)" providers: zooKeeper: @@ -73,6 +67,12 @@ providers: usename: "foo" ``` +```toml tab="File (TOML)" +[providers.zooKeeper] + # ... + username = "foo" +``` + ```bash tab="CLI" --providers.zookeeper.username=foo ``` @@ -83,12 +83,6 @@ _Optional, Default=""_ Defines a password to connect with ZooKeeper. -```toml tab="File (TOML)" -[providers.zooKeeper] - # ... - password = "bar" -``` - ```yaml tab="File (YAML)" providers: zooKeeper: @@ -96,6 +90,12 @@ providers: password: "bar" ``` +```toml tab="File (TOML)" +[providers.zooKeeper] + # ... + password = "bar" +``` + ```bash tab="CLI" --providers.zookeeper.password=foo ``` @@ -108,11 +108,6 @@ _Optional_ Certificate Authority used for the secure connection to ZooKeeper. -```toml tab="File (TOML)" -[providers.zooKeeper.tls] - ca = "path/to/ca.crt" -``` - ```yaml tab="File (YAML)" providers: zooKeeper: @@ -120,6 +115,11 @@ providers: ca: path/to/ca.crt ``` +```toml tab="File (TOML)" +[providers.zooKeeper.tls] + ca = "path/to/ca.crt" +``` + ```bash tab="CLI" --providers.zookeeper.tls.ca=path/to/ca.crt ``` @@ -136,11 +136,6 @@ When this option is set to `true`, a client certificate is requested during the When this option is set to `false`, a client certificate is requested during the handshake, and at least one valid certificate should be sent by the client. -```toml tab="File (TOML)" -[providers.zooKeeper.tls] - caOptional = true -``` - ```yaml tab="File (YAML)" providers: zooKeeper: @@ -148,6 +143,11 @@ providers: caOptional: true ``` +```toml tab="File (TOML)" +[providers.zooKeeper.tls] + caOptional = true +``` + ```bash tab="CLI" --providers.zookeeper.tls.caOptional=true ``` @@ -156,12 +156,6 @@ providers: Public certificate used for the secure connection to ZooKeeper. -```toml tab="File (TOML)" -[providers.zooKeeper.tls] - cert = "path/to/foo.cert" - key = "path/to/foo.key" -``` - ```yaml tab="File (YAML)" providers: zooKeeper: @@ -170,6 +164,12 @@ providers: key: path/to/foo.key ``` +```toml tab="File (TOML)" +[providers.zooKeeper.tls] + cert = "path/to/foo.cert" + key = "path/to/foo.key" +``` + ```bash tab="CLI" --providers.zookeeper.tls.cert=path/to/foo.cert --providers.zookeeper.tls.key=path/to/foo.key @@ -179,12 +179,6 @@ providers: Private certificate used for the secure connection to ZooKeeper. -```toml tab="File (TOML)" -[providers.zooKeeper.tls] - cert = "path/to/foo.cert" - key = "path/to/foo.key" -``` - ```yaml tab="File (YAML)" providers: zooKeeper: @@ -193,6 +187,12 @@ providers: key: path/to/foo.key ``` +```toml tab="File (TOML)" +[providers.zooKeeper.tls] + cert = "path/to/foo.cert" + key = "path/to/foo.key" +``` + ```bash tab="CLI" --providers.zookeeper.tls.cert=path/to/foo.cert --providers.zookeeper.tls.key=path/to/foo.key @@ -202,11 +202,6 @@ providers: If `insecureSkipVerify` is `true`, the TLS connection to Zookeeper accepts any certificate presented by the server regardless of the hostnames it covers. -```toml tab="File (TOML)" -[providers.zooKeeper.tls] - insecureSkipVerify = true -``` - ```yaml tab="File (YAML)" providers: zooKeeper: @@ -214,6 +209,11 @@ providers: insecureSkipVerify: true ``` +```toml tab="File (TOML)" +[providers.zooKeeper.tls] + insecureSkipVerify = true +``` + ```bash tab="CLI" --providers.zookeeper.tls.insecureSkipVerify=true ``` diff --git a/docs/content/reference/dynamic-configuration/file.md b/docs/content/reference/dynamic-configuration/file.md index 754e6d35d..49986c88f 100644 --- a/docs/content/reference/dynamic-configuration/file.md +++ b/docs/content/reference/dynamic-configuration/file.md @@ -3,10 +3,10 @@ Dynamic configuration with files {: .subtitle } -```toml tab="TOML" ---8<-- "content/reference/dynamic-configuration/file.toml" -``` - ```yml tab="YAML" --8<-- "content/reference/dynamic-configuration/file.yaml" ``` + +```toml tab="TOML" +--8<-- "content/reference/dynamic-configuration/file.toml" +``` diff --git a/docs/content/reference/static-configuration/cli-ref.md b/docs/content/reference/static-configuration/cli-ref.md index b612b2693..4208eef6e 100644 --- a/docs/content/reference/static-configuration/cli-ref.md +++ b/docs/content/reference/static-configuration/cli-ref.md @@ -517,7 +517,7 @@ KV Username Enable debug logging of generated configuration template. (Default: ```false```) `--providers.file.directory`: -Load dynamic configuration from one or more .toml or .yml files in a directory. +Load dynamic configuration from one or more .yml or .toml files in a directory. `--providers.file.filename`: Load dynamic configuration from a file. diff --git a/docs/content/reference/static-configuration/env-ref.md b/docs/content/reference/static-configuration/env-ref.md index 26e87c629..9ea6fa2a9 100644 --- a/docs/content/reference/static-configuration/env-ref.md +++ b/docs/content/reference/static-configuration/env-ref.md @@ -517,7 +517,7 @@ KV Username Enable debug logging of generated configuration template. (Default: ```false```) `TRAEFIK_PROVIDERS_FILE_DIRECTORY`: -Load dynamic configuration from one or more .toml or .yml files in a directory. +Load dynamic configuration from one or more .yml or .toml files in a directory. `TRAEFIK_PROVIDERS_FILE_FILENAME`: Load dynamic configuration from a file. diff --git a/docs/content/reference/static-configuration/file.md b/docs/content/reference/static-configuration/file.md index 6fa3daf4f..2ea52b8ae 100644 --- a/docs/content/reference/static-configuration/file.md +++ b/docs/content/reference/static-configuration/file.md @@ -1,9 +1,9 @@ # Static Configuration: File -```toml tab="TOML" ---8<-- "content/reference/static-configuration/file.toml" -``` - ```yml tab="YAML" --8<-- "content/reference/static-configuration/file.yaml" ``` + +```toml tab="TOML" +--8<-- "content/reference/static-configuration/file.toml" +``` diff --git a/docs/content/routing/entrypoints.md b/docs/content/routing/entrypoints.md index 444b2f57a..1211333ae 100644 --- a/docs/content/routing/entrypoints.md +++ b/docs/content/routing/entrypoints.md @@ -13,20 +13,20 @@ and whether to listen for TCP or UDP. ??? example "Port 80 only" - ```toml tab="File (TOML)" - ## Static configuration - [entryPoints] - [entryPoints.web] - address = ":80" - ``` - ```yaml tab="File (YAML)" ## Static configuration entryPoints: web: address: ":80" ``` - + + ```toml tab="File (TOML)" + ## Static configuration + [entryPoints] + [entryPoints.web] + address = ":80" + ``` + ```bash tab="CLI" ## Static configuration --entryPoints.web.address=:80 @@ -34,28 +34,28 @@ and whether to listen for TCP or UDP. We define an `entrypoint` called `web` that will listen on port `80`. -??? example "Port 80 & 443" +??? example "Port 80 & 443" + + ```yaml tab="File (YAML)" + ## Static configuration + entryPoints: + web: + address: ":80" + + websecure: + address: ":443" + ``` ```toml tab="File (TOML)" ## Static configuration [entryPoints] [entryPoints.web] address = ":80" - + [entryPoints.websecure] address = ":443" ``` - - ```yaml tab="File (YAML)" - ## Static configuration - entryPoints: - web: - address: ":80" - - websecure: - address: ":443" - ``` - + ```bash tab="CLI" ## Static configuration --entryPoints.web.address=:80 @@ -63,17 +63,10 @@ and whether to listen for TCP or UDP. ``` - Two entrypoints are defined: one called `web`, and the other called `websecure`. - - `web` listens on port `80`, and `websecure` on port `443`. + - `web` listens on port `80`, and `websecure` on port `443`. ??? example "UDP on port 1704" - ```toml tab="File (TOML)" - ## Static configuration - [entryPoints] - [entryPoints.streaming] - address = ":1704/udp" - ``` - ```yaml tab="File (YAML)" ## Static configuration entryPoints: @@ -81,6 +74,13 @@ and whether to listen for TCP or UDP. address: ":1704/udp" ``` + ```toml tab="File (TOML)" + ## Static configuration + [entryPoints] + [entryPoints.streaming] + address = ":1704/udp" + ``` + ```bash tab="CLI" ## Static configuration --entryPoints.streaming.address=:1704/udp @@ -91,31 +91,10 @@ and whether to listen for TCP or UDP. ### General EntryPoints are part of the [static configuration](../getting-started/configuration-overview.md#the-static-configuration). -They can be defined by using a file (TOML or YAML) or CLI arguments. +They can be defined by using a file (YAML or TOML) or CLI arguments. ??? info "See the complete reference for the list of available options" - - ```toml tab="File (TOML)" - ## Static configuration - [entryPoints] - [entryPoints.name] - address = ":8888" # same as ":8888/tcp" - [entryPoints.name.transport] - [entryPoints.name.transport.lifeCycle] - requestAcceptGraceTimeout = 42 - graceTimeOut = 42 - [entryPoints.name.transport.respondingTimeouts] - readTimeout = 42 - writeTimeout = 42 - idleTimeout = 42 - [entryPoints.name.proxyProtocol] - insecure = true - trustedIPs = ["127.0.0.1", "192.168.0.1"] - [entryPoints.name.forwardedHeaders] - insecure = true - trustedIPs = ["127.0.0.1", "192.168.0.1"] - ``` - + ```yaml tab="File (YAML)" ## Static configuration entryPoints: @@ -140,7 +119,28 @@ They can be defined by using a file (TOML or YAML) or CLI arguments. - "127.0.0.1" - "192.168.0.1" ``` - + + ```toml tab="File (TOML)" + ## Static configuration + [entryPoints] + [entryPoints.name] + address = ":8888" # same as ":8888/tcp" + [entryPoints.name.transport] + [entryPoints.name.transport.lifeCycle] + requestAcceptGraceTimeout = 42 + graceTimeOut = 42 + [entryPoints.name.transport.respondingTimeouts] + readTimeout = 42 + writeTimeout = 42 + idleTimeout = 42 + [entryPoints.name.proxyProtocol] + insecure = true + trustedIPs = ["127.0.0.1", "192.168.0.1"] + [entryPoints.name.forwardedHeaders] + insecure = true + trustedIPs = ["127.0.0.1", "192.168.0.1"] + ``` + ```bash tab="CLI" ## Static configuration --entryPoints.name.address=:8888 # same as :8888/tcp @@ -170,15 +170,6 @@ If both TCP and UDP are wanted for the same port, two entryPoints definitions ar ??? example "Both TCP and UDP on Port 3179" - ```toml tab="File (TOML)" - ## Static configuration - [entryPoints] - [entryPoints.tcpep] - address = ":3179" - [entryPoints.udpep] - address = ":3179/udp" - ``` - ```yaml tab="File (YAML)" ## Static configuration entryPoints: @@ -188,6 +179,15 @@ If both TCP and UDP are wanted for the same port, two entryPoints definitions ar address: ":3179/udp" ``` + ```toml tab="File (TOML)" + ## Static configuration + [entryPoints] + [entryPoints.tcpep] + address = ":3179" + [entryPoints.udpep] + address = ":3179/udp" + ``` + ```bash tab="CLI" ## Static configuration --entryPoints.tcpep.address=:3179 @@ -196,13 +196,6 @@ If both TCP and UDP are wanted for the same port, two entryPoints definitions ar ??? example "Listen on Specific IP Addresses Only" - ```toml tab="File (TOML)" - [entryPoints.specificIPv4] - address = "192.168.2.7:8888" - [entryPoints.specificIPv6] - address = "[2001:db8::1]:8888" - ``` - ```yaml tab="File (yaml)" entryPoints: specificIPv4: @@ -210,12 +203,19 @@ If both TCP and UDP are wanted for the same port, two entryPoints definitions ar specificIPv6: address: "[2001:db8::1]:8888" ``` - + + ```toml tab="File (TOML)" + [entryPoints.specificIPv4] + address = "192.168.2.7:8888" + [entryPoints.specificIPv6] + address = "[2001:db8::1]:8888" + ``` + ```bash tab="CLI" --entrypoints.specificIPv4.address=192.168.2.7:8888 --entrypoints.specificIPv6.address=[2001:db8::1]:8888 ``` - + Full details for how to specify `address` can be found in [net.Listen](https://golang.org/pkg/net/#Listen) (and [net.Dial](https://golang.org/pkg/net/#Dial)) of the doc for go. ### Forwarded Headers @@ -223,19 +223,9 @@ If both TCP and UDP are wanted for the same port, two entryPoints definitions ar You can configure Traefik to trust the forwarded headers information (`X-Forwarded-*`). ??? info "`forwardedHeaders.trustedIPs`" - + Trusting Forwarded Headers from specific IPs. - ```toml tab="File (TOML)" - ## Static configuration - [entryPoints] - [entryPoints.web] - address = ":80" - - [entryPoints.web.forwardedHeaders] - trustedIPs = ["127.0.0.1/32", "192.168.1.7"] - ``` - ```yaml tab="File (YAML)" ## Static configuration entryPoints: @@ -246,7 +236,17 @@ You can configure Traefik to trust the forwarded headers information (`X-Forward - "127.0.0.1/32" - "192.168.1.7" ``` - + + ```toml tab="File (TOML)" + ## Static configuration + [entryPoints] + [entryPoints.web] + address = ":80" + + [entryPoints.web.forwardedHeaders] + trustedIPs = ["127.0.0.1/32", "192.168.1.7"] + ``` + ```bash tab="CLI" ## Static configuration --entryPoints.web.address=:80 @@ -254,19 +254,9 @@ You can configure Traefik to trust the forwarded headers information (`X-Forward ``` ??? info "`forwardedHeaders.insecure`" - + Insecure Mode (Always Trusting Forwarded Headers). - ```toml tab="File (TOML)" - ## Static configuration - [entryPoints] - [entryPoints.web] - address = ":80" - - [entryPoints.web.forwardedHeaders] - insecure = true - ``` - ```yaml tab="File (YAML)" ## Static configuration entryPoints: @@ -275,7 +265,17 @@ You can configure Traefik to trust the forwarded headers information (`X-Forward forwardedHeaders: insecure: true ``` - + + ```toml tab="File (TOML)" + ## Static configuration + [entryPoints] + [entryPoints.web] + address = ":80" + + [entryPoints.web.forwardedHeaders] + insecure = true + ``` + ```bash tab="CLI" ## Static configuration --entryPoints.web.address=:80 @@ -290,25 +290,15 @@ You can configure Traefik to trust the forwarded headers information (`X-Forward Setting them has no effect for UDP entryPoints. ??? info "`transport.respondingTimeouts.readTimeout`" - + _Optional, Default=0s_ - - `readTimeout` is the maximum duration for reading the entire request, including the body. - + + `readTimeout` is the maximum duration for reading the entire request, including the body. + If zero, no timeout exists. Can be provided in a format supported by [time.ParseDuration](https://golang.org/pkg/time/#ParseDuration) or as raw values (digits). If no units are provided, the value is parsed assuming seconds. - - ```toml tab="File (TOML)" - ## Static configuration - [entryPoints] - [entryPoints.name] - address = ":8888" - [entryPoints.name.transport] - [entryPoints.name.transport.respondingTimeouts] - readTimeout = 42 - ``` - + ```yaml tab="File (YAML)" ## Static configuration entryPoints: @@ -318,24 +308,7 @@ Setting them has no effect for UDP entryPoints. respondingTimeouts: readTimeout: 42 ``` - - ```bash tab="CLI" - ## Static configuration - --entryPoints.name.address=:8888 - --entryPoints.name.transport.respondingTimeouts.readTimeout=42 - ``` -??? info "`transport.respondingTimeouts.writeTimeout`" - - _Optional, Default=0s_ - - `writeTimeout` is the maximum duration before timing out writes of the response. - - It covers the time from the end of the request header read to the end of the response write. - If zero, no timeout exists. - Can be provided in a format supported by [time.ParseDuration](https://golang.org/pkg/time/#ParseDuration) or as raw values (digits). - If no units are provided, the value is parsed assuming seconds. - ```toml tab="File (TOML)" ## Static configuration [entryPoints] @@ -343,9 +316,26 @@ Setting them has no effect for UDP entryPoints. address = ":8888" [entryPoints.name.transport] [entryPoints.name.transport.respondingTimeouts] - writeTimeout = 42 + readTimeout = 42 ``` - + + ```bash tab="CLI" + ## Static configuration + --entryPoints.name.address=:8888 + --entryPoints.name.transport.respondingTimeouts.readTimeout=42 + ``` + +??? info "`transport.respondingTimeouts.writeTimeout`" + + _Optional, Default=0s_ + + `writeTimeout` is the maximum duration before timing out writes of the response. + + It covers the time from the end of the request header read to the end of the response write. + If zero, no timeout exists. + Can be provided in a format supported by [time.ParseDuration](https://golang.org/pkg/time/#ParseDuration) or as raw values (digits). + If no units are provided, the value is parsed assuming seconds. + ```yaml tab="File (YAML)" ## Static configuration entryPoints: @@ -355,23 +345,7 @@ Setting them has no effect for UDP entryPoints. respondingTimeouts: writeTimeout: 42 ``` - - ```bash tab="CLI" - ## Static configuration - --entryPoints.name.address=:8888 - --entryPoints.name.transport.respondingTimeouts.writeTimeout=42 - ``` -??? info "`transport.respondingTimeouts.idleTimeout`" - - _Optional, Default=180s_ - - `idleTimeout` is the maximum duration an idle (keep-alive) connection will remain idle before closing itself. - - If zero, no timeout exists. - Can be provided in a format supported by [time.ParseDuration](https://golang.org/pkg/time/#ParseDuration) or as raw values (digits). - If no units are provided, the value is parsed assuming seconds. - ```toml tab="File (TOML)" ## Static configuration [entryPoints] @@ -379,9 +353,25 @@ Setting them has no effect for UDP entryPoints. address = ":8888" [entryPoints.name.transport] [entryPoints.name.transport.respondingTimeouts] - idleTimeout = 42 + writeTimeout = 42 ``` - + + ```bash tab="CLI" + ## Static configuration + --entryPoints.name.address=:8888 + --entryPoints.name.transport.respondingTimeouts.writeTimeout=42 + ``` + +??? info "`transport.respondingTimeouts.idleTimeout`" + + _Optional, Default=180s_ + + `idleTimeout` is the maximum duration an idle (keep-alive) connection will remain idle before closing itself. + + If zero, no timeout exists. + Can be provided in a format supported by [time.ParseDuration](https://golang.org/pkg/time/#ParseDuration) or as raw values (digits). + If no units are provided, the value is parsed assuming seconds. + ```yaml tab="File (YAML)" ## Static configuration entryPoints: @@ -391,7 +381,17 @@ Setting them has no effect for UDP entryPoints. respondingTimeouts: idleTimeout: 42 ``` - + + ```toml tab="File (TOML)" + ## Static configuration + [entryPoints] + [entryPoints.name] + address = ":8888" + [entryPoints.name.transport] + [entryPoints.name.transport.respondingTimeouts] + idleTimeout = 42 + ``` + ```bash tab="CLI" ## Static configuration --entryPoints.name.address=:8888 @@ -403,27 +403,17 @@ Setting them has no effect for UDP entryPoints. Controls the behavior of Traefik during the shutdown phase. ??? info "`lifeCycle.requestAcceptGraceTimeout`" - + _Optional, Default=0s_ - + Duration to keep accepting requests prior to initiating the graceful termination period (as defined by the `graceTimeOut` option). This option is meant to give downstream load-balancers sufficient time to take Traefik out of rotation. - + Can be provided in a format supported by [time.ParseDuration](https://golang.org/pkg/time/#ParseDuration) or as raw values (digits). - + If no units are provided, the value is parsed assuming seconds. The zero duration disables the request accepting grace period, i.e., Traefik will immediately proceed to the grace period. - - ```toml tab="File (TOML)" - ## Static configuration - [entryPoints] - [entryPoints.name] - address = ":8888" - [entryPoints.name.transport] - [entryPoints.name.transport.lifeCycle] - requestAcceptGraceTimeout = 42 - ``` - + ```yaml tab="File (YAML)" ## Static configuration entryPoints: @@ -433,25 +423,7 @@ Controls the behavior of Traefik during the shutdown phase. lifeCycle: requestAcceptGraceTimeout: 42 ``` - - ```bash tab="CLI" - ## Static configuration - --entryPoints.name.address=:8888 - --entryPoints.name.transport.lifeCycle.requestAcceptGraceTimeout=42 - ``` -??? info "`lifeCycle.graceTimeOut`" - - _Optional, Default=10s_ - - Duration to give active requests a chance to finish before Traefik stops. - - Can be provided in a format supported by [time.ParseDuration](https://golang.org/pkg/time/#ParseDuration) or as raw values (digits). - - If no units are provided, the value is parsed assuming seconds. - - !!! warning "In this time frame no new requests are accepted." - ```toml tab="File (TOML)" ## Static configuration [entryPoints] @@ -459,9 +431,27 @@ Controls the behavior of Traefik during the shutdown phase. address = ":8888" [entryPoints.name.transport] [entryPoints.name.transport.lifeCycle] - graceTimeOut = 42 + requestAcceptGraceTimeout = 42 ``` - + + ```bash tab="CLI" + ## Static configuration + --entryPoints.name.address=:8888 + --entryPoints.name.transport.lifeCycle.requestAcceptGraceTimeout=42 + ``` + +??? info "`lifeCycle.graceTimeOut`" + + _Optional, Default=10s_ + + Duration to give active requests a chance to finish before Traefik stops. + + Can be provided in a format supported by [time.ParseDuration](https://golang.org/pkg/time/#ParseDuration) or as raw values (digits). + + If no units are provided, the value is parsed assuming seconds. + + !!! warning "In this time frame no new requests are accepted." + ```yaml tab="File (YAML)" ## Static configuration entryPoints: @@ -471,7 +461,17 @@ Controls the behavior of Traefik during the shutdown phase. lifeCycle: graceTimeOut: 42 ``` - + + ```toml tab="File (TOML)" + ## Static configuration + [entryPoints] + [entryPoints.name] + address = ":8888" + [entryPoints.name.transport] + [entryPoints.name.transport.lifeCycle] + graceTimeOut = 42 + ``` + ```bash tab="CLI" ## Static configuration --entryPoints.name.address=:8888 @@ -486,20 +486,10 @@ If Proxy Protocol header parsing is enabled for the entry point, this entry poin If the Proxy Protocol header is passed, then the version is determined automatically. -??? info "`proxyProtocol.trustedIPs`" - +??? info "`proxyProtocol.trustedIPs`" + Enabling Proxy Protocol with Trusted IPs. - ```toml tab="File (TOML)" - ## Static configuration - [entryPoints] - [entryPoints.web] - address = ":80" - - [entryPoints.web.proxyProtocol] - trustedIPs = ["127.0.0.1/32", "192.168.1.7"] - ``` - ```yaml tab="File (YAML)" ## Static configuration entryPoints: @@ -510,7 +500,17 @@ If the Proxy Protocol header is passed, then the version is determined automatic - "127.0.0.1/32" - "192.168.1.7" ``` - + + ```toml tab="File (TOML)" + ## Static configuration + [entryPoints] + [entryPoints.web] + address = ":80" + + [entryPoints.web.proxyProtocol] + trustedIPs = ["127.0.0.1/32", "192.168.1.7"] + ``` + ```bash tab="CLI" --entryPoints.web.address=:80 --entryPoints.web.proxyProtocol.trustedIPs=127.0.0.1/32,192.168.1.7 @@ -521,20 +521,10 @@ If the Proxy Protocol header is passed, then the version is determined automatic ??? info "`proxyProtocol.insecure`" Insecure Mode (Testing Environment Only). - + In a test environments, you can configure Traefik to trust every incoming connection. Doing so, every remote client address will be replaced (`trustedIPs` won't have any effect) - ```toml tab="File (TOML)" - ## Static configuration - [entryPoints] - [entryPoints.web] - address = ":80" - - [entryPoints.web.proxyProtocol] - insecure = true - ``` - ```yaml tab="File (YAML)" ## Static configuration entryPoints: @@ -543,7 +533,17 @@ If the Proxy Protocol header is passed, then the version is determined automatic proxyProtocol: insecure: true ``` - + + ```toml tab="File (TOML)" + ## Static configuration + [entryPoints] + [entryPoints.web] + address = ":80" + + [entryPoints.web.proxyProtocol] + insecure = true + ``` + ```bash tab="CLI" --entryPoints.web.address=:80 --entryPoints.web.proxyProtocol.insecure @@ -561,21 +561,7 @@ This whole section is dedicated to options, keyed by entry point, that will appl ### Redirection ??? example "HTTPS redirection (80 to 443)" - - ```toml tab="File (TOML)" - [entryPoints.web] - address = ":80" - - [entryPoints.web.http] - [entryPoints.web.http.redirections] - [entryPoints.web.http.redirections.entryPoint] - to = "websecure" - scheme = "https" - - [entryPoints.websecure] - address = ":443" - ``` - + ```yaml tab="File (YAML)" entryPoints: web: @@ -585,11 +571,25 @@ This whole section is dedicated to options, keyed by entry point, that will appl entryPoint: to: websecure scheme: https - + websecure: address: :443 ``` - + + ```toml tab="File (TOML)" + [entryPoints.web] + address = ":80" + + [entryPoints.web.http] + [entryPoints.web.http.redirections] + [entryPoints.web.http.redirections.entryPoint] + to = "websecure" + scheme = "https" + + [entryPoints.websecure] + address = ":443" + ``` + ```bash tab="CLI" --entrypoints.web.address=:80 --entrypoints.web.http.redirections.entryPoint.to=websecure @@ -602,22 +602,14 @@ This whole section is dedicated to options, keyed by entry point, that will appl This section is a convenience to enable (permanent) redirecting of all incoming requests on an entry point (e.g. port `80`) to another entry point (e.g. port `443`) or an explicit port (`:443`). ??? info "`entryPoint.to`" - + _Required_ - + The target element, it can be: - + - an entry point name (ex: `websecure`) - a port (`:443`) - - ```toml tab="File (TOML)" - [entryPoints.foo] - # ... - [entryPoints.foo.http.redirections] - [entryPoints.foo.http.redirections.entryPoint] - to = "websecure" - ``` - + ```yaml tab="File (YAML)" entryPoints: foo: @@ -627,26 +619,25 @@ This section is a convenience to enable (permanent) redirecting of all incoming entryPoint: to: websecure ``` - - ```bash tab="CLI" - --entrypoints.foo.http.redirections.entryPoint.to=websecure - ``` - -??? info "`entryPoint.scheme`" - - _Optional, Default="https"_ - - The redirection target scheme. ```toml tab="File (TOML)" [entryPoints.foo] # ... [entryPoints.foo.http.redirections] [entryPoints.foo.http.redirections.entryPoint] - # ... - scheme = "https" + to = "websecure" ``` - + + ```bash tab="CLI" + --entrypoints.foo.http.redirections.entryPoint.to=websecure + ``` + +??? info "`entryPoint.scheme`" + + _Optional, Default="https"_ + + The redirection target scheme. + ```yaml tab="File (YAML)" entryPoints: foo: @@ -657,16 +648,6 @@ This section is a convenience to enable (permanent) redirecting of all incoming # ... scheme: https ``` - - ```bash tab="CLI" - --entrypoints.foo.http.redirections.entryPoint.scheme=https - ``` - -??? info "`entryPoint.permanent`" - - _Optional, Default=true_ - - To apply a permanent redirection. ```toml tab="File (TOML)" [entryPoints.foo] @@ -674,9 +655,19 @@ This section is a convenience to enable (permanent) redirecting of all incoming [entryPoints.foo.http.redirections] [entryPoints.foo.http.redirections.entryPoint] # ... - permanent = true + scheme = "https" ``` - + + ```bash tab="CLI" + --entrypoints.foo.http.redirections.entryPoint.scheme=https + ``` + +??? info "`entryPoint.permanent`" + + _Optional, Default=true_ + + To apply a permanent redirection. + ```yaml tab="File (YAML)" entryPoints: foo: @@ -687,16 +678,6 @@ This section is a convenience to enable (permanent) redirecting of all incoming # ... permanent: true ``` - - ```bash tab="CLI" - --entrypoints.foo.http.redirections.entrypoint.permanent=true - ``` - -??? info "`entryPoint.priority`" - - _Optional, Default=1_ - - Priority of the generated router. ```toml tab="File (TOML)" [entryPoints.foo] @@ -704,9 +685,19 @@ This section is a convenience to enable (permanent) redirecting of all incoming [entryPoints.foo.http.redirections] [entryPoints.foo.http.redirections.entryPoint] # ... - priority = 10 + permanent = true ``` - + + ```bash tab="CLI" + --entrypoints.foo.http.redirections.entrypoint.permanent=true + ``` + +??? info "`entryPoint.priority`" + + _Optional, Default=1_ + + Priority of the generated router. + ```yaml tab="File (YAML)" entryPoints: foo: @@ -717,7 +708,16 @@ This section is a convenience to enable (permanent) redirecting of all incoming # ... priority: 10 ``` - + + ```toml tab="File (TOML)" + [entryPoints.foo] + # ... + [entryPoints.foo.http.redirections] + [entryPoints.foo.http.redirections.entryPoint] + # ... + priority = 10 + ``` + ```bash tab="CLI" --entrypoints.foo.http.redirections.entrypoint.priority=10 ``` @@ -726,14 +726,6 @@ This section is a convenience to enable (permanent) redirecting of all incoming The list of middlewares that are prepended by default to the list of middlewares of each router associated to the named entry point. -```toml tab="File (TOML)" -[entryPoints.websecure] - address = ":443" - - [entryPoints.websecure.http] - middlewares = ["auth@file", "strip@file"] -``` - ```yaml tab="File (YAML)" entryPoints: websecure: @@ -744,6 +736,14 @@ entryPoints: - strip@file ``` +```toml tab="File (TOML)" +[entryPoints.websecure] + address = ":443" + + [entryPoints.websecure.http] + middlewares = ["auth@file", "strip@file"] +``` + ```bash tab="CLI" --entrypoints.websecure.address=:443 --entrypoints.websecure.http.middlewares=auth@file,strip@file @@ -757,21 +757,6 @@ If a TLS section (i.e. any of its fields) is user-defined, then the default conf The TLS section is the same as the [TLS section on HTTP routers](./routers/index.md#tls). -```toml tab="File (TOML)" -[entryPoints.websecure] - address = ":443" - - [entryPoints.websecure.http.tls] - options = "foobar" - certResolver = "leresolver" - [[entryPoints.websecure.http.tls.domains]] - main = "example.com" - sans = ["foo.example.com", "bar.example.com"] - [[entryPoints.websecure.http.tls.domains]] - main = "test.com" - sans = ["foo.test.com", "bar.test.com"] -``` - ```yaml tab="File (YAML)" entryPoints: websecure: @@ -791,6 +776,21 @@ entryPoints: - bar.test.com ``` +```toml tab="File (TOML)" +[entryPoints.websecure] + address = ":443" + + [entryPoints.websecure.http.tls] + options = "foobar" + certResolver = "leresolver" + [[entryPoints.websecure.http.tls.domains]] + main = "example.com" + sans = ["foo.example.com", "bar.example.com"] + [[entryPoints.websecure.http.tls.domains]] + main = "test.com" + sans = ["foo.test.com", "bar.test.com"] +``` + ```bash tab="CLI" --entrypoints.websecure.address=:443 --entrypoints.websecure.http.tls.options=foobar @@ -802,15 +802,7 @@ entryPoints: ``` ??? example "Let's Encrypt" - - ```toml tab="File (TOML)" - [entryPoints.websecure] - address = ":443" - - [entryPoints.websecure.http.tls] - certResolver = "leresolver" - ``` - + ```yaml tab="File (YAML)" entryPoints: websecure: @@ -819,7 +811,15 @@ entryPoints: tls: certResolver: leresolver ``` - + + ```toml tab="File (TOML)" + [entryPoints.websecure] + address = ":443" + + [entryPoints.websecure.http.tls] + certResolver = "leresolver" + ``` + ```bash tab="CLI" --entrypoints.websecure.address=:443 --entrypoints.websecure.http.tls.certResolver=leresolver diff --git a/docs/content/routing/overview.md b/docs/content/routing/overview.md index 58db1b5fb..d4c19573d 100644 --- a/docs/content/routing/overview.md +++ b/docs/content/routing/overview.md @@ -26,18 +26,6 @@ In the process, Traefik will make sure that the user is authenticated (using the Static configuration: -```toml tab="File (TOML)" -[entryPoints] - [entryPoints.web] - # Listen on port 8081 for incoming requests - address = ":8081" - -[providers] - # Enable the file provider to define routers / middlewares / services in file - [providers.file] - directory = "/path/to/dynamic/conf" -``` - ```yaml tab="File (YAML)" entryPoints: web: @@ -50,6 +38,18 @@ providers: directory: /path/to/dynamic/conf ``` +```toml tab="File (TOML)" +[entryPoints] + [entryPoints.web] + # Listen on port 8081 for incoming requests + address = ":8081" + +[providers] + # Enable the file provider to define routers / middlewares / services in file + [providers.file] + directory = "/path/to/dynamic/conf" +``` + ```bash tab="CLI" # Listen on port 8081 for incoming requests --entryPoints.web.address=:8081 @@ -60,30 +60,6 @@ providers: Dynamic configuration: -```toml tab="TOML" -# http routing section -[http] - [http.routers] - # Define a connection between requests and services - [http.routers.to-whoami] - rule = "Host(`example.com`) && PathPrefix(`/whoami/`)" - # If the rule matches, applies the middleware - middlewares = ["test-user"] - # If the rule matches, forward to the whoami service (declared below) - service = "whoami" - - [http.middlewares] - # Define an authentication mechanism - [http.middlewares.test-user.basicAuth] - users = ["test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/"] - - [http.services] - # Define how to reach an existing service on our infrastructure - [http.services.whoami.loadBalancer] - [[http.services.whoami.loadBalancer.servers]] - url = "http://private/whoami-service" -``` - ```yaml tab="YAML" # http routing section http: @@ -112,6 +88,30 @@ http: - url: http://private/whoami-service ``` +```toml tab="TOML" +# http routing section +[http] + [http.routers] + # Define a connection between requests and services + [http.routers.to-whoami] + rule = "Host(`example.com`) && PathPrefix(`/whoami/`)" + # If the rule matches, applies the middleware + middlewares = ["test-user"] + # If the rule matches, forward to the whoami service (declared below) + service = "whoami" + + [http.middlewares] + # Define an authentication mechanism + [http.middlewares.test-user.basicAuth] + users = ["test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/"] + + [http.services] + # Define how to reach an existing service on our infrastructure + [http.services.whoami.loadBalancer] + [[http.services.whoami.loadBalancer.servers]] + url = "http://private/whoami-service" +``` + !!! info "" In this example, we use the [file provider](../providers/file.md). @@ -125,7 +125,18 @@ http: ??? example "Adding a TCP route for TLS requests on whoami.example.com" **Static Configuration** - + + ```yaml tab="File (YAML)" + entryPoints: + web: + # Listen on port 8081 for incoming requests + address: :8081 + providers: + # Enable the file provider to define routers / middlewares / services in file + file: + directory: /path/to/dynamic/conf + ``` + ```toml tab="File (TOML)" [entryPoints] [entryPoints.web] @@ -137,64 +148,17 @@ http: [providers.file] directory = "/path/to/dynamic/conf" ``` - - ```yaml tab="File (YAML)" - entryPoints: - web: - # Listen on port 8081 for incoming requests - address: :8081 - providers: - # Enable the file provider to define routers / middlewares / services in file - file: - directory: /path/to/dynamic/conf - ``` - + ```bash tab="CLI" # Listen on port 8081 for incoming requests --entryPoints.web.address=:8081 - + # Enable the file provider to define routers / middlewares / services in file --providers.file.directory=/path/to/dynamic/conf ``` - + **Dynamic Configuration** - ```toml tab="TOML" - # http routing section - [http] - [http.routers] - # Define a connection between requests and services - [http.routers.to-whoami] - rule = "Host(`example.com`) && PathPrefix(`/whoami/`)" - # If the rule matches, applies the middleware - middlewares = ["test-user"] - # If the rule matches, forward to the whoami service (declared below) - service = "whoami" - - [http.middlewares] - # Define an authentication mechanism - [http.middlewares.test-user.basicAuth] - users = ["test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/"] - - [http.services] - # Define how to reach an existing service on our infrastructure - [http.services.whoami.loadBalancer] - [[http.services.whoami.loadBalancer.servers]] - url = "http://private/whoami-service" - - [tcp] - [tcp.routers] - [tcp.routers.to-whoami-tcp] - rule = "HostSNI(`whoami-tcp.example.com`)" - service = "whoami-tcp" - [tcp.routers.to-whoami-tcp.tls] - - [tcp.services] - [tcp.services.whoami-tcp.loadBalancer] - [[tcp.services.whoami-tcp.loadBalancer.servers]] - address = "xx.xx.xx.xx:xx" - ``` - ```yaml tab="YAML" # http routing section http: @@ -237,6 +201,42 @@ http: - address: xx.xx.xx.xx:xx ``` + ```toml tab="TOML" + # http routing section + [http] + [http.routers] + # Define a connection between requests and services + [http.routers.to-whoami] + rule = "Host(`example.com`) && PathPrefix(`/whoami/`)" + # If the rule matches, applies the middleware + middlewares = ["test-user"] + # If the rule matches, forward to the whoami service (declared below) + service = "whoami" + + [http.middlewares] + # Define an authentication mechanism + [http.middlewares.test-user.basicAuth] + users = ["test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/"] + + [http.services] + # Define how to reach an existing service on our infrastructure + [http.services.whoami.loadBalancer] + [[http.services.whoami.loadBalancer.servers]] + url = "http://private/whoami-service" + + [tcp] + [tcp.routers] + [tcp.routers.to-whoami-tcp] + rule = "HostSNI(`whoami-tcp.example.com`)" + service = "whoami-tcp" + [tcp.routers.to-whoami-tcp.tls] + + [tcp.services] + [tcp.services.whoami-tcp.loadBalancer] + [[tcp.services.whoami-tcp.loadBalancer.servers]] + address = "xx.xx.xx.xx:xx" + ``` + ## Transport configuration Most of what happens to the connection between the clients and Traefik, @@ -254,18 +254,18 @@ _Optional, Default=false_ `insecureSkipVerify` disables SSL certificate verification. -```toml tab="File (TOML)" -## Static configuration -[serversTransport] - insecureSkipVerify = true -``` - ```yaml tab="File (YAML)" ## Static configuration serversTransport: insecureSkipVerify: true ``` +```toml tab="File (TOML)" +## Static configuration +[serversTransport] + insecureSkipVerify = true +``` + ```bash tab="CLI" ## Static configuration --serversTransport.insecureSkipVerify=true @@ -278,12 +278,6 @@ _Optional_ `rootCAs` is the list of certificates (as file paths, or data bytes) that will be set as Root Certificate Authorities when using a self-signed TLS certificate. -```toml tab="File (TOML)" -## Static configuration -[serversTransport] - rootCAs = ["foo.crt", "bar.crt"] -``` - ```yaml tab="File (YAML)" ## Static configuration serversTransport: @@ -292,6 +286,12 @@ serversTransport: - bar.crt ``` +```toml tab="File (TOML)" +## Static configuration +[serversTransport] + rootCAs = ["foo.crt", "bar.crt"] +``` + ```bash tab="CLI" ## Static configuration --serversTransport.rootCAs=foo.crt,bar.crt @@ -303,18 +303,18 @@ _Optional, Default=2_ If non-zero, `maxIdleConnsPerHost` controls the maximum idle (keep-alive) connections to keep per-host. -```toml tab="File (TOML)" -## Static configuration -[serversTransport] - maxIdleConnsPerHost = 7 -``` - ```yaml tab="File (YAML)" ## Static configuration serversTransport: maxIdleConnsPerHost: 7 ``` +```toml tab="File (TOML)" +## Static configuration +[serversTransport] + maxIdleConnsPerHost = 7 +``` + ```bash tab="CLI" ## Static configuration --serversTransport.maxIdleConnsPerHost=7 @@ -331,12 +331,6 @@ _Optional, Default=30s_ `dialTimeout` is the maximum duration allowed for a connection to a backend server to be established. Zero means no timeout. -```toml tab="File (TOML)" -## Static configuration -[serversTransport.forwardingTimeouts] - dialTimeout = "1s" -``` - ```yaml tab="File (YAML)" ## Static configuration serversTransport: @@ -344,6 +338,12 @@ serversTransport: dialTimeout: 1s ``` +```toml tab="File (TOML)" +## Static configuration +[serversTransport.forwardingTimeouts] + dialTimeout = "1s" +``` + ```bash tab="CLI" ## Static configuration --serversTransport.forwardingTimeouts.dialTimeout=1s @@ -358,12 +358,6 @@ after fully writing the request (including its body, if any). This time does not include the time to read the response body. Zero means no timeout. -```toml tab="File (TOML)" -## Static configuration -[serversTransport.forwardingTimeouts] - responseHeaderTimeout = "1s" -``` - ```yaml tab="File (YAML)" ## Static configuration serversTransport: @@ -371,6 +365,12 @@ serversTransport: responseHeaderTimeout: 1s ``` +```toml tab="File (TOML)" +## Static configuration +[serversTransport.forwardingTimeouts] + responseHeaderTimeout = "1s" +``` + ```bash tab="CLI" ## Static configuration --serversTransport.forwardingTimeouts.responseHeaderTimeout=1s @@ -384,12 +384,6 @@ _Optional, Default=90s_ will remain idle before closing itself. Zero means no limit. -```toml tab="File (TOML)" -## Static configuration -[serversTransport.forwardingTimeouts] - idleConnTimeout = "1s" -``` - ```yaml tab="File (YAML)" ## Static configuration serversTransport: @@ -397,6 +391,12 @@ serversTransport: idleConnTimeout: 1s ``` +```toml tab="File (TOML)" +## Static configuration +[serversTransport.forwardingTimeouts] + idleConnTimeout = "1s" +``` + ```bash tab="CLI" ## Static configuration --serversTransport.forwardingTimeouts.idleConnTimeout=1s diff --git a/docs/content/routing/providers/docker.md b/docs/content/routing/providers/docker.md index 09738ec77..b8fcf1896 100644 --- a/docs/content/routing/providers/docker.md +++ b/docs/content/routing/providers/docker.md @@ -13,15 +13,15 @@ Attach labels to your containers and let Traefik do the rest! Enabling the docker provider - ```toml tab="File (TOML)" - [providers.docker] - ``` - ```yaml tab="File (YAML)" providers: docker: {} ``` + ```toml tab="File (TOML)" + [providers.docker] + ``` + ```bash tab="CLI" --providers.docker=true ``` @@ -82,15 +82,6 @@ Attach labels to your containers and let Traefik do the rest! Enabling the docker provider (Swarm Mode) - ```toml tab="File (TOML)" - [providers.docker] - # swarm classic (1.12-) - # endpoint = "tcp://127.0.0.1:2375" - # docker swarm mode (1.12+) - endpoint = "tcp://127.0.0.1:2377" - swarmMode = true - ``` - ```yaml tab="File (YAML)" providers: docker: @@ -101,6 +92,15 @@ Attach labels to your containers and let Traefik do the rest! swarmMode: true ``` + ```toml tab="File (TOML)" + [providers.docker] + # swarm classic (1.12-) + # endpoint = "tcp://127.0.0.1:2375" + # docker swarm mode (1.12+) + endpoint = "tcp://127.0.0.1:2377" + swarmMode = true + ``` + ```bash tab="CLI" # swarm classic (1.12-) # --providers.docker.endpoint=tcp://127.0.0.1:2375 @@ -266,7 +266,7 @@ you'd add the label `traefik.http.services..loadbalancer.pa !!! warning "The character `@` is not authorized in the service name ``." ??? info "`traefik.http.services..loadbalancer.server.port`" - + Registers a port. Useful when the container exposes multiples ports. @@ -289,7 +289,7 @@ you'd add the label `traefik.http.services..loadbalancer.pa Allows to reference a ServersTransport resource that is defined either with the File provider or the Kubernetes CRD one. See [serverstransport](../services/index.md#serverstransport) for more information. - + ```yaml - "traefik.http.services..loadbalancer.serverstransport=foobar@file" ``` @@ -399,9 +399,9 @@ you'd add the label `traefik.http.services..loadbalancer.pa ``` ??? info "`traefik.http.services..loadbalancer.sticky.cookie.samesite`" - + See [sticky sessions](../services/index.md#sticky-sessions) for more information. - + ```yaml - "traefik.http.services.myservice.loadbalancer.sticky.cookie.samesite=none" ``` diff --git a/docs/content/routing/providers/kubernetes-ingress.md b/docs/content/routing/providers/kubernetes-ingress.md index ba6e3bd81..2041ca28a 100644 --- a/docs/content/routing/providers/kubernetes-ingress.md +++ b/docs/content/routing/providers/kubernetes-ingress.md @@ -12,7 +12,7 @@ which in turn will create the resulting routers, services, handlers, etc. ## Configuration Example ??? example "Configuring Kubernetes Ingress Controller" - + ```yaml tab="RBAC" --- kind: ClusterRole @@ -46,7 +46,7 @@ which in turn will create the resulting routers, services, handlers, etc. - ingresses/status verbs: - update - + --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 @@ -61,7 +61,7 @@ which in turn will create the resulting routers, services, handlers, etc. name: traefik-ingress-controller namespace: default ``` - + ```yaml tab="Ingress" kind: Ingress apiVersion: networking.k8s.io/v1beta1 @@ -69,7 +69,7 @@ which in turn will create the resulting routers, services, handlers, etc. name: myingress annotations: traefik.ingress.kubernetes.io/router.entrypoints: web - + spec: rules: - host: example.com @@ -90,7 +90,7 @@ which in turn will create the resulting routers, services, handlers, etc. kind: ServiceAccount metadata: name: traefik-ingress-controller - + --- kind: Deployment apiVersion: apps/v1 @@ -98,7 +98,7 @@ which in turn will create the resulting routers, services, handlers, etc. name: traefik labels: app: traefik - + spec: replicas: 1 selector: @@ -119,7 +119,7 @@ which in turn will create the resulting routers, services, handlers, etc. ports: - name: web containerPort: 80 - + --- apiVersion: v1 kind: Service @@ -135,7 +135,7 @@ which in turn will create the resulting routers, services, handlers, etc. name: web targetPort: 80 ``` - + ```yaml tab="Whoami" kind: Deployment apiVersion: apps/v1 @@ -144,7 +144,7 @@ which in turn will create the resulting routers, services, handlers, etc. labels: app: traefiklabs name: whoami - + spec: replicas: 2 selector: @@ -162,13 +162,13 @@ which in turn will create the resulting routers, services, handlers, etc. image: traefik/whoami ports: - containerPort: 80 - + --- apiVersion: v1 kind: Service metadata: name: whoami - + spec: ports: - name: http @@ -210,7 +210,7 @@ which in turn will create the resulting routers, services, handlers, etc. Overrides the default router rule type used for a path. Only path-related matcher name can be specified: `Path`, `PathPrefix`. - + Default `PathPrefix` ```yaml @@ -316,7 +316,7 @@ which in turn will create the resulting routers, services, handlers, etc. ``` ## Path Types on Kubernetes 1.18+ - + If the Kubernetes cluster version is 1.18+, the new `pathType` property can be leveraged to define the rules matchers: @@ -341,14 +341,6 @@ TLS can be enabled through the [HTTP options](../entrypoints.md#tls) of an Entry --entrypoints.websecure.http.tls ``` -```toml tab="File (TOML)" -# Static configuration -[entryPoints.websecure] - address = ":443" - - [entryPoints.websecure.http.tls] -``` - ```yaml tab="File (YAML)" # Static configuration entryPoints: @@ -358,10 +350,18 @@ entryPoints: tls: {} ``` +```toml tab="File (TOML)" +# Static configuration +[entryPoints.websecure] + address = ":443" + + [entryPoints.websecure.http.tls] +``` + This way, any Ingress attached to this Entrypoint will have TLS termination by default. ??? example "Configuring Kubernetes Ingress Controller with TLS on Entrypoint" - + ```yaml tab="RBAC" --- kind: ClusterRole @@ -395,7 +395,7 @@ This way, any Ingress attached to this Entrypoint will have TLS termination by d - ingresses/status verbs: - update - + --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 @@ -410,7 +410,7 @@ This way, any Ingress attached to this Entrypoint will have TLS termination by d name: traefik-ingress-controller namespace: default ``` - + ```yaml tab="Ingress" kind: Ingress apiVersion: networking.k8s.io/v1beta1 @@ -418,7 +418,7 @@ This way, any Ingress attached to this Entrypoint will have TLS termination by d name: myingress annotations: traefik.ingress.kubernetes.io/router.entrypoints: websecure - + spec: rules: - host: example.com @@ -439,7 +439,7 @@ This way, any Ingress attached to this Entrypoint will have TLS termination by d kind: ServiceAccount metadata: name: traefik-ingress-controller - + --- kind: Deployment apiVersion: apps/v1 @@ -447,7 +447,7 @@ This way, any Ingress attached to this Entrypoint will have TLS termination by d name: traefik labels: app: traefik - + spec: replicas: 1 selector: @@ -469,7 +469,7 @@ This way, any Ingress attached to this Entrypoint will have TLS termination by d ports: - name: websecure containerPort: 443 - + --- apiVersion: v1 kind: Service @@ -485,7 +485,7 @@ This way, any Ingress attached to this Entrypoint will have TLS termination by d name: websecure targetPort: 443 ``` - + ```yaml tab="Whoami" kind: Deployment apiVersion: apps/v1 @@ -494,7 +494,7 @@ This way, any Ingress attached to this Entrypoint will have TLS termination by d labels: app: traefiklabs name: whoami - + spec: replicas: 2 selector: @@ -512,13 +512,13 @@ This way, any Ingress attached to this Entrypoint will have TLS termination by d image: traefik/whoami ports: - containerPort: 80 - + --- apiVersion: v1 kind: Service metadata: name: whoami - + spec: ports: - name: http @@ -535,11 +535,11 @@ To enable TLS on the underlying router created from an Ingress, one should confi ```yaml traefik.ingress.kubernetes.io/router.tls: "true" ``` - + For more options, please refer to the available [annotations](#on-ingress). ??? example "Configuring Kubernetes Ingress Controller with TLS" - + ```yaml tab="RBAC" --- kind: ClusterRole @@ -573,7 +573,7 @@ For more options, please refer to the available [annotations](#on-ingress). - ingresses/status verbs: - update - + --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 @@ -588,7 +588,7 @@ For more options, please refer to the available [annotations](#on-ingress). name: traefik-ingress-controller namespace: default ``` - + ```yaml tab="Ingress" kind: Ingress apiVersion: networking.k8s.io/v1beta1 @@ -597,7 +597,7 @@ For more options, please refer to the available [annotations](#on-ingress). annotations: traefik.ingress.kubernetes.io/router.entrypoints: websecure traefik.ingress.kubernetes.io/router.tls: true - + spec: rules: - host: example.com @@ -618,7 +618,7 @@ For more options, please refer to the available [annotations](#on-ingress). kind: ServiceAccount metadata: name: traefik-ingress-controller - + --- kind: Deployment apiVersion: apps/v1 @@ -626,7 +626,7 @@ For more options, please refer to the available [annotations](#on-ingress). name: traefik labels: app: traefik - + spec: replicas: 1 selector: @@ -647,7 +647,7 @@ For more options, please refer to the available [annotations](#on-ingress). ports: - name: websecure containerPort: 443 - + --- apiVersion: v1 kind: Service @@ -663,7 +663,7 @@ For more options, please refer to the available [annotations](#on-ingress). name: websecure targetPort: 443 ``` - + ```yaml tab="Whoami" kind: Deployment apiVersion: apps/v1 @@ -672,7 +672,7 @@ For more options, please refer to the available [annotations](#on-ingress). labels: app: traefiklabs name: whoami - + spec: replicas: 2 selector: @@ -690,13 +690,13 @@ For more options, please refer to the available [annotations](#on-ingress). image: traefik/whoami ports: - containerPort: 80 - + --- apiVersion: v1 kind: Service metadata: name: whoami - + spec: ports: - name: http @@ -709,14 +709,14 @@ For more options, please refer to the available [annotations](#on-ingress). ### Certificates Management ??? example "Using a secret" - + ```yaml tab="Ingress" kind: Ingress apiVersion: networking.k8s.io/v1beta1 metadata: name: foo namespace: production - + spec: rules: - host: example.net @@ -738,7 +738,7 @@ For more options, please refer to the available [annotations](#on-ingress). kind: Secret metadata: name: supersecret - + data: tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0= tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCi0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0= @@ -747,7 +747,7 @@ For more options, please refer to the available [annotations](#on-ingress). TLS certificates can be managed in Secrets objects. !!! info - + Only TLS certificates provided by users can be stored in Kubernetes Secrets. [Let's Encrypt](../../https/acme.md) certificates cannot be managed in Kubernetes Secrets yet. @@ -767,7 +767,7 @@ If either of those configuration options exist, then the backend communication p and will connect via TLS automatically. !!! info - + Please note that by enabling TLS communication between traefik and your pods, you will have to have trusted certificates that have the proper trust chain and IP subject name. If this is not an option, you may need to skip TLS certificate verification. @@ -793,8 +793,8 @@ This ingress follows the Global Default Backend property of ingresses. This will allow users to create a "default router" that will match all unmatched requests. !!! info - + Due to Traefik's use of priorities, you may have to set this ingress priority lower than other ingresses in your environment, to avoid this global ingress from satisfying requests that could match other ingresses. - + To do this, use the `traefik.ingress.kubernetes.io/router.priority` annotation (as seen in [Annotations on Ingress](#on-ingress)) on your ingresses accordingly. diff --git a/docs/content/routing/routers/index.md b/docs/content/routing/routers/index.md index 8592ecc1e..fcc5e1d20 100644 --- a/docs/content/routing/routers/index.md +++ b/docs/content/routing/routers/index.md @@ -13,14 +13,6 @@ or act before forwarding the request to the service. ??? example "Requests /foo are Handled by service-foo -- Using the [File Provider](../../providers/file.md)" - ```toml tab="TOML" - ## Dynamic configuration - [http.routers] - [http.routers.my-router] - rule = "Path(`/foo`)" - service = "service-foo" - ``` - ```yaml tab="YAML" ## Dynamic configuration http: @@ -30,21 +22,18 @@ or act before forwarding the request to the service. service: service-foo ``` -??? example "Forwarding all (non-tls) requests on port 3306 to a database service" - - **Dynamic Configuration** - - ```toml tab="File (TOML)" + ```toml tab="TOML" ## Dynamic configuration - [tcp] - [tcp.routers] - [tcp.routers.to-database] - entryPoints = ["mysql"] - # Catch every request (only available rule for non-tls routers. See below.) - rule = "HostSNI(`*`)" - service = "database" + [http.routers] + [http.routers.my-router] + rule = "Path(`/foo`)" + service = "service-foo" ``` - + +??? example "Forwarding all (non-tls) requests on port 3306 to a database service" + + **Dynamic Configuration** + ```yaml tab="File (YAML)" ## Dynamic configuration tcp: @@ -56,27 +45,38 @@ or act before forwarding the request to the service. rule: "HostSNI(`*`)" service: database ``` - - **Static Configuration** - + ```toml tab="File (TOML)" - ## Static configuration - [entryPoints] - [entryPoints.web] - address = ":80" - [entryPoints.mysql] - address = ":3306" + ## Dynamic configuration + [tcp] + [tcp.routers] + [tcp.routers.to-database] + entryPoints = ["mysql"] + # Catch every request (only available rule for non-tls routers. See below.) + rule = "HostSNI(`*`)" + service = "database" ``` - + + **Static Configuration** + ```yaml tab="File (YAML)" ## Static configuration entryPoints: web: address: ":80" mysql: - address: ":3306" + address: ":3306" ``` - + + ```toml tab="File (TOML)" + ## Static configuration + [entryPoints] + [entryPoints.web] + address = ":80" + [entryPoints.mysql] + address = ":3306" + ``` + ```bash tab="CLI" ## Static configuration --entryPoints.web.address=:80 @@ -93,18 +93,9 @@ If not specified, HTTP routers will accept requests from all defined entry point If you want to limit the router scope to a set of entry points, set the `entryPoints` option. ??? example "Listens to Every EntryPoint" - + **Dynamic Configuration** - - ```toml tab="File (TOML)" - ## Dynamic configuration - [http.routers] - [http.routers.Router-1] - # By default, routers listen to every entry points - rule = "Host(`example.com`)" - service = "service-1" - ``` - + ```yaml tab="File (YAML)" ## Dynamic configuration http: @@ -114,20 +105,18 @@ If you want to limit the router scope to a set of entry points, set the `entryPo rule: "Host(`example.com`)" service: "service-1" ``` - - **Static Configuration** - + ```toml tab="File (TOML)" - ## Static configuration - [entryPoints] - [entryPoints.web] - address = ":80" - [entryPoints.websecure] - address = ":443" - [entryPoints.other] - address = ":9090" + ## Dynamic configuration + [http.routers] + [http.routers.Router-1] + # By default, routers listen to every entry points + rule = "Host(`example.com`)" + service = "service-1" ``` - + + **Static Configuration** + ```yaml tab="File (YAML)" ## Static configuration entryPoints: @@ -138,7 +127,18 @@ If you want to limit the router scope to a set of entry points, set the `entryPo other: address: ":9090" ``` - + + ```toml tab="File (TOML)" + ## Static configuration + [entryPoints] + [entryPoints.web] + address = ":80" + [entryPoints.websecure] + address = ":443" + [entryPoints.other] + address = ":9090" + ``` + ```bash tab="CLI" ## Static configuration --entrypoints.web.address=:80 @@ -147,19 +147,9 @@ If you want to limit the router scope to a set of entry points, set the `entryPo ``` ??? example "Listens to Specific EntryPoints" - + **Dynamic Configuration** - - ```toml tab="File (TOML)" - ## Dynamic configuration - [http.routers] - [http.routers.Router-1] - # won't listen to entry point web - entryPoints = ["websecure", "other"] - rule = "Host(`example.com`)" - service = "service-1" - ``` - + ```yaml tab="File (YAML)" ## Dynamic configuration http: @@ -173,19 +163,18 @@ If you want to limit the router scope to a set of entry points, set the `entryPo service: "service-1" ``` - **Static Configuration** - ```toml tab="File (TOML)" - ## Static configuration - [entryPoints] - [entryPoints.web] - address = ":80" - [entryPoints.websecure] - address = ":443" - [entryPoints.other] - address = ":9090" + ## Dynamic configuration + [http.routers] + [http.routers.Router-1] + # won't listen to entry point web + entryPoints = ["websecure", "other"] + rule = "Host(`example.com`)" + service = "service-1" ``` - + + **Static Configuration** + ```yaml tab="File (YAML)" ## Static configuration entryPoints: @@ -196,7 +185,18 @@ If you want to limit the router scope to a set of entry points, set the `entryPo other: address: ":9090" ``` - + + ```toml tab="File (TOML)" + ## Static configuration + [entryPoints] + [entryPoints.web] + address = ":80" + [entryPoints.websecure] + address = ":443" + [entryPoints.other] + address = ":9090" + ``` + ```bash tab="CLI" ## Static configuration --entrypoints.web.address=:80 @@ -211,7 +211,7 @@ If the rule is verified, the router becomes active, calls middlewares, and then ??? tip "Backticks or Quotes?" To set the value of a rule, use [backticks](https://en.wiktionary.org/wiki/backtick) ``` ` ``` or escaped double-quotes `\"`. - + Single quotes `'` are not accepted as values are [Golang's String Literals](https://golang.org/ref/spec#String_literals). !!! example "Host is example.com" @@ -276,17 +276,6 @@ A value of `0` for the priority is ignored: `priority = 0` means that the defaul ??? info "How default priorities are computed" - ```toml tab="File (TOML)" - ## Dynamic configuration - [http.routers] - [http.routers.Router-1] - rule = "HostRegexp(`.*\.traefik\.com`)" - # ... - [http.routers.Router-2] - rule = "Host(`foobar.traefik.com`)" - # ... - ``` - ```yaml tab="File (YAML)" ## Dynamic configuration http: @@ -298,35 +287,31 @@ A value of `0` for the priority is ignored: `priority = 0` means that the defaul rule: "Host(`foobar.traefik.com`)" # ... ``` - - In this case, all requests with host `foobar.traefik.com` will be routed through `Router-1` instead of `Router-2`. - - | Name | Rule | Priority | - |----------|--------------------------------------|----------| - | Router-1 | ```HostRegexp(`.*\.traefik\.com`)``` | 30 | - | Router-2 | ```Host(`foobar.traefik.com`)``` | 26 | - - The previous table shows that `Router-1` has a higher priority than `Router-2`. - - To solve this issue, the priority must be set. -??? example "Set priorities -- using the [File Provider](../../providers/file.md)" - ```toml tab="File (TOML)" ## Dynamic configuration [http.routers] [http.routers.Router-1] rule = "HostRegexp(`.*\.traefik\.com`)" - entryPoints = ["web"] - service = "service-1" - priority = 1 + # ... [http.routers.Router-2] rule = "Host(`foobar.traefik.com`)" - entryPoints = ["web"] - priority = 2 - service = "service-2" + # ... ``` - + + In this case, all requests with host `foobar.traefik.com` will be routed through `Router-1` instead of `Router-2`. + + | Name | Rule | Priority | + |----------|--------------------------------------|----------| + | Router-1 | ```HostRegexp(`.*\.traefik\.com`)``` | 30 | + | Router-2 | ```Host(`foobar.traefik.com`)``` | 26 | + + The previous table shows that `Router-1` has a higher priority than `Router-2`. + + To solve this issue, the priority must be set. + +??? example "Set priorities -- using the [File Provider](../../providers/file.md)" + ```yaml tab="File (YAML)" ## Dynamic configuration http: @@ -345,6 +330,21 @@ A value of `0` for the priority is ignored: `priority = 0` means that the defaul service: service-2 ``` + ```toml tab="File (TOML)" + ## Dynamic configuration + [http.routers] + [http.routers.Router-1] + rule = "HostRegexp(`.*\.traefik\.com`)" + entryPoints = ["web"] + service = "service-1" + priority = 1 + [http.routers.Router-2] + rule = "Host(`foobar.traefik.com`)" + entryPoints = ["web"] + priority = 2 + service = "service-2" + ``` + In this configuration, the priority is configured to allow `Router-2` to handle requests with the `foobar.traefik.com` host. ### Middlewares @@ -355,21 +355,11 @@ The middlewares will take effect only if the rule matches, and before forwarding !!! warning "The character `@` is not authorized in the middleware name." !!! tip "Middlewares order" - + Middlewares are applied in the same order as their declaration in **router**. ??? example "With a [middleware](../../middlewares/overview.md) -- using the [File Provider](../../providers/file.md)" - ```toml tab="TOML" - ## Dynamic configuration - [http.routers] - [http.routers.my-router] - rule = "Path(`/foo`)" - # declared elsewhere - middlewares = ["authentication"] - service = "service-foo" - ``` - ```yaml tab="YAML" ## Dynamic configuration http: @@ -382,6 +372,16 @@ The middlewares will take effect only if the rule matches, and before forwarding service: service-foo ``` + ```toml tab="TOML" + ## Dynamic configuration + [http.routers] + [http.routers.my-router] + rule = "Path(`/foo`)" + # declared elsewhere + middlewares = ["authentication"] + service = "service-foo" + ``` + ### Service Each request must eventually be handled by a [service](../services/index.md), @@ -406,16 +406,6 @@ Traefik will terminate the SSL connections (meaning that it will send decrypted ??? example "Configuring the router to accept HTTPS requests only" - ```toml tab="File (TOML)" - ## Dynamic configuration - [http.routers] - [http.routers.Router-1] - rule = "Host(`foo-domain`) && Path(`/foo-path/`)" - service = "service-id" - # will terminate the TLS request - [http.routers.Router-1.tls] - ``` - ```yaml tab="File (YAML)" ## Dynamic configuration http: @@ -427,6 +417,16 @@ Traefik will terminate the SSL connections (meaning that it will send decrypted tls: {} ``` + ```toml tab="File (TOML)" + ## Dynamic configuration + [http.routers] + [http.routers.Router-1] + rule = "Host(`foo-domain`) && Path(`/foo-path/`)" + service = "service-id" + # will terminate the TLS request + [http.routers.Router-1.tls] + ``` + !!! important "Routers for HTTP & HTTPS" If you need to define the same route for both HTTP and HTTPS requests, you will need to define two different routers: @@ -434,20 +434,6 @@ Traefik will terminate the SSL connections (meaning that it will send decrypted ??? example "HTTP & HTTPS routes" - ```toml tab="File (TOML)" - ## Dynamic configuration - [http.routers] - [http.routers.my-https-router] - rule = "Host(`foo-domain`) && Path(`/foo-path/`)" - service = "service-id" - # will terminate the TLS request - [http.routers.my-https-router.tls] - - [http.routers.my-http-router] - rule = "Host(`foo-domain`) && Path(`/foo-path/`)" - service = "service-id" - ``` - ```yaml tab="File (YAML)" ## Dynamic configuration http: @@ -463,6 +449,20 @@ Traefik will terminate the SSL connections (meaning that it will send decrypted service: service-id ``` + ```toml tab="File (TOML)" + ## Dynamic configuration + [http.routers] + [http.routers.my-https-router] + rule = "Host(`foo-domain`) && Path(`/foo-path/`)" + service = "service-id" + # will terminate the TLS request + [http.routers.my-https-router.tls] + + [http.routers.my-http-router] + rule = "Host(`foo-domain`) && Path(`/foo-path/`)" + service = "service-id" + ``` + #### `options` The `options` field enables fine-grained control of the TLS parameters. @@ -485,28 +485,6 @@ It refers to a [TLS Options](../../https/tls.md#tls-options) and will be applied ??? example "Configuring the TLS options" - ```toml tab="File (TOML)" - ## Dynamic configuration - [http.routers] - [http.routers.Router-1] - rule = "Host(`foo-domain`) && Path(`/foo-path/`)" - service = "service-id" - # will terminate the TLS request - [http.routers.Router-1.tls] - options = "foo" - - [tls.options] - [tls.options.foo] - minVersion = "VersionTLS12" - cipherSuites = [ - "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", - "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256", - "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256", - "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", - "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", - ] - ``` - ```yaml tab="File (YAML)" ## Dynamic configuration http: @@ -517,7 +495,7 @@ It refers to a [TLS Options](../../https/tls.md#tls-options) and will be applied # will terminate the TLS request tls: options: foo - + tls: options: foo: @@ -530,27 +508,34 @@ It refers to a [TLS Options](../../https/tls.md#tls-options) and will be applied - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ``` + ```toml tab="File (TOML)" + ## Dynamic configuration + [http.routers] + [http.routers.Router-1] + rule = "Host(`foo-domain`) && Path(`/foo-path/`)" + service = "service-id" + # will terminate the TLS request + [http.routers.Router-1.tls] + options = "foo" + + [tls.options] + [tls.options.foo] + minVersion = "VersionTLS12" + cipherSuites = [ + "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", + "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256", + "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256", + "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", + "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", + ] + ``` + !!! important "Conflicting TLS Options" Since a TLS options reference is mapped to a host name, if a configuration introduces a situation where the same host name (from a `Host` rule) gets matched with two TLS options references, a conflict occurs, such as in the example below: - ```toml tab="File (TOML)" - ## Dynamic configuration - [http.routers] - [http.routers.routerfoo] - rule = "Host(`snitest.com`) && Path(`/foo`)" - [http.routers.routerfoo.tls] - options = "foo" - - [http.routers] - [http.routers.routerbar] - rule = "Host(`snitest.com`) && Path(`/bar`)" - [http.routers.routerbar.tls] - options = "bar" - ``` - ```yaml tab="File (YAML)" ## Dynamic configuration http: @@ -566,21 +551,27 @@ It refers to a [TLS Options](../../https/tls.md#tls-options) and will be applied options: bar ``` + ```toml tab="File (TOML)" + ## Dynamic configuration + [http.routers] + [http.routers.routerfoo] + rule = "Host(`snitest.com`) && Path(`/foo`)" + [http.routers.routerfoo.tls] + options = "foo" + + [http.routers] + [http.routers.routerbar] + rule = "Host(`snitest.com`) && Path(`/bar`)" + [http.routers.routerbar.tls] + options = "bar" + ``` + If that happens, both mappings are discarded, and the host name (`snitest.com` in this case) for these routers gets associated with the default TLS options instead. #### `certResolver` If `certResolver` is defined, Traefik will try to generate certificates based on routers `Host` & `HostSNI` rules. -```toml tab="File (TOML)" -## Dynamic configuration -[http.routers] - [http.routers.routerfoo] - rule = "Host(`snitest.com`) && Path(`/foo`)" - [http.routers.routerfoo.tls] - certResolver = "foo" -``` - ```yaml tab="File (YAML)" ## Dynamic configuration http: @@ -591,6 +582,15 @@ http: certResolver: foo ``` +```toml tab="File (TOML)" +## Dynamic configuration +[http.routers] + [http.routers.routerfoo] + rule = "Host(`snitest.com`) && Path(`/foo`)" + [http.routers.routerfoo.tls] + certResolver = "foo" +``` + !!! info "Multiple Hosts in a Rule" The rule ```Host(`test1.example.com`,`test2.example.com`)``` will request a certificate with the main domain `test1.example.com` and SAN `test2.example.com`. @@ -600,18 +600,6 @@ You can set SANs (alternative domains) for each main domain. Every domain must have A/AAAA records pointing to Traefik. Each domain & SAN will lead to a certificate request. -```toml tab="File (TOML)" -## Dynamic configuration -[http.routers] - [http.routers.routerbar] - rule = "Host(`snitest.com`) && Path(`/bar`)" - [http.routers.routerbar.tls] - certResolver = "bar" - [[http.routers.routerbar.tls.domains]] - main = "snitest.com" - sans = ["*.snitest.com"] -``` - ```yaml tab="File (YAML)" ## Dynamic configuration http: @@ -626,6 +614,18 @@ http: - "*.snitest.com" ``` +```toml tab="File (TOML)" +## Dynamic configuration +[http.routers] + [http.routers.routerbar] + rule = "Host(`snitest.com`) && Path(`/bar`)" + [http.routers.routerbar.tls] + certResolver = "bar" + [[http.routers.routerbar.tls.domains]] + main = "snitest.com" + sans = ["*.snitest.com"] +``` + [ACME v2](https://community.letsencrypt.org/t/acme-v2-and-wildcard-certificate-support-is-live/55579) supports wildcard certificates. As described in [Let's Encrypt's post](https://community.letsencrypt.org/t/staging-endpoint-for-acme-v2/49605) wildcard certificates can only be generated through a [`DNS-01` challenge](../../https/acme.md#dnschallenge). @@ -657,24 +657,12 @@ If not specified, TCP routers will accept requests from all defined entry points If you want to limit the router scope to a set of entry points, set the entry points option. ??? example "Listens to Every Entry Point" - + **Dynamic Configuration** - ```toml tab="File (TOML)" - ## Dynamic configuration - - [tcp.routers] - [tcp.routers.Router-1] - # By default, routers listen to every entrypoints - rule = "HostSNI(`example.com`)" - service = "service-1" - # will route TLS requests (and ignore non tls requests) - [tcp.routers.Router-1.tls] - ``` - ```yaml tab="File (YAML)" ## Dynamic configuration - + tcp: routers: Router-1: @@ -685,23 +673,23 @@ If you want to limit the router scope to a set of entry points, set the entry po tls: {} ``` - **Static Configuration** - ```toml tab="File (TOML)" - ## Static configuration - - [entryPoints] - [entryPoints.web] - address = ":80" - [entryPoints.websecure] - address = ":443" - [entryPoints.other] - address = ":9090" + ## Dynamic configuration + + [tcp.routers] + [tcp.routers.Router-1] + # By default, routers listen to every entrypoints + rule = "HostSNI(`example.com`)" + service = "service-1" + # will route TLS requests (and ignore non tls requests) + [tcp.routers.Router-1.tls] ``` - + + **Static Configuration** + ```yaml tab="File (YAML)" ## Static configuration - + entryPoints: web: address: ":80" @@ -710,7 +698,19 @@ If you want to limit the router scope to a set of entry points, set the entry po other: address: ":9090" ``` - + + ```toml tab="File (TOML)" + ## Static configuration + + [entryPoints] + [entryPoints.web] + address = ":80" + [entryPoints.websecure] + address = ":443" + [entryPoints.other] + address = ":9090" + ``` + ```bash tab="CLI" ## Static configuration --entrypoints.web.address=:80 @@ -719,21 +719,9 @@ If you want to limit the router scope to a set of entry points, set the entry po ``` ??? example "Listens to Specific Entry Points" - + **Dynamic Configuration** - - ```toml tab="File (TOML)" - ## Dynamic configuration - [tcp.routers] - [tcp.routers.Router-1] - # won't listen to entry point web - entryPoints = ["websecure", "other"] - rule = "HostSNI(`example.com`)" - service = "service-1" - # will route TLS requests (and ignore non tls requests) - [tcp.routers.Router-1.tls] - ``` - + ```yaml tab="File (YAML)" ## Dynamic configuration tcp: @@ -749,23 +737,23 @@ If you want to limit the router scope to a set of entry points, set the entry po tls: {} ``` - **Static Configuration** - ```toml tab="File (TOML)" - ## Static configuration - - [entryPoints] - [entryPoints.web] - address = ":80" - [entryPoints.websecure] - address = ":443" - [entryPoints.other] - address = ":9090" + ## Dynamic configuration + [tcp.routers] + [tcp.routers.Router-1] + # won't listen to entry point web + entryPoints = ["websecure", "other"] + rule = "HostSNI(`example.com`)" + service = "service-1" + # will route TLS requests (and ignore non tls requests) + [tcp.routers.Router-1.tls] ``` - + + **Static Configuration** + ```yaml tab="File (YAML)" ## Static configuration - + entryPoints: web: address: ":80" @@ -774,7 +762,19 @@ If you want to limit the router scope to a set of entry points, set the entry po other: address: ":9090" ``` - + + ```toml tab="File (TOML)" + ## Static configuration + + [entryPoints] + [entryPoints.web] + address = ":80" + [entryPoints.websecure] + address = ":443" + [entryPoints.other] + address = ":9090" + ``` + ```bash tab="CLI" ## Static configuration --entrypoints.web.address=:80 @@ -817,16 +817,6 @@ By default, a router with a TLS section will terminate the TLS connections, mean ??? example "Router for TLS requests" - ```toml tab="File (TOML)" - ## Dynamic configuration - [tcp.routers] - [tcp.routers.Router-1] - rule = "HostSNI(`foo-domain`)" - service = "service-id" - # will terminate the TLS request by default - [tcp.routers.Router-1.tls] - ``` - ```yaml tab="File (YAML)" ## Dynamic configuration tcp: @@ -838,6 +828,16 @@ By default, a router with a TLS section will terminate the TLS connections, mean tls: {} ``` + ```toml tab="File (TOML)" + ## Dynamic configuration + [tcp.routers] + [tcp.routers.Router-1] + rule = "HostSNI(`foo-domain`)" + service = "service-id" + # will terminate the TLS request by default + [tcp.routers.Router-1.tls] + ``` + #### `passthrough` As seen above, a TLS router will terminate the TLS connection by default. @@ -847,16 +847,6 @@ It defaults to `false`. ??? example "Configuring passthrough" - ```toml tab="File (TOML)" - ## Dynamic configuration - [tcp.routers] - [tcp.routers.Router-1] - rule = "HostSNI(`foo-domain`)" - service = "service-id" - [tcp.routers.Router-1.tls] - passthrough = true - ``` - ```yaml tab="File (YAML)" ## Dynamic configuration tcp: @@ -868,35 +858,23 @@ It defaults to `false`. passthrough: true ``` -#### `options` - -The `options` field enables fine-grained control of the TLS parameters. -It refers to a [TLS Options](../../https/tls.md#tls-options) and will be applied only if a `HostSNI` rule is defined. - -!!! example "Configuring the tls options" - ```toml tab="File (TOML)" ## Dynamic configuration [tcp.routers] [tcp.routers.Router-1] rule = "HostSNI(`foo-domain`)" service = "service-id" - # will terminate the TLS request [tcp.routers.Router-1.tls] - options = "foo" - - [tls.options] - [tls.options.foo] - minVersion = "VersionTLS12" - cipherSuites = [ - "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", - "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256", - "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256", - "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", - "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", - ] + passthrough = true ``` +#### `options` + +The `options` field enables fine-grained control of the TLS parameters. +It refers to a [TLS Options](../../https/tls.md#tls-options) and will be applied only if a `HostSNI` rule is defined. + +!!! example "Configuring the tls options" + ```yaml tab="File (YAML)" ## Dynamic configuration tcp: @@ -907,7 +885,7 @@ It refers to a [TLS Options](../../https/tls.md#tls-options) and will be applied # will terminate the TLS request tls: options: foo - + tls: options: foo: @@ -920,19 +898,32 @@ It refers to a [TLS Options](../../https/tls.md#tls-options) and will be applied - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ``` + ```toml tab="File (TOML)" + ## Dynamic configuration + [tcp.routers] + [tcp.routers.Router-1] + rule = "HostSNI(`foo-domain`)" + service = "service-id" + # will terminate the TLS request + [tcp.routers.Router-1.tls] + options = "foo" + + [tls.options] + [tls.options.foo] + minVersion = "VersionTLS12" + cipherSuites = [ + "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", + "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256", + "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256", + "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", + "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", + ] + ``` + #### `certResolver` See [`certResolver` for HTTP router](./index.md#certresolver) for more information. -```toml tab="File (TOML)" -## Dynamic configuration -[tcp.routers] - [tcp.routers.routerfoo] - rule = "HostSNI(`snitest.com`)" - [tcp.routers.routerfoo.tls] - certResolver = "foo" -``` - ```yaml tab="File (YAML)" ## Dynamic configuration tcp: @@ -943,22 +934,19 @@ tcp: certResolver: foo ``` -#### `domains` - -See [`domains` for HTTP router](./index.md#domains) for more information. - ```toml tab="File (TOML)" ## Dynamic configuration [tcp.routers] - [tcp.routers.routerbar] + [tcp.routers.routerfoo] rule = "HostSNI(`snitest.com`)" - [tcp.routers.routerbar.tls] - certResolver = "bar" - [[tcp.routers.routerbar.tls.domains]] - main = "snitest.com" - sans = ["*.snitest.com"] + [tcp.routers.routerfoo.tls] + certResolver = "foo" ``` +#### `domains` + +See [`domains` for HTTP router](./index.md#domains) for more information. + ```yaml tab="File (YAML)" ## Dynamic configuration tcp: @@ -969,10 +957,22 @@ tcp: certResolver: "bar" domains: - main: "snitest.com" - sans: + sans: - "*.snitest.com" ``` +```toml tab="File (TOML)" +## Dynamic configuration +[tcp.routers] + [tcp.routers.routerbar] + rule = "HostSNI(`snitest.com`)" + [tcp.routers.routerbar.tls] + certResolver = "bar" + [[tcp.routers.routerbar.tls.domains]] + main = "snitest.com" + sans = ["*.snitest.com"] +``` + ## Configuring UDP Routers !!! warning "The character `@` is not allowed in the router name" @@ -1005,16 +1005,6 @@ If one wants to limit the router scope to a set of entry points, one should set **Dynamic Configuration** - ```toml tab="File (TOML)" - ## Dynamic configuration - - [udp.routers] - [udp.routers.Router-1] - # By default, routers listen to all UDP entrypoints, - # i.e. "other", and "streaming". - service = "service-1" - ``` - ```yaml tab="File (YAML)" ## Dynamic configuration @@ -1026,22 +1016,18 @@ If one wants to limit the router scope to a set of entry points, one should set service: "service-1" ``` - **Static Configuration** - ```toml tab="File (TOML)" - ## Static configuration + ## Dynamic configuration - [entryPoints] - # not used by UDP routers - [entryPoints.web] - address = ":80" - # used by UDP routers - [entryPoints.other] - address = ":9090/udp" - [entryPoints.streaming] - address = ":9191/udp" + [udp.routers] + [udp.routers.Router-1] + # By default, routers listen to all UDP entrypoints, + # i.e. "other", and "streaming". + service = "service-1" ``` + **Static Configuration** + ```yaml tab="File (YAML)" ## Static configuration @@ -1056,6 +1042,20 @@ If one wants to limit the router scope to a set of entry points, one should set address: ":9191/udp" ``` + ```toml tab="File (TOML)" + ## Static configuration + + [entryPoints] + # not used by UDP routers + [entryPoints.web] + address = ":80" + # used by UDP routers + [entryPoints.other] + address = ":9090/udp" + [entryPoints.streaming] + address = ":9191/udp" + ``` + ```bash tab="CLI" ## Static configuration --entrypoints.web.address=":80" @@ -1067,15 +1067,6 @@ If one wants to limit the router scope to a set of entry points, one should set **Dynamic Configuration** - ```toml tab="File (TOML)" - ## Dynamic configuration - [udp.routers] - [udp.routers.Router-1] - # does not listen on "other" entry point - entryPoints = ["streaming"] - service = "service-1" - ``` - ```yaml tab="File (YAML)" ## Dynamic configuration udp: @@ -1087,20 +1078,17 @@ If one wants to limit the router scope to a set of entry points, one should set service: "service-1" ``` - **Static Configuration** - ```toml tab="File (TOML)" - ## Static configuration - - [entryPoints] - [entryPoints.web] - address = ":80" - [entryPoints.other] - address = ":9090/udp" - [entryPoints.streaming] - address = ":9191/udp" + ## Dynamic configuration + [udp.routers] + [udp.routers.Router-1] + # does not listen on "other" entry point + entryPoints = ["streaming"] + service = "service-1" ``` + **Static Configuration** + ```yaml tab="File (YAML)" ## Static configuration @@ -1113,6 +1101,18 @@ If one wants to limit the router scope to a set of entry points, one should set address: ":9191/udp" ``` + ```toml tab="File (TOML)" + ## Static configuration + + [entryPoints] + [entryPoints.web] + address = ":80" + [entryPoints.other] + address = ":9090/udp" + [entryPoints.streaming] + address = ":9191/udp" + ``` + ```bash tab="CLI" ## Static configuration --entrypoints.web.address=":80" diff --git a/docs/content/routing/services/index.md b/docs/content/routing/services/index.md index 2d69d42e6..754ee2d24 100644 --- a/docs/content/routing/services/index.md +++ b/docs/content/routing/services/index.md @@ -11,17 +11,6 @@ The `Services` are responsible for configuring how to reach the actual services ??? example "Declaring an HTTP Service with Two Servers -- Using the [File Provider](../../providers/file.md)" - ```toml tab="TOML" - ## Dynamic configuration - [http.services] - [http.services.my-service.loadBalancer] - - [[http.services.my-service.loadBalancer.servers]] - url = "http://:/" - [[http.services.my-service.loadBalancer.servers]] - url = "http://:/" - ``` - ```yaml tab="YAML" ## Dynamic configuration http: @@ -33,18 +22,19 @@ The `Services` are responsible for configuring how to reach the actual services - url: "http://:/" ``` -??? example "Declaring a TCP Service with Two Servers -- Using the [File Provider](../../providers/file.md)" - ```toml tab="TOML" ## Dynamic configuration - [tcp.services] - [tcp.services.my-service.loadBalancer] - [[tcp.services.my-service.loadBalancer.servers]] - address = ":" - [[tcp.services.my-service.loadBalancer.servers]] - address = ":" + [http.services] + [http.services.my-service.loadBalancer] + + [[http.services.my-service.loadBalancer.servers]] + url = "http://:/" + [[http.services.my-service.loadBalancer.servers]] + url = "http://:/" ``` +??? example "Declaring a TCP Service with Two Servers -- Using the [File Provider](../../providers/file.md)" + ```yaml tab="YAML" tcp: services: @@ -55,18 +45,18 @@ The `Services` are responsible for configuring how to reach the actual services - address: ":" ``` -??? example "Declaring a UDP Service with Two Servers -- Using the [File Provider](../../providers/file.md)" - ```toml tab="TOML" ## Dynamic configuration - [udp.services] - [udp.services.my-service.loadBalancer] - [[udp.services.my-service.loadBalancer.servers]] + [tcp.services] + [tcp.services.my-service.loadBalancer] + [[tcp.services.my-service.loadBalancer.servers]] address = ":" - [[udp.services.my-service.loadBalancer.servers]] + [[tcp.services.my-service.loadBalancer.servers]] address = ":" ``` +??? example "Declaring a UDP Service with Two Servers -- Using the [File Provider](../../providers/file.md)" + ```yaml tab="YAML" udp: services: @@ -77,6 +67,16 @@ The `Services` are responsible for configuring how to reach the actual services - address: ":" ``` + ```toml tab="TOML" + ## Dynamic configuration + [udp.services] + [udp.services.my-service.loadBalancer] + [[udp.services.my-service.loadBalancer.servers]] + address = ":" + [[udp.services.my-service.loadBalancer.servers]] + address = ":" + ``` + ## Configuring HTTP Services ### Servers Load Balancer @@ -87,6 +87,16 @@ Each service has a load-balancer, even if there is only one server to forward tr ??? example "Declaring a Service with Two Servers (with Load Balancing) -- Using the [File Provider](../../providers/file.md)" + ```yaml tab="YAML" + http: + services: + my-service: + loadBalancer: + servers: + - url: "http://private-ip-server-1/" + - url: "http://private-ip-server-2/" + ``` + ```toml tab="TOML" ## Dynamic configuration [http.services] @@ -98,16 +108,6 @@ Each service has a load-balancer, even if there is only one server to forward tr url = "http://private-ip-server-2/" ``` - ```yaml tab="YAML" - http: - services: - my-service: - loadBalancer: - servers: - - url: "http://private-ip-server-1/" - - url: "http://private-ip-server-2/" - ``` - #### Servers Servers declare a single instance of your program. @@ -120,14 +120,6 @@ The `url` option point to a specific instance. ??? example "A Service with One Server -- Using the [File Provider](../../providers/file.md)" - ```toml tab="TOML" - ## Dynamic configuration - [http.services] - [http.services.my-service.loadBalancer] - [[http.services.my-service.loadBalancer.servers]] - url = "http://private-ip-server-1/" - ``` - ```yaml tab="YAML" ## Dynamic configuration http: @@ -138,22 +130,20 @@ The `url` option point to a specific instance. - url: "http://private-ip-server-1/" ``` -#### Load-balancing - -For now, only round robin load balancing is supported: - -??? example "Load Balancing -- Using the [File Provider](../../providers/file.md)" - ```toml tab="TOML" ## Dynamic configuration [http.services] [http.services.my-service.loadBalancer] [[http.services.my-service.loadBalancer.servers]] url = "http://private-ip-server-1/" - [[http.services.my-service.loadBalancer.servers]] - url = "http://private-ip-server-2/" ``` +#### Load-balancing + +For now, only round robin load balancing is supported: + +??? example "Load Balancing -- Using the [File Provider](../../providers/file.md)" + ```yaml tab="YAML" ## Dynamic configuration http: @@ -165,6 +155,16 @@ For now, only round robin load balancing is supported: - url: "http://private-ip-server-2/" ``` + ```toml tab="TOML" + ## Dynamic configuration + [http.services] + [http.services.my-service.loadBalancer] + [[http.services.my-service.loadBalancer.servers]] + url = "http://private-ip-server-1/" + [[http.services.my-service.loadBalancer.servers]] + url = "http://private-ip-server-2/" + ``` + #### Sticky sessions When sticky sessions are enabled, a cookie is set on the initial request and response to let the client know which server handles the first response. @@ -186,18 +186,11 @@ On subsequent requests, to keep the session alive with the same server, the clie By default, the affinity cookie is created without those flags. One however can change that through configuration. - + `SameSite` can be `none`, `lax`, `strict` or empty. ??? example "Adding Stickiness -- Using the [File Provider](../../providers/file.md)" - ```toml tab="TOML" - ## Dynamic configuration - [http.services] - [http.services.my-service] - [http.services.my-service.loadBalancer.sticky.cookie] - ``` - ```yaml tab="YAML" ## Dynamic configuration http: @@ -208,19 +201,15 @@ On subsequent requests, to keep the session alive with the same server, the clie cookie: {} ``` -??? example "Adding Stickiness with custom Options -- Using the [File Provider](../../providers/file.md)" - ```toml tab="TOML" ## Dynamic configuration [http.services] [http.services.my-service] [http.services.my-service.loadBalancer.sticky.cookie] - name = "my_sticky_cookie_name" - secure = true - httpOnly = true - sameSite = "none" ``` +??? example "Adding Stickiness with custom Options -- Using the [File Provider](../../providers/file.md)" + ```yaml tab="YAML" ## Dynamic configuration http: @@ -234,40 +223,19 @@ On subsequent requests, to keep the session alive with the same server, the clie httpOnly: true ``` -??? example "Setting Stickiness on all the required levels -- Using the [File Provider](../../providers/file.md)" - ```toml tab="TOML" ## Dynamic configuration [http.services] - [http.services.wrr1] - [http.services.wrr1.weighted.sticky.cookie] - name = "lvl1" - [[http.services.wrr1.weighted.services]] - name = "whoami1" - weight = 1 - [[http.services.wrr1.weighted.services]] - name = "whoami2" - weight = 1 - - [http.services.whoami1] - [http.services.whoami1.loadBalancer] - [http.services.whoami1.loadBalancer.sticky.cookie] - name = "lvl2" - [[http.services.whoami1.loadBalancer.servers]] - url = "http://127.0.0.1:8081" - [[http.services.whoami1.loadBalancer.servers]] - url = "http://127.0.0.1:8082" - - [http.services.whoami2] - [http.services.whoami2.loadBalancer] - [http.services.whoami2.loadBalancer.sticky.cookie] - name = "lvl2" - [[http.services.whoami2.loadBalancer.servers]] - url = "http://127.0.0.1:8083" - [[http.services.whoami2.loadBalancer.servers]] - url = "http://127.0.0.1:8084" + [http.services.my-service] + [http.services.my-service.loadBalancer.sticky.cookie] + name = "my_sticky_cookie_name" + secure = true + httpOnly = true + sameSite = "none" ``` +??? example "Setting Stickiness on all the required levels -- Using the [File Provider](../../providers/file.md)" + ```yaml tab="YAML" ## Dynamic configuration http: @@ -302,8 +270,40 @@ On subsequent requests, to keep the session alive with the same server, the clie - url: http://127.0.0.1:8084 ``` + ```toml tab="TOML" + ## Dynamic configuration + [http.services] + [http.services.wrr1] + [http.services.wrr1.weighted.sticky.cookie] + name = "lvl1" + [[http.services.wrr1.weighted.services]] + name = "whoami1" + weight = 1 + [[http.services.wrr1.weighted.services]] + name = "whoami2" + weight = 1 + + [http.services.whoami1] + [http.services.whoami1.loadBalancer] + [http.services.whoami1.loadBalancer.sticky.cookie] + name = "lvl2" + [[http.services.whoami1.loadBalancer.servers]] + url = "http://127.0.0.1:8081" + [[http.services.whoami1.loadBalancer.servers]] + url = "http://127.0.0.1:8082" + + [http.services.whoami2] + [http.services.whoami2.loadBalancer] + [http.services.whoami2.loadBalancer.sticky.cookie] + name = "lvl2" + [[http.services.whoami2.loadBalancer.servers]] + url = "http://127.0.0.1:8083" + [[http.services.whoami2.loadBalancer.servers]] + url = "http://127.0.0.1:8084" + ``` + To keep a session open with the same server, the client would then need to specify the two levels within the cookie for each request, e.g. with curl: - + ``` curl -b "lvl1=whoami1; lvl2=http://127.0.0.1:8081" http://localhost:8000 ``` @@ -342,16 +342,6 @@ Below are the available options for the health check mechanism: ??? example "Custom Interval & Timeout -- Using the [File Provider](../../providers/file.md)" - ```toml tab="TOML" - ## Dynamic configuration - [http.services] - [http.services.Service-1] - [http.services.Service-1.loadBalancer.healthCheck] - path = "/health" - interval = "10s" - timeout = "3s" - ``` - ```yaml tab="YAML" ## Dynamic configuration http: @@ -364,17 +354,18 @@ Below are the available options for the health check mechanism: timeout: "3s" ``` -??? example "Custom Port -- Using the [File Provider](../../providers/file.md)" - ```toml tab="TOML" ## Dynamic configuration [http.services] [http.services.Service-1] [http.services.Service-1.loadBalancer.healthCheck] path = "/health" - port = 8080 + interval = "10s" + timeout = "3s" ``` +??? example "Custom Port -- Using the [File Provider](../../providers/file.md)" + ```yaml tab="YAML" ## Dynamic configuration http: @@ -386,17 +377,17 @@ Below are the available options for the health check mechanism: port: 8080 ``` -??? example "Custom Scheme -- Using the [File Provider](../../providers/file.md)" - ```toml tab="TOML" ## Dynamic configuration [http.services] [http.services.Service-1] [http.services.Service-1.loadBalancer.healthCheck] path = "/health" - scheme = "http" + port = 8080 ``` +??? example "Custom Scheme -- Using the [File Provider](../../providers/file.md)" + ```yaml tab="YAML" ## Dynamic configuration http: @@ -408,20 +399,17 @@ Below are the available options for the health check mechanism: scheme: http ``` -??? example "Additional HTTP Headers -- Using the [File Provider](../../providers/file.md)" - ```toml tab="TOML" ## Dynamic configuration [http.services] [http.services.Service-1] [http.services.Service-1.loadBalancer.healthCheck] path = "/health" - - [http.services.Service-1.loadBalancer.healthCheck.headers] - My-Custom-Header = "foo" - My-Header = "bar" + scheme = "http" ``` +??? example "Additional HTTP Headers -- Using the [File Provider](../../providers/file.md)" + ```yaml tab="YAML" ## Dynamic configuration http: @@ -435,6 +423,18 @@ Below are the available options for the health check mechanism: My-Header: bar ``` + ```toml tab="TOML" + ## Dynamic configuration + [http.services] + [http.services.Service-1] + [http.services.Service-1.loadBalancer.healthCheck] + path = "/health" + + [http.services.Service-1.loadBalancer.healthCheck.headers] + My-Custom-Header = "foo" + My-Header = "bar" + ``` + #### Pass Host Header The `passHostHeader` allows to forward client Host header to server. @@ -443,14 +443,6 @@ By default, `passHostHeader` is true. ??? example "Don't forward the host header -- Using the [File Provider](../../providers/file.md)" - ```toml tab="TOML" - ## Dynamic configuration - [http.services] - [http.services.Service01] - [http.services.Service01.loadBalancer] - passHostHeader = false - ``` - ```yaml tab="YAML" ## Dynamic configuration http: @@ -460,20 +452,20 @@ By default, `passHostHeader` is true. passHostHeader: false ``` -#### ServersTransport - -`serversTransport` allows to reference a [ServersTransport](./index.md#serverstransport_1) configuration for the communication between Traefik and your servers. - -??? example "Specify a transport -- Using the [File Provider](../../providers/file.md)" - ```toml tab="TOML" ## Dynamic configuration [http.services] [http.services.Service01] [http.services.Service01.loadBalancer] - serversTransport = "mytransport" + passHostHeader = false ``` +#### ServersTransport + +`serversTransport` allows to reference a [ServersTransport](./index.md#serverstransport_1) configuration for the communication between Traefik and your servers. + +??? example "Specify a transport -- Using the [File Provider](../../providers/file.md)" + ```yaml tab="YAML" ## Dynamic configuration http: @@ -483,9 +475,17 @@ By default, `passHostHeader` is true. serversTransport: mytransport ``` + ```toml tab="TOML" + ## Dynamic configuration + [http.services] + [http.services.Service01] + [http.services.Service01.loadBalancer] + serversTransport = "mytransport" + ``` + !!! info default serversTransport - If no serversTransport is specified, the `default@internal` will be used. - The `default@internal` serversTransport is created from the [static configuration](../overview.md#transport-configuration). + If no serversTransport is specified, the `default@internal` will be used. + The `default@internal` serversTransport is created from the [static configuration](../overview.md#transport-configuration). #### Response Forwarding @@ -501,14 +501,6 @@ Below are the available options for the Response Forwarding mechanism: ??? example "Using a custom FlushInterval -- Using the [File Provider](../../providers/file.md)" - ```toml tab="TOML" - ## Dynamic configuration - [http.services] - [http.services.Service-1] - [http.services.Service-1.loadBalancer.responseForwarding] - flushInterval = "1s" - ``` - ```yaml tab="YAML" ## Dynamic configuration http: @@ -519,6 +511,14 @@ Below are the available options for the Response Forwarding mechanism: flushInterval: 1s ``` + ```toml tab="TOML" + ## Dynamic configuration + [http.services] + [http.services.Service-1] + [http.services.Service-1.loadBalancer.responseForwarding] + flushInterval = "1s" + ``` + ### ServersTransport ServersTransport allows to configure the transport between Traefik and your servers. @@ -529,12 +529,6 @@ _Optional_ `serverName` configure the server name that will be used for SNI. -```toml tab="File (TOML)" -## Dynamic configuration -[http.serversTransports.mytransport] - serverName = "myhost" -``` - ```yaml tab="File (YAML)" ## Dynamic configuration http: @@ -543,6 +537,12 @@ http: serverName: "myhost" ``` +```toml tab="File (TOML)" +## Dynamic configuration +[http.serversTransports.mytransport] + serverName = "myhost" +``` + ```yaml tab="Kubernetes" apiVersion: traefik.containo.us/v1alpha1 kind: ServersTransport @@ -561,13 +561,6 @@ _Optional_ `certificates` is the list of certificates (as file paths, or data bytes) that will be set as client certificates for mTLS. -```toml tab="File (TOML)" -## Dynamic configuration -[[http.serversTransports.mytransport.certificates]] - certFile = "foo.crt" - keyFile = "bar.crt" -``` - ```yaml tab="File (YAML)" ## Dynamic configuration http: @@ -578,6 +571,13 @@ http: keyFile: bar.crt ``` +```toml tab="File (TOML)" +## Dynamic configuration +[[http.serversTransports.mytransport.certificates]] + certFile = "foo.crt" + keyFile = "bar.crt" +``` + ```yaml tab="Kubernetes" apiVersion: traefik.containo.us/v1alpha1 kind: ServersTransport @@ -594,7 +594,7 @@ apiVersion: v1 kind: Secret metadata: name: mycert - + data: tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0= tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCi0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0= @@ -606,12 +606,6 @@ _Optional_ `insecureSkipVerify` disables SSL certificate verification. -```toml tab="File (TOML)" -## Dynamic configuration -[http.serversTransports.mytransport] - insecureSkipVerify = true -``` - ```yaml tab="File (YAML)" ## Dynamic configuration http: @@ -620,6 +614,12 @@ http: insecureSkipVerify: true ``` +```toml tab="File (TOML)" +## Dynamic configuration +[http.serversTransports.mytransport] + insecureSkipVerify = true +``` + ```yaml tab="Kubernetes" apiVersion: traefik.containo.us/v1alpha1 kind: ServersTransport @@ -638,12 +638,6 @@ _Optional_ `rootCAs` is the list of certificates (as file paths, or data bytes) that will be set as Root Certificate Authorities when using a self-signed TLS certificate. -```toml tab="File (TOML)" -## Dynamic configuration -[http.serversTransports.mytransport] - rootCAs = ["foo.crt", "bar.crt"] -``` - ```yaml tab="File (YAML)" ## Dynamic configuration http: @@ -654,6 +648,12 @@ http: - bar.crt ``` +```toml tab="File (TOML)" +## Dynamic configuration +[http.serversTransports.mytransport] + rootCAs = ["foo.crt", "bar.crt"] +``` + ```yaml tab="Kubernetes" apiVersion: traefik.containo.us/v1alpha1 kind: ServersTransport @@ -669,7 +669,7 @@ apiVersion: v1 kind: Secret metadata: name: myca - + data: tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0= ``` @@ -680,12 +680,6 @@ _Optional, Default=2_ If non-zero, `maxIdleConnsPerHost` controls the maximum idle (keep-alive) connections to keep per-host. -```toml tab="File (TOML)" -## Dynamic configuration -[http.serversTransports.mytransport] - maxIdleConnsPerHost = 7 -``` - ```yaml tab="File (YAML)" ## Dynamic configuration http: @@ -694,6 +688,12 @@ http: maxIdleConnsPerHost: 7 ``` +```toml tab="File (TOML)" +## Dynamic configuration +[http.serversTransports.mytransport] + maxIdleConnsPerHost = 7 +``` + ```yaml tab="Kubernetes" apiVersion: traefik.containo.us/v1alpha1 kind: ServersTransport @@ -716,12 +716,6 @@ _Optional, Default=30s_ `dialTimeout` is the maximum duration allowed for a connection to a backend server to be established. Zero means no timeout. -```toml tab="File (TOML)" -## Dynamic configuration -[http.serversTransports.mytransport.forwardingTimeouts] - dialTimeout = "1s" -``` - ```yaml tab="File (YAML)" ## Dynamic configuration http: @@ -731,6 +725,12 @@ http: dialTimeout: "1s" ``` +```toml tab="File (TOML)" +## Dynamic configuration +[http.serversTransports.mytransport.forwardingTimeouts] + dialTimeout = "1s" +``` + ```yaml tab="Kubernetes" apiVersion: traefik.containo.us/v1alpha1 kind: ServersTransport @@ -752,12 +752,6 @@ after fully writing the request (including its body, if any). This time does not include the time to read the response body. Zero means no timeout. -```toml tab="File (TOML)" -## Dynamic configuration -[http.serversTransports.mytransport.forwardingTimeouts] - responseHeaderTimeout = "1s" -``` - ```yaml tab="File (YAML)" ## Dynamic configuration http: @@ -767,6 +761,12 @@ http: responseHeaderTimeout: "1s" ``` +```toml tab="File (TOML)" +## Dynamic configuration +[http.serversTransports.mytransport.forwardingTimeouts] + responseHeaderTimeout = "1s" +``` + ```yaml tab="Kubernetes" apiVersion: traefik.containo.us/v1alpha1 kind: ServersTransport @@ -787,12 +787,6 @@ _Optional, Default=90s_ will remain idle before closing itself. Zero means no limit. -```toml tab="File (TOML)" -## Dynamic configuration -[http.serversTransports.mytransport.forwardingTimeouts] - idleConnTimeout = "1s" -``` - ```yaml tab="File (YAML)" ## Dynamic configuration http: @@ -802,6 +796,12 @@ http: idleConnTimeout: "1s" ``` +```toml tab="File (TOML)" +## Dynamic configuration +[http.serversTransports.mytransport.forwardingTimeouts] + idleConnTimeout = "1s" +``` + ```yaml tab="Kubernetes" apiVersion: traefik.containo.us/v1alpha1 kind: ServersTransport @@ -821,31 +821,9 @@ The WRR is able to load balance the requests between multiple services based on This strategy is only available to load balance between [services](./index.md) and not between [servers](./index.md#servers). !!! info "Supported Providers" - + This strategy can be defined currently with the [File](../../providers/file.md) or [IngressRoute](../../providers/kubernetes-crd.md) providers. -```toml tab="TOML" -## Dynamic configuration -[http.services] - [http.services.app] - [[http.services.app.weighted.services]] - name = "appv1" - weight = 3 - [[http.services.app.weighted.services]] - name = "appv2" - weight = 1 - - [http.services.appv1] - [http.services.appv1.loadBalancer] - [[http.services.appv1.loadBalancer.servers]] - url = "http://private-ip-server-1/" - - [http.services.appv2] - [http.services.appv2.loadBalancer] - [[http.services.appv2.loadBalancer.servers]] - url = "http://private-ip-server-2/" -``` - ```yaml tab="YAML" ## Dynamic configuration http: @@ -869,29 +847,16 @@ http: - url: "http://private-ip-server-2/" ``` -### Mirroring (service) - -The mirroring is able to mirror requests sent to a service to other services. -Please note that by default the whole request is buffered in memory while it is being mirrored. -See the maxBodySize option in the example below for how to modify this behaviour. - -!!! info "Supported Providers" - - This strategy can be defined currently with the [File](../../providers/file.md) or [IngressRoute](../../providers/kubernetes-crd.md) providers. - ```toml tab="TOML" ## Dynamic configuration [http.services] - [http.services.mirrored-api] - [http.services.mirrored-api.mirroring] - service = "appv1" - # maxBodySize is the maximum size in bytes allowed for the body of the request. - # If the body is larger, the request is not mirrored. - # Default value is -1, which means unlimited size. - maxBodySize = 1024 - [[http.services.mirrored-api.mirroring.mirrors]] + [http.services.app] + [[http.services.app.weighted.services]] + name = "appv1" + weight = 3 + [[http.services.app.weighted.services]] name = "appv2" - percent = 10 + weight = 1 [http.services.appv1] [http.services.appv1.loadBalancer] @@ -904,6 +869,16 @@ See the maxBodySize option in the example below for how to modify this behaviour url = "http://private-ip-server-2/" ``` +### Mirroring (service) + +The mirroring is able to mirror requests sent to a service to other services. +Please note that by default the whole request is buffered in memory while it is being mirrored. +See the maxBodySize option in the example below for how to modify this behaviour. + +!!! info "Supported Providers" + + This strategy can be defined currently with the [File](../../providers/file.md) or [IngressRoute](../../providers/kubernetes-crd.md) providers. + ```yaml tab="YAML" ## Dynamic configuration http: @@ -930,6 +905,31 @@ http: - url: "http://private-ip-server-2/" ``` +```toml tab="TOML" +## Dynamic configuration +[http.services] + [http.services.mirrored-api] + [http.services.mirrored-api.mirroring] + service = "appv1" + # maxBodySize is the maximum size in bytes allowed for the body of the request. + # If the body is larger, the request is not mirrored. + # Default value is -1, which means unlimited size. + maxBodySize = 1024 + [[http.services.mirrored-api.mirroring.mirrors]] + name = "appv2" + percent = 10 + + [http.services.appv1] + [http.services.appv1.loadBalancer] + [[http.services.appv1.loadBalancer.servers]] + url = "http://private-ip-server-1/" + + [http.services.appv2] + [http.services.appv2.loadBalancer] + [[http.services.appv2.loadBalancer.servers]] + url = "http://private-ip-server-2/" +``` + ## Configuring TCP Services ### General @@ -945,6 +945,17 @@ The servers load balancer is in charge of balancing the requests between the ser ??? example "Declaring a Service with Two Servers -- Using the [File Provider](../../providers/file.md)" + ```yaml tab="YAML" + ## Dynamic configuration + tcp: + services: + my-service: + loadBalancer: + servers: + - address: "xx.xx.xx.xx:xx" + - address: "xx.xx.xx.xx:xx" + ``` + ```toml tab="TOML" ## Dynamic configuration [tcp.services] @@ -955,17 +966,6 @@ The servers load balancer is in charge of balancing the requests between the ser address = "xx.xx.xx.xx:xx" ``` - ```yaml tab="YAML" - ## Dynamic configuration - tcp: - services: - my-service: - loadBalancer: - servers: - - address: "xx.xx.xx.xx:xx" - - address: "xx.xx.xx.xx:xx" - ``` - #### Servers Servers declare a single instance of your program. @@ -973,14 +973,6 @@ The `address` option (IP:Port) point to a specific instance. ??? example "A Service with One Server -- Using the [File Provider](../../providers/file.md)" - ```toml tab="TOML" - ## Dynamic configuration - [tcp.services] - [tcp.services.my-service.loadBalancer] - [[tcp.services.my-service.loadBalancer.servers]] - address = "xx.xx.xx.xx:xx" - ``` - ```yaml tab="YAML" ## Dynamic configuration tcp: @@ -991,6 +983,14 @@ The `address` option (IP:Port) point to a specific instance. - address: "xx.xx.xx.xx:xx" ``` + ```toml tab="TOML" + ## Dynamic configuration + [tcp.services] + [tcp.services.my-service.loadBalancer] + [[tcp.services.my-service.loadBalancer.servers]] + address = "xx.xx.xx.xx:xx" + ``` + #### PROXY Protocol Traefik supports [PROXY Protocol](https://www.haproxy.org/download/2.0/doc/proxy-protocol.txt) version 1 and 2 on TCP Services. @@ -1002,18 +1002,10 @@ Below are the available options for the PROXY protocol: !!! info "Version" - Specifying a version is optional. By default the version 2 will be used. + Specifying a version is optional. By default the version 2 will be used. ??? example "A Service with Proxy Protocol v1 -- Using the [File Provider](../../providers/file.md)" - ```toml tab="TOML" - ## Dynamic configuration - [tcp.services] - [tcp.services.my-service.loadBalancer] - [tcp.services.my-service.loadBalancer.proxyProtocol] - version = 1 - ``` - ```yaml tab="YAML" ## Dynamic configuration tcp: @@ -1024,6 +1016,14 @@ Below are the available options for the PROXY protocol: version: 1 ``` + ```toml tab="TOML" + ## Dynamic configuration + [tcp.services] + [tcp.services.my-service.loadBalancer] + [tcp.services.my-service.loadBalancer.proxyProtocol] + version = 1 + ``` + #### Termination Delay As a proxy between a client and a server, it can happen that either side (e.g. client side) decides to terminate its writing capability on the connection (i.e. issuance of a FIN packet). @@ -1040,14 +1040,6 @@ A negative value means an infinite deadline (i.e. the connection is never fully ??? example "A Service with a termination delay -- Using the [File Provider](../../providers/file.md)" - ```toml tab="TOML" - ## Dynamic configuration - [tcp.services] - [tcp.services.my-service.loadBalancer] - [[tcp.services.my-service.loadBalancer]] - terminationDelay = 200 - ``` - ```yaml tab="YAML" ## Dynamic configuration tcp: @@ -1057,6 +1049,14 @@ A negative value means an infinite deadline (i.e. the connection is never fully terminationDelay: 200 ``` + ```toml tab="TOML" + ## Dynamic configuration + [tcp.services] + [tcp.services.my-service.loadBalancer] + [[tcp.services.my-service.loadBalancer]] + terminationDelay = 200 + ``` + ### Weighted Round Robin The Weighted Round Robin (alias `WRR`) load-balancer of services is in charge of balancing the requests between multiple services based on provided weights. @@ -1064,31 +1064,9 @@ The Weighted Round Robin (alias `WRR`) load-balancer of services is in charge of This strategy is only available to load balance between [services](./index.md) and not between [servers](./index.md#servers). !!! info "Supported Providers" - + This strategy can be defined currently with the [File](../../providers/file.md) or [IngressRoute](../../providers/kubernetes-crd.md) providers. -```toml tab="TOML" -## Dynamic configuration -[tcp.services] - [tcp.services.app] - [[tcp.services.app.weighted.services]] - name = "appv1" - weight = 3 - [[tcp.services.app.weighted.services]] - name = "appv2" - weight = 1 - - [tcp.services.appv1] - [tcp.services.appv1.loadBalancer] - [[tcp.services.appv1.loadBalancer.servers]] - address = "private-ip-server-1:8080/" - - [tcp.services.appv2] - [tcp.services.appv2.loadBalancer] - [[tcp.services.appv2.loadBalancer.servers]] - address = "private-ip-server-2:8080/" -``` - ```yaml tab="YAML" ## Dynamic configuration tcp: @@ -1112,6 +1090,28 @@ tcp: - address: "xxx.xxx.xxx.xxx:8080" ``` +```toml tab="TOML" +## Dynamic configuration +[tcp.services] + [tcp.services.app] + [[tcp.services.app.weighted.services]] + name = "appv1" + weight = 3 + [[tcp.services.app.weighted.services]] + name = "appv2" + weight = 1 + + [tcp.services.appv1] + [tcp.services.appv1.loadBalancer] + [[tcp.services.appv1.loadBalancer.servers]] + address = "private-ip-server-1:8080/" + + [tcp.services.appv2] + [tcp.services.appv2.loadBalancer] + [[tcp.services.appv2.loadBalancer.servers]] + address = "private-ip-server-2:8080/" +``` + ## Configuring UDP Services ### General @@ -1127,16 +1127,6 @@ The servers load balancer is in charge of balancing the requests between the ser ??? example "Declaring a Service with Two Servers -- Using the [File Provider](../../providers/file.md)" - ```toml tab="TOML" - ## Dynamic configuration - [udp.services] - [udp.services.my-service.loadBalancer] - [[udp.services.my-service.loadBalancer.servers]] - address = "xx.xx.xx.xx:xx" - [[udp.services.my-service.loadBalancer.servers]] - address = "xx.xx.xx.xx:xx" - ``` - ```yaml tab="YAML" ## Dynamic configuration udp: @@ -1148,21 +1138,23 @@ The servers load balancer is in charge of balancing the requests between the ser - address: "xx.xx.xx.xx:xx" ``` -#### Servers - -The Servers field defines all the servers that are part of this load-balancing group, -i.e. each address (IP:Port) on which an instance of the service's program is deployed. - -??? example "A Service with One Server -- Using the [File Provider](../../providers/file.md)" - ```toml tab="TOML" ## Dynamic configuration [udp.services] [udp.services.my-service.loadBalancer] [[udp.services.my-service.loadBalancer.servers]] address = "xx.xx.xx.xx:xx" + [[udp.services.my-service.loadBalancer.servers]] + address = "xx.xx.xx.xx:xx" ``` +#### Servers + +The Servers field defines all the servers that are part of this load-balancing group, +i.e. each address (IP:Port) on which an instance of the service's program is deployed. + +??? example "A Service with One Server -- Using the [File Provider](../../providers/file.md)" + ```yaml tab="YAML" ## Dynamic configuration udp: @@ -1173,6 +1165,14 @@ i.e. each address (IP:Port) on which an instance of the service's program is dep - address: "xx.xx.xx.xx:xx" ``` + ```toml tab="TOML" + ## Dynamic configuration + [udp.services] + [udp.services.my-service.loadBalancer] + [[udp.services.my-service.loadBalancer.servers]] + address = "xx.xx.xx.xx:xx" + ``` + ### Weighted Round Robin The Weighted Round Robin (alias `WRR`) load-balancer of services is in charge of balancing the requests between multiple services based on provided weights. @@ -1181,28 +1181,6 @@ This strategy is only available to load balance between [services](./index.md) a This strategy can only be defined with [File](../../providers/file.md). -```toml tab="TOML" -## Dynamic configuration -[udp.services] - [udp.services.app] - [[udp.services.app.weighted.services]] - name = "appv1" - weight = 3 - [[udp.services.app.weighted.services]] - name = "appv2" - weight = 1 - - [udp.services.appv1] - [udp.services.appv1.loadBalancer] - [[udp.services.appv1.loadBalancer.servers]] - address = "private-ip-server-1:8080/" - - [udp.services.appv2] - [udp.services.appv2.loadBalancer] - [[udp.services.appv2.loadBalancer.servers]] - address = "private-ip-server-2:8080/" -``` - ```yaml tab="YAML" ## Dynamic configuration udp: @@ -1225,3 +1203,25 @@ udp: servers: - address: "xxx.xxx.xxx.xxx:8080" ``` + +```toml tab="TOML" +## Dynamic configuration +[udp.services] + [udp.services.app] + [[udp.services.app.weighted.services]] + name = "appv1" + weight = 3 + [[udp.services.app.weighted.services]] + name = "appv2" + weight = 1 + + [udp.services.appv1] + [udp.services.appv1.loadBalancer] + [[udp.services.appv1.loadBalancer.servers]] + address = "private-ip-server-1:8080/" + + [udp.services.appv2] + [udp.services.appv2.loadBalancer] + [[udp.services.appv2.loadBalancer.servers]] + address = "private-ip-server-2:8080/" +``` diff --git a/docs/content/user-guides/grpc.md b/docs/content/user-guides/grpc.md index 3fef7d420..27b3b4284 100644 --- a/docs/content/user-guides/grpc.md +++ b/docs/content/user-guides/grpc.md @@ -8,17 +8,6 @@ This section explains how to use Traefik as reverse proxy for gRPC application. Static configuration: -```toml tab="File (TOML)" -[entryPoints] - [entryPoints.web] - address = ":80" - -[api] - -[providers.file] - directory = "/path/to/dynamic/config" -``` - ```yaml tab="File (YAML)" entryPoints: web: @@ -31,30 +20,24 @@ providers: api: {} ``` +```toml tab="File (TOML)" +[entryPoints] + [entryPoints.web] + address = ":80" + +[api] + +[providers.file] + directory = "/path/to/dynamic/config" +``` + ```yaml tab="CLI" --entryPoints.web.address=:80 --providers.file.directory=/path/to/dynamic/config --api.insecure=true ``` -`/path/to/dynamic/config/dynamic_conf.{toml,yml}`: - -```toml tab="TOML" -## dynamic configuration ## - -[http] - - [http.routers] - [http.routers.routerTest] - service = "srv-grpc" - rule = "Host(`frontend.local`)" - - [http.services] - [http.services.srv-grpc] - [http.services.srv-grpc.loadBalancer] - [[http.services.srv-grpc.loadBalancer.servers]] - url = "h2c://backend.local:8080" -``` +`/path/to/dynamic/config/dynamic_conf.{yml,toml}`: ```yaml tab="YAML" ## dynamic configuration ## @@ -72,6 +55,23 @@ http: - url: h2c://backend.local:8080 ``` +```toml tab="TOML" +## dynamic configuration ## + +[http] + + [http.routers] + [http.routers.routerTest] + service = "srv-grpc" + rule = "Host(`frontend.local`)" + + [http.services] + [http.services.srv-grpc] + [http.services.srv-grpc.loadBalancer] + [[http.services.srv-grpc.loadBalancer.servers]] + url = "h2c://backend.local:8080" +``` + !!! warning For providers with labels, you will have to specify the `traefik.http.services..loadbalancer.server.scheme=h2c` @@ -119,22 +119,6 @@ At last, we configure our Traefik instance to use both self-signed certificates. Static configuration: -```toml tab="File (TOML)" -[entryPoints] - [entryPoints.websecure] - address = ":4443" - - -[serversTransport] - # For secure connection on backend.local - rootCAs = [ "./backend.cert" ] - -[api] - -[provider.file] - directory = "/path/to/dynamic/config" -``` - ```yaml tab="File (YAML)" entryPoints: websecure: @@ -152,6 +136,22 @@ providers: api: {} ``` +```toml tab="File (TOML)" +[entryPoints] + [entryPoints.websecure] + address = ":4443" + + +[serversTransport] + # For secure connection on backend.local + rootCAs = [ "./backend.cert" ] + +[api] + +[provider.file] + directory = "/path/to/dynamic/config" +``` + ```yaml tab="CLI" --entryPoints.websecure.address=:4443 # For secure connection on backend.local @@ -160,32 +160,7 @@ api: {} --api.insecure=true ``` -`/path/to/dynamic/config/dynamic_conf.{toml,yml}`: - -```toml tab="TOML" -## dynamic configuration ## - -[http] - - [http.routers] - [http.routers.routerTest] - service = "srv-grpc" - rule = "Host(`frontend.local`)" - - [http.services] - [http.services.srv-grpc] - [http.services.srv-grpc.loadBalancer] - [[http.services.srv-grpc.loadBalancer.servers]] - # Access on backend with HTTPS - url = "https://backend.local:8080" - -[tls] - - # For secure connection on frontend.local - [[tls.certificates]] - certFile = "./frontend.cert" - keyFile = "./frontend.key" -``` +`/path/to/dynamic/config/dynamic_conf.{yml,toml}`: ```yaml tab="YAML" ## dynamic configuration ## @@ -208,6 +183,31 @@ tls: keyfile: ./frontend.key ``` +```toml tab="TOML" +## dynamic configuration ## + +[http] + + [http.routers] + [http.routers.routerTest] + service = "srv-grpc" + rule = "Host(`frontend.local`)" + + [http.services] + [http.services.srv-grpc] + [http.services.srv-grpc.loadBalancer] + [[http.services.srv-grpc.loadBalancer.servers]] + # Access on backend with HTTPS + url = "https://backend.local:8080" + +[tls] + + # For secure connection on frontend.local + [[tls.certificates]] + certFile = "./frontend.cert" + keyFile = "./frontend.key" +``` + !!! warning With some services, the server URLs use the IP, so you may need to configure `insecureSkipVerify` instead of the `rootCAs` to activate HTTPS without hostname verification. diff --git a/pkg/provider/file/file.go b/pkg/provider/file/file.go index d6a8847c5..7578cc62c 100644 --- a/pkg/provider/file/file.go +++ b/pkg/provider/file/file.go @@ -26,7 +26,7 @@ var _ provider.Provider = (*Provider)(nil) // Provider holds configurations of the provider. type Provider struct { - Directory string `description:"Load dynamic configuration from one or more .toml or .yml files in a directory." json:"directory,omitempty" toml:"directory,omitempty" yaml:"directory,omitempty" export:"true"` + Directory string `description:"Load dynamic configuration from one or more .yml or .toml files in a directory." json:"directory,omitempty" toml:"directory,omitempty" yaml:"directory,omitempty" export:"true"` Watch bool `description:"Watch provider." json:"watch,omitempty" toml:"watch,omitempty" yaml:"watch,omitempty" export:"true"` Filename string `description:"Load dynamic configuration from a file." 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"` From ed9b1bea3f8c7e9b36a2b8950ac3a06eff6c4f25 Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 21 Jun 2021 16:04:13 +0200 Subject: [PATCH 19/22] Use github action to check and verify doc --- .github/workflows/check_doc.yml | 20 ++++++++++++++++++++ .travis.yml | 1 - docs/check.Dockerfile | 4 ++-- 3 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/check_doc.yml diff --git a/.github/workflows/check_doc.yml b/.github/workflows/check_doc.yml new file mode 100644 index 000000000..68c736255 --- /dev/null +++ b/.github/workflows/check_doc.yml @@ -0,0 +1,20 @@ +name: Check Documentation + +on: + pull_request: + +jobs: + + docs: + name: Check, verify and build documentation + runs-on: ubuntu-latest + + steps: + + - name: Check out code + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Check documentation + run: make docs-pull-images docs diff --git a/.travis.yml b/.travis.yml index 6a42550c2..e6531917a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,7 +16,6 @@ env: script: - echo "Skipping tests... (Tests are executed on SemaphoreCI)" -- if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then travis_retry make docs-pull-images && make docs; fi before_deploy: - > diff --git a/docs/check.Dockerfile b/docs/check.Dockerfile index b4df613f1..925a9ae4d 100644 --- a/docs/check.Dockerfile +++ b/docs/check.Dockerfile @@ -24,8 +24,8 @@ RUN apk --no-cache --no-progress add \ RUN npm config set unsafe-perm true RUN npm install --global \ - markdownlint@0.17.2 \ - markdownlint-cli@0.19.0 + markdownlint@0.22.0 \ + markdownlint-cli@0.26.0 # Finally the shell tools we need for later # tini helps to terminate properly all the parallelized tasks when sending CTRL-C From 5841c9a7a5f6bc7de0f0c15daaafb35d02c7d330 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Doumenjou <925513+jbdoumenjou@users.noreply.github.com> Date: Mon, 21 Jun 2021 17:00:09 +0200 Subject: [PATCH 20/22] Prepare release v2.4.9 --- CHANGELOG.md | 36 ++++++++++++++++++++++++++++++++++ script/gcg/traefik-bugfix.toml | 6 +++--- 2 files changed, 39 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cc160ba9d..3fd11ed9d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,39 @@ +## [v2.4.9](https://github.com/traefik/traefik/tree/v2.4.9) (2021-06-21) +[All Commits](https://github.com/traefik/traefik/compare/v2.4.8...v2.4.9) + +**Bug fixes:** +- **[acme]** Update go-acme/lego to v4.4.0 ([#8179](https://github.com/traefik/traefik/pull/8179) by [ldez](https://github.com/ldez)) +- **[acme]** Fix: ACME preferred chain. ([#8146](https://github.com/traefik/traefik/pull/8146) by [ldez](https://github.com/ldez)) +- **[k8s,k8s/gatewayapi]** Remove error when HTTProutes is empty ([#8023](https://github.com/traefik/traefik/pull/8023) by [tomMoulard](https://github.com/tomMoulard)) +- **[k8s,k8s/ingress]** Fix incorrect behaviour with multi-port endpoint subsets ([#8156](https://github.com/traefik/traefik/pull/8156) by [coufalja](https://github.com/coufalja)) +- **[k8s,k8s/ingress]** Kubernetes ingress provider to search via all endpoints ([#7997](https://github.com/traefik/traefik/pull/7997) by [martinvizvary](https://github.com/martinvizvary)) +- **[plugins,windows]** Fix plugin unzip call on windows ([#8136](https://github.com/traefik/traefik/pull/8136) by [ddtmachado](https://github.com/ddtmachado)) +- **[plugins]** Update Yaegi to v0.9.17 ([#8100](https://github.com/traefik/traefik/pull/8100) by [ldez](https://github.com/ldez)) +- **[provider]** Bump paerser to v0.1.4 ([#8116](https://github.com/traefik/traefik/pull/8116) by [ldez](https://github.com/ldez)) +- **[server]** Create buffered signals channel ([#8190](https://github.com/traefik/traefik/pull/8190) by [dtomcej](https://github.com/dtomcej)) +- **[server]** Fix: use defaultEntryPoints when no entryPoint is defined in a TCPRouter ([#8111](https://github.com/traefik/traefik/pull/8111) by [LandryBe](https://github.com/LandryBe)) +- **[tls]** Use a dynamic buffer to handle client Hello SNI detection ([#8194](https://github.com/traefik/traefik/pull/8194) by [ldez](https://github.com/ldez)) +- **[tracing]** Error span on 5xx only ([#8033](https://github.com/traefik/traefik/pull/8033) by [kevtainer](https://github.com/kevtainer)) + +**Documentation:** +- **[k8s,k8s/crd]** Fix ingressRouteTCP external name service examples in documentation ([#8120](https://github.com/traefik/traefik/pull/8120) by [rtribotte](https://github.com/rtribotte)) +- **[k8s,k8s/gatewayapi]** Fix Kubernetes Gateway API documentation links ([#8063](https://github.com/traefik/traefik/pull/8063) by [jbdoumenjou](https://github.com/jbdoumenjou)) +- **[k8s,k8s/gatewayapi]** Fix: k8s gateway api link ([#8085](https://github.com/traefik/traefik/pull/8085) by [tomMoulard](https://github.com/tomMoulard)) +- **[k8s,k8s/gatewayapi]** Fix the "values" field in the example of httproute ([#8192](https://github.com/traefik/traefik/pull/8192) by [maelvls](https://github.com/maelvls)) +- **[k8s/crd]** Fix ServersTransport documentation ([#8019](https://github.com/traefik/traefik/pull/8019) by [tomMoulard](https://github.com/tomMoulard)) +- **[k8s]** Correct annotation option ([#8031](https://github.com/traefik/traefik/pull/8031) by [cbergmann](https://github.com/cbergmann)) +- **[metrics]** Add metrics documentation ([#8007](https://github.com/traefik/traefik/pull/8007) by [rtribotte](https://github.com/rtribotte)) +- **[middleware]** Docs: add examples for removing headers ([#8030](https://github.com/traefik/traefik/pull/8030) by [SuperSandro2000](https://github.com/SuperSandro2000)) +- **[middleware]** Doc: clarify usage for ratelimit's excludedIPs ([#8072](https://github.com/traefik/traefik/pull/8072) by [mpl](https://github.com/mpl)) +- **[middleware]** Elaborate on possible use of status codes with the errors middleware ([#8176](https://github.com/traefik/traefik/pull/8176) by [Midnighter](https://github.com/Midnighter)) +- **[middleware]** Doc: fix a syntax error in ratelimit TOML configuration sample ([#8101](https://github.com/traefik/traefik/pull/8101) by [mvertes](https://github.com/mvertes)) +- **[pilot]** Docs: add pilot dashboard flag to static configuration file reference ([#8152](https://github.com/traefik/traefik/pull/8152) by [danshilm](https://github.com/danshilm)) +- Adding Maintainers Guidelines ([#8168](https://github.com/traefik/traefik/pull/8168) by [jakubhajek](https://github.com/jakubhajek)) +- Explains Traefik HTTP response status codes ([#8170](https://github.com/traefik/traefik/pull/8170) by [rtribotte](https://github.com/rtribotte)) +- Doc: typo fix ([#8026](https://github.com/traefik/traefik/pull/8026) by [mpl](https://github.com/mpl)) +- Adding formatting to the document. ([#8180](https://github.com/traefik/traefik/pull/8180) by [jakubhajek](https://github.com/jakubhajek)) +- Changing default file format for the snippets from TOML to YAML ([#8193](https://github.com/traefik/traefik/pull/8193) by [tomMoulard](https://github.com/tomMoulard)) + ## [v2.4.8](https://github.com/traefik/traefik/tree/v2.4.8) (2021-03-22) [All Commits](https://github.com/traefik/traefik/compare/v2.4.7...v2.4.8) diff --git a/script/gcg/traefik-bugfix.toml b/script/gcg/traefik-bugfix.toml index fbe6d869f..8d51a360c 100644 --- a/script/gcg/traefik-bugfix.toml +++ b/script/gcg/traefik-bugfix.toml @@ -4,11 +4,11 @@ RepositoryName = "traefik" OutputType = "file" FileName = "traefik_changelog.md" -# example new bugfix v2.4.8 +# example new bugfix v2.4.9 CurrentRef = "v2.4" -PreviousRef = "v2.4.7" +PreviousRef = "v2.4.8" BaseBranch = "v2.4" -FutureCurrentRefName = "v2.4.8" +FutureCurrentRefName = "v2.4.9" ThresholdPreviousRef = 10 ThresholdCurrentRef = 10 From 03b08d67f0e8f4584ea9e721834c090c0b5e7b5f Mon Sep 17 00:00:00 2001 From: Daniel Tomcej Date: Mon, 21 Jun 2021 15:08:06 -0700 Subject: [PATCH 21/22] chore: upgrade linter --- .golangci.toml | 2 ++ build.Dockerfile | 2 +- pkg/middlewares/tracing/mock_tracing_test.go | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.golangci.toml b/.golangci.toml index ed8ac7b22..0fc20b794 100644 --- a/.golangci.toml +++ b/.golangci.toml @@ -67,6 +67,7 @@ "scopelint", # Deprecated "interfacer", # Deprecated "maligned", # Deprecated + "golint", # Deprecated "sqlclosecheck", # Not relevant (SQL) "rowserrcheck", # Not relevant (SQL) "lll", # Not relevant @@ -97,6 +98,7 @@ "unparam", # Too strict "godox", # Too strict "forcetypeassert", # Too strict + "tagliatelle", # Not compatible with current tags. ] [issues] diff --git a/build.Dockerfile b/build.Dockerfile index 763808618..4c34406e7 100644 --- a/build.Dockerfile +++ b/build.Dockerfile @@ -19,7 +19,7 @@ RUN mkdir -p /usr/local/bin \ && chmod +x /usr/local/bin/go-bindata # Download golangci-lint binary to bin folder in $GOPATH -RUN curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | bash -s -- -b $GOPATH/bin v1.39.0 +RUN curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | bash -s -- -b $GOPATH/bin v1.41.1 # Download misspell binary to bin folder in $GOPATH RUN curl -sfL https://raw.githubusercontent.com/client9/misspell/master/install-misspell.sh | bash -s -- -b $GOPATH/bin v0.3.4 diff --git a/pkg/middlewares/tracing/mock_tracing_test.go b/pkg/middlewares/tracing/mock_tracing_test.go index ca5fcf4fa..33aac1ee6 100644 --- a/pkg/middlewares/tracing/mock_tracing_test.go +++ b/pkg/middlewares/tracing/mock_tracing_test.go @@ -56,7 +56,7 @@ func (n MockSpan) Tracer() opentracing.Tracer { retu func (n MockSpan) LogEvent(event string) {} func (n MockSpan) LogEventWithPayload(event string, payload interface{}) {} func (n MockSpan) Log(data opentracing.LogData) {} -func (n MockSpan) Reset() { +func (n *MockSpan) Reset() { n.Tags = make(map[string]interface{}) } From 5dab09c42b232026628f4881ccc70bf1a48a7d3d Mon Sep 17 00:00:00 2001 From: Tobias Date: Tue, 22 Jun 2021 10:00:11 +0200 Subject: [PATCH 22/22] Remove microbadger (Shutdown) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index b4da5eb22..120806bc8 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,6 @@ [![Build Status SemaphoreCI](https://semaphoreci.com/api/v1/containous/traefik/branches/master/shields_badge.svg)](https://semaphoreci.com/containous/traefik) [![Docs](https://img.shields.io/badge/docs-current-brightgreen.svg)](https://doc.traefik.io/traefik) [![Go Report Card](https://goreportcard.com/badge/traefik/traefik)](https://goreportcard.com/report/traefik/traefik) -[![](https://images.microbadger.com/badges/image/traefik.svg)](https://microbadger.com/images/traefik) [![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/traefik/traefik/blob/master/LICENSE.md) [![Join the community support forum at https://community.traefik.io/](https://img.shields.io/badge/style-register-green.svg?style=social&label=Discourse)](https://community.traefik.io/) [![Twitter](https://img.shields.io/twitter/follow/traefik.svg?style=social)](https://twitter.com/intent/follow?screen_name=traefik)

    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