Merge branch 'v2.3' into master
2
.github/ISSUE_TEMPLATE.md
vendored
|
@ -17,7 +17,7 @@ Bug
|
||||||
<!--
|
<!--
|
||||||
|
|
||||||
The configurations between 1.X and 2.X are NOT compatible.
|
The configurations between 1.X and 2.X are NOT compatible.
|
||||||
Please have a look here https://docs.traefik.io/v2.0/getting-started/configuration-overview/.
|
Please have a look here https://doc.traefik.io/traefik/getting-started/configuration-overview/.
|
||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
|
2
.github/ISSUE_TEMPLATE/Bug_report.md
vendored
|
@ -22,7 +22,7 @@ Bug
|
||||||
<!--
|
<!--
|
||||||
|
|
||||||
The configurations between 1.X and 2.X are NOT compatible.
|
The configurations between 1.X and 2.X are NOT compatible.
|
||||||
Please have a look here https://docs.traefik.io/v2.0/getting-started/configuration-overview/.
|
Please have a look here https://doc.traefik.io/traefik/getting-started/configuration-overview/.
|
||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
|
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
|
@ -13,7 +13,7 @@ Enhancements:
|
||||||
- for Traefik v1: we only accept bug fixes
|
- for Traefik v1: we only accept bug fixes
|
||||||
- for Traefik v2: use branch master
|
- for Traefik v2: use branch master
|
||||||
|
|
||||||
HOW TO WRITE A GOOD PULL REQUEST? https://docs.traefik.io/contributing/submitting-pull-requests/
|
HOW TO WRITE A GOOD PULL REQUEST? https://doc.traefik.io/traefik/contributing/submitting-pull-requests/
|
||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,6 @@ before_deploy:
|
||||||
curl -sfL https://raw.githubusercontent.com/traefik/structor/master/godownloader.sh | bash -s -- -b "${GOPATH}/bin" ${STRUCTOR_VERSION}
|
curl -sfL https://raw.githubusercontent.com/traefik/structor/master/godownloader.sh | bash -s -- -b "${GOPATH}/bin" ${STRUCTOR_VERSION}
|
||||||
curl -sSfL https://raw.githubusercontent.com/traefik/mixtus/master/godownloader.sh | sh -s -- -b "${GOPATH}/bin" ${MIXTUS_VERSION}
|
curl -sSfL https://raw.githubusercontent.com/traefik/mixtus/master/godownloader.sh | sh -s -- -b "${GOPATH}/bin" ${MIXTUS_VERSION}
|
||||||
structor -o traefik -r traefik --dockerfile-url="https://raw.githubusercontent.com/traefik/traefik/v1.7/docs.Dockerfile" --menu.js-url="https://raw.githubusercontent.com/traefik/structor/master/traefik-menu.js.gotmpl" --rqts-url="https://raw.githubusercontent.com/traefik/structor/master/requirements-override.txt" --force-edit-url --exp-branch=master --debug;
|
structor -o traefik -r traefik --dockerfile-url="https://raw.githubusercontent.com/traefik/traefik/v1.7/docs.Dockerfile" --menu.js-url="https://raw.githubusercontent.com/traefik/structor/master/traefik-menu.js.gotmpl" --rqts-url="https://raw.githubusercontent.com/traefik/structor/master/requirements-override.txt" --force-edit-url --exp-branch=master --debug;
|
||||||
mixtus --dst-doc-path="./traefik" --dst-owner=traefik --dst-repo-name=doc --git-user-email="30906710+traefiker@users.noreply.github.com" --git-user-name=traefiker --src-doc-path="./site" --src-owner=traefik --src-repo-name=traefik;
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
deploy:
|
deploy:
|
||||||
|
@ -50,11 +49,9 @@ deploy:
|
||||||
on:
|
on:
|
||||||
repo: traefik/traefik
|
repo: traefik/traefik
|
||||||
tags: true
|
tags: true
|
||||||
- provider: pages
|
- provider: script
|
||||||
edge: false
|
script: mixtus --dst-doc-path="./traefik" --dst-owner=traefik --dst-repo-name=doc --git-user-email="30906710+traefiker@users.noreply.github.com" --git-user-name=traefiker --src-doc-path="./site" --src-owner=containous --src-repo-name=traefik
|
||||||
github_token: ${GITHUB_TOKEN}
|
|
||||||
local_dir: site
|
|
||||||
skip_cleanup: true
|
skip_cleanup: true
|
||||||
on:
|
on:
|
||||||
repo: traefik/traefik
|
repo: traefik/traefik
|
||||||
all_branches: true
|
all_branches: true
|
71
CHANGELOG.md
|
@ -1,3 +1,74 @@
|
||||||
|
## [v2.3.0](https://github.com/traefik/traefik/tree/v2.3.0) (2020-09-23)
|
||||||
|
[All Commits](https://github.com/traefik/traefik/compare/v2.2.0-rc1...v2.3.0)
|
||||||
|
|
||||||
|
**Enhancements:**
|
||||||
|
- **[api]** Add custom ping http code when Traefik is terminating ([#6696](https://github.com/traefik/traefik/pull/6696) by [L3o-pold](https://github.com/L3o-pold))
|
||||||
|
- **[ecs]** Add AWS ECS provider ([#6749](https://github.com/traefik/traefik/pull/6749) by [alekitto](https://github.com/alekitto))
|
||||||
|
- **[file]** feat: use parser to load dynamic config from file. ([#6875](https://github.com/traefik/traefik/pull/6875) by [ldez](https://github.com/ldez))
|
||||||
|
- **[k8s,k8s/crd,k8s/ingress]** Upgrade Client-go to 0.18.2 ([#6779](https://github.com/traefik/traefik/pull/6779) by [dtomcej](https://github.com/dtomcej))
|
||||||
|
- **[k8s,k8s/ingress]** Add new ingressClass support to ingress provider ([#6831](https://github.com/traefik/traefik/pull/6831) by [dtomcej](https://github.com/dtomcej))
|
||||||
|
- **[k8s,k8s/ingress]** feat: update more than one LoadBalancer ip ([#6951](https://github.com/traefik/traefik/pull/6951) by [iameli](https://github.com/iameli))
|
||||||
|
- **[k8s,k8s/ingress]** Add example for the IngressClass usage ([#7219](https://github.com/traefik/traefik/pull/7219) by [SantoDE](https://github.com/SantoDE))
|
||||||
|
- **[kv]** Allows multi-level KV prefixes ([#6664](https://github.com/traefik/traefik/pull/6664) by [niki-timofe](https://github.com/niki-timofe))
|
||||||
|
- **[logs,middleware,docker]** Support configuring a HTTP client timeout in the Docker provider ([#7094](https://github.com/traefik/traefik/pull/7094) by [sirlatrom](https://github.com/sirlatrom))
|
||||||
|
- **[metrics,pilot]** Pilot metrics provider ([#7139](https://github.com/traefik/traefik/pull/7139) by [rtribotte](https://github.com/rtribotte))
|
||||||
|
- **[pilot]** Moves pilot outside the experimental section. ([#7287](https://github.com/traefik/traefik/pull/7287) by [ldez](https://github.com/ldez))
|
||||||
|
- **[pilot,plugins]** Traefik Pilot: plugins support and alert system (EXPERIMENTAL FEATURES) ([#7041](https://github.com/traefik/traefik/pull/7041) by [ldez](https://github.com/ldez))
|
||||||
|
- **[plugins]** Improve plugins builder. ([#7255](https://github.com/traefik/traefik/pull/7255) by [ldez](https://github.com/ldez))
|
||||||
|
- **[provider]** Add HTTP Provider ([#6976](https://github.com/traefik/traefik/pull/6976) by [kevinpollet](https://github.com/kevinpollet))
|
||||||
|
- **[service,tls]** add ServersTransport on services ([#7203](https://github.com/traefik/traefik/pull/7203) by [juliens](https://github.com/juliens))
|
||||||
|
- **[webui]** Add iOS specific icons ([#6946](https://github.com/traefik/traefik/pull/6946) by [Heisenberg74](https://github.com/Heisenberg74))
|
||||||
|
|
||||||
|
**Bug fixes:**
|
||||||
|
- **[acme]** fix: precheck function. ([#7333](https://github.com/traefik/traefik/pull/7333) by [ldez](https://github.com/ldez))
|
||||||
|
- **[ecs]** Improve region resolution for ECS provider ([#7145](https://github.com/traefik/traefik/pull/7145) by [kevinpollet](https://github.com/kevinpollet))
|
||||||
|
- **[k8s,k8s/ingress]** Delete an unnecessary warning log ([#6568](https://github.com/traefik/traefik/pull/6568) by [jbdoumenjou](https://github.com/jbdoumenjou))
|
||||||
|
- **[k8s,k8s/ingress]** Support Kubernetes Ingress pathType ([#7087](https://github.com/traefik/traefik/pull/7087) by [rtribotte](https://github.com/rtribotte))
|
||||||
|
- **[k8s,k8s/ingress]** Use semantic versioning to enable ingress class support ([#7065](https://github.com/traefik/traefik/pull/7065) by [kevinpollet](https://github.com/kevinpollet))
|
||||||
|
- **[metrics]** fix: uint64 alignment in go-kit. ([#7289](https://github.com/traefik/traefik/pull/7289) by [ldez](https://github.com/ldez))
|
||||||
|
- **[middleware]** Allow multiple secure middlewares to operate independently ([#6604](https://github.com/traefik/traefik/pull/6604) by [dtomcej](https://github.com/dtomcej))
|
||||||
|
- **[pilot,webui]** Avoid Traefik Pilot iframe code in Traefik webui regarding notifications ([#7272](https://github.com/traefik/traefik/pull/7272) by [matthieuh](https://github.com/matthieuh))
|
||||||
|
- **[pilot,webui]** Add ability to dismiss pilot notification ([#7200](https://github.com/traefik/traefik/pull/7200) by [matthieuh](https://github.com/matthieuh))
|
||||||
|
- **[pilot]** fix: pilot metrics unit for req duration. ([#7309](https://github.com/traefik/traefik/pull/7309) by [ldez](https://github.com/ldez))
|
||||||
|
- **[pilot]** fix: start of Traefik Pilot ([#7304](https://github.com/traefik/traefik/pull/7304) by [ldez](https://github.com/ldez))
|
||||||
|
- **[provider]** file parser: skip nil value. ([#7058](https://github.com/traefik/traefik/pull/7058) by [ldez](https://github.com/ldez))
|
||||||
|
- **[tracing]** Update jaeger-client-go dependency to v2.25.0 ([#7198](https://github.com/traefik/traefik/pull/7198) by [kevinpollet](https://github.com/kevinpollet))
|
||||||
|
|
||||||
|
**Documentation:**
|
||||||
|
- **[consul]** Fix consul catalog router tag example ([#7332](https://github.com/traefik/traefik/pull/7332) by [rtribotte](https://github.com/rtribotte))
|
||||||
|
- **[ecs]** Fix documentation for ECS ([#7107](https://github.com/traefik/traefik/pull/7107) by [mmatur](https://github.com/mmatur))
|
||||||
|
- **[k8s]** docs: add missing apigroup to Kubernetes RBAC ([#7199](https://github.com/traefik/traefik/pull/7199) by [kevinpollet](https://github.com/kevinpollet))
|
||||||
|
- **[k8s]** Add the ingressclass resource in the ingress RBAC documentation ([#7290](https://github.com/traefik/traefik/pull/7290) by [jbdoumenjou](https://github.com/jbdoumenjou))
|
||||||
|
- **[k8s]** Add migration documentation for IngressClass ([#7083](https://github.com/traefik/traefik/pull/7083) by [kevinpollet](https://github.com/kevinpollet))
|
||||||
|
- **[middleware]** Fixes config samples regarding forceSlash option ([#6811](https://github.com/traefik/traefik/pull/6811) by [volkerw00](https://github.com/volkerw00))
|
||||||
|
- **[plugins]** Update availability info ([#7060](https://github.com/traefik/traefik/pull/7060) by [PCM2](https://github.com/PCM2))
|
||||||
|
- doc: add security policies. ([#7110](https://github.com/traefik/traefik/pull/7110) by [ldez](https://github.com/ldez))
|
||||||
|
- Fix yaml documentation ([#7331](https://github.com/traefik/traefik/pull/7331) by [rtribotte](https://github.com/rtribotte))
|
||||||
|
|
||||||
|
**Misc:**
|
||||||
|
- Merge current v2.2 branch into v2.3 ([#7288](https://github.com/traefik/traefik/pull/7288) by [rtribotte](https://github.com/rtribotte))
|
||||||
|
- Merge current v2.2 branch into v2.3 ([#7257](https://github.com/traefik/traefik/pull/7257) by [ldez](https://github.com/ldez))
|
||||||
|
- Merge current v2.2 branch into v2.3 ([#7249](https://github.com/traefik/traefik/pull/7249) by [ldez](https://github.com/ldez))
|
||||||
|
- Merge current v2.2 branch into v2.3 ([#7218](https://github.com/traefik/traefik/pull/7218) by [ldez](https://github.com/ldez))
|
||||||
|
- Merge current v2.2 branch into v2.3 ([#7175](https://github.com/traefik/traefik/pull/7175) by [ldez](https://github.com/ldez))
|
||||||
|
- Merge current v2.2 branch into v2.3 ([#7160](https://github.com/traefik/traefik/pull/7160) by [ldez](https://github.com/ldez))
|
||||||
|
- Merge current v2.2 branch into v2.3 ([#7116](https://github.com/traefik/traefik/pull/7116) by [ldez](https://github.com/ldez))
|
||||||
|
- Merge current v2.2 branch into v2.3 ([#7086](https://github.com/traefik/traefik/pull/7086) by [jbdoumenjou](https://github.com/jbdoumenjou))
|
||||||
|
- Merge current v2.2 branch into master ([#7052](https://github.com/traefik/traefik/pull/7052) by [ldez](https://github.com/ldez))
|
||||||
|
- Merge current v2.2 branch into master ([#7022](https://github.com/traefik/traefik/pull/7022) by [jbdoumenjou](https://github.com/jbdoumenjou))
|
||||||
|
- Merge current v2.2 branch into master ([#6921](https://github.com/traefik/traefik/pull/6921) by [jbdoumenjou](https://github.com/jbdoumenjou))
|
||||||
|
- Merge current v2.2 branch into master ([#6822](https://github.com/traefik/traefik/pull/6822) by [mmatur](https://github.com/mmatur))
|
||||||
|
- Merge current v2.2 branch into master ([#6754](https://github.com/traefik/traefik/pull/6754) by [ldez](https://github.com/ldez))
|
||||||
|
- Merge current v2.2 branch into master ([#6533](https://github.com/traefik/traefik/pull/6533) by [ldez](https://github.com/ldez))
|
||||||
|
- Merge current v2.2 branch into master ([#6468](https://github.com/traefik/traefik/pull/6468) by [ldez](https://github.com/ldez))
|
||||||
|
|
||||||
|
## [v2.3.0-rc7](https://github.com/traefik/traefik/tree/v2.3.0-rc7) (2020-09-18)
|
||||||
|
[All Commits](https://github.com/traefik/traefik/compare/v2.3.0-rc6...v2.3.0-rc7)
|
||||||
|
|
||||||
|
**Bug fixes:**
|
||||||
|
- **[pilot]** fix: pilot metrics unit for req duration. ([#7309](https://github.com/traefik/traefik/pull/7309) by [ldez](https://github.com/ldez))
|
||||||
|
- **[pilot]** fix: start of Traefik Pilot ([#7304](https://github.com/traefik/traefik/pull/7304) by [ldez](https://github.com/ldez))
|
||||||
|
|
||||||
## [v2.3.0-rc6](https://github.com/traefik/traefik/tree/v2.3.0-rc6) (2020-09-16)
|
## [v2.3.0-rc6](https://github.com/traefik/traefik/tree/v2.3.0-rc6) (2020-09-16)
|
||||||
[All Commits](https://github.com/traefik/traefik/compare/v2.3.0-rc5...v2.3.0-rc6)
|
[All Commits](https://github.com/traefik/traefik/compare/v2.3.0-rc5...v2.3.0-rc6)
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Contributing
|
# Contributing
|
||||||
|
|
||||||
- https://docs.traefik.io/contributing/submitting-pull-requests/
|
- https://doc.traefik.io/traefik/contributing/submitting-pull-requests/
|
||||||
- https://docs.traefik.io/contributing/submitting-issues/
|
- https://doc.traefik.io/traefik/contributing/submitting-issues/
|
||||||
|
|
20
README.md
|
@ -4,7 +4,7 @@
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
[![Build Status SemaphoreCI](https://semaphoreci.com/api/v1/containous/traefik/branches/master/shields_badge.svg)](https://semaphoreci.com/containous/traefik)
|
[![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://docs.traefik.io)
|
[![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)
|
[![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)
|
[![](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)
|
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/traefik/traefik/blob/master/LICENSE.md)
|
||||||
|
@ -33,7 +33,7 @@ Pointing Traefik at your orchestrator should be the _only_ configuration step yo
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
:warning: Please be aware that the old configurations for Traefik v1.x are NOT compatible with the v2.x config as of now. If you're running v2, please ensure you are using a [v2 configuration](https://docs.traefik.io/).
|
:warning: Please be aware that the old configurations for Traefik v1.x are NOT compatible with the v2.x config as of now. If you're running v2, please ensure you are using a [v2 configuration](https://doc.traefik.io/traefik/).
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
|
@ -69,15 +69,15 @@ _(But if you'd rather configure some of your routes manually, Traefik supports t
|
||||||
|
|
||||||
## Supported Backends
|
## Supported Backends
|
||||||
|
|
||||||
- [Docker](https://docs.traefik.io/providers/docker/) / [Swarm mode](https://docs.traefik.io/providers/docker/)
|
- [Docker](https://doc.traefik.io/traefik/providers/docker/) / [Swarm mode](https://doc.traefik.io/traefik/providers/docker/)
|
||||||
- [Kubernetes](https://docs.traefik.io/providers/kubernetes-crd/)
|
- [Kubernetes](https://doc.traefik.io/traefik/providers/kubernetes-crd/)
|
||||||
- [Marathon](https://docs.traefik.io/providers/marathon/)
|
- [Marathon](https://doc.traefik.io/traefik/providers/marathon/)
|
||||||
- [Rancher](https://docs.traefik.io/providers/rancher/) (Metadata)
|
- [Rancher](https://doc.traefik.io/traefik/providers/rancher/) (Metadata)
|
||||||
- [File](https://docs.traefik.io/providers/file/)
|
- [File](https://doc.traefik.io/traefik/providers/file/)
|
||||||
|
|
||||||
## Quickstart
|
## Quickstart
|
||||||
|
|
||||||
To get your hands on Traefik, you can use the [5-Minute Quickstart](https://docs.traefik.io/getting-started/quick-start/) in our documentation (you will need Docker).
|
To get your hands on Traefik, you can use the [5-Minute Quickstart](https://doc.traefik.io/traefik/getting-started/quick-start/) in our documentation (you will need Docker).
|
||||||
|
|
||||||
## Web UI
|
## Web UI
|
||||||
|
|
||||||
|
@ -87,9 +87,9 @@ You can access the simple HTML frontend of Traefik.
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
You can find the complete documentation of Traefik v2 at [https://docs.traefik.io](https://docs.traefik.io).
|
You can find the complete documentation of Traefik v2 at [https://doc.traefik.io/traefik/](https://doc.traefik.io/traefik/).
|
||||||
|
|
||||||
If you are using Traefik v1, you can find the complete documentation at [https://docs.traefik.io/v1.7/](https://docs.traefik.io/v1.7/).
|
If you are using Traefik v1, you can find the complete documentation at [https://doc.traefik.io/traefik/v1.7/](https://doc.traefik.io/traefik/v1.7/).
|
||||||
|
|
||||||
A collection of contributions around Traefik can be found at [https://awesome.traefik.io](https://awesome.traefik.io).
|
A collection of contributions around Traefik can be found at [https://awesome.traefik.io](https://awesome.traefik.io).
|
||||||
|
|
||||||
|
|
|
@ -36,5 +36,5 @@ func isPilotEnabled(staticCfg *static.Configuration) bool {
|
||||||
|
|
||||||
func hasPlugins(staticCfg *static.Configuration) bool {
|
func hasPlugins(staticCfg *static.Configuration) bool {
|
||||||
return staticCfg.Experimental != nil &&
|
return staticCfg.Experimental != nil &&
|
||||||
len(staticCfg.Experimental.Plugins) > 0 || staticCfg.Experimental.DevPlugin != nil
|
(len(staticCfg.Experimental.Plugins) > 0 || staticCfg.Experimental.DevPlugin != nil)
|
||||||
}
|
}
|
||||||
|
|
|
@ -483,13 +483,13 @@ func stats(staticConfiguration *static.Configuration) {
|
||||||
logger.Info(`Stats collection is enabled.`)
|
logger.Info(`Stats collection is enabled.`)
|
||||||
logger.Info(`Many thanks for contributing to Traefik's improvement by allowing us to receive anonymous information from your configuration.`)
|
logger.Info(`Many thanks for contributing to Traefik's improvement by allowing us to receive anonymous information from your configuration.`)
|
||||||
logger.Info(`Help us improve Traefik by leaving this feature on :)`)
|
logger.Info(`Help us improve Traefik by leaving this feature on :)`)
|
||||||
logger.Info(`More details on: https://docs.traefik.io/contributing/data-collection/`)
|
logger.Info(`More details on: https://doc.traefik.io/traefik/contributing/data-collection/`)
|
||||||
collect(staticConfiguration)
|
collect(staticConfiguration)
|
||||||
} else {
|
} else {
|
||||||
logger.Info(`
|
logger.Info(`
|
||||||
Stats collection is disabled.
|
Stats collection is disabled.
|
||||||
Help us improve Traefik by turning this feature on :)
|
Help us improve Traefik by turning this feature on :)
|
||||||
More details on: https://docs.traefik.io/contributing/data-collection/
|
More details on: https://doc.traefik.io/traefik/contributing/data-collection/
|
||||||
`)
|
`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Traefik
|
Description=Traefik
|
||||||
Documentation=https://docs.traefik.io
|
Documentation=https://doc.traefik.io/traefik/
|
||||||
#After=network-online.target
|
#After=network-online.target
|
||||||
#AssertFileIsExecutable=/usr/bin/traefik
|
#AssertFileIsExecutable=/usr/bin/traefik
|
||||||
#AssertPathExists=/etc/traefik/traefik.toml
|
#AssertPathExists=/etc/traefik/traefik.toml
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
docs.traefik.io
|
|
Before Width: | Height: | Size: 2 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 34 KiB |
BIN
docs/content/assets/img/traefikproxy-icon-color.png
Normal file
After Width: | Height: | Size: 7.6 KiB |
After Width: | Height: | Size: 20 KiB |
|
@ -189,6 +189,10 @@
|
||||||
.nav-dropdown-menu--solutions .nav-dropdown-menu-wrapper {
|
.nav-dropdown-menu--solutions .nav-dropdown-menu-wrapper {
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
}
|
}
|
||||||
|
.nav-dropdown-menu--products .nav-dropdown-menu-wrapper {
|
||||||
|
height: 430px;
|
||||||
|
}
|
||||||
|
|
||||||
.nav-dropdown-menu--products .dm-header,
|
.nav-dropdown-menu--products .dm-header,
|
||||||
.nav-dropdown-menu--solutions .dm-header {
|
.nav-dropdown-menu--solutions .dm-header {
|
||||||
font-size: 1.1em;
|
font-size: 1.1em;
|
||||||
|
@ -204,7 +208,7 @@
|
||||||
.nav-dropdown-menu--products .dm-item,
|
.nav-dropdown-menu--products .dm-item,
|
||||||
.nav-dropdown-menu--solutions .dm-item {
|
.nav-dropdown-menu--solutions .dm-item {
|
||||||
border: none;
|
border: none;
|
||||||
margin: 0 0 20px;
|
margin: 0 0 24px;
|
||||||
color: #06102a;
|
color: #06102a;
|
||||||
transition: all 0.1s;
|
transition: all 0.1s;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
@ -214,12 +218,11 @@
|
||||||
.nav-dropdown-menu--solutions .dm-item:last-child {
|
.nav-dropdown-menu--solutions .dm-item:last-child {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
.nav-dropdown-menu--products .dm-item .dmi-image,
|
.nav-dropdown-menu--products .dm-item .dmi-image {
|
||||||
.nav-dropdown-menu--solutions .dm-item .dmi-image {
|
width: 104px;
|
||||||
width: 118px;
|
height: 72px;
|
||||||
height: 92px;
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
background: #f4f4f4;
|
/*background: #f4f4f4;*/
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
@ -227,13 +230,22 @@
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
z-index: 0;
|
z-index: 0;
|
||||||
}
|
}
|
||||||
.nav-dropdown-menu--products .dm-item .dmi-image img,
|
|
||||||
|
.nav-dropdown-menu--solutions .dm-item .dmi-image {
|
||||||
|
width: 65px;
|
||||||
|
padding: 10px;
|
||||||
|
background: white;
|
||||||
|
height: auto;
|
||||||
|
position: absolute;
|
||||||
|
z-index: 0;
|
||||||
|
}
|
||||||
|
|
||||||
.nav-dropdown-menu--solutions .dm-item .dmi-image img {
|
.nav-dropdown-menu--solutions .dm-item .dmi-image img {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
.nav-dropdown-menu--products .dm-item .dmi-details,
|
.nav-dropdown-menu--products .dm-item .dmi-details,
|
||||||
.nav-dropdown-menu--solutions .dm-item .dmi-details {
|
.nav-dropdown-menu--solutions .dm-item .dmi-details {
|
||||||
padding: 8px 0 10px 135px;
|
padding: 6px 0 0 127px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
background: transparent;
|
background: transparent;
|
||||||
display: block;
|
display: block;
|
||||||
|
@ -262,12 +274,6 @@
|
||||||
transform: scale(1.1);
|
transform: scale(1.1);
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-dropdown-menu--solutions .dm-item .dmi-image {
|
|
||||||
width: 65px;
|
|
||||||
padding: 10px;
|
|
||||||
background: white;
|
|
||||||
height: auto;
|
|
||||||
}
|
|
||||||
.nav-dropdown-menu--solutions .dm-item .dmi-details {
|
.nav-dropdown-menu--solutions .dm-item .dmi-details {
|
||||||
padding: 5px 0 0 80px;
|
padding: 5px 0 0 80px;
|
||||||
}
|
}
|
||||||
|
@ -275,7 +281,7 @@
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Dropdown menu: Learn */
|
/* Dropdown menu: Learn and Company */
|
||||||
.nav-dropdown-menu--learn {
|
.nav-dropdown-menu--learn {
|
||||||
width: 250px;
|
width: 250px;
|
||||||
}
|
}
|
||||||
|
@ -420,7 +426,7 @@
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 1060px) {
|
@media (max-width: 1219px) {
|
||||||
.site-header__nav .menu-item-wrapper {
|
.site-header__nav .menu-item-wrapper {
|
||||||
padding-left: 20px;
|
padding-left: 20px;
|
||||||
}
|
}
|
||||||
|
@ -453,10 +459,26 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.md-header .md-search {
|
.md-header .md-search {
|
||||||
margin-left: 12.1rem;
|
margin-right: 12.1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.site-header__main {
|
.site-header__main {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.dmi-image.proxy {
|
||||||
|
background-color: #24a1c1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmi-image.mesh {
|
||||||
|
background-color: #9d0fb0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmi-image.enterprise {
|
||||||
|
background-color: #0060e0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dmi-image.pilot {
|
||||||
|
background-color: #db7d11;
|
||||||
|
}
|
||||||
|
|
|
@ -6,6 +6,19 @@
|
||||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.product-switcher .menu-item-wrapper {
|
||||||
|
padding-left: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
.product-switcher img {
|
.product-switcher img {
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.product-switcher img.gopher {
|
||||||
|
margin: 0 2px 0 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.product-switcher .nav-dropdown-menu--products .nav-dropdown-menu-wrapper {
|
||||||
|
width: auto;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
|
@ -5,6 +5,6 @@ Spread the Love & Tell Us about It
|
||||||
|
|
||||||
There are many ways to contribute to the project, and there is one that always spark joy: when we see/read about users talking about how Traefik helps them solve their problems.
|
There are many ways to contribute to the project, and there is one that always spark joy: when we see/read about users talking about how Traefik helps them solve their problems.
|
||||||
|
|
||||||
If you're talking about Traefik, [let us know](https://blog.containo.us/spread-the-love-ba5a40aa72e7) and we'll promote your enthusiasm!
|
If you're talking about Traefik, [let us know](https://blog.traefik.io/spread-the-love-ba5a40aa72e7) and we'll promote your enthusiasm!
|
||||||
|
|
||||||
Also, if you've written about Traefik or shared useful information you'd like to promote, feel free to add links in the [dedicated wiki page on Github](https://github.com/traefik/traefik/wiki/Awesome-Traefik).
|
Also, if you've written about Traefik or shared useful information you'd like to promote, feel free to add links in the [dedicated wiki page on Github](https://github.com/traefik/traefik/wiki/Awesome-Traefik).
|
||||||
|
|
|
@ -10,7 +10,7 @@ Let's see how.
|
||||||
|
|
||||||
### General
|
### General
|
||||||
|
|
||||||
This [documentation](https://docs.traefik.io/) is built with [mkdocs](https://mkdocs.org/).
|
This [documentation](https://doc.traefik.io/traefik/) is built with [mkdocs](https://mkdocs.org/).
|
||||||
|
|
||||||
### Method 1: `Docker` and `make`
|
### Method 1: `Docker` and `make`
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ To save us some time and get quicker feedback, be sure to follow the guide lines
|
||||||
|
|
||||||
For end-user related support questions, try using first:
|
For end-user related support questions, try using first:
|
||||||
|
|
||||||
- the Traefik community forum: [![Join the chat at https://community.containo.us/](https://img.shields.io/badge/style-register-green.svg?style=social&label=Discourse)](https://community.containo.us/)
|
- the Traefik community forum: [![Join the chat at https://community.traefik.io/](https://img.shields.io/badge/style-register-green.svg?style=social&label=Discourse)](https://community.traefik.io/)
|
||||||
|
|
||||||
## Issue Title
|
## Issue Title
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ For more details, go to the [Docker provider documentation](../providers/docker.
|
||||||
!!! warning
|
!!! 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://docs.traefik.io/v1.7).
|
[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 <https://github.com/traefik/traefik-helm-chart>.
|
Traefik can be installed in Kubernetes using the Helm chart from <https://github.com/traefik/traefik-helm-chart>.
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@ Where Every Technical Word finds its Definition`
|
||||||
- [ ] [Static configuration](getting-started/configuration-overview.md#the-static-configuration)
|
- [ ] [Static configuration](getting-started/configuration-overview.md#the-static-configuration)
|
||||||
- [ ] [Dynamic configuration](getting-started/configuration-overview.md#the-dynamic-configuration)
|
- [ ] [Dynamic configuration](getting-started/configuration-overview.md#the-dynamic-configuration)
|
||||||
- [ ] ACME
|
- [ ] ACME
|
||||||
- [ ] TraefikEE
|
- [ ] Traefik Enterprise
|
||||||
- [ ] Tracing
|
- [ ] Tracing
|
||||||
- [ ] Metrics
|
- [ ] Metrics
|
||||||
- [ ] Orchestrator
|
- [ ] Orchestrator
|
||||||
|
|
|
@ -20,9 +20,9 @@ Developing Traefik, our main goal is to make it simple to use, and we're sure yo
|
||||||
|
|
||||||
!!! info
|
!!! info
|
||||||
|
|
||||||
Join our user friendly and active [Community Forum](https://community.containo.us) to discuss, learn, and connect with the traefik community.
|
Join our user friendly and active [Community Forum](https://community.traefik.io) to discuss, learn, and connect with the traefik community.
|
||||||
|
|
||||||
If you're a business running critical services behind Traefik,
|
If you're a business running critical services behind Traefik,
|
||||||
know that [Containous](https://containo.us), the company that sponsors Traefik's development,
|
know that [Traefik Labs](https://traefik.io), the company that sponsors Traefik's development,
|
||||||
can provide [commercial support](https://info.containo.us/commercial-services)
|
can provide [commercial support](https://info.traefik.io/commercial-services)
|
||||||
and develops an [Enterprise Edition](https://containo.us/traefikee/) of Traefik.
|
and develops an [Enterprise Edition](https://traefik.io/traefik-enterprise/) of Traefik.
|
||||||
|
|
|
@ -104,7 +104,7 @@ Then any router can refer to an instance of the wanted middleware.
|
||||||
|
|
||||||
```yaml tab="K8s IngressRoute"
|
```yaml tab="K8s IngressRoute"
|
||||||
# The definitions below require the definitions for the Middleware and IngressRoute kinds.
|
# The definitions below require the definitions for the Middleware and IngressRoute kinds.
|
||||||
# https://docs.traefik.io/v2.2/reference/dynamic-configuration/kubernetes-crd/#definitions
|
# https://doc.traefik.io/traefik/v2.3/reference/dynamic-configuration/kubernetes-crd/#definitions
|
||||||
apiVersion: traefik.containo.us/v1alpha1
|
apiVersion: traefik.containo.us/v1alpha1
|
||||||
kind: Middleware
|
kind: Middleware
|
||||||
metadata:
|
metadata:
|
||||||
|
@ -275,7 +275,7 @@ Then, a [router's TLS field](../routing/routers/index.md#tls) can refer to one o
|
||||||
|
|
||||||
```yaml tab="K8s IngressRoute"
|
```yaml tab="K8s IngressRoute"
|
||||||
# The definitions below require the definitions for the TLSOption and IngressRoute kinds.
|
# The definitions below require the definitions for the TLSOption and IngressRoute kinds.
|
||||||
# https://docs.traefik.io/v2.2/reference/dynamic-configuration/kubernetes-crd/#definitions
|
# https://doc.traefik.io/traefik/v2.3/reference/dynamic-configuration/kubernetes-crd/#definitions
|
||||||
apiVersion: traefik.containo.us/v1alpha1
|
apiVersion: traefik.containo.us/v1alpha1
|
||||||
kind: TLSOption
|
kind: TLSOption
|
||||||
metadata:
|
metadata:
|
||||||
|
@ -1145,4 +1145,4 @@ Supported [providers](../providers/overview.md), for now:
|
||||||
- Now, configuration elements can be referenced between different providers by using the provider namespace notation: `@<provider>`.
|
- Now, configuration elements can be referenced between different providers by using the provider namespace notation: `@<provider>`.
|
||||||
For instance, a router named `myrouter` in a File Provider can refer to a service named `myservice` defined in Docker Provider with the following notation: `myservice@docker`.
|
For instance, a router named `myrouter` in a File Provider can refer to a service named `myservice` defined in Docker Provider with the following notation: `myservice@docker`.
|
||||||
- Middlewares are applied in the same order as their declaration in router.
|
- Middlewares are applied in the same order as their declaration in router.
|
||||||
- If you have any questions feel free to join our [community forum](https://community.containo.us).
|
- If you have any questions feel free to join our [community forum](https://community.traefik.io).
|
||||||
|
|
|
@ -6,7 +6,7 @@ Overview
|
||||||
Traefik Pilot is a software-as-a-service (SaaS) platform that connects to Traefik to extend its capabilities.
|
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.
|
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/).
|
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://doc.traefik.io/traefik/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.
|
Traefik Pilot can also monitor connected Traefik instances and issue alerts when one is not responding, or when it is subject to security vulnerabilities.
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ Attach tags to your services and let Traefik do the rest!
|
||||||
Attaching tags to services
|
Attaching tags to services
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- traefik.http.services.my-service.rule=Host(`example.com`)
|
- traefik.http.routers.my-router.rule=Host(`example.com`)
|
||||||
```
|
```
|
||||||
|
|
||||||
## Routing Configuration
|
## Routing Configuration
|
||||||
|
|
|
@ -60,14 +60,17 @@ and [Docker Swarm Mode](https://docs.docker.com/engine/swarm/).
|
||||||
providers:
|
providers:
|
||||||
docker:
|
docker:
|
||||||
# swarm classic (1.12-)
|
# swarm classic (1.12-)
|
||||||
# endpoint = "tcp://127.0.0.1:2375"
|
# endpoint: "tcp://127.0.0.1:2375"
|
||||||
# docker swarm mode (1.12+)
|
# docker swarm mode (1.12+)
|
||||||
endpoint: "tcp://127.0.0.1:2375"
|
endpoint: "tcp://127.0.0.1:2377"
|
||||||
swarmMode: true
|
swarmMode: true
|
||||||
```
|
```
|
||||||
|
|
||||||
```bash tab="CLI"
|
```bash tab="CLI"
|
||||||
--providers.docker.endpoint=tcp://127.0.0.1:2375
|
# swarm classic (1.12-)
|
||||||
|
# --providers.docker.endpoint=tcp://127.0.0.1:2375
|
||||||
|
# docker swarm mode (1.12+)
|
||||||
|
--providers.docker.endpoint=tcp://127.0.0.1:2377
|
||||||
--providers.docker.swarmMode=true
|
--providers.docker.swarmMode=true
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -163,7 +166,7 @@ You can specify which Docker API Endpoint to use with the directive [`endpoint`]
|
||||||
|
|
||||||
??? info "More Resources and Examples"
|
??? info "More Resources and Examples"
|
||||||
- ["Paranoid about mounting /var/run/docker.sock?"](https://medium.com/@containeroo/traefik-2-0-paranoid-about-mounting-var-run-docker-sock-22da9cb3e78c)
|
- ["Paranoid about mounting /var/run/docker.sock?"](https://medium.com/@containeroo/traefik-2-0-paranoid-about-mounting-var-run-docker-sock-22da9cb3e78c)
|
||||||
- [Traefik and Docker: A Discussion with Docker Captain, Bret Fisher](https://blog.containo.us/traefik-and-docker-a-discussion-with-docker-captain-bret-fisher-7f0b9a54ff88)
|
- [Traefik and Docker: A Discussion with Docker Captain, Bret Fisher](https://blog.traefik.io/traefik-and-docker-a-discussion-with-docker-captain-bret-fisher-7f0b9a54ff88)
|
||||||
- [KubeCon EU 2018 Keynote, Running with Scissors, from Liz Rice](https://www.youtube.com/watch?v=ltrV-Qmh3oY)
|
- [KubeCon EU 2018 Keynote, Running with Scissors, from Liz Rice](https://www.youtube.com/watch?v=ltrV-Qmh3oY)
|
||||||
- [Don't expose the Docker socket (not even to a container)](https://www.lvh.io/posts/dont-expose-the-docker-socket-not-even-to-a-container/)
|
- [Don't expose the Docker socket (not even to a container)](https://www.lvh.io/posts/dont-expose-the-docker-socket-not-even-to-a-container/)
|
||||||
- [A thread on Stack Overflow about sharing the `/var/run/docker.sock` file](https://news.ycombinator.com/item?id=17983623)
|
- [A thread on Stack Overflow about sharing the `/var/run/docker.sock` file](https://news.ycombinator.com/item?id=17983623)
|
||||||
|
|
|
@ -53,9 +53,9 @@ For this reason, users can run multiple instances of Traefik at the same time to
|
||||||
|
|
||||||
When using a single instance of Traefik with LetsEncrypt, no issues should be encountered, however this could be a single point of failure.
|
When using a single instance of Traefik with LetsEncrypt, no issues should be encountered, however this could be a single point of failure.
|
||||||
Unfortunately, it is not possible to run multiple instances of Traefik 2.0 with LetsEncrypt enabled, because there is no way to ensure that the correct instance of Traefik will receive the challenge request, and subsequent responses.
|
Unfortunately, it is not possible to run multiple instances of Traefik 2.0 with LetsEncrypt enabled, because there is no way to ensure that the correct instance of Traefik will receive the challenge request, and subsequent responses.
|
||||||
Previous versions of Traefik used a [KV store](https://docs.traefik.io/v1.7/configuration/acme/#storage) to attempt to achieve this, but due to sub-optimal performance was dropped as a feature in 2.0.
|
Previous versions of Traefik used a [KV store](https://doc.traefik.io/traefik/v1.7/configuration/acme/#storage) to attempt to achieve this, but due to sub-optimal performance was dropped as a feature in 2.0.
|
||||||
|
|
||||||
If you require LetsEncrypt with HA in a kubernetes environment, we recommend using [TraefikEE](https://containo.us/traefikee/) where distributed LetsEncrypt is a supported feature.
|
If you require LetsEncrypt with HA in a kubernetes environment, we recommend using [Traefik Enterprise](https://traefik.io/traefik-enterprise/) where distributed LetsEncrypt is a supported feature.
|
||||||
|
|
||||||
If you want to continue to run Traefik Community Edition, LetsEncrypt HA can be achieved by using a Certificate Controller such as [Cert-Manager](https://docs.cert-manager.io/en/latest/index.html).
|
If you want to continue to run Traefik Community Edition, LetsEncrypt HA can be achieved by using a Certificate Controller such as [Cert-Manager](https://docs.cert-manager.io/en/latest/index.html).
|
||||||
When using Cert-Manager to manage certificates, it will create secrets in your namespaces that can be referenced as TLS secrets in your [ingress objects](https://kubernetes.io/docs/concepts/services-networking/ingress/#tls).
|
When using Cert-Manager to manage certificates, it will create secrets in your namespaces that can be referenced as TLS secrets in your [ingress objects](https://kubernetes.io/docs/concepts/services-networking/ingress/#tls).
|
||||||
|
@ -78,7 +78,7 @@ _Optional, Default=empty_
|
||||||
```yaml tab="File (YAML)"
|
```yaml tab="File (YAML)"
|
||||||
providers:
|
providers:
|
||||||
kubernetesCRD:
|
kubernetesCRD:
|
||||||
endpoint = "http://localhost:8080"
|
endpoint: "http://localhost:8080"
|
||||||
# ...
|
# ...
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -112,7 +112,7 @@ _Optional, Default=empty_
|
||||||
```yaml tab="File (YAML)"
|
```yaml tab="File (YAML)"
|
||||||
providers:
|
providers:
|
||||||
kubernetesCRD:
|
kubernetesCRD:
|
||||||
token = "mytoken"
|
token: "mytoken"
|
||||||
# ...
|
# ...
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -65,11 +65,11 @@ When using a single instance of Traefik with LetsEncrypt, no issues should be en
|
||||||
however this could be a single point of failure.
|
however this could be a single point of failure.
|
||||||
Unfortunately, it is not possible to run multiple instances of Traefik 2.0 with LetsEncrypt enabled,
|
Unfortunately, it is not possible to run multiple instances of Traefik 2.0 with LetsEncrypt enabled,
|
||||||
because there is no way to ensure that the correct instance of Traefik will receive the challenge request, and subsequent responses.
|
because there is no way to ensure that the correct instance of Traefik will receive the challenge request, and subsequent responses.
|
||||||
Previous versions of Traefik used a [KV store](https://docs.traefik.io/v1.7/configuration/acme/#storage) to attempt to achieve this,
|
Previous versions of Traefik used a [KV store](https://doc.traefik.io/traefik/v1.7/configuration/acme/#storage) to attempt to achieve this,
|
||||||
but due to sub-optimal performance was dropped as a feature in 2.0.
|
but due to sub-optimal performance was dropped as a feature in 2.0.
|
||||||
|
|
||||||
If you require LetsEncrypt with HA in a kubernetes environment,
|
If you require LetsEncrypt with HA in a kubernetes environment,
|
||||||
we recommend using [TraefikEE](https://containo.us/traefikee/) where distributed LetsEncrypt is a supported feature.
|
we recommend using [Traefik Enterprise](https://traefik.io/traefik-enterprise/) where distributed LetsEncrypt is a supported feature.
|
||||||
|
|
||||||
If you are wanting to continue to run Traefik Community Edition,
|
If you are wanting to continue to run Traefik Community Edition,
|
||||||
LetsEncrypt HA can be achieved by using a Certificate Controller such as [Cert-Manager](https://docs.cert-manager.io/en/latest/index.html).
|
LetsEncrypt HA can be achieved by using a Certificate Controller such as [Cert-Manager](https://docs.cert-manager.io/en/latest/index.html).
|
||||||
|
@ -91,7 +91,7 @@ _Optional, Default=empty_
|
||||||
```yaml tab="File (YAML)"
|
```yaml tab="File (YAML)"
|
||||||
providers:
|
providers:
|
||||||
kubernetesIngress:
|
kubernetesIngress:
|
||||||
endpoint = "http://localhost:8080"
|
endpoint: "http://localhost:8080"
|
||||||
# ...
|
# ...
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -124,7 +124,7 @@ _Optional, Default=empty_
|
||||||
```yaml tab="File (YAML)"
|
```yaml tab="File (YAML)"
|
||||||
providers:
|
providers:
|
||||||
kubernetesIngress:
|
kubernetesIngress:
|
||||||
token = "mytoken"
|
token: "mytoken"
|
||||||
# ...
|
# ...
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ Below is the list of the currently supported providers in Traefik.
|
||||||
!!! info "More Providers"
|
!!! info "More Providers"
|
||||||
|
|
||||||
The current version of Traefik doesn't support (yet) every provider.
|
The current version of Traefik doesn't support (yet) every provider.
|
||||||
See the [previous version (v1.7)](https://docs.traefik.io/v1.7/) for more providers.
|
See the [previous version (v1.7)](https://doc.traefik.io/traefik/v1.7/) for more providers.
|
||||||
|
|
||||||
### Configuration reload frequency
|
### Configuration reload frequency
|
||||||
|
|
||||||
|
|
|
@ -257,7 +257,7 @@ http:
|
||||||
Middleware14:
|
Middleware14:
|
||||||
plugin:
|
plugin:
|
||||||
PluginConf:
|
PluginConf:
|
||||||
foo = "bar"
|
foo: bar
|
||||||
Middleware15:
|
Middleware15:
|
||||||
rateLimit:
|
rateLimit:
|
||||||
average: 42
|
average: 42
|
||||||
|
|
|
@ -75,14 +75,17 @@ Attach labels to your containers and let Traefik do the rest!
|
||||||
providers:
|
providers:
|
||||||
docker:
|
docker:
|
||||||
# swarm classic (1.12-)
|
# swarm classic (1.12-)
|
||||||
# endpoint = "tcp://127.0.0.1:2375"
|
# endpoint: "tcp://127.0.0.1:2375"
|
||||||
# docker swarm mode (1.12+)
|
# docker swarm mode (1.12+)
|
||||||
endpoint: "tcp://127.0.0.1:2375"
|
endpoint: "tcp://127.0.0.1:2377"
|
||||||
swarmMode: true
|
swarmMode: true
|
||||||
```
|
```
|
||||||
|
|
||||||
```bash tab="CLI"
|
```bash tab="CLI"
|
||||||
--providers.docker.endpoint=tcp://127.0.0.1:2375
|
# swarm classic (1.12-)
|
||||||
|
# --providers.docker.endpoint=tcp://127.0.0.1:2375
|
||||||
|
# docker swarm mode (1.12+)
|
||||||
|
--providers.docker.endpoint=tcp://127.0.0.1:2377
|
||||||
--providers.docker.swarmMode=true
|
--providers.docker.swarmMode=true
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -914,7 +914,7 @@ http:
|
||||||
# maxBodySize is the maximum size allowed for the body of the request.
|
# maxBodySize is the maximum size allowed for the body of the request.
|
||||||
# If the body is larger, the request is not mirrored.
|
# If the body is larger, the request is not mirrored.
|
||||||
# Default value is -1, which means unlimited size.
|
# Default value is -1, which means unlimited size.
|
||||||
maxBodySize = 1024
|
maxBodySize: 1024
|
||||||
mirrors:
|
mirrors:
|
||||||
- name: appv2
|
- name: appv2
|
||||||
percent: 10
|
percent: 10
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
site_name: Traefik
|
site_name: Traefik
|
||||||
site_description: Traefik Documentation
|
site_description: Traefik Documentation
|
||||||
site_author: containo.us
|
site_author: traefik.io
|
||||||
site_url: https://docs.traefik.io
|
site_url: https://doc.traefik.io/traefik
|
||||||
dev_addr: 0.0.0.0:8000
|
dev_addr: 0.0.0.0:8000
|
||||||
|
|
||||||
repo_name: 'GitHub'
|
repo_name: 'GitHub'
|
||||||
|
@ -15,8 +15,8 @@ theme:
|
||||||
custom_dir: 'theme'
|
custom_dir: 'theme'
|
||||||
language: en
|
language: en
|
||||||
include_sidebar: true
|
include_sidebar: true
|
||||||
favicon: assets/img/traefik.icon.png
|
favicon: assets/img/traefikproxy-icon-color.png
|
||||||
logo: assets/img/traefik.logo.png
|
logo: assets/img/traefikproxy-vertical-logo-color.svg
|
||||||
feature:
|
feature:
|
||||||
tabs: false
|
tabs: false
|
||||||
palette:
|
palette:
|
||||||
|
|
|
@ -19,9 +19,10 @@ find "${PATH_TO_SITE}" -type f -not -path "/app/site/theme/*" \
|
||||||
htmlproofer \
|
htmlproofer \
|
||||||
--check-html \
|
--check-html \
|
||||||
--check_external_hash \
|
--check_external_hash \
|
||||||
--alt_ignore="/traefik.logo.png/" \
|
--alt_ignore="/traefikproxy-vertical-logo-color.svg/" \
|
||||||
--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\/$/,/github.com\/traefik\/traefik\/*edit*/,/github.com\/traefik\/traefik\/$/,/docs.traefik.io/,/github\.com\/golang\/oauth2\/blob\/36a7019397c4c86cf59eeab3bc0d188bac444277\/.+/,/www.akamai.com/,/pilot.traefik.io\/profile/,/containo.us/,/docs.mae.sh/,/www.mkdocs.org/,/squidfunk.github.io/,/ietf.org/" \
|
--file_ignore="/404.html/" \
|
||||||
|
--url_ignore="/https://groups.google.com/a/traefik.io/forum/#!forum/security/,/localhost:/,/127.0.0.1:/,/fonts.gstatic.com/,/.minikube/,/github.com\/traefik\/traefik\/*edit*/,/github.com\/traefik\/traefik/,/doc.traefik.io/,/github\.com\/golang\/oauth2\/blob\/36a7019397c4c86cf59eeab3bc0d188bac444277\/.+/,/www.akamai.com/,/pilot.traefik.io\/profile/,/traefik.io/,/doc.traefik.io\/traefik-mesh/,/www.mkdocs.org/,/squidfunk.github.io/,/ietf.org/" \
|
||||||
'{}' 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
|
||||||
|
|
||||||
|
|
20
docs/theme/assets/images/traefik-enterprise-logo.svg
vendored
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48" viewBox="0 0 48 48">
|
||||||
|
<defs>
|
||||||
|
<filter id="b5x33i44ia">
|
||||||
|
<feColorMatrix in="SourceGraphic" values="0 0 0 0 1.000000 0 0 0 0 1.000000 0 0 0 0 1.000000 0 0 0 1.000000 0"/>
|
||||||
|
</filter>
|
||||||
|
<path id="ydattuutsb" d="M0 0H48V48H0z"/>
|
||||||
|
</defs>
|
||||||
|
<g fill="none" fill-rule="evenodd">
|
||||||
|
<g>
|
||||||
|
<g>
|
||||||
|
<g filter="url(#b5x33i44ia)" transform="translate(-237 -343) translate(209 331) translate(28 12)">
|
||||||
|
<mask id="k5cowqeb4c" fill="#fff">
|
||||||
|
<use xlink:href="#ydattuutsb"/>
|
||||||
|
</mask>
|
||||||
|
<path fill="#000" fill-rule="nonzero" d="M24.767 1.998l.07.038L44.09 13.008c1.214.692 1.206 2.433.012 3.121l-.065.036-4.551 2.394c-.293.154-.406.517-.252.81.053.102.135.186.235.242l4.685 2.66c1.2.68 1.214 2.394.051 3.101l-.065.038-4.743 2.636c-.29.16-.394.526-.233.816.056.102.142.185.245.24l4.628 2.433.065.036c1.173.676 1.201 2.368.052 3.083l-.064.038-19.255 10.972-.07.038c-.515.265-1.128.264-1.643 0l-.07-.038L3.908 34.737l-.064-.038c-1.15-.717-1.119-2.412.058-3.086l.066-.035 4.755-2.48c.294-.154.408-.516.254-.81-.054-.103-.136-.189-.238-.246l-4.777-2.681c-1.2-.674-1.226-2.38-.073-3.097l.064-.038 4.649-2.643c.288-.164.389-.53.225-.818-.057-.1-.142-.182-.244-.235l-4.615-2.407c-1.241-.647-1.296-2.391-.124-3.122l.064-.038L23.053 2.037c.53-.303 1.174-.315 1.714-.039zM34.1 30.99l-9.227 5.128c-.522.29-1.153.302-1.683.035l-.072-.039-9.098-5.107c-.353-.198-.783-.205-1.142-.017L9.53 32.737c-.293.153-.407.515-.254.809.053.102.135.187.235.244l13.84 7.899c.369.21.821.21 1.19 0l13.96-7.955c.288-.164.389-.53.225-.818-.057-.1-.14-.18-.242-.234l-3.242-1.705c-.358-.189-.787-.184-1.141.013zM23.408 15.307l-13.983 7.95c-.288.163-.389.53-.225.817.054.095.133.173.228.227l13.991 7.854c.364.204.807.205 1.17.002l14.069-7.818c.29-.161.394-.527.233-.816-.054-.097-.133-.176-.229-.23l-14.068-7.986c-.368-.21-.818-.209-1.186 0zm-.057-9.296l-13.84 7.9c-.288.164-.388.53-.224.818.057.1.141.182.244.235l3.173 1.655c.362.189.794.18 1.148-.02l9.258-5.264c.528-.3 1.169-.313 1.706-.04l.073.04 9.341 5.302c.356.202.79.21 1.153.018l3.102-1.636c.294-.155.406-.518.251-.81-.053-.102-.134-.186-.233-.242L24.54 6.01c-.368-.21-.82-.21-1.189 0z" mask="url(#k5cowqeb4c)"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.4 KiB |
12
docs/theme/assets/images/traefik-labs.svg
vendored
Normal file
After Width: | Height: | Size: 10 KiB |
20
docs/theme/assets/images/traefik-mesh-logo.svg
vendored
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48" viewBox="0 0 48 48">
|
||||||
|
<defs>
|
||||||
|
<filter id="5viyazg9za">
|
||||||
|
<feColorMatrix in="SourceGraphic" values="0 0 0 0 1.000000 0 0 0 0 1.000000 0 0 0 0 1.000000 0 0 0 1.000000 0"/>
|
||||||
|
</filter>
|
||||||
|
<path id="4qnhqjqh1b" d="M0 0H48V48H0z"/>
|
||||||
|
</defs>
|
||||||
|
<g fill="none" fill-rule="evenodd">
|
||||||
|
<g>
|
||||||
|
<g>
|
||||||
|
<g filter="url(#5viyazg9za)" transform="translate(-237 -247) translate(209 235) translate(28 12)">
|
||||||
|
<mask id="m4407qpcrc" fill="#fff">
|
||||||
|
<use xlink:href="#4qnhqjqh1b"/>
|
||||||
|
</mask>
|
||||||
|
<path fill="#000" fill-rule="nonzero" d="M18.105 10.998l.062.034 5.35 3.015c.365.206.811.206 1.177 0l5.304-2.984c.866-.487 1.964-.18 2.452.686.475.846.194 1.912-.626 2.416l-.06.036-3.063 1.723c-.29.162-.392.528-.229.817.054.096.133.175.228.228l8.268 4.661c.366.206.813.206 1.179 0l5.112-2.881c.866-.488 1.964-.182 2.452.684.476.845.196 1.911-.623 2.416l-.061.036-2.877 1.621c-.288.163-.39.529-.228.817.054.096.133.175.228.228l2.893 1.631c.866.489 1.172 1.586.684 2.452-.476.846-1.534 1.158-2.39.718l-.062-.034-5.128-2.89c-.366-.207-.813-.207-1.179 0l-8.359 4.711c-.288.163-.39.529-.228.818.054.095.133.174.228.228l3.454 1.946c.866.489 1.172 1.586.684 2.452-.476.846-1.534 1.158-2.39.718l-.062-.034-5.689-3.207c-.366-.206-.813-.206-1.179 0l-5.737 3.235c-.866.488-1.964.182-2.452-.684-.477-.845-.196-1.912.623-2.416l.06-.036 3.503-1.974c.289-.163.39-.529.228-.818-.054-.095-.133-.174-.228-.228l-8.285-4.67c-.365-.206-.812-.206-1.178 0l-4.878 2.745c-.867.488-1.964.18-2.452-.686-.476-.846-.194-1.912.625-2.416l.061-.035 2.638-1.485c.289-.162.391-.528.228-.817-.053-.095-.132-.174-.228-.228l-2.633-1.485c-.866-.488-1.172-1.586-.684-2.452.476-.845 1.534-1.157 2.39-.717l.062.033 4.873 2.747c.366.206.813.207 1.178 0l8.367-4.707c.289-.162.391-.528.228-.817-.053-.096-.132-.175-.228-.229L16.4 14.168c-.866-.488-1.172-1.586-.684-2.452.477-.845 1.534-1.157 2.39-.718zm5.41 7.844l-8.367 4.708c-.289.163-.391.529-.229.817.054.096.133.175.228.229l8.28 4.667c.366.207.813.207 1.18 0l8.358-4.712c.288-.162.39-.528.228-.817-.054-.095-.133-.174-.228-.228l-8.273-4.663c-.365-.206-.812-.206-1.178 0z" mask="url(#m4407qpcrc)"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.3 KiB |
20
docs/theme/assets/images/traefik-pilot-logo.svg
vendored
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48" viewBox="0 0 48 48">
|
||||||
|
<defs>
|
||||||
|
<filter id="uu6lu311da">
|
||||||
|
<feColorMatrix in="SourceGraphic" values="0 0 0 0 1.000000 0 0 0 0 1.000000 0 0 0 0 1.000000 0 0 0 1.000000 0"/>
|
||||||
|
</filter>
|
||||||
|
<path id="0g1zhwxulb" d="M0 0H48V48H0z"/>
|
||||||
|
</defs>
|
||||||
|
<g fill="none" fill-rule="evenodd">
|
||||||
|
<g>
|
||||||
|
<g>
|
||||||
|
<g filter="url(#uu6lu311da)" transform="translate(-237 -439) translate(209 427) translate(28 12)">
|
||||||
|
<mask id="l3ns2tyrwc" fill="#fff">
|
||||||
|
<use xlink:href="#0g1zhwxulb"/>
|
||||||
|
</mask>
|
||||||
|
<path fill="#000" fill-rule="nonzero" d="M6.51 9.361l.071-.002L41.474 9c1.379-.014 2.252 1.458 1.603 2.654l-.036.065-17.815 29.997c-.508.855-1.612 1.136-2.467.629-.834-.496-1.122-1.56-.663-2.405l.035-.062 15.09-25.41c.339-.57.151-1.307-.419-1.645-.189-.112-.405-.17-.625-.168l-29.558.304c-.97.01-1.77-.75-1.817-1.711l-.002-.07c-.01-.971.75-1.77 1.71-1.817zm5.698 9.877l.07-.002 11.599-.167c1.38-.02 2.26 1.453 1.611 2.652l-.036.065-5.97 10.083c-.507.855-1.611 1.138-2.467.631-.835-.494-1.124-1.558-.666-2.404l.035-.062 3.788-6.398c.17-.285.075-.653-.21-.822-.095-.056-.204-.085-.314-.084l-7.318.106c-.97.013-1.772-.743-1.823-1.704l-.003-.07c-.014-.97.743-1.773 1.704-1.824z" mask="url(#l3ns2tyrwc)"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.5 KiB |
14
docs/theme/assets/images/traefik-proxy-logo-long.svg
vendored
Normal file
After Width: | Height: | Size: 20 KiB |
20
docs/theme/assets/images/traefik-proxy-logo.svg
vendored
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48" viewBox="0 0 48 48">
|
||||||
|
<defs>
|
||||||
|
<filter id="zls1yb0wka">
|
||||||
|
<feColorMatrix in="SourceGraphic" values="0 0 0 0 1.000000 0 0 0 0 1.000000 0 0 0 0 1.000000 0 0 0 1.000000 0"/>
|
||||||
|
</filter>
|
||||||
|
<path id="sllx47ylzb" d="M0 0H48V48H0z"/>
|
||||||
|
</defs>
|
||||||
|
<g fill="none" fill-rule="evenodd">
|
||||||
|
<g>
|
||||||
|
<g>
|
||||||
|
<g filter="url(#zls1yb0wka)" transform="translate(-237 -151) translate(209 139) translate(28 12)">
|
||||||
|
<mask id="v7h6lpax2c" fill="#fff">
|
||||||
|
<use xlink:href="#sllx47ylzb"/>
|
||||||
|
</mask>
|
||||||
|
<path fill="#000" fill-rule="nonzero" d="M24.188 5.25c1.887 0 3.565 1.333 3.565 2.974 0 1.641-1.597 2.974-3.565 2.974-.226 0-.52-.037-.882-.11-.282-.058-.575-.011-.825.13L9.697 18.497c-.285.162-.385.525-.223.81.053.095.131.173.226.226l13.859 7.786c.36.202.798.203 1.159.002l13.934-7.751c.287-.16.39-.522.23-.809-.053-.095-.13-.174-.226-.228l-4.347-2.47c-.36-.204-.801-.207-1.163-.006l-4.59 2.548c-.116.064-.192.18-.206.31l-.002.044c0 1.642-1.598 2.974-3.566 2.974-1.968 0-3.566-1.332-3.566-2.974 0-1.641 1.598-2.974 3.566-2.974.073 0 .157.004.252.012l.15.015.167.02c.254.035.512-.013.736-.138l6.787-3.767c.52-.288 1.148-.298 1.674-.03l.071.039 9.478 5.384c1.189.675 1.202 2.373.05 3.075l-.064.037-6.34 3.526c-.287.16-.39.522-.23.81.055.1.14.183.242.237l6.28 3.305c1.247.657 1.277 2.432.053 3.13L25.016 42.516c-.548.312-1.22.312-1.767 0L4.286 31.683c-1.225-.7-1.191-2.48.06-3.132l6.348-3.315c.29-.152.404-.51.252-.802-.053-.102-.135-.187-.236-.244l-6.425-3.609c-1.188-.667-1.214-2.359-.072-3.07l.064-.037 15.779-8.98c.25-.143.439-.37.533-.64l.02-.064c.555-1.65 1.815-2.541 3.579-2.541zm8.804 21.908L25.2 31.64l-.072.04c-.53.273-1.163.263-1.685-.032l-7.767-4.382c-.35-.198-.775-.204-1.13-.018l-4.477 2.343c-.29.152-.403.51-.252.802.053.101.133.185.232.242l13.68 7.833c.363.208.81.208 1.174 0l13.798-7.888c.284-.163.383-.526.221-.812-.056-.099-.139-.18-.24-.232l-4.548-2.4c-.36-.19-.79-.182-1.142.02z" mask="url(#v7h6lpax2c)"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.2 KiB |
2
docs/theme/main.html
vendored
|
@ -77,7 +77,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="md-footer-privacy-policy">
|
<div class="md-footer-privacy-policy">
|
||||||
<a href="https://containo.us/legal/privacy-and-cookie-policy/" title="Privacy Policy">Privacy Policy</a>
|
<a href="https://traefik.io/legal/privacy-and-cookie-policy/" title="Privacy Policy">Privacy Policy</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Social links -->
|
<!-- Social links -->
|
||||||
|
|
95
docs/theme/partials/company-header.html
vendored
40
docs/theme/partials/product-switcher.html
vendored
|
@ -57,12 +57,12 @@ func RegisterPilot() *PilotRegistry {
|
||||||
|
|
||||||
standardRegistry.entryPointReqsCounter = pr.newCounter(pilotEntryPointReqsTotalName)
|
standardRegistry.entryPointReqsCounter = pr.newCounter(pilotEntryPointReqsTotalName)
|
||||||
standardRegistry.entryPointReqsTLSCounter = pr.newCounter(pilotEntryPointReqsTLSTotalName)
|
standardRegistry.entryPointReqsTLSCounter = pr.newCounter(pilotEntryPointReqsTLSTotalName)
|
||||||
standardRegistry.entryPointReqDurationHistogram, _ = NewHistogramWithScale(pr.newHistogram(pilotEntryPointReqDurationName), time.Second)
|
standardRegistry.entryPointReqDurationHistogram, _ = NewHistogramWithScale(pr.newHistogram(pilotEntryPointReqDurationName), time.Millisecond)
|
||||||
standardRegistry.entryPointOpenConnsGauge = pr.newGauge(pilotEntryPointOpenConnsName)
|
standardRegistry.entryPointOpenConnsGauge = pr.newGauge(pilotEntryPointOpenConnsName)
|
||||||
|
|
||||||
standardRegistry.serviceReqsCounter = pr.newCounter(pilotServiceReqsTotalName)
|
standardRegistry.serviceReqsCounter = pr.newCounter(pilotServiceReqsTotalName)
|
||||||
standardRegistry.serviceReqsTLSCounter = pr.newCounter(pilotServiceReqsTLSTotalName)
|
standardRegistry.serviceReqsTLSCounter = pr.newCounter(pilotServiceReqsTLSTotalName)
|
||||||
standardRegistry.serviceReqDurationHistogram, _ = NewHistogramWithScale(pr.newHistogram(pilotServiceReqDurationName), time.Second)
|
standardRegistry.serviceReqDurationHistogram, _ = NewHistogramWithScale(pr.newHistogram(pilotServiceReqDurationName), time.Millisecond)
|
||||||
standardRegistry.serviceOpenConnsGauge = pr.newGauge(pilotServiceOpenConnsName)
|
standardRegistry.serviceOpenConnsGauge = pr.newGauge(pilotServiceOpenConnsName)
|
||||||
standardRegistry.serviceRetriesCounter = pr.newCounter(pilotServiceRetriesTotalName)
|
standardRegistry.serviceRetriesCounter = pr.newCounter(pilotServiceRetriesTotalName)
|
||||||
standardRegistry.serviceServerUpGauge = pr.newGauge(pilotServiceServerUpName)
|
standardRegistry.serviceServerUpGauge = pr.newGauge(pilotServiceServerUpName)
|
||||||
|
|
|
@ -265,15 +265,15 @@ func (p *Provider) getClient() (*lego.Client, error) {
|
||||||
err = client.Challenge.SetDNS01Provider(provider,
|
err = client.Challenge.SetDNS01Provider(provider,
|
||||||
dns01.CondOption(len(p.DNSChallenge.Resolvers) > 0, dns01.AddRecursiveNameservers(p.DNSChallenge.Resolvers)),
|
dns01.CondOption(len(p.DNSChallenge.Resolvers) > 0, dns01.AddRecursiveNameservers(p.DNSChallenge.Resolvers)),
|
||||||
dns01.WrapPreCheck(func(domain, fqdn, value string, check dns01.PreCheckFunc) (bool, error) {
|
dns01.WrapPreCheck(func(domain, fqdn, value string, check dns01.PreCheckFunc) (bool, error) {
|
||||||
if p.DNSChallenge.DisablePropagationCheck {
|
|
||||||
return true, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
if p.DNSChallenge.DelayBeforeCheck > 0 {
|
if p.DNSChallenge.DelayBeforeCheck > 0 {
|
||||||
logger.Debugf("Delaying %d rather than validating DNS propagation now.", p.DNSChallenge.DelayBeforeCheck)
|
logger.Debugf("Delaying %d rather than validating DNS propagation now.", p.DNSChallenge.DelayBeforeCheck)
|
||||||
time.Sleep(time.Duration(p.DNSChallenge.DelayBeforeCheck))
|
time.Sleep(time.Duration(p.DNSChallenge.DelayBeforeCheck))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if p.DNSChallenge.DisablePropagationCheck {
|
||||||
|
return true, nil
|
||||||
|
}
|
||||||
|
|
||||||
return check(fqdn, value)
|
return check(fqdn, value)
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
<q-btn stretch flat icon="eva-question-mark-circle-outline">
|
<q-btn stretch flat icon="eva-question-mark-circle-outline">
|
||||||
<q-menu anchor="bottom left" auto-close>
|
<q-menu anchor="bottom left" auto-close>
|
||||||
<q-item>
|
<q-item>
|
||||||
<q-btn type="a" :href="`https://docs.traefik.io/${parsedVersion}`" target="_blank" flat color="accent" align="left" icon="eva-book-open-outline" no-caps label="Documentation" class="btn-submenu full-width"/>
|
<q-btn type="a" :href="`https://doc.traefik.io/traefik/${parsedVersion}`" target="_blank" flat color="accent" align="left" icon="eva-book-open-outline" no-caps label="Documentation" class="btn-submenu full-width"/>
|
||||||
</q-item>
|
</q-item>
|
||||||
<q-separator />
|
<q-separator />
|
||||||
<q-item>
|
<q-item>
|
||||||
|
|