doc: add pilot and plugins documentation.
This commit is contained in:
parent
c42f1b7a50
commit
720bef97e6
15 changed files with 294 additions and 97 deletions
|
@ -284,7 +284,7 @@ For complete details, refer to your provider's _Additional configuration_ link.
|
||||||
|-------------------------------------------------------------|----------------|---------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------|
|
|-------------------------------------------------------------|----------------|---------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------|
|
||||||
| [ACME DNS](https://github.com/joohoi/acme-dns) | `acme-dns` | `ACME_DNS_API_BASE`, `ACME_DNS_STORAGE_PATH` | [Additional configuration](https://go-acme.github.io/lego/dns/acme-dns) |
|
| [ACME DNS](https://github.com/joohoi/acme-dns) | `acme-dns` | `ACME_DNS_API_BASE`, `ACME_DNS_STORAGE_PATH` | [Additional configuration](https://go-acme.github.io/lego/dns/acme-dns) |
|
||||||
| [Alibaba Cloud](https://www.alibabacloud.com) | `alidns` | `ALICLOUD_ACCESS_KEY`, `ALICLOUD_SECRET_KEY`, `ALICLOUD_REGION_ID` | [Additional configuration](https://go-acme.github.io/lego/dns/alidns) |
|
| [Alibaba Cloud](https://www.alibabacloud.com) | `alidns` | `ALICLOUD_ACCESS_KEY`, `ALICLOUD_SECRET_KEY`, `ALICLOUD_REGION_ID` | [Additional configuration](https://go-acme.github.io/lego/dns/alidns) |
|
||||||
| [ArvanCloud](https://arvancloud.com) | `arvancloud` | `ARVANCLOUD_API_KEY` | [Additional configuration](https://go-acme.github.io/lego/dns/arvancloud) |
|
| [ArvanCloud](https://www.arvancloud.com/en) | `arvancloud` | `ARVANCLOUD_API_KEY` | [Additional configuration](https://go-acme.github.io/lego/dns/arvancloud) |
|
||||||
| [Auroradns](https://www.pcextreme.com/dns-health-checks) | `auroradns` | `AURORA_USER_ID`, `AURORA_KEY`, `AURORA_ENDPOINT` | [Additional configuration](https://go-acme.github.io/lego/dns/auroradns) |
|
| [Auroradns](https://www.pcextreme.com/dns-health-checks) | `auroradns` | `AURORA_USER_ID`, `AURORA_KEY`, `AURORA_ENDPOINT` | [Additional configuration](https://go-acme.github.io/lego/dns/auroradns) |
|
||||||
| [Autodns](https://www.internetx.com/domains/autodns/) | `autodns` | `AUTODNS_API_USER`, `AUTODNS_API_PASSWORD` | [Additional configuration](https://go-acme.github.io/lego/dns/autodns) |
|
| [Autodns](https://www.internetx.com/domains/autodns/) | `autodns` | `AUTODNS_API_USER`, `AUTODNS_API_PASSWORD` | [Additional configuration](https://go-acme.github.io/lego/dns/autodns) |
|
||||||
| [Azure](https://azure.microsoft.com/services/dns/) | `azure` | `AZURE_CLIENT_ID`, `AZURE_CLIENT_SECRET`, `AZURE_SUBSCRIPTION_ID`, `AZURE_TENANT_ID`, `AZURE_RESOURCE_GROUP`, `[AZURE_METADATA_ENDPOINT]` | [Additional configuration](https://go-acme.github.io/lego/dns/azure) |
|
| [Azure](https://azure.microsoft.com/services/dns/) | `azure` | `AZURE_CLIENT_ID`, `AZURE_CLIENT_SECRET`, `AZURE_SUBSCRIPTION_ID`, `AZURE_TENANT_ID`, `AZURE_RESOURCE_GROUP`, `[AZURE_METADATA_ENDPOINT]` | [Additional configuration](https://go-acme.github.io/lego/dns/azure) |
|
||||||
|
|
35
docs/content/plugins/overview.md
Normal file
35
docs/content/plugins/overview.md
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
# Plugins and Traefik Pilot
|
||||||
|
|
||||||
|
Overview
|
||||||
|
{: .subtitle}
|
||||||
|
|
||||||
|
Traefik Pilot is a software-as-a-service (SaaS) platform that connects to Traefik to extend its capabilities.
|
||||||
|
It does this through *plugins*, which are dynamically loaded components that enable new features.
|
||||||
|
|
||||||
|
For example, Traefik plugins can add features to modify requests or headers, issue redirects, add authentication, and so on, providing similar functionality to Traefik [middlewares](https://docs.traefik.io/middlewares/overview/).
|
||||||
|
|
||||||
|
Traefik Pilot can also monitor connected Traefik instances and issue alerts when one is not responding, or when it is subject to security vulnerabilities.
|
||||||
|
|
||||||
|
!!! danger "Experimental Features"
|
||||||
|
Plugins can potentially modify the behavior of Traefik in unforeseen ways.
|
||||||
|
Exercise caution when adding new plugins to production Traefik instances.
|
||||||
|
|
||||||
|
## Connecting to Traefik Pilot
|
||||||
|
|
||||||
|
Plugins are available when a Traefik instance is connected to Traefik Pilot.
|
||||||
|
|
||||||
|
To register a new instance and begin working with plugins, login or create an account at the [Traefik Pilot homepage](https://pilot.traefik.io) and choose **Register New Instance**.
|
||||||
|
|
||||||
|
To complete the connection, Traefik Pilot will issue a token that must be added to your Traefik static configuration by following the instructions provided.
|
||||||
|
|
||||||
|
!!! note "Enabling Alerts"
|
||||||
|
Health and security alerts for registered Traefik instances can be enabled from the Preferences in your [Traefik Pilot Profile](https://pilot.traefik.io/profile).
|
||||||
|
|
||||||
|
## Creating Plugins
|
||||||
|
|
||||||
|
Traefik users can create their own plugins and contribute them to the Traefik Pilot catalog to share them with the community.
|
||||||
|
|
||||||
|
Plugins are written in [Go](https://golang.org/) and their code is executed by an [embedded Go interpreter](https://github.com/containous/yaegi).
|
||||||
|
There is no need to compile binaries and all plugins are 100% cross-platform.
|
||||||
|
|
||||||
|
To learn more and see code for example Traefik plugins, please see the [developer documentation](https://github.com/containous/plugindemo).
|
122
docs/content/plugins/using-plugins.md
Normal file
122
docs/content/plugins/using-plugins.md
Normal file
|
@ -0,0 +1,122 @@
|
||||||
|
# Using Plugins
|
||||||
|
|
||||||
|
Since v2.3, plugins are available to any Traefik instance that is [registered](overview.md#connecting-to-traefik-pilot) with Traefik Pilot.
|
||||||
|
Plugins are hosted on GitHub, but you can browse plugins to add to your registered Traefik instances from the Traefik Pilot UI.
|
||||||
|
|
||||||
|
!!! danger "Experimental Features"
|
||||||
|
Plugins can potentially modify the behavior of Traefik in unforeseen ways.
|
||||||
|
Exercise caution when adding new plugins to production Traefik instances.
|
||||||
|
|
||||||
|
## Add a Plugin
|
||||||
|
|
||||||
|
To add a new plugin to a Traefik instance, you must modify that instance's static configuration.
|
||||||
|
The code to be added is provided by the Traefik Pilot UI when you choose **Install the Plugin**.
|
||||||
|
|
||||||
|
In the example below, we add the [`blockpath`](http://github.com/containous/plugin-blockpath) and [`rewritebody`](https://github.com/containous/plugin-rewritebody) plugins:
|
||||||
|
|
||||||
|
```toml tab="File (TOML)"
|
||||||
|
[entryPoints]
|
||||||
|
[entryPoints.web]
|
||||||
|
address = ":80"
|
||||||
|
|
||||||
|
[experimental]
|
||||||
|
[experimental.pilot]
|
||||||
|
token = "xxxxxxxxx"
|
||||||
|
|
||||||
|
[experimental.plugins]
|
||||||
|
[experimental.plugins.block]
|
||||||
|
modulename = "github.com/containous/plugin-blockpath"
|
||||||
|
version = "v0.1.2"
|
||||||
|
[experimental.plugins.rewrite]
|
||||||
|
modulename = "github.com/containous/plugin-rewritebody"
|
||||||
|
version = "v0.2.0"
|
||||||
|
```
|
||||||
|
|
||||||
|
```yaml tab="File (YAML)"
|
||||||
|
entryPoints:
|
||||||
|
web:
|
||||||
|
address: :80
|
||||||
|
|
||||||
|
experimental:
|
||||||
|
pilot:
|
||||||
|
token: xxxxxxxxx
|
||||||
|
|
||||||
|
plugins:
|
||||||
|
block:
|
||||||
|
modulename: github.com/containous/plugin-blockpath
|
||||||
|
version: v0.1.2
|
||||||
|
rewrite:
|
||||||
|
modulename: github.com/containous/plugin-rewritebody
|
||||||
|
version: v0.2.0
|
||||||
|
```
|
||||||
|
|
||||||
|
```bash tab="CLI"
|
||||||
|
--entryPoints.web.address=:80
|
||||||
|
--experimental.pilot.token=xxxxxxxxx
|
||||||
|
--experimental.plugins.block.modulename=github.com/containous/plugin-blockpath
|
||||||
|
--experimental.plugins.block.version=v0.1.2
|
||||||
|
--experimental.plugins.rewrite.modulename=github.com/containous/plugin-rewritebody
|
||||||
|
--experimental.plugins.rewrite.version=v0.2.0
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configuring Plugins
|
||||||
|
|
||||||
|
Some plugins will need to be configured by adding a dynamic configuration.
|
||||||
|
For the `bodyrewrite` plugin, for example:
|
||||||
|
|
||||||
|
```yaml tab="Docker"
|
||||||
|
labels:
|
||||||
|
- "traefik.http.middlewares.my-rewritebody.plugin.rewrite.rewrites[0].regex=example"
|
||||||
|
- "traefik.http.middlewares.my-rewritebody.plugin.rewrite.rewrites[0].replacement=test"
|
||||||
|
```
|
||||||
|
|
||||||
|
```yaml tab="Kubernetes"
|
||||||
|
apiVersion: traefik.containo.us/v1alpha1
|
||||||
|
kind: Middleware
|
||||||
|
metadata:
|
||||||
|
name: my-rewritebody
|
||||||
|
spec:
|
||||||
|
plugin:
|
||||||
|
rewrite:
|
||||||
|
rewrites:
|
||||||
|
- regex: example
|
||||||
|
replacement: test
|
||||||
|
```
|
||||||
|
|
||||||
|
```yaml tab="Consul Catalog"
|
||||||
|
- "traefik.http.middlewares.my-rewritebody.plugin.rewrite.rewrites[0].regex=example"
|
||||||
|
- "traefik.http.middlewares.my-rewritebody.plugin.rewrite.rewrites[0].replacement=test"
|
||||||
|
```
|
||||||
|
|
||||||
|
```json tab="Marathon"
|
||||||
|
"labels": {
|
||||||
|
"traefik.http.middlewares.my-rewritebody.plugin.rewrite.rewrites[0].regex": "example",
|
||||||
|
"traefik.http.middlewares.my-rewritebody.plugin.rewrite.rewrites[0].replacement": "test"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
```yaml tab="Rancher"
|
||||||
|
labels:
|
||||||
|
- "traefik.http.middlewares.my-rewritebody.plugin.rewrite.rewrites[0].regex=example"
|
||||||
|
- "traefik.http.middlewares.my-rewritebody.plugin.rewrite.rewrites[0].replacement=test"
|
||||||
|
```
|
||||||
|
|
||||||
|
```toml tab="File (TOML)"
|
||||||
|
[http.middlewares]
|
||||||
|
[http.middlewares.my-rewritebody.plugin.rewrite]
|
||||||
|
lastModified = true
|
||||||
|
[[http.middlewares.my-rewritebody.plugin.rewrite.rewrites]]
|
||||||
|
regex = "example"
|
||||||
|
replacement = "test"
|
||||||
|
```
|
||||||
|
|
||||||
|
```yaml tab="File (YAML)"
|
||||||
|
http:
|
||||||
|
middlewares:
|
||||||
|
my-rewritebody:
|
||||||
|
plugin:
|
||||||
|
rewrite:
|
||||||
|
rewrites:
|
||||||
|
- regex: example
|
||||||
|
replacement: test
|
||||||
|
```
|
|
@ -91,26 +91,27 @@
|
||||||
- "traefik.http.middlewares.middleware13.passtlsclientcert.info.subject.province=true"
|
- "traefik.http.middlewares.middleware13.passtlsclientcert.info.subject.province=true"
|
||||||
- "traefik.http.middlewares.middleware13.passtlsclientcert.info.subject.serialnumber=true"
|
- "traefik.http.middlewares.middleware13.passtlsclientcert.info.subject.serialnumber=true"
|
||||||
- "traefik.http.middlewares.middleware13.passtlsclientcert.pem=true"
|
- "traefik.http.middlewares.middleware13.passtlsclientcert.pem=true"
|
||||||
- "traefik.http.middlewares.middleware14.ratelimit.average=42"
|
- "traefik.http.middlewares.middleware14.plugin.foobar.foo=bar"
|
||||||
- "traefik.http.middlewares.middleware14.ratelimit.burst=42"
|
- "traefik.http.middlewares.middleware15.ratelimit.average=42"
|
||||||
- "traefik.http.middlewares.middleware14.ratelimit.period=42"
|
- "traefik.http.middlewares.middleware15.ratelimit.burst=42"
|
||||||
- "traefik.http.middlewares.middleware14.ratelimit.sourcecriterion.ipstrategy.depth=42"
|
- "traefik.http.middlewares.middleware15.ratelimit.period=42"
|
||||||
- "traefik.http.middlewares.middleware14.ratelimit.sourcecriterion.ipstrategy.excludedips=foobar, foobar"
|
- "traefik.http.middlewares.middleware15.ratelimit.sourcecriterion.ipstrategy.depth=42"
|
||||||
- "traefik.http.middlewares.middleware14.ratelimit.sourcecriterion.requestheadername=foobar"
|
- "traefik.http.middlewares.middleware15.ratelimit.sourcecriterion.ipstrategy.excludedips=foobar, foobar"
|
||||||
- "traefik.http.middlewares.middleware14.ratelimit.sourcecriterion.requesthost=true"
|
- "traefik.http.middlewares.middleware15.ratelimit.sourcecriterion.requestheadername=foobar"
|
||||||
- "traefik.http.middlewares.middleware15.redirectregex.permanent=true"
|
- "traefik.http.middlewares.middleware15.ratelimit.sourcecriterion.requesthost=true"
|
||||||
- "traefik.http.middlewares.middleware15.redirectregex.regex=foobar"
|
- "traefik.http.middlewares.middleware16.redirectregex.permanent=true"
|
||||||
- "traefik.http.middlewares.middleware15.redirectregex.replacement=foobar"
|
- "traefik.http.middlewares.middleware16.redirectregex.regex=foobar"
|
||||||
- "traefik.http.middlewares.middleware16.redirectscheme.permanent=true"
|
- "traefik.http.middlewares.middleware16.redirectregex.replacement=foobar"
|
||||||
- "traefik.http.middlewares.middleware16.redirectscheme.port=foobar"
|
- "traefik.http.middlewares.middleware17.redirectscheme.permanent=true"
|
||||||
- "traefik.http.middlewares.middleware16.redirectscheme.scheme=foobar"
|
- "traefik.http.middlewares.middleware17.redirectscheme.port=foobar"
|
||||||
- "traefik.http.middlewares.middleware17.replacepath.path=foobar"
|
- "traefik.http.middlewares.middleware17.redirectscheme.scheme=foobar"
|
||||||
- "traefik.http.middlewares.middleware18.replacepathregex.regex=foobar"
|
- "traefik.http.middlewares.middleware18.replacepath.path=foobar"
|
||||||
- "traefik.http.middlewares.middleware18.replacepathregex.replacement=foobar"
|
- "traefik.http.middlewares.middleware19.replacepathregex.regex=foobar"
|
||||||
- "traefik.http.middlewares.middleware19.retry.attempts=42"
|
- "traefik.http.middlewares.middleware19.replacepathregex.replacement=foobar"
|
||||||
- "traefik.http.middlewares.middleware20.stripprefix.forceslash=true"
|
- "traefik.http.middlewares.middleware20.retry.attempts=42"
|
||||||
- "traefik.http.middlewares.middleware20.stripprefix.prefixes=foobar, foobar"
|
- "traefik.http.middlewares.middleware21.stripprefix.forceslash=true"
|
||||||
- "traefik.http.middlewares.middleware21.stripprefixregex.regex=foobar, foobar"
|
- "traefik.http.middlewares.middleware21.stripprefix.prefixes=foobar, foobar"
|
||||||
|
- "traefik.http.middlewares.middleware22.stripprefixregex.regex=foobar, foobar"
|
||||||
- "traefik.http.routers.router0.entrypoints=foobar, foobar"
|
- "traefik.http.routers.router0.entrypoints=foobar, foobar"
|
||||||
- "traefik.http.routers.router0.middlewares=foobar, foobar"
|
- "traefik.http.routers.router0.middlewares=foobar, foobar"
|
||||||
- "traefik.http.routers.router0.priority=42"
|
- "traefik.http.routers.router0.priority=42"
|
||||||
|
@ -150,8 +151,8 @@
|
||||||
- "traefik.http.services.service01.loadbalancer.sticky.cookie=true"
|
- "traefik.http.services.service01.loadbalancer.sticky.cookie=true"
|
||||||
- "traefik.http.services.service01.loadbalancer.sticky.cookie.httponly=true"
|
- "traefik.http.services.service01.loadbalancer.sticky.cookie.httponly=true"
|
||||||
- "traefik.http.services.service01.loadbalancer.sticky.cookie.name=foobar"
|
- "traefik.http.services.service01.loadbalancer.sticky.cookie.name=foobar"
|
||||||
- "traefik.http.services.service01.loadbalancer.sticky.cookie.secure=true"
|
|
||||||
- "traefik.http.services.service01.loadbalancer.sticky.cookie.samesite=foobar"
|
- "traefik.http.services.service01.loadbalancer.sticky.cookie.samesite=foobar"
|
||||||
|
- "traefik.http.services.service01.loadbalancer.sticky.cookie.secure=true"
|
||||||
- "traefik.http.services.service01.loadbalancer.server.port=foobar"
|
- "traefik.http.services.service01.loadbalancer.server.port=foobar"
|
||||||
- "traefik.http.services.service01.loadbalancer.server.scheme=foobar"
|
- "traefik.http.services.service01.loadbalancer.server.scheme=foobar"
|
||||||
- "traefik.tcp.routers.tcprouter0.entrypoints=foobar, foobar"
|
- "traefik.tcp.routers.tcprouter0.entrypoints=foobar, foobar"
|
||||||
|
|
|
@ -223,42 +223,46 @@
|
||||||
serialNumber = true
|
serialNumber = true
|
||||||
domainComponent = true
|
domainComponent = true
|
||||||
[http.middlewares.Middleware14]
|
[http.middlewares.Middleware14]
|
||||||
[http.middlewares.Middleware14.rateLimit]
|
[http.middlewares.Middleware14.plugin]
|
||||||
|
[http.middlewares.Middleware14.plugin.PluginConf]
|
||||||
|
foo = "bar"
|
||||||
|
[http.middlewares.Middleware15]
|
||||||
|
[http.middlewares.Middleware15.rateLimit]
|
||||||
average = 42
|
average = 42
|
||||||
period = 42
|
period = 42
|
||||||
burst = 42
|
burst = 42
|
||||||
[http.middlewares.Middleware14.rateLimit.sourceCriterion]
|
[http.middlewares.Middleware15.rateLimit.sourceCriterion]
|
||||||
requestHeaderName = "foobar"
|
requestHeaderName = "foobar"
|
||||||
requestHost = true
|
requestHost = true
|
||||||
[http.middlewares.Middleware14.rateLimit.sourceCriterion.ipStrategy]
|
[http.middlewares.Middleware15.rateLimit.sourceCriterion.ipStrategy]
|
||||||
depth = 42
|
depth = 42
|
||||||
excludedIPs = ["foobar", "foobar"]
|
excludedIPs = ["foobar", "foobar"]
|
||||||
[http.middlewares.Middleware15]
|
[http.middlewares.Middleware16]
|
||||||
[http.middlewares.Middleware15.redirectRegex]
|
[http.middlewares.Middleware16.redirectRegex]
|
||||||
regex = "foobar"
|
regex = "foobar"
|
||||||
replacement = "foobar"
|
replacement = "foobar"
|
||||||
permanent = true
|
permanent = true
|
||||||
[http.middlewares.Middleware16]
|
[http.middlewares.Middleware17]
|
||||||
[http.middlewares.Middleware16.redirectScheme]
|
[http.middlewares.Middleware17.redirectScheme]
|
||||||
scheme = "foobar"
|
scheme = "foobar"
|
||||||
port = "foobar"
|
port = "foobar"
|
||||||
permanent = true
|
permanent = true
|
||||||
[http.middlewares.Middleware17]
|
|
||||||
[http.middlewares.Middleware17.replacePath]
|
|
||||||
path = "foobar"
|
|
||||||
[http.middlewares.Middleware18]
|
[http.middlewares.Middleware18]
|
||||||
[http.middlewares.Middleware18.replacePathRegex]
|
[http.middlewares.Middleware18.replacePath]
|
||||||
|
path = "foobar"
|
||||||
|
[http.middlewares.Middleware19]
|
||||||
|
[http.middlewares.Middleware19.replacePathRegex]
|
||||||
regex = "foobar"
|
regex = "foobar"
|
||||||
replacement = "foobar"
|
replacement = "foobar"
|
||||||
[http.middlewares.Middleware19]
|
|
||||||
[http.middlewares.Middleware19.retry]
|
|
||||||
attempts = 42
|
|
||||||
[http.middlewares.Middleware20]
|
[http.middlewares.Middleware20]
|
||||||
[http.middlewares.Middleware20.stripPrefix]
|
[http.middlewares.Middleware20.retry]
|
||||||
|
attempts = 42
|
||||||
|
[http.middlewares.Middleware21]
|
||||||
|
[http.middlewares.Middleware21.stripPrefix]
|
||||||
prefixes = ["foobar", "foobar"]
|
prefixes = ["foobar", "foobar"]
|
||||||
forceSlash = true
|
forceSlash = true
|
||||||
[http.middlewares.Middleware21]
|
[http.middlewares.Middleware22]
|
||||||
[http.middlewares.Middleware21.stripPrefixRegex]
|
[http.middlewares.Middleware22.stripPrefixRegex]
|
||||||
regex = ["foobar", "foobar"]
|
regex = ["foobar", "foobar"]
|
||||||
|
|
||||||
[tcp]
|
[tcp]
|
||||||
|
|
|
@ -254,6 +254,10 @@ http:
|
||||||
domainComponent: true
|
domainComponent: true
|
||||||
serialNumber: true
|
serialNumber: true
|
||||||
Middleware14:
|
Middleware14:
|
||||||
|
plugin:
|
||||||
|
PluginConf:
|
||||||
|
foo = "bar"
|
||||||
|
Middleware15:
|
||||||
rateLimit:
|
rateLimit:
|
||||||
average: 42
|
average: 42
|
||||||
period: 42
|
period: 42
|
||||||
|
@ -266,33 +270,33 @@ http:
|
||||||
- foobar
|
- foobar
|
||||||
requestHeaderName: foobar
|
requestHeaderName: foobar
|
||||||
requestHost: true
|
requestHost: true
|
||||||
Middleware15:
|
Middleware16:
|
||||||
redirectRegex:
|
redirectRegex:
|
||||||
regex: foobar
|
regex: foobar
|
||||||
replacement: foobar
|
replacement: foobar
|
||||||
permanent: true
|
permanent: true
|
||||||
Middleware16:
|
Middleware17:
|
||||||
redirectScheme:
|
redirectScheme:
|
||||||
scheme: foobar
|
scheme: foobar
|
||||||
port: foobar
|
port: foobar
|
||||||
permanent: true
|
permanent: true
|
||||||
Middleware17:
|
Middleware18:
|
||||||
replacePath:
|
replacePath:
|
||||||
path: foobar
|
path: foobar
|
||||||
Middleware18:
|
Middleware19:
|
||||||
replacePathRegex:
|
replacePathRegex:
|
||||||
regex: foobar
|
regex: foobar
|
||||||
replacement: foobar
|
replacement: foobar
|
||||||
Middleware19:
|
Middleware20:
|
||||||
retry:
|
retry:
|
||||||
attempts: 42
|
attempts: 42
|
||||||
Middleware20:
|
Middleware21:
|
||||||
stripPrefix:
|
stripPrefix:
|
||||||
prefixes:
|
prefixes:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
forceSlash: true
|
forceSlash: true
|
||||||
Middleware21:
|
Middleware22:
|
||||||
stripPrefixRegex:
|
stripPrefixRegex:
|
||||||
regex:
|
regex:
|
||||||
- foobar
|
- foobar
|
||||||
|
|
|
@ -105,29 +105,30 @@
|
||||||
| `traefik/http/middlewares/Middleware13/passTLSClientCert/info/subject/province` | `true` |
|
| `traefik/http/middlewares/Middleware13/passTLSClientCert/info/subject/province` | `true` |
|
||||||
| `traefik/http/middlewares/Middleware13/passTLSClientCert/info/subject/serialNumber` | `true` |
|
| `traefik/http/middlewares/Middleware13/passTLSClientCert/info/subject/serialNumber` | `true` |
|
||||||
| `traefik/http/middlewares/Middleware13/passTLSClientCert/pem` | `true` |
|
| `traefik/http/middlewares/Middleware13/passTLSClientCert/pem` | `true` |
|
||||||
| `traefik/http/middlewares/Middleware14/rateLimit/average` | `42` |
|
| `traefik/http/middlewares/Middleware14/plugin/PluginConf/foo` | `bar` |
|
||||||
| `traefik/http/middlewares/Middleware14/rateLimit/burst` | `42` |
|
| `traefik/http/middlewares/Middleware15/rateLimit/average` | `42` |
|
||||||
| `traefik/http/middlewares/Middleware14/rateLimit/period` | `42` |
|
| `traefik/http/middlewares/Middleware15/rateLimit/burst` | `42` |
|
||||||
| `traefik/http/middlewares/Middleware14/rateLimit/sourceCriterion/ipStrategy/depth` | `42` |
|
| `traefik/http/middlewares/Middleware15/rateLimit/period` | `42` |
|
||||||
| `traefik/http/middlewares/Middleware14/rateLimit/sourceCriterion/ipStrategy/excludedIPs/0` | `foobar` |
|
| `traefik/http/middlewares/Middleware15/rateLimit/sourceCriterion/ipStrategy/depth` | `42` |
|
||||||
| `traefik/http/middlewares/Middleware14/rateLimit/sourceCriterion/ipStrategy/excludedIPs/1` | `foobar` |
|
| `traefik/http/middlewares/Middleware15/rateLimit/sourceCriterion/ipStrategy/excludedIPs/0` | `foobar` |
|
||||||
| `traefik/http/middlewares/Middleware14/rateLimit/sourceCriterion/requestHeaderName` | `foobar` |
|
| `traefik/http/middlewares/Middleware15/rateLimit/sourceCriterion/ipStrategy/excludedIPs/1` | `foobar` |
|
||||||
| `traefik/http/middlewares/Middleware14/rateLimit/sourceCriterion/requestHost` | `true` |
|
| `traefik/http/middlewares/Middleware15/rateLimit/sourceCriterion/requestHeaderName` | `foobar` |
|
||||||
| `traefik/http/middlewares/Middleware15/redirectRegex/permanent` | `true` |
|
| `traefik/http/middlewares/Middleware15/rateLimit/sourceCriterion/requestHost` | `true` |
|
||||||
| `traefik/http/middlewares/Middleware15/redirectRegex/regex` | `foobar` |
|
| `traefik/http/middlewares/Middleware16/redirectRegex/permanent` | `true` |
|
||||||
| `traefik/http/middlewares/Middleware15/redirectRegex/replacement` | `foobar` |
|
| `traefik/http/middlewares/Middleware16/redirectRegex/regex` | `foobar` |
|
||||||
| `traefik/http/middlewares/Middleware16/redirectScheme/permanent` | `true` |
|
| `traefik/http/middlewares/Middleware16/redirectRegex/replacement` | `foobar` |
|
||||||
| `traefik/http/middlewares/Middleware16/redirectScheme/port` | `foobar` |
|
| `traefik/http/middlewares/Middleware17/redirectScheme/permanent` | `true` |
|
||||||
| `traefik/http/middlewares/Middleware16/redirectScheme/scheme` | `foobar` |
|
| `traefik/http/middlewares/Middleware17/redirectScheme/port` | `foobar` |
|
||||||
| `traefik/http/middlewares/Middleware17/replacePath/path` | `foobar` |
|
| `traefik/http/middlewares/Middleware17/redirectScheme/scheme` | `foobar` |
|
||||||
| `traefik/http/middlewares/Middleware18/replacePathRegex/regex` | `foobar` |
|
| `traefik/http/middlewares/Middleware18/replacePath/path` | `foobar` |
|
||||||
| `traefik/http/middlewares/Middleware18/replacePathRegex/replacement` | `foobar` |
|
| `traefik/http/middlewares/Middleware19/replacePathRegex/regex` | `foobar` |
|
||||||
| `traefik/http/middlewares/Middleware19/retry/attempts` | `42` |
|
| `traefik/http/middlewares/Middleware19/replacePathRegex/replacement` | `foobar` |
|
||||||
| `traefik/http/middlewares/Middleware20/stripPrefix/forceSlash` | `true` |
|
| `traefik/http/middlewares/Middleware20/retry/attempts` | `42` |
|
||||||
| `traefik/http/middlewares/Middleware20/stripPrefix/prefixes/0` | `foobar` |
|
| `traefik/http/middlewares/Middleware21/stripPrefix/forceSlash` | `true` |
|
||||||
| `traefik/http/middlewares/Middleware20/stripPrefix/prefixes/1` | `foobar` |
|
| `traefik/http/middlewares/Middleware21/stripPrefix/prefixes/0` | `foobar` |
|
||||||
| `traefik/http/middlewares/Middleware21/stripPrefixRegex/regex/0` | `foobar` |
|
| `traefik/http/middlewares/Middleware21/stripPrefix/prefixes/1` | `foobar` |
|
||||||
| `traefik/http/middlewares/Middleware21/stripPrefixRegex/regex/1` | `foobar` |
|
| `traefik/http/middlewares/Middleware22/stripPrefixRegex/regex/0` | `foobar` |
|
||||||
|
| `traefik/http/middlewares/Middleware22/stripPrefixRegex/regex/1` | `foobar` |
|
||||||
| `traefik/http/routers/Router0/entryPoints/0` | `foobar` |
|
| `traefik/http/routers/Router0/entryPoints/0` | `foobar` |
|
||||||
| `traefik/http/routers/Router0/entryPoints/1` | `foobar` |
|
| `traefik/http/routers/Router0/entryPoints/1` | `foobar` |
|
||||||
| `traefik/http/routers/Router0/middlewares/0` | `foobar` |
|
| `traefik/http/routers/Router0/middlewares/0` | `foobar` |
|
||||||
|
|
|
@ -91,26 +91,27 @@
|
||||||
"traefik.http.middlewares.middleware13.passtlsclientcert.info.subject.province": "true",
|
"traefik.http.middlewares.middleware13.passtlsclientcert.info.subject.province": "true",
|
||||||
"traefik.http.middlewares.middleware13.passtlsclientcert.info.subject.serialnumber": "true",
|
"traefik.http.middlewares.middleware13.passtlsclientcert.info.subject.serialnumber": "true",
|
||||||
"traefik.http.middlewares.middleware13.passtlsclientcert.pem": "true",
|
"traefik.http.middlewares.middleware13.passtlsclientcert.pem": "true",
|
||||||
"traefik.http.middlewares.middleware14.ratelimit.average": "42",
|
"traefik.http.middlewares.middleware14.plugin.foobar.foo": "bar",
|
||||||
"traefik.http.middlewares.middleware14.ratelimit.burst": "42",
|
"traefik.http.middlewares.middleware15.ratelimit.average": "42",
|
||||||
"traefik.http.middlewares.middleware14.ratelimit.period": "42",
|
"traefik.http.middlewares.middleware15.ratelimit.burst": "42",
|
||||||
"traefik.http.middlewares.middleware14.ratelimit.sourcecriterion.ipstrategy.depth": "42",
|
"traefik.http.middlewares.middleware15.ratelimit.period": "42",
|
||||||
"traefik.http.middlewares.middleware14.ratelimit.sourcecriterion.ipstrategy.excludedips": "foobar, foobar",
|
"traefik.http.middlewares.middleware15.ratelimit.sourcecriterion.ipstrategy.depth": "42",
|
||||||
"traefik.http.middlewares.middleware14.ratelimit.sourcecriterion.requestheadername": "foobar",
|
"traefik.http.middlewares.middleware15.ratelimit.sourcecriterion.ipstrategy.excludedips": "foobar, foobar",
|
||||||
"traefik.http.middlewares.middleware14.ratelimit.sourcecriterion.requesthost": "true",
|
"traefik.http.middlewares.middleware15.ratelimit.sourcecriterion.requestheadername": "foobar",
|
||||||
"traefik.http.middlewares.middleware15.redirectregex.permanent": "true",
|
"traefik.http.middlewares.middleware15.ratelimit.sourcecriterion.requesthost": "true",
|
||||||
"traefik.http.middlewares.middleware15.redirectregex.regex": "foobar",
|
"traefik.http.middlewares.middleware16.redirectregex.permanent": "true",
|
||||||
"traefik.http.middlewares.middleware15.redirectregex.replacement": "foobar",
|
"traefik.http.middlewares.middleware16.redirectregex.regex": "foobar",
|
||||||
"traefik.http.middlewares.middleware16.redirectscheme.permanent": "true",
|
"traefik.http.middlewares.middleware16.redirectregex.replacement": "foobar",
|
||||||
"traefik.http.middlewares.middleware16.redirectscheme.port": "foobar",
|
"traefik.http.middlewares.middleware17.redirectscheme.permanent": "true",
|
||||||
"traefik.http.middlewares.middleware16.redirectscheme.scheme": "foobar",
|
"traefik.http.middlewares.middleware17.redirectscheme.port": "foobar",
|
||||||
"traefik.http.middlewares.middleware17.replacepath.path": "foobar",
|
"traefik.http.middlewares.middleware17.redirectscheme.scheme": "foobar",
|
||||||
"traefik.http.middlewares.middleware18.replacepathregex.regex": "foobar",
|
"traefik.http.middlewares.middleware18.replacepath.path": "foobar",
|
||||||
"traefik.http.middlewares.middleware18.replacepathregex.replacement": "foobar",
|
"traefik.http.middlewares.middleware19.replacepathregex.regex": "foobar",
|
||||||
"traefik.http.middlewares.middleware19.retry.attempts": "42",
|
"traefik.http.middlewares.middleware19.replacepathregex.replacement": "foobar",
|
||||||
"traefik.http.middlewares.middleware20.stripprefix.forceslash": "true",
|
"traefik.http.middlewares.middleware20.retry.attempts": "42",
|
||||||
"traefik.http.middlewares.middleware20.stripprefix.prefixes": "foobar, foobar",
|
"traefik.http.middlewares.middleware21.stripprefix.forceslash": "true",
|
||||||
"traefik.http.middlewares.middleware21.stripprefixregex.regex": "foobar, foobar",
|
"traefik.http.middlewares.middleware21.stripprefix.prefixes": "foobar, foobar",
|
||||||
|
"traefik.http.middlewares.middleware22.stripprefixregex.regex": "foobar, foobar",
|
||||||
"traefik.http.routers.router0.entrypoints": "foobar, foobar",
|
"traefik.http.routers.router0.entrypoints": "foobar, foobar",
|
||||||
"traefik.http.routers.router0.middlewares": "foobar, foobar",
|
"traefik.http.routers.router0.middlewares": "foobar, foobar",
|
||||||
"traefik.http.routers.router0.priority": "42",
|
"traefik.http.routers.router0.priority": "42",
|
||||||
|
@ -148,8 +149,8 @@
|
||||||
"traefik.http.services.service01.loadbalancer.sticky.cookie": "true",
|
"traefik.http.services.service01.loadbalancer.sticky.cookie": "true",
|
||||||
"traefik.http.services.service01.loadbalancer.sticky.cookie.httponly": "true",
|
"traefik.http.services.service01.loadbalancer.sticky.cookie.httponly": "true",
|
||||||
"traefik.http.services.service01.loadbalancer.sticky.cookie.name": "foobar",
|
"traefik.http.services.service01.loadbalancer.sticky.cookie.name": "foobar",
|
||||||
"traefik.http.services.service01.loadbalancer.sticky.cookie.secure": "true",
|
|
||||||
"traefik.http.services.service01.loadbalancer.sticky.cookie.samesite": "foobar",
|
"traefik.http.services.service01.loadbalancer.sticky.cookie.samesite": "foobar",
|
||||||
|
"traefik.http.services.service01.loadbalancer.sticky.cookie.secure": "true",
|
||||||
"traefik.http.services.service01.loadbalancer.server.port": "foobar",
|
"traefik.http.services.service01.loadbalancer.server.port": "foobar",
|
||||||
"traefik.http.services.service01.loadbalancer.server.scheme": "foobar",
|
"traefik.http.services.service01.loadbalancer.server.scheme": "foobar",
|
||||||
"traefik.tcp.routers.tcprouter0.entrypoints": "foobar, foobar",
|
"traefik.tcp.routers.tcprouter0.entrypoints": "foobar, foobar",
|
||||||
|
|
|
@ -168,9 +168,6 @@ plugin's module name.
|
||||||
`--experimental.pilot.token`:
|
`--experimental.pilot.token`:
|
||||||
Traefik Pilot token.
|
Traefik Pilot token.
|
||||||
|
|
||||||
`--experimental.plugins.<name>`:
|
|
||||||
Plugins configuration. (Default: ```false```)
|
|
||||||
|
|
||||||
`--experimental.plugins.<name>.modulename`:
|
`--experimental.plugins.<name>.modulename`:
|
||||||
plugin's module name.
|
plugin's module name.
|
||||||
|
|
||||||
|
|
|
@ -168,9 +168,6 @@ plugin's module name.
|
||||||
`TRAEFIK_EXPERIMENTAL_PILOT_TOKEN`:
|
`TRAEFIK_EXPERIMENTAL_PILOT_TOKEN`:
|
||||||
Traefik Pilot token.
|
Traefik Pilot token.
|
||||||
|
|
||||||
`TRAEFIK_EXPERIMENTAL_PLUGINS_<NAME>`:
|
|
||||||
Plugins configuration. (Default: ```false```)
|
|
||||||
|
|
||||||
`TRAEFIK_EXPERIMENTAL_PLUGINS_<NAME>_MODULENAME`:
|
`TRAEFIK_EXPERIMENTAL_PLUGINS_<NAME>_MODULENAME`:
|
||||||
plugin's module name.
|
plugin's module name.
|
||||||
|
|
||||||
|
|
|
@ -359,3 +359,17 @@
|
||||||
[certificatesResolvers.CertificateResolver1.acme.httpChallenge]
|
[certificatesResolvers.CertificateResolver1.acme.httpChallenge]
|
||||||
entryPoint = "foobar"
|
entryPoint = "foobar"
|
||||||
[certificatesResolvers.CertificateResolver1.acme.tlsChallenge]
|
[certificatesResolvers.CertificateResolver1.acme.tlsChallenge]
|
||||||
|
|
||||||
|
[experimental]
|
||||||
|
[experimental.pilot]
|
||||||
|
token = "foobar"
|
||||||
|
[experimental.plugins]
|
||||||
|
[experimental.plugins.Descriptor0]
|
||||||
|
moduleName = "foobar"
|
||||||
|
version = "foobar"
|
||||||
|
[experimental.plugins.Descriptor1]
|
||||||
|
moduleName = "foobar"
|
||||||
|
version = "foobar"
|
||||||
|
[experimental.devPlugin]
|
||||||
|
goPath = "foobar"
|
||||||
|
moduleName = "foobar"
|
||||||
|
|
|
@ -379,3 +379,16 @@ certificatesResolvers:
|
||||||
httpChallenge:
|
httpChallenge:
|
||||||
entryPoint: foobar
|
entryPoint: foobar
|
||||||
tlsChallenge: {}
|
tlsChallenge: {}
|
||||||
|
experimental:
|
||||||
|
pilot:
|
||||||
|
token: foobar
|
||||||
|
plugins:
|
||||||
|
Descriptor0:
|
||||||
|
moduleName: foobar
|
||||||
|
version: foobar
|
||||||
|
Descriptor1:
|
||||||
|
moduleName: foobar
|
||||||
|
version: foobar
|
||||||
|
devPlugin:
|
||||||
|
goPath: foobar
|
||||||
|
moduleName: foobar
|
||||||
|
|
|
@ -128,6 +128,9 @@ nav:
|
||||||
- 'Retry': 'middlewares/retry.md'
|
- 'Retry': 'middlewares/retry.md'
|
||||||
- 'StripPrefix': 'middlewares/stripprefix.md'
|
- 'StripPrefix': 'middlewares/stripprefix.md'
|
||||||
- 'StripPrefixRegex': 'middlewares/stripprefixregex.md'
|
- 'StripPrefixRegex': 'middlewares/stripprefixregex.md'
|
||||||
|
- 'Plugins & Traefik Pilot':
|
||||||
|
- 'Overview': 'plugins/overview.md'
|
||||||
|
- 'Using Plugins': 'plugins/using-plugins.md'
|
||||||
- 'Operations':
|
- 'Operations':
|
||||||
- 'CLI': 'operations/cli.md'
|
- 'CLI': 'operations/cli.md'
|
||||||
- 'Dashboard' : 'operations/dashboard.md'
|
- 'Dashboard' : 'operations/dashboard.md'
|
||||||
|
|
|
@ -21,7 +21,7 @@ find "${PATH_TO_SITE}" -type f -not -path "/app/site/theme/*" \
|
||||||
--check_external_hash \
|
--check_external_hash \
|
||||||
--alt_ignore="/traefik.logo.png/" \
|
--alt_ignore="/traefik.logo.png/" \
|
||||||
--http_status_ignore="0,500,501,503" \
|
--http_status_ignore="0,500,501,503" \
|
||||||
--url_ignore="/https://groups.google.com/a/traefik.io/forum/#!forum/security/,/localhost:/,/127.0.0.1:/,/fonts.gstatic.com/,/.minikube/,/github.com\/containous\/traefik\/*edit*/,/github.com\/containous\/traefik\/$/,/docs.traefik.io/,/github\.com\/golang\/oauth2\/blob\/36a7019397c4c86cf59eeab3bc0d188bac444277\/.+/,/www.akamai.com/" \
|
--url_ignore="/https://groups.google.com/a/traefik.io/forum/#!forum/security/,/localhost:/,/127.0.0.1:/,/fonts.gstatic.com/,/.minikube/,/github.com\/containous\/traefik\/*edit*/,/github.com\/containous\/traefik\/$/,/docs.traefik.io/,/github\.com\/golang\/oauth2\/blob\/36a7019397c4c86cf59eeab3bc0d188bac444277\/.+/,/www.akamai.com/,/pilot.traefik.io\/profile/" \
|
||||||
'{}' 1>/dev/null
|
'{}' 1>/dev/null
|
||||||
## HTML-proofer options at https://github.com/gjtorikian/html-proofer#configuration
|
## HTML-proofer options at https://github.com/gjtorikian/html-proofer#configuration
|
||||||
|
|
||||||
|
|
|
@ -57,6 +57,11 @@ THIS FILE MUST NOT BE EDITED BY HAND
|
||||||
w.writeln()
|
w.writeln()
|
||||||
|
|
||||||
for i, flat := range flats {
|
for i, flat := range flats {
|
||||||
|
// TODO must be move into the flats creation.
|
||||||
|
if flat.Name == "experimental.plugins.<name>" || flat.Name == "TRAEFIK_EXPERIMENTAL_PLUGINS_<NAME>" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
w.writeln("`" + prefix + strings.ReplaceAll(flat.Name, "[0]", "[n]") + "`: ")
|
w.writeln("`" + prefix + strings.ReplaceAll(flat.Name, "[0]", "[n]") + "`: ")
|
||||||
if flat.Default == "" {
|
if flat.Default == "" {
|
||||||
w.writeln(flat.Description)
|
w.writeln(flat.Description)
|
||||||
|
|
Loading…
Reference in a new issue