YAML I love you
This commit is contained in:
parent
bfde17b4d7
commit
17480abe85
37 changed files with 636 additions and 429 deletions
|
@ -209,17 +209,17 @@ spec:
|
||||||
- 192.168.1.7
|
- 192.168.1.7
|
||||||
```
|
```
|
||||||
|
|
||||||
```yaml tab="Rancher"
|
|
||||||
labels:
|
|
||||||
- "traefik.http.middlewares.test-inflightreq.inflightreq.sourcecriterion.ipstrategy.excludedips=127.0.0.1/32, 192.168.1.7"
|
|
||||||
```
|
|
||||||
|
|
||||||
```json tab="Marathon"
|
```json tab="Marathon"
|
||||||
"labels": {
|
"labels": {
|
||||||
"traefik.http.middlewares.test-inflightreq.inflightreq.sourcecriterion.ipstrategy.excludedips": "127.0.0.1/32, 192.168.1.7"
|
"traefik.http.middlewares.test-inflightreq.inflightreq.sourcecriterion.ipstrategy.excludedips": "127.0.0.1/32, 192.168.1.7"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```yaml tab="Rancher"
|
||||||
|
labels:
|
||||||
|
- "traefik.http.middlewares.test-inflightreq.inflightreq.sourcecriterion.ipstrategy.excludedips=127.0.0.1/32, 192.168.1.7"
|
||||||
|
```
|
||||||
|
|
||||||
```toml tab="File (TOML)"
|
```toml tab="File (TOML)"
|
||||||
[http.middlewares]
|
[http.middlewares]
|
||||||
[http.middlewares.test-inflightreq.inflightreq]
|
[http.middlewares.test-inflightreq.inflightreq]
|
||||||
|
|
|
@ -85,4 +85,3 @@ The `regex` option is the regular expression to match and capture elements from
|
||||||
### `replacement`
|
### `replacement`
|
||||||
|
|
||||||
The `replacement` option defines how to modify the URL to have the new target URL.
|
The `replacement` option defines how to modify the URL to have the new target URL.
|
||||||
|
|
|
@ -40,6 +40,7 @@ api: {}
|
||||||
And then you will be able to reference it like this:
|
And then you will be able to reference it like this:
|
||||||
|
|
||||||
```yaml tab="Docker"
|
```yaml tab="Docker"
|
||||||
|
labels:
|
||||||
- "traefik.http.routers.api.rule=PathPrefix(`/api`) || PathPrefix(`/dashboard`)"
|
- "traefik.http.routers.api.rule=PathPrefix(`/api`) || PathPrefix(`/dashboard`)"
|
||||||
- "traefik.http.routers.api.service=api@internal"
|
- "traefik.http.routers.api.service=api@internal"
|
||||||
- "traefik.http.routers.api.middlewares=auth"
|
- "traefik.http.routers.api.middlewares=auth"
|
||||||
|
|
|
@ -446,7 +446,8 @@ You can declare TCP Routers and/or Services using labels.
|
||||||
```
|
```
|
||||||
|
|
||||||
??? info "`traefik.tcp.services.<service_name>.loadbalancer.terminationdelay`"
|
??? info "`traefik.tcp.services.<service_name>.loadbalancer.terminationdelay`"
|
||||||
<!-- TODO doc terminationdelay in TCP services page -->
|
|
||||||
|
See [termination delay](../services/index.md#termination-delay) for more information.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- "traefik.tcp.services.mytcpservice.loadbalancer.terminationdelay=100"
|
- "traefik.tcp.services.mytcpservice.loadbalancer.terminationdelay=100"
|
||||||
|
|
|
@ -276,8 +276,101 @@ You can declare TCP Routers and/or Services using labels.
|
||||||
|
|
||||||
!!! warning "TCP and HTTP"
|
!!! warning "TCP and HTTP"
|
||||||
|
|
||||||
If you declare a TCP Router/Service, it will prevent Traefik from automatically creating an HTTP Router/Service (as it would by default if no TCP Router/Service is defined).
|
If you declare a TCP Router/Service, it will prevent Traefik from automatically creating an HTTP Router/Service (like it does by default if no TCP Router/Service is defined).
|
||||||
Both a TCP Router/Service and an HTTP Router/Service can be created for the same application, but it has to be done explicitly in the config.
|
You can declare both a TCP Router/Service and an HTTP Router/Service for the same container (but you have to do so manually).
|
||||||
|
|
||||||
|
#### TCP Routers
|
||||||
|
|
||||||
|
??? info "`traefik.tcp.routers.<router_name>.entrypoints`"
|
||||||
|
|
||||||
|
See [entry points](../routers/index.md#entrypoints_1) for more information.
|
||||||
|
|
||||||
|
```json
|
||||||
|
"traefik.tcp.routers.mytcprouter.entrypoints": "ep1,ep2"
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
??? info "`traefik.tcp.routers.<router_name>.rule`"
|
||||||
|
|
||||||
|
See [rule](../routers/index.md#rule_1) for more information.
|
||||||
|
|
||||||
|
```json
|
||||||
|
"traefik.tcp.routers.mytcprouter.rule": "HostSNI(`myhost.com`)"
|
||||||
|
```
|
||||||
|
|
||||||
|
??? info "`traefik.tcp.routers.<router_name>.service`"
|
||||||
|
|
||||||
|
See [service](../routers/index.md#services) for more information.
|
||||||
|
|
||||||
|
```json
|
||||||
|
"traefik.tcp.routers.mytcprouter.service": "myservice"
|
||||||
|
```
|
||||||
|
|
||||||
|
??? info "`traefik.tcp.routers.<router_name>.tls`"
|
||||||
|
|
||||||
|
See [TLS](../routers/index.md#tls_1) for more information.
|
||||||
|
|
||||||
|
```json
|
||||||
|
"traefik.tcp.routers.mytcprouter.tls": "true
|
||||||
|
```
|
||||||
|
|
||||||
|
??? info "`traefik.tcp.routers.<router_name>.tls.certresolver`"
|
||||||
|
|
||||||
|
See [certResolver](../routers/index.md#certresolver_1) for more information.
|
||||||
|
|
||||||
|
```json
|
||||||
|
"traefik.tcp.routers.mytcprouter.tls.certresolver": "myresolver"
|
||||||
|
```
|
||||||
|
|
||||||
|
??? info "`traefik.tcp.routers.<router_name>.tls.domains[n].main`"
|
||||||
|
|
||||||
|
See [domains](../routers/index.md#domains_1) for more information.
|
||||||
|
|
||||||
|
```json
|
||||||
|
"traefik.tcp.routers.mytcprouter.tls.domains[0].main": "foobar.com"
|
||||||
|
```
|
||||||
|
|
||||||
|
??? info "`traefik.tcp.routers.<router_name>.tls.domains[n].sans`"
|
||||||
|
|
||||||
|
See [domains](../routers/index.md#domains_1) for more information.
|
||||||
|
|
||||||
|
```json
|
||||||
|
"traefik.tcp.routers.mytcprouter.tls.domains[0].sans": "test.foobar.com,dev.foobar.com"
|
||||||
|
```
|
||||||
|
|
||||||
|
??? info "`traefik.tcp.routers.<router_name>.tls.options`"
|
||||||
|
|
||||||
|
See [options](../routers/index.md#options_1) for more information.
|
||||||
|
|
||||||
|
```json
|
||||||
|
"traefik.tcp.routers.mytcprouter.tls.options": "mysoptions"
|
||||||
|
```
|
||||||
|
|
||||||
|
??? info "`traefik.tcp.routers.<router_name>.tls.passthrough`"
|
||||||
|
|
||||||
|
See [TLS](../routers/index.md#tls_1) for more information.
|
||||||
|
|
||||||
|
```json
|
||||||
|
"traefik.tcp.routers.mytcprouter.tls.passthrough": "true"
|
||||||
|
```
|
||||||
|
|
||||||
|
#### TCP Services
|
||||||
|
|
||||||
|
??? info "`traefik.tcp.services.<service_name>.loadbalancer.server.port`"
|
||||||
|
|
||||||
|
Registers a port of the application.
|
||||||
|
|
||||||
|
```json
|
||||||
|
"traefik.tcp.services.mytcpservice.loadbalancer.server.port": "423"
|
||||||
|
```
|
||||||
|
|
||||||
|
??? info "`traefik.tcp.services.<service_name>.loadbalancer.terminationdelay`"
|
||||||
|
|
||||||
|
See [termination delay](../services/index.md#termination-delay) for more information.
|
||||||
|
|
||||||
|
```json
|
||||||
|
"traefik.tcp.services.mytcpservice.loadbalancer.terminationdelay": "100"
|
||||||
|
```
|
||||||
|
|
||||||
### Specific Provider Options
|
### Specific Provider Options
|
||||||
|
|
||||||
|
|
|
@ -262,6 +262,119 @@ More information about available middlewares in the dedicated [middlewares secti
|
||||||
|
|
||||||
If you declare multiple middleware with the same name but with different parameters, the middleware fails to be declared.
|
If you declare multiple middleware with the same name but with different parameters, the middleware fails to be declared.
|
||||||
|
|
||||||
|
### TCP
|
||||||
|
|
||||||
|
You can declare TCP Routers and/or Services using labels.
|
||||||
|
|
||||||
|
??? example "Declaring TCP Routers and Services"
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
services:
|
||||||
|
my-container:
|
||||||
|
# ...
|
||||||
|
labels:
|
||||||
|
- "traefik.tcp.routers.my-router.rule=HostSNI(`my-host.com`)"
|
||||||
|
- "traefik.tcp.routers.my-router.tls=true"
|
||||||
|
- "traefik.tcp.services.my-service.loadbalancer.server.port=4123"
|
||||||
|
```
|
||||||
|
|
||||||
|
!!! warning "TCP and HTTP"
|
||||||
|
|
||||||
|
If you declare a TCP Router/Service, it will prevent Traefik from automatically creating an HTTP Router/Service (like it does by default if no TCP Router/Service is defined).
|
||||||
|
You can declare both a TCP Router/Service and an HTTP Router/Service for the same container (but you have to do so manually).
|
||||||
|
|
||||||
|
#### TCP Routers
|
||||||
|
|
||||||
|
??? info "`traefik.tcp.routers.<router_name>.entrypoints`"
|
||||||
|
|
||||||
|
See [entry points](../routers/index.md#entrypoints_1) for more information.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- "traefik.tcp.routers.mytcprouter.entrypoints=ep1,ep2"
|
||||||
|
```
|
||||||
|
|
||||||
|
??? info "`traefik.tcp.routers.<router_name>.rule`"
|
||||||
|
|
||||||
|
See [rule](../routers/index.md#rule_1) for more information.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- "traefik.tcp.routers.mytcprouter.rule=HostSNI(`myhost.com`)"
|
||||||
|
```
|
||||||
|
|
||||||
|
??? info "`traefik.tcp.routers.<router_name>.service`"
|
||||||
|
|
||||||
|
See [service](../routers/index.md#services) for more information.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- "traefik.tcp.routers.mytcprouter.service=myservice"
|
||||||
|
```
|
||||||
|
|
||||||
|
??? info "`traefik.tcp.routers.<router_name>.tls`"
|
||||||
|
|
||||||
|
See [TLS](../routers/index.md#tls_1) for more information.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- "traefik.tcp.routers.mytcprouter.tls=true"
|
||||||
|
```
|
||||||
|
|
||||||
|
??? info "`traefik.tcp.routers.<router_name>.tls.certresolver`"
|
||||||
|
|
||||||
|
See [certResolver](../routers/index.md#certresolver_1) for more information.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- "traefik.tcp.routers.mytcprouter.tls.certresolver=myresolver"
|
||||||
|
```
|
||||||
|
|
||||||
|
??? info "`traefik.tcp.routers.<router_name>.tls.domains[n].main`"
|
||||||
|
|
||||||
|
See [domains](../routers/index.md#domains_1) for more information.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- "traefik.tcp.routers.mytcprouter.tls.domains[0].main=foobar.com"
|
||||||
|
```
|
||||||
|
|
||||||
|
??? info "`traefik.tcp.routers.<router_name>.tls.domains[n].sans`"
|
||||||
|
|
||||||
|
See [domains](../routers/index.md#domains_1) for more information.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- "traefik.tcp.routers.mytcprouter.tls.domains[0].sans=test.foobar.com,dev.foobar.com"
|
||||||
|
```
|
||||||
|
|
||||||
|
??? info "`traefik.tcp.routers.<router_name>.tls.options`"
|
||||||
|
|
||||||
|
See [options](../routers/index.md#options_1) for more information.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- "traefik.tcp.routers.mytcprouter.tls.options=mysoptions"
|
||||||
|
```
|
||||||
|
|
||||||
|
??? info "`traefik.tcp.routers.<router_name>.tls.passthrough`"
|
||||||
|
|
||||||
|
See [TLS](../routers/index.md#tls_1) for more information.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- "traefik.tcp.routers.mytcprouter.tls.passthrough=true"
|
||||||
|
```
|
||||||
|
|
||||||
|
#### TCP Services
|
||||||
|
|
||||||
|
??? info "`traefik.tcp.services.<service_name>.loadbalancer.server.port`"
|
||||||
|
|
||||||
|
Registers a port of the application.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- "traefik.tcp.services.mytcpservice.loadbalancer.server.port=423"
|
||||||
|
```
|
||||||
|
|
||||||
|
??? info "`traefik.tcp.services.<service_name>.loadbalancer.terminationdelay`"
|
||||||
|
|
||||||
|
See [termination delay](../services/index.md#termination-delay) for more information.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- "traefik.tcp.services.mytcpservice.loadbalancer.terminationdelay=100"
|
||||||
|
```
|
||||||
|
|
||||||
### Specific Provider Options
|
### Specific Provider Options
|
||||||
|
|
||||||
#### `traefik.enable`
|
#### `traefik.enable`
|
||||||
|
|
|
@ -87,9 +87,9 @@ nav:
|
||||||
- 'Services': 'routing/services/index.md'
|
- 'Services': 'routing/services/index.md'
|
||||||
- 'Providers':
|
- 'Providers':
|
||||||
- 'Docker': 'routing/providers/docker.md'
|
- 'Docker': 'routing/providers/docker.md'
|
||||||
|
- 'Kubernetes IngressRoute': 'routing/providers/kubernetes-crd.md'
|
||||||
- 'Rancher': 'routing/providers/rancher.md'
|
- 'Rancher': 'routing/providers/rancher.md'
|
||||||
- 'Marathon': 'routing/providers/marathon.md'
|
- 'Marathon': 'routing/providers/marathon.md'
|
||||||
- 'Kubernetes IngressRoute': 'routing/providers/kubernetes-crd.md'
|
|
||||||
- 'HTTPS & TLS':
|
- 'HTTPS & TLS':
|
||||||
- 'Overview': 'https/overview.md'
|
- 'Overview': 'https/overview.md'
|
||||||
- 'TLS': 'https/tls.md'
|
- 'TLS': 'https/tls.md'
|
||||||
|
|
Loading…
Reference in a new issue