Merge branch v3.0 into master
This commit is contained in:
commit
9d8fd24730
119 changed files with 16917 additions and 500 deletions
|
@ -227,8 +227,8 @@ If both TCP and UDP are wanted for the same port, two entryPoints definitions ar
|
|||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
--entrypoints.specificIPv4.address=192.168.2.7:8888
|
||||
--entrypoints.specificIPv6.address=[2001:db8::1]:8888
|
||||
--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.
|
||||
|
@ -270,8 +270,8 @@ reloading the static configuration without any service downtime.
|
|||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
--entrypoints.web.address=:80
|
||||
--entrypoints.web.reusePort=true
|
||||
--entryPoints.web.address=:80
|
||||
--entryPoints.web.reusePort=true
|
||||
```
|
||||
|
||||
Now it is possible to run multiple Traefik processes with the same EntryPoint configuration.
|
||||
|
@ -298,10 +298,10 @@ reloading the static configuration without any service downtime.
|
|||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
--entrypoints.web.address=:80
|
||||
--entrypoints.web.reusePort=true
|
||||
--entrypoints.privateWeb.address=192.168.1.2:80
|
||||
--entrypoints.privateWeb.reusePort=true
|
||||
--entryPoints.web.address=:80
|
||||
--entryPoints.web.reusePort=true
|
||||
--entryPoints.privateWeb.address=192.168.1.2:80
|
||||
--entryPoints.privateWeb.reusePort=true
|
||||
```
|
||||
|
||||
Requests to `192.168.1.2:80` will only be handled by routers that have `privateWeb` as the entry point.
|
||||
|
@ -349,9 +349,9 @@ EntryPoints in this list are used (by default) on HTTP and TCP routers that do n
|
|||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
--entrypoints.web.address=:80
|
||||
--entrypoints.websecure.address=:443
|
||||
--entrypoints.websecure.asDefault=true
|
||||
--entryPoints.web.address=:80
|
||||
--entryPoints.websecure.address=:443
|
||||
--entryPoints.websecure.asDefault=true
|
||||
```
|
||||
|
||||
### HTTP/2
|
||||
|
@ -401,7 +401,7 @@ entryPoints:
|
|||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
--entrypoints.name.http3
|
||||
--entryPoints.name.http3
|
||||
```
|
||||
|
||||
??? info "HTTP/3 uses UDP+TLS"
|
||||
|
@ -433,7 +433,7 @@ It can be used to override the authority in the `alt-svc` header, for example if
|
|||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
--entrypoints.name.http3.advertisedport=443
|
||||
--entryPoints.name.http3.advertisedport=443
|
||||
```
|
||||
|
||||
### Forwarded Headers
|
||||
|
@ -509,13 +509,14 @@ Setting them has no effect for UDP entryPoints.
|
|||
|
||||
??? info "`transport.respondingTimeouts.readTimeout`"
|
||||
|
||||
_Optional, Default=0s_
|
||||
_Optional, Default=60s_
|
||||
|
||||
`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.
|
||||
We strongly suggest to adapt this value accordingly to the your needs.
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
## Static configuration
|
||||
|
@ -869,10 +870,10 @@ This whole section is dedicated to options, keyed by entry point, that will appl
|
|||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
--entrypoints.web.address=:80
|
||||
--entrypoints.web.http.redirections.entryPoint.to=websecure
|
||||
--entrypoints.web.http.redirections.entryPoint.scheme=https
|
||||
--entrypoints.websecure.address=:443
|
||||
--entryPoints.web.address=:80
|
||||
--entryPoints.web.http.redirections.entryPoint.to=websecure
|
||||
--entryPoints.web.http.redirections.entryPoint.scheme=https
|
||||
--entryPoints.websecure.address=:443
|
||||
```
|
||||
|
||||
#### `entryPoint`
|
||||
|
@ -907,7 +908,7 @@ This section is a convenience to enable (permanent) redirecting of all incoming
|
|||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
--entrypoints.foo.http.redirections.entryPoint.to=websecure
|
||||
--entryPoints.foo.http.redirections.entryPoint.to=websecure
|
||||
```
|
||||
|
||||
??? info "`entryPoint.scheme`"
|
||||
|
@ -937,7 +938,7 @@ This section is a convenience to enable (permanent) redirecting of all incoming
|
|||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
--entrypoints.foo.http.redirections.entryPoint.scheme=https
|
||||
--entryPoints.foo.http.redirections.entryPoint.scheme=https
|
||||
```
|
||||
|
||||
??? info "`entryPoint.permanent`"
|
||||
|
@ -967,7 +968,7 @@ This section is a convenience to enable (permanent) redirecting of all incoming
|
|||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
--entrypoints.foo.http.redirections.entrypoint.permanent=true
|
||||
--entryPoints.foo.http.redirections.entrypoint.permanent=true
|
||||
```
|
||||
|
||||
??? info "`entryPoint.priority`"
|
||||
|
@ -997,7 +998,7 @@ This section is a convenience to enable (permanent) redirecting of all incoming
|
|||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
--entrypoints.foo.http.redirections.entrypoint.priority=10
|
||||
--entryPoints.foo.http.redirections.entrypoint.priority=10
|
||||
```
|
||||
|
||||
### EncodeQuerySemicolons
|
||||
|
@ -1025,8 +1026,8 @@ entryPoints:
|
|||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
--entrypoints.websecure.address=:443
|
||||
--entrypoints.websecure.http.encodequerysemicolons=true
|
||||
--entryPoints.websecure.address=:443
|
||||
--entryPoints.websecure.http.encodequerysemicolons=true
|
||||
```
|
||||
|
||||
#### Examples
|
||||
|
@ -1061,8 +1062,8 @@ entryPoints:
|
|||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
--entrypoints.websecure.address=:443
|
||||
--entrypoints.websecure.http.middlewares=auth@file,strip@file
|
||||
--entryPoints.websecure.address=:443
|
||||
--entryPoints.websecure.http.middlewares=auth@file,strip@file
|
||||
```
|
||||
|
||||
### TLS
|
||||
|
@ -1108,13 +1109,13 @@ entryPoints:
|
|||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
--entrypoints.websecure.address=:443
|
||||
--entrypoints.websecure.http.tls.options=foobar
|
||||
--entrypoints.websecure.http.tls.certResolver=leresolver
|
||||
--entrypoints.websecure.http.tls.domains[0].main=example.com
|
||||
--entrypoints.websecure.http.tls.domains[0].sans=foo.example.com,bar.example.com
|
||||
--entrypoints.websecure.http.tls.domains[1].main=test.com
|
||||
--entrypoints.websecure.http.tls.domains[1].sans=foo.test.com,bar.test.com
|
||||
--entryPoints.websecure.address=:443
|
||||
--entryPoints.websecure.http.tls.options=foobar
|
||||
--entryPoints.websecure.http.tls.certResolver=leresolver
|
||||
--entryPoints.websecure.http.tls.domains[0].main=example.com
|
||||
--entryPoints.websecure.http.tls.domains[0].sans=foo.example.com,bar.example.com
|
||||
--entryPoints.websecure.http.tls.domains[1].main=test.com
|
||||
--entryPoints.websecure.http.tls.domains[1].sans=foo.test.com,bar.test.com
|
||||
```
|
||||
|
||||
??? example "Let's Encrypt"
|
||||
|
@ -1137,8 +1138,8 @@ entryPoints:
|
|||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
--entrypoints.websecure.address=:443
|
||||
--entrypoints.websecure.http.tls.certResolver=leresolver
|
||||
--entryPoints.websecure.address=:443
|
||||
--entryPoints.websecure.http.tls.certResolver=leresolver
|
||||
```
|
||||
|
||||
## UDP Options
|
||||
|
@ -1169,8 +1170,8 @@ entryPoints:
|
|||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
entrypoints.foo.address=:8000/udp
|
||||
entrypoints.foo.udp.timeout=10s
|
||||
--entryPoints.foo.address=:8000/udp
|
||||
--entryPoints.foo.udp.timeout=10s
|
||||
```
|
||||
|
||||
{!traefik-for-business-applications.md!}
|
||||
|
|
|
@ -53,9 +53,9 @@ The Kubernetes Ingress Controller, The Custom Resource Way.
|
|||
- --log.level=DEBUG
|
||||
- --api
|
||||
- --api.insecure
|
||||
- --entrypoints.web.address=:80
|
||||
- --entrypoints.tcpep.address=:8000
|
||||
- --entrypoints.udpep.address=:9000/udp
|
||||
- --entryPoints.web.address=:80
|
||||
- --entryPoints.tcpep.address=:8000
|
||||
- --entryPoints.udpep.address=:9000/udp
|
||||
- --providers.kubernetescrd
|
||||
ports:
|
||||
- name: web
|
||||
|
|
|
@ -234,7 +234,7 @@ Kubernetes cluster before creating `HTTPRoute` objects.
|
|||
- headers: # [11]
|
||||
name: foo # [12]
|
||||
value: bar # [13]
|
||||
- backendRefs: # [14]
|
||||
backendRefs: # [14]
|
||||
- name: whoamitcp # [15]
|
||||
weight: 1 # [16]
|
||||
port: 8080 # [17]
|
||||
|
@ -251,39 +251,51 @@ Kubernetes cluster before creating `HTTPRoute` objects.
|
|||
requestRedirect: # [27]
|
||||
scheme: https # [28]
|
||||
statusCode: 301 # [29]
|
||||
- type: RequestHeaderModifier # [30]
|
||||
requestHeaderModifier: # [31]
|
||||
set:
|
||||
- name: X-Foo
|
||||
value: Bar
|
||||
add:
|
||||
- name: X-Bar
|
||||
value: Foo
|
||||
remove:
|
||||
- X-Baz
|
||||
```
|
||||
|
||||
| Ref | Attribute | Description |
|
||||
|------|-------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| [1] | `parentRefs` | References the resources (usually Gateways) that a Route wants to be attached to. |
|
||||
| [2] | `name` | Name of the referent. |
|
||||
| [3] | `namespace` | Namespace of the referent. When unspecified (or empty string), this refers to the local namespace of the Route. |
|
||||
| [4] | `sectionName` | Name of a section within the target resource (the Listener name). |
|
||||
| [5] | `hostnames` | A set of hostname that should match against the HTTP Host header to select a HTTPRoute to process the request. |
|
||||
| [6] | `rules` | A list of HTTP matchers, filters and actions. |
|
||||
| [7] | `matches` | Conditions used for matching the rule against incoming HTTP requests. Each match is independent, i.e. this rule will be matched if **any** one of the matches is satisfied. |
|
||||
| [8] | `path` | An HTTP request path matcher. If this field is not specified, a default prefix match on the "/" path is provided. |
|
||||
| [9] | `type` | Type of match against the path Value (supported types: `Exact`, `Prefix`). |
|
||||
| [10] | `value` | The value of the HTTP path to match against. |
|
||||
| [11] | `headers` | Conditions to select a HTTP route by matching HTTP request headers. |
|
||||
| [12] | `name` | Name of the HTTP header to be matched. |
|
||||
| [13] | `value` | Value of HTTP Header to be matched. |
|
||||
| [14] | `backendRefs` | Defines the backend(s) where matching requests should be sent. |
|
||||
| [15] | `name` | The name of the referent service. |
|
||||
| [16] | `weight` | The proportion of traffic forwarded to a targetRef, computed as weight/(sum of all weights in targetRefs). |
|
||||
| [17] | `port` | The port of the referent service. |
|
||||
| [18] | `group` | Group is the group of the referent. Only `traefik.io` and `gateway.networking.k8s.io` values are supported. |
|
||||
| [19] | `kind` | Kind is kind of the referent. Only `TraefikService` and `Service` values are supported. |
|
||||
| [20] | `filters` | Defines the filters (middlewares) applied to the route. |
|
||||
| [21] | `type` | Defines the type of filter; ExtensionRef is used for configuring custom HTTP filters. |
|
||||
| [22] | `extensionRef` | Configuration of the custom HTTP filter. |
|
||||
| [23] | `group` | Group of the kubernetes object to reference. |
|
||||
| [24] | `kind` | Kind of the kubernetes object to reference. |
|
||||
| [25] | `name` | Name of the kubernetes object to reference. |
|
||||
| [26] | `type` | Defines the type of filter; RequestRedirect redirects a request to another location. |
|
||||
| [27] | `requestRedirect` | Configuration of redirect filter. |
|
||||
| [28] | `scheme` | Scheme is the scheme to be used in the value of the Location header in the response. |
|
||||
| [29] | `statusCode` | StatusCode is the HTTP status code to be used in response. |
|
||||
| Ref | Attribute | Description |
|
||||
|------|-------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| [1] | `parentRefs` | References the resources (usually Gateways) that a Route wants to be attached to. |
|
||||
| [2] | `name` | Name of the referent. |
|
||||
| [3] | `namespace` | Namespace of the referent. When unspecified (or empty string), this refers to the local namespace of the Route. |
|
||||
| [4] | `sectionName` | Name of a section within the target resource (the Listener name). |
|
||||
| [5] | `hostnames` | A set of hostname that should match against the HTTP Host header to select a HTTPRoute to process the request. |
|
||||
| [6] | `rules` | A list of HTTP matchers, filters and actions. |
|
||||
| [7] | `matches` | Conditions used for matching the rule against incoming HTTP requests. Each match is independent, i.e. this rule will be matched if **any** one of the matches is satisfied. |
|
||||
| [8] | `path` | An HTTP request path matcher. If this field is not specified, a default prefix match on the "/" path is provided. |
|
||||
| [9] | `type` | Type of match against the path Value (supported types: `Exact`, `PathPrefix`). |
|
||||
| [10] | `value` | The value of the HTTP path to match against. |
|
||||
| [11] | `headers` | Conditions to select a HTTP route by matching HTTP request headers. |
|
||||
| [12] | `name` | Name of the HTTP header to be matched. |
|
||||
| [13] | `value` | Value of HTTP Header to be matched. |
|
||||
| [14] | `backendRefs` | Defines the backend(s) where matching requests should be sent. |
|
||||
| [15] | `name` | The name of the referent service. |
|
||||
| [16] | `weight` | The proportion of traffic forwarded to a targetRef, computed as weight/(sum of all weights in targetRefs). |
|
||||
| [17] | `port` | The port of the referent service. |
|
||||
| [18] | `group` | Group is the group of the referent. Only `traefik.io` and `gateway.networking.k8s.io` values are supported. |
|
||||
| [19] | `kind` | Kind is kind of the referent. Only `TraefikService` and `Service` values are supported. |
|
||||
| [20] | `filters` | Defines the filters (middlewares) applied to the route. |
|
||||
| [21] | `type` | Defines the type of filter; ExtensionRef is used for configuring custom HTTP filters. |
|
||||
| [22] | `extensionRef` | Configuration of the custom HTTP filter. |
|
||||
| [23] | `group` | Group of the kubernetes object to reference. |
|
||||
| [24] | `kind` | Kind of the kubernetes object to reference. |
|
||||
| [25] | `name` | Name of the kubernetes object to reference. |
|
||||
| [26] | `type` | Defines the type of filter; RequestRedirect redirects a request to another location. |
|
||||
| [27] | `requestRedirect` | Configuration of redirect filter. |
|
||||
| [28] | `scheme` | Scheme is the scheme to be used in the value of the Location header in the response. |
|
||||
| [29] | `statusCode` | StatusCode is the HTTP status code to be used in response. |
|
||||
| [30] | `type` | Defines the type of filter; RequestHeaderModifier modifies request headers. |
|
||||
| [31] | `requestHeaderModifier` | Configuration of RequestHeaderModifier filter. |
|
||||
|
||||
### Kind: `TCPRoute`
|
||||
|
||||
|
|
|
@ -126,7 +126,7 @@ which in turn will create the resulting routers, services, handlers, etc.
|
|||
- name: traefik
|
||||
image: traefik:v3.0
|
||||
args:
|
||||
- --entrypoints.web.address=:80
|
||||
- --entryPoints.web.address=:80
|
||||
- --providers.kubernetesingress
|
||||
ports:
|
||||
- name: web
|
||||
|
@ -391,8 +391,8 @@ TLS can be enabled through the [HTTP options](../entrypoints.md#tls) of an Entry
|
|||
|
||||
```bash tab="CLI"
|
||||
# Static configuration
|
||||
--entrypoints.websecure.address=:443
|
||||
--entrypoints.websecure.http.tls
|
||||
--entryPoints.websecure.address=:443
|
||||
--entryPoints.websecure.http.tls
|
||||
```
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
|
@ -524,8 +524,8 @@ This way, any Ingress attached to this Entrypoint will have TLS termination by d
|
|||
- name: traefik
|
||||
image: traefik:v3.0
|
||||
args:
|
||||
- --entrypoints.websecure.address=:443
|
||||
- --entrypoints.websecure.http.tls
|
||||
- --entryPoints.websecure.address=:443
|
||||
- --entryPoints.websecure.http.tls
|
||||
- --providers.kubernetesingress
|
||||
ports:
|
||||
- name: websecure
|
||||
|
@ -710,7 +710,7 @@ For more options, please refer to the available [annotations](#on-ingress).
|
|||
- name: traefik
|
||||
image: traefik:v3.0
|
||||
args:
|
||||
- --entrypoints.websecure.address=:443
|
||||
- --entryPoints.websecure.address=:443
|
||||
- --providers.kubernetesingress
|
||||
ports:
|
||||
- name: websecure
|
||||
|
|
|
@ -146,9 +146,9 @@ If you want to limit the router scope to a set of entry points, set the `entryPo
|
|||
|
||||
```bash tab="CLI"
|
||||
## Static configuration
|
||||
--entrypoints.web.address=:80
|
||||
--entrypoints.websecure.address=:443
|
||||
--entrypoints.other.address=:9090
|
||||
--entryPoints.web.address=:80
|
||||
--entryPoints.websecure.address=:443
|
||||
--entryPoints.other.address=:9090
|
||||
```
|
||||
|
||||
??? example "Listens to Specific EntryPoints"
|
||||
|
@ -204,9 +204,9 @@ If you want to limit the router scope to a set of entry points, set the `entryPo
|
|||
|
||||
```bash tab="CLI"
|
||||
## Static configuration
|
||||
--entrypoints.web.address=:80
|
||||
--entrypoints.websecure.address=:443
|
||||
--entrypoints.other.address=:9090
|
||||
--entryPoints.web.address=:80
|
||||
--entryPoints.websecure.address=:443
|
||||
--entryPoints.other.address=:9090
|
||||
```
|
||||
|
||||
### Rule
|
||||
|
@ -959,9 +959,9 @@ If you want to limit the router scope to a set of entry points, set the entry po
|
|||
|
||||
```bash tab="CLI"
|
||||
## Static configuration
|
||||
--entrypoints.web.address=:80
|
||||
--entrypoints.websecure.address=:443
|
||||
--entrypoints.other.address=:9090
|
||||
--entryPoints.web.address=:80
|
||||
--entryPoints.websecure.address=:443
|
||||
--entryPoints.other.address=:9090
|
||||
```
|
||||
|
||||
??? example "Listens to Specific EntryPoints"
|
||||
|
@ -1023,9 +1023,9 @@ If you want to limit the router scope to a set of entry points, set the entry po
|
|||
|
||||
```bash tab="CLI"
|
||||
## Static configuration
|
||||
--entrypoints.web.address=:80
|
||||
--entrypoints.websecure.address=:443
|
||||
--entrypoints.other.address=:9090
|
||||
--entryPoints.web.address=:80
|
||||
--entryPoints.websecure.address=:443
|
||||
--entryPoints.other.address=:9090
|
||||
```
|
||||
|
||||
### Rule
|
||||
|
@ -1610,9 +1610,9 @@ If one wants to limit the router scope to a set of EntryPoints, one should set t
|
|||
|
||||
```bash tab="CLI"
|
||||
## Static configuration
|
||||
--entrypoints.web.address=":80"
|
||||
--entrypoints.other.address=":9090/udp"
|
||||
--entrypoints.streaming.address=":9191/udp"
|
||||
--entryPoints.web.address=":80"
|
||||
--entryPoints.other.address=":9090/udp"
|
||||
--entryPoints.streaming.address=":9191/udp"
|
||||
```
|
||||
|
||||
??? example "Listens to Specific EntryPoints"
|
||||
|
@ -1667,9 +1667,9 @@ If one wants to limit the router scope to a set of EntryPoints, one should set t
|
|||
|
||||
```bash tab="CLI"
|
||||
## Static configuration
|
||||
--entrypoints.web.address=":80"
|
||||
--entrypoints.other.address=":9090/udp"
|
||||
--entrypoints.streaming.address=":9191/udp"
|
||||
--entryPoints.web.address=":80"
|
||||
--entryPoints.other.address=":9090/udp"
|
||||
--entryPoints.streaming.address=":9191/udp"
|
||||
```
|
||||
|
||||
### Services
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue