Merge branch v2.6 into v2.7

This commit is contained in:
Tom Moulard 2022-04-21 10:59:46 +02:00
commit 73ba7ed2d2
No known key found for this signature in database
GPG key ID: 521ABE0C1A0DEAF6
145 changed files with 1187 additions and 502 deletions

View file

@ -8,7 +8,7 @@ DO NOT FILE ISSUES FOR GENERAL SUPPORT QUESTIONS.
The issue tracker is for reporting bugs and feature requests only. The issue tracker is for reporting bugs and feature requests only.
For end-user related support questions, please refer to one of the following: For end-user related support questions, please refer to one of the following:
- the Traefik community forum: https://community.containo.us/ - the Traefik community forum: https://community.traefik.io/
--> -->

View file

@ -7,7 +7,7 @@ body:
label: Welcome! label: Welcome!
description: | description: |
The issue tracker is for reporting bugs and feature requests only. For end-user related support questions, please refer to one of the following: The issue tracker is for reporting bugs and feature requests only. For end-user related support questions, please refer to one of the following:
- the Traefik community forum: https://community.containo.us/ - the Traefik community forum: https://community.traefik.io/
The configurations between 1.X and 2.X are NOT compatible. Please have a look [here](https://doc.traefik.io/traefik/getting-started/configuration-overview/). The configurations between 1.X and 2.X are NOT compatible. Please have a look [here](https://doc.traefik.io/traefik/getting-started/configuration-overview/).
@ -15,7 +15,7 @@ body:
options: options:
- label: Yes, I've searched similar issues on [GitHub](https://github.com/traefik/traefik/issues) and didn't find any. - label: Yes, I've searched similar issues on [GitHub](https://github.com/traefik/traefik/issues) and didn't find any.
required: true required: true
- label: Yes, I've searched similar issues on the [Traefik community forum](https://community.containo.us) and didn't find any. - label: Yes, I've searched similar issues on the [Traefik community forum](https://community.traefik.io) and didn't find any.
required: true required: true
- type: textarea - type: textarea

View file

@ -7,13 +7,13 @@ body:
label: Welcome! label: Welcome!
description: | description: |
The issue tracker is for reporting bugs and feature requests only. For end-user related support questions, please refer to one of the following: The issue tracker is for reporting bugs and feature requests only. For end-user related support questions, please refer to one of the following:
- the Traefik community forum: https://community.containo.us/ - the Traefik community forum: https://community.traefik.io/
DO NOT FILE ISSUES FOR GENERAL SUPPORT QUESTIONS. DO NOT FILE ISSUES FOR GENERAL SUPPORT QUESTIONS.
options: options:
- label: Yes, I've searched similar issues on [GitHub](https://github.com/traefik/traefik/issues) and didn't find any. - label: Yes, I've searched similar issues on [GitHub](https://github.com/traefik/traefik/issues) and didn't find any.
required: true required: true
- label: Yes, I've searched similar issues on the [Traefik community forum](https://community.containo.us) and didn't find any. - label: Yes, I've searched similar issues on the [Traefik community forum](https://community.traefik.io) and didn't find any.
required: true required: true
- type: textarea - type: textarea

View file

@ -1,5 +1,3 @@
.PHONY: all docs docs-serve
SRCS = $(shell git ls-files '*.go' | grep -v '^vendor/') SRCS = $(shell git ls-files '*.go' | grep -v '^vendor/')
TAG_NAME := $(shell git tag -l --contains HEAD) TAG_NAME := $(shell git tag -l --contains HEAD)
@ -36,25 +34,34 @@ DOCKER_RUN_TRAEFIK_NOTTY := docker run $(INTEGRATION_OPTS) $(if $(DOCKER_NON_INT
IN_DOCKER ?= true IN_DOCKER ?= true
.PHONY: default
default: binary default: binary
## Build Dev Docker image
build-dev-image: dist
$(if $(IN_DOCKER),docker build $(DOCKER_BUILD_ARGS) -t "$(TRAEFIK_DEV_IMAGE)" -f build.Dockerfile .,)
## Build Dev Docker image without cache
build-dev-image-no-cache: dist
docker build --no-cache -t "$(TRAEFIK_DEV_IMAGE)" -f build.Dockerfile .
## Create the "dist" directory ## Create the "dist" directory
dist: dist:
mkdir -p dist mkdir -p dist
## Build Dev Docker image
.PHONY: build-dev-image
build-dev-image: dist
ifneq ("$(IN_DOCKER)", "")
docker build $(DOCKER_BUILD_ARGS) -t "$(TRAEFIK_DEV_IMAGE)" --build-arg HOST_PWD="$(PWD)" -f build.Dockerfile .
endif
## Build Dev Docker image without cache
.PHONY: build-dev-image-no-cache
build-dev-image-no-cache: dist
ifneq ("$(IN_DOCKER)", "")
docker build $(DOCKER_BUILD_ARGS) --no-cache -t "$(TRAEFIK_DEV_IMAGE)" --build-arg HOST_PWD="$(PWD)" -f build.Dockerfile .
endif
## Build WebUI Docker image ## Build WebUI Docker image
.PHONY: build-webui-image
build-webui-image: build-webui-image:
docker build -t traefik-webui -f webui/Dockerfile webui docker build -t traefik-webui -f webui/Dockerfile webui
## Clean WebUI static generated assets ## Clean WebUI static generated assets
.PHONY: clean-webui
clean-webui: clean-webui:
rm -r webui/static rm -r webui/static
mkdir -p webui/static mkdir -p webui/static
@ -63,97 +70,122 @@ clean-webui:
## Generate WebUI ## Generate WebUI
webui/static/index.html: webui/static/index.html:
$(MAKE) build-webui-image $(MAKE) build-webui-image
docker run --rm -v "$$PWD/webui/static":'/src/webui/static' traefik-webui yarn build:nc docker run --rm -v "$(PWD)/webui/static":'/src/webui/static' traefik-webui npm run build:nc
docker run --rm -v "$$PWD/webui/static":'/src/webui/static' traefik-webui chown -R $(shell id -u):$(shell id -g) ./static docker run --rm -v "$(PWD)/webui/static":'/src/webui/static' traefik-webui chown -R $(shell id -u):$(shell id -g) ./static
.PHONY: generate-webui
generate-webui: webui/static/index.html generate-webui: webui/static/index.html
## Build the binary ## Build the binary
.PHONY: binary
binary: generate-webui build-dev-image binary: generate-webui build-dev-image
$(if $(IN_DOCKER),$(DOCKER_RUN_TRAEFIK)) ./script/make.sh generate binary $(if $(IN_DOCKER),$(DOCKER_RUN_TRAEFIK)) ./script/make.sh generate binary
## Build the linux binary locally ## Build the linux binary locally
.PHONY: binary-debug
binary-debug: generate-webui binary-debug: generate-webui
GOOS=linux ./script/make.sh binary GOOS=linux ./script/make.sh binary
## Build the binary for the standard platforms (linux, darwin, windows) ## Build the binary for the standard platforms (linux, darwin, windows)
.PHONY: crossbinary-default
crossbinary-default: generate-webui build-dev-image crossbinary-default: generate-webui build-dev-image
$(DOCKER_RUN_TRAEFIK_NOTTY) ./script/make.sh generate crossbinary-default $(DOCKER_RUN_TRAEFIK_NOTTY) ./script/make.sh generate crossbinary-default
## Build the binary for the standard platforms (linux, darwin, windows) in parallel ## Build the binary for the standard platforms (linux, darwin, windows) in parallel
.PHONY: crossbinary-default-parallel
crossbinary-default-parallel: crossbinary-default-parallel:
$(MAKE) generate-webui $(MAKE) generate-webui
$(MAKE) build-dev-image crossbinary-default $(MAKE) build-dev-image crossbinary-default
## Run the unit and integration tests ## Run the unit and integration tests
.PHONY: test
test: build-dev-image test: build-dev-image
-docker network create traefik-test-network --driver bridge --subnet 172.31.42.0/24 -docker network create traefik-test-network --driver bridge --subnet 172.31.42.0/24
trap 'docker network rm traefik-test-network' EXIT; \ trap 'docker network rm traefik-test-network' EXIT; \
$(if $(IN_DOCKER),$(DOCKER_RUN_TRAEFIK_TEST),) ./script/make.sh generate test-unit binary test-integration $(if $(IN_DOCKER),$(DOCKER_RUN_TRAEFIK_TEST),) ./script/make.sh generate test-unit binary test-integration
## Run the unit tests ## Run the unit tests
.PHONY: test-unit
test-unit: build-dev-image test-unit: build-dev-image
-docker network create traefik-test-network --driver bridge --subnet 172.31.42.0/24 -docker network create traefik-test-network --driver bridge --subnet 172.31.42.0/24
trap 'docker network rm traefik-test-network' EXIT; \ trap 'docker network rm traefik-test-network' EXIT; \
$(if $(IN_DOCKER),$(DOCKER_RUN_TRAEFIK_TEST)) ./script/make.sh generate test-unit $(if $(IN_DOCKER),$(DOCKER_RUN_TRAEFIK_TEST)) ./script/make.sh generate test-unit
## Run the integration tests ## Run the integration tests
.PHONY: test-integration
test-integration: build-dev-image test-integration: build-dev-image
-docker network create traefik-test-network --driver bridge --subnet 172.31.42.0/24 -docker network create traefik-test-network --driver bridge --subnet 172.31.42.0/24
trap 'docker network rm traefik-test-network' EXIT; \ trap 'docker network rm traefik-test-network' EXIT; \
$(if $(IN_DOCKER),$(DOCKER_RUN_TRAEFIK_TEST),) ./script/make.sh generate binary test-integration $(if $(IN_DOCKER),$(DOCKER_RUN_TRAEFIK_TEST),) ./script/make.sh generate binary test-integration
## Pull all images for integration tests ## Pull all images for integration tests
.PHONY: pull-images
pull-images: pull-images:
grep --no-filename -E '^\s+image:' ./integration/resources/compose/*.yml | awk '{print $$2}' | sort | uniq | xargs -P 6 -n 1 docker pull grep --no-filename -E '^\s+image:' ./integration/resources/compose/*.yml \
| awk '{print $$2}' \
| sort \
| uniq \
| xargs -P 6 -n 1 docker pull
## Validate code and docs ## Validate code and docs
.PHONY: validate-files
validate-files: build-dev-image validate-files: build-dev-image
$(if $(IN_DOCKER),$(DOCKER_RUN_TRAEFIK)) ./script/make.sh generate validate-lint validate-misspell $(if $(IN_DOCKER),$(DOCKER_RUN_TRAEFIK)) ./script/make.sh generate validate-lint validate-misspell
bash $(CURDIR)/script/validate-shell-script.sh bash $(CURDIR)/script/validate-shell-script.sh
## Validate code, docs, and vendor ## Validate code, docs, and vendor
.PHONY: validate
validate: build-dev-image validate: build-dev-image
$(if $(IN_DOCKER),$(DOCKER_RUN_TRAEFIK)) ./script/make.sh generate validate-lint validate-misspell validate-vendor $(if $(IN_DOCKER),$(DOCKER_RUN_TRAEFIK)) ./script/make.sh generate validate-lint validate-misspell validate-vendor
bash $(CURDIR)/script/validate-shell-script.sh bash $(CURDIR)/script/validate-shell-script.sh
## Clean up static directory and build a Docker Traefik image ## Clean up static directory and build a Docker Traefik image
.PHONY: build-image
build-image: clean-webui binary build-image: clean-webui binary
docker build -t $(TRAEFIK_IMAGE) . docker build -t $(TRAEFIK_IMAGE) .
## Build a Docker Traefik image ## Build a Docker Traefik image without re-building the webui
.PHONY: build-image-dirty
build-image-dirty: binary build-image-dirty: binary
docker build -t $(TRAEFIK_IMAGE) . docker build -t $(TRAEFIK_IMAGE) .
## Locally build traefik for linux, then shove it an alpine image, with basic tools. ## Locally build traefik for linux, then shove it an alpine image, with basic tools.
.PHONY: build-image-debug
build-image-debug: binary-debug build-image-debug: binary-debug
docker build -t $(TRAEFIK_IMAGE) -f debug.Dockerfile . docker build -t $(TRAEFIK_IMAGE) -f debug.Dockerfile .
## Start a shell inside the build env ## Start a shell inside the build env
.PHONY: shell
shell: build-dev-image shell: build-dev-image
$(DOCKER_RUN_TRAEFIK) /bin/bash $(DOCKER_RUN_TRAEFIK) /bin/bash
## Build documentation site ## Build documentation site
.PHONY: docs
docs: docs:
make -C ./docs docs make -C ./docs docs
## Serve the documentation site locally ## Serve the documentation site locally
.PHONY: docs-serve
docs-serve: docs-serve:
make -C ./docs docs-serve make -C ./docs docs-serve
## Pull image for doc building ## Pull image for doc building
.PHONY: docs-pull-images
docs-pull-images: docs-pull-images:
make -C ./docs docs-pull-images make -C ./docs docs-pull-images
## Generate CRD clientset and CRD manifests ## Generate CRD clientset and CRD manifests
.PHONY: generate-crd
generate-crd: generate-crd:
@$(CURDIR)/script/code-gen.sh @$(CURDIR)/script/code-gen.sh
## Generate code from dynamic configuration https://github.com/traefik/genconf ## Generate code from dynamic configuration https://github.com/traefik/genconf
.PHONY: generate-genconf
generate-genconf: generate-genconf:
go run ./cmd/internal/gen/ go run ./cmd/internal/gen/
## Create packages for the release ## Create packages for the release
.PHONY: release-packages
release-packages: generate-webui build-dev-image release-packages: generate-webui build-dev-image
rm -rf dist rm -rf dist
$(if $(IN_DOCKER),$(DOCKER_RUN_TRAEFIK_NOTTY)) goreleaser release --skip-publish --timeout="90m" $(if $(IN_DOCKER),$(DOCKER_RUN_TRAEFIK_NOTTY)) goreleaser release --skip-publish --timeout="90m"
@ -167,9 +199,11 @@ release-packages: generate-webui build-dev-image
$(if $(IN_DOCKER),$(DOCKER_RUN_TRAEFIK_NOTTY)) chown -R $(shell id -u):$(shell id -g) dist/ $(if $(IN_DOCKER),$(DOCKER_RUN_TRAEFIK_NOTTY)) chown -R $(shell id -u):$(shell id -g) dist/
## Format the Code ## Format the Code
.PHONY: fmt
fmt: fmt:
gofmt -s -l -w $(SRCS) gofmt -s -l -w $(SRCS)
.PHONY: run-dev
run-dev: run-dev:
go generate go generate
GO111MODULE=on go build ./cmd/traefik GO111MODULE=on go build ./cmd/traefik

View file

@ -23,6 +23,12 @@ RUN curl -sfL https://gist.githubusercontent.com/traefiker/6d7ac019c11d011e4f131
WORKDIR /go/src/github.com/traefik/traefik WORKDIR /go/src/github.com/traefik/traefik
# Because of CVE-2022-24765 (https://github.blog/2022-04-12-git-security-vulnerability-announced/),
# we configure git to allow the Traefik codebase path on the Host for docker in docker usages.
ARG HOST_PWD=""
RUN git config --global --add safe.directory "${HOST_PWD}"
# Download go modules # Download go modules
COPY go.mod . COPY go.mod .
COPY go.sum . COPY go.sum .

View file

@ -4,6 +4,7 @@
"MD009": false, "MD009": false,
"MD013": false, "MD013": false,
"MD024": false, "MD024": false,
"MD025": false,
"MD026": false, "MD026": false,
"MD033": false, "MD033": false,
"MD034": false, "MD034": false,

View file

@ -1,4 +1,3 @@
####### #######
# This Makefile contains all targets related to the documentation # This Makefile contains all targets related to the documentation
####### #######
@ -16,41 +15,51 @@ DOCKER_RUN_DOC_MOUNTS := -v $(CURDIR):/mkdocs
DOCKER_RUN_DOC_OPTS := --rm $(DOCKER_RUN_DOC_MOUNTS) -p $(DOCKER_RUN_DOC_PORT):8000 DOCKER_RUN_DOC_OPTS := --rm $(DOCKER_RUN_DOC_MOUNTS) -p $(DOCKER_RUN_DOC_PORT):8000
# Default: generates the documentation into $(SITE_DIR) # Default: generates the documentation into $(SITE_DIR)
.PHONY: docs
docs: docs-clean docs-image docs-lint docs-build docs-verify docs: docs-clean docs-image docs-lint docs-build docs-verify
# Writer Mode: build and serve docs on http://localhost:8000 with livereload # Writer Mode: build and serve docs on http://localhost:8000 with livereload
.PHONY: docs-serve
docs-serve: docs-image docs-serve: docs-image
docker run $(DOCKER_RUN_DOC_OPTS) $(TRAEFIK_DOCS_BUILD_IMAGE) mkdocs serve docker run $(DOCKER_RUN_DOC_OPTS) $(TRAEFIK_DOCS_BUILD_IMAGE) mkdocs serve
## Pull image for doc building ## Pull image for doc building
.PHONY: docs-pull-images
docs-pull-images: docs-pull-images:
grep --no-filename -E '^FROM' ./*.Dockerfile | awk '{print $$2}' | sort | uniq | xargs -P 6 -n 1 docker pull grep --no-filename -E '^FROM' ./*.Dockerfile \
| awk '{print $$2}' \
| sort \
| uniq \
| xargs -P 6 -n 1 docker pull
# Utilities Targets for each step # Utilities Targets for each step
.PHONY: docs-image
docs-image: docs-image:
docker build -t $(TRAEFIK_DOCS_BUILD_IMAGE) -f docs.Dockerfile ./ docker build -t $(TRAEFIK_DOCS_BUILD_IMAGE) -f docs.Dockerfile ./
.PHONY: docs-build
docs-build: docs-image docs-build: docs-image
docker run $(DOCKER_RUN_DOC_OPTS) $(TRAEFIK_DOCS_BUILD_IMAGE) sh -c "mkdocs build \ docker run $(DOCKER_RUN_DOC_OPTS) $(TRAEFIK_DOCS_BUILD_IMAGE) sh -c "mkdocs build \
&& chown -R $(shell id -u):$(shell id -g) ./site" && chown -R $(shell id -u):$(shell id -g) ./site"
.PHONY: docs-verify
docs-verify: docs-build docs-verify: docs-build
@if [ "$(DOCS_VERIFY_SKIP)" != "true" ]; then \ ifneq ("$(DOCS_VERIFY_SKIP)", "true")
docker build -t $(TRAEFIK_DOCS_CHECK_IMAGE) -f check.Dockerfile ./; \ docker build -t $(TRAEFIK_DOCS_CHECK_IMAGE) -f check.Dockerfile ./
docker run --rm -v $(CURDIR):/app $(TRAEFIK_DOCS_CHECK_IMAGE) /verify.sh; \ docker run --rm -v $(CURDIR):/app $(TRAEFIK_DOCS_CHECK_IMAGE) /verify.sh
else \ else
echo "DOCS_VERIFY_SKIP is true: no verification done."; \ echo "DOCS_VERIFY_SKIP is true: no verification done."
fi endif
.PHONY: docs-lint
docs-lint: docs-lint:
@if [ "$(DOCS_LINT_SKIP)" != "true" ]; then \ ifneq ("$(DOCS_LINT_SKIP)", "true")
docker build -t $(TRAEFIK_DOCS_CHECK_IMAGE) -f check.Dockerfile ./ && \ docker build -t $(TRAEFIK_DOCS_CHECK_IMAGE) -f check.Dockerfile ./
docker run --rm -v $(CURDIR):/app $(TRAEFIK_DOCS_CHECK_IMAGE) /lint.sh; \ docker run --rm -v $(CURDIR):/app $(TRAEFIK_DOCS_CHECK_IMAGE) /lint.sh
else \ else
echo "DOCS_LINT_SKIP is true: no linting done."; \ echo "DOCS_LINT_SKIP is true: no linting done."
fi endif
.PHONY: docs-clean
docs-clean: docs-clean:
rm -rf $(SITE_DIR) rm -rf $(SITE_DIR)
.PHONY: all docs-verify docs docs-clean docs-build docs-lint

View file

@ -1,18 +1,20 @@
FROM alpine:3.14 as alpine FROM alpine:3.14 as alpine
RUN apk --no-cache --no-progress add \ RUN apk --no-cache --no-progress add \
build-base \
libcurl \ libcurl \
libxml2-dev \
libxslt-dev \
ruby \ ruby \
ruby-bigdecimal \ ruby-bigdecimal \
ruby-dev \
ruby-etc \ ruby-etc \
ruby-ffi \ ruby-ffi \
ruby-json \ ruby-json \
ruby-nokogiri \ zlib-dev
ruby-dev \
build-base
RUN gem install html-proofer --version 3.19.0 --no-document -- --use-system-libraries RUN gem install nokogiri --version 1.13.3 --no-document -- --use-system-libraries
RUN gem install html-proofer --version 3.19.3 --no-document -- --use-system-libraries
# After Ruby, some NodeJS YAY! # After Ruby, some NodeJS YAY!
RUN apk --no-cache --no-progress add \ RUN apk --no-cache --no-progress add \

View file

@ -1,3 +1,8 @@
---
title: "Traefik Advocation Documentation"
description: "There are many ways to contribute to Traefik Proxy. If you're talking about Traefik, let us know and we'll promote your enthusiasm!"
---
# Advocating # Advocating
Spread the Love & Tell Us about It Spread the Love & Tell Us about It

View file

@ -1,3 +1,8 @@
---
title: "Traefik Building & Testing Documentation"
description: "Compile and test your own Traefik Proxy! Learn how to build your own Traefik binary from the sources, and read the technical documentation."
---
# Building and Testing # Building and Testing
Compile and Test Your Own Traefik! Compile and Test Your Own Traefik!

View file

@ -1,3 +1,8 @@
---
title: "Traefik Data Collection Documentation"
description: "To learn more about how Traefik is being used and improve it, we collect anonymous usage statistics from running instances. Read the technical documentation."
---
# Data Collection # Data Collection
Understanding How Traefik is Being Used Understanding How Traefik is Being Used

View file

@ -1,3 +1,8 @@
---
title: "Traefik Contribution Documentation"
description: "Found something unclear in the Traefik Proxy documentation and want to give a try at explaining it better? Read the guide to building documentation."
---
# Documentation # Documentation
Features Are Better When You Know How to Use Them Features Are Better When You Know How to Use Them

View file

@ -1,3 +1,8 @@
---
title: "Traefik Maintainer's Guidelines Documentation"
description: "Interested in contributing more to the community and becoming a Traefik Proxy maintainer? Read the guide to becoming a part of the core team."
---
# Maintainer's Guidelines # Maintainer's Guidelines
![Maintainer's Guidelines](../assets/img/maintainers-guidelines.png) ![Maintainer's Guidelines](../assets/img/maintainers-guidelines.png)
@ -25,7 +30,7 @@ We will be happy to answer any questions and explain all your doubts.
Note: you do not have to meet all the listed requirements, Note: you do not have to meet all the listed requirements,
but must have achieved several. but must have achieved several.
- Enabled [2FA](https://docs.github.com/en/github/authenticating-to-github/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication) on your Github account - Enabled [2FA](https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication) on your GitHub account
- The contributor has opened and successfully run medium to large PRs in the past 6 months. - The contributor has opened and successfully run medium to large PRs in the past 6 months.
- The contributor has participated in multiple code reviews of other PRs, - The contributor has participated in multiple code reviews of other PRs,
including those of other maintainers and contributors. including those of other maintainers and contributors.

View file

@ -1,3 +1,8 @@
---
title: "Traefik Maintainers Documentation"
description: "Traefik Proxy is an open source software with a thriving community of contributors and maintainers. Read the list of maintainers on this page."
---
# Maintainers # Maintainers
## The Team ## The Team

View file

@ -1,3 +1,8 @@
---
title: "Traefik Submitting Issues Documentation"
description: "Help us help you! Learn how to submit an issue, following the guidelines, so the Traefik Proxy team can help. Read the technical documentation."
---
# Submitting Issues # Submitting Issues
Help Us Help You! Help Us Help You!
@ -29,7 +34,7 @@ Explain us in which conditions you encountered the issue, what is your context.
Remain as clear and concise as possible Remain as clear and concise as possible
Take time to polish the format of your message so we'll enjoy reading it and working on it. Take time to polish the format of your message so we'll enjoy reading it and working on it.
Help the readers focus on what matters, and help them understand the structure of your message (see the [Github Markdown Syntax](https://help.github.com/articles/github-flavored-markdown)). Help the readers focus on what matters, and help them understand the structure of your message (see the [GitHub Markdown Syntax](https://docs.github.com/en/get-started/writing-on-github)).
## Feature Request ## Feature Request

View file

@ -1,3 +1,8 @@
---
title: "Traefik Pull Requests Documentation"
description: "Looking to contribute to Traefik Proxy? This guide will show you the guidelines for submitting a PR in our contributors guide repository."
---
# Submitting Pull Requests # Submitting Pull Requests
A Quick Guide for Efficient Contributions A Quick Guide for Efficient Contributions

View file

@ -1,3 +1,8 @@
---
title: "Traefik Security Documentation"
description: "Security is a key part of Traefik Proxy. Read the technical documentation to learn about security advisories, CVE, and how to report a vulnerability."
---
# Security # Security
## Security Advisories ## Security Advisories

View file

@ -1,3 +1,8 @@
---
title: "Traefik Contribution Documentation"
description: "Thank you to all those who have contributed! Traefik Proxy is an open-source project that thrives with the support of our passionate community."
---
# Thank You! # Thank You!
_You_ Made It _You_ Made It

View file

@ -1,3 +1,8 @@
---
title: "Traefik Concepts Documentation"
description: "Get started with Traefik Proxy. Read the technical documentation for an introduction into the key concepts behind our open source edge router."
---
# Concepts # Concepts
Everything You Need to Know Everything You Need to Know

View file

@ -1,3 +1,8 @@
---
title: "Traefik Configuration Documentation"
description: "Get started with Traefik Proxy. This page will introduce you to the dynamic routing and startup configurations. Read the technical documentation."
---
# Configuration Introduction # Configuration Introduction
How the Magic Happens How the Magic Happens

View file

@ -1,3 +1,8 @@
---
title: "Traefik Getting Started FAQ"
description: "Check out our FAQ page for answers to commonly asked questions on getting started with Traefik Proxy. Read the technical documentation."
---
# FAQ # FAQ
## Why is Traefik Answering `XXX` HTTP Response Status Code? ## Why is Traefik Answering `XXX` HTTP Response Status Code?

View file

@ -1,3 +1,8 @@
---
title: "Traefik Installation Documentation"
description: "There are several flavors to choose from when installing Traefik Proxy. Get started with Traefik Proxy, and read the technical documentation."
---
# Install Traefik # Install Traefik
You can install Traefik with the following flavors: You can install Traefik with the following flavors:

View file

@ -1,3 +1,8 @@
---
title: "Traefik Getting Started Quickly"
description: "Looking to get started with Traefik Proxy quickly? Read the technical documentation to learn a simple use case that leverages Docker."
---
# Quick Start # Quick Start
A Simple Use Case Using Docker A Simple Use Case Using Docker

View file

@ -1,3 +1,8 @@
---
title: "Traefik Let's Encrypt Documentation"
description: "Learn how to configure Traefik Proxy to use an ACME provider like Let's Encrypt for automatic certificate generation. Read the technical documentation."
---
# Let's Encrypt # Let's Encrypt
Automatic HTTPS Automatic HTTPS

View file

@ -1,3 +1,8 @@
---
title: "Traefik Proxy HTTPS & TLS Overview |Traefik Docs"
description: "Traefik supports HTTPS & TLS, which concerns roughly two parts of the configuration: routers, and the TLS connection. Read the documentation to learn more."
---
# HTTPS & TLS # HTTPS & TLS
Overview Overview

View file

@ -1,3 +1,8 @@
---
title: "Traefik TLS Documentation"
description: "Learn how to configure the transport layer security (TLS) connection in Traefik Proxy. Read the technical documentation."
---
# TLS # TLS
Transport Layer Security Transport Layer Security

View file

@ -1,3 +1,7 @@
---
title: "Traefik Proxy Documentation"
description: "Traefik Proxy, an open source Edge Router, auto-discovers configurations and supports major orchestrators, like Kubernetes. Read the technical documentation."
---
# Welcome # Welcome

View file

@ -1,3 +1,8 @@
---
title: "Traefik AddPrefix Documentation"
description: "Learn how to implement the HTTP AddPrefix middleware in Traefik Proxy to updates request paths before being forwarded. Read the technical documentation."
---
# Add Prefix # Add Prefix
Prefixing the Path Prefixing the Path

View file

@ -1,3 +1,8 @@
---
title: "Traefik BasicAuth Documentation"
description: "The HTTP basic authentication (BasicAuth) middleware in Traefik Proxy restricts access to your Services to known users. Read the technical documentation."
---
# BasicAuth # BasicAuth
Adding Basic Authentication Adding Basic Authentication

View file

@ -1,3 +1,8 @@
---
title: "Traefik Buffering Documentation"
description: "The HTTP buffering middleware in Traefik Proxy limits the size of requests that can be forwarded to Services. Read the technical documentation."
---
# Buffering # Buffering
How to Read the Request before Forwarding It How to Read the Request before Forwarding It
@ -67,9 +72,11 @@ http:
### `maxRequestBodyBytes` ### `maxRequestBodyBytes`
_Optional, Default=0_
The `maxRequestBodyBytes` option configures the maximum allowed body size for the request (in bytes). The `maxRequestBodyBytes` option configures the maximum allowed body size for the request (in bytes).
If the request exceeds the allowed size, it is not forwarded to the service, and the client gets a `413 (Request Entity Too Large)` response. If the request exceeds the allowed size, it is not forwarded to the service, and the client gets a `413` (Request Entity Too Large) response.
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
@ -117,6 +124,8 @@ http:
### `memRequestBodyBytes` ### `memRequestBodyBytes`
_Optional, Default=1048576_
You can configure a threshold (in bytes) from which the request will be buffered on disk instead of in memory with the `memRequestBodyBytes` option. You can configure a threshold (in bytes) from which the request will be buffered on disk instead of in memory with the `memRequestBodyBytes` option.
```yaml tab="Docker" ```yaml tab="Docker"
@ -165,9 +174,11 @@ http:
### `maxResponseBodyBytes` ### `maxResponseBodyBytes`
_Optional, Default=0_
The `maxResponseBodyBytes` option configures the maximum allowed response size from the service (in bytes). The `maxResponseBodyBytes` option configures the maximum allowed response size from the service (in bytes).
If the response exceeds the allowed size, it is not forwarded to the client. The client gets a `413` (Request Entity Too Large) response instead. If the response exceeds the allowed size, it is not forwarded to the client. The client gets a `500` (Internal Server Error) response instead.
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
@ -215,6 +226,8 @@ http:
### `memResponseBodyBytes` ### `memResponseBodyBytes`
_Optional, Default=1048576_
You can configure a threshold (in bytes) from which the response will be buffered on disk instead of in memory with the `memResponseBodyBytes` option. You can configure a threshold (in bytes) from which the response will be buffered on disk instead of in memory with the `memResponseBodyBytes` option.
```yaml tab="Docker" ```yaml tab="Docker"
@ -263,6 +276,8 @@ http:
### `retryExpression` ### `retryExpression`
_Optional, Default=""_
You can have the Buffering middleware replay the request using `retryExpression`. You can have the Buffering middleware replay the request using `retryExpression`.
??? example "Retries once in the case of a network error" ??? example "Retries once in the case of a network error"

View file

@ -1,3 +1,8 @@
---
title: "Traefik Command Line Documentation"
description: "The HTTP chain middleware lets you define reusable combinations of other middleware, to reuse the same groups. Read the technical documentation."
---
# Chain # Chain
When One Isn't Enough When One Isn't Enough

View file

@ -1,3 +1,8 @@
---
title: "Traefik CircuitBreaker Documentation"
description: "The HTTP circuit breaker in Traefik Proxy prevents stacking requests to unhealthy Services, resulting in cascading failures. Read the technical documentation."
---
# CircuitBreaker # CircuitBreaker
Don't Waste Time Calling Unhealthy Services Don't Waste Time Calling Unhealthy Services

View file

@ -1,3 +1,8 @@
---
title: "Traefik Compress Documentation"
description: "Traefik Proxy's HTTP middleware lets you compress responses before sending them to the client. Read the technical documentation."
---
# Compress # Compress
Compress Responses before Sending them to the Client Compress Responses before Sending them to the Client

View file

@ -1,3 +1,8 @@
---
title: "Traefik ContentType Documentation"
description: "Traefik Proxy's HTTP middleware can automatically specify the content-type header if it has not been defined by the backend. Read the technical documentation."
---
# ContentType # ContentType
Handling Content-Type auto-detection Handling Content-Type auto-detection

View file

@ -1,3 +1,8 @@
---
title: "Traefik DigestAuth Documentation"
description: "Traefik Proxy's HTTP DigestAuth middleware restricts access to your services to known users. Read the technical documentation."
---
# DigestAuth # DigestAuth
Adding Digest Authentication Adding Digest Authentication

View file

@ -1,3 +1,8 @@
---
title: "Traefik ErrorPage Documentation"
description: "In Traefik Proxy, the ErrorPage middleware returns custom pages according to configured ranges of HTTP Status codes. Read the technical documentation."
---
# ErrorPage # ErrorPage
It Has Never Been Easier to Say That Something Went Wrong It Has Never Been Easier to Say That Something Went Wrong

View file

@ -1,3 +1,8 @@
---
title: "Traefik ForwardAuth Documentation"
description: "In Traefik Proxy, the HTTP ForwardAuth middleware delegates authentication to an external Service. Read the technical documentation."
---
# ForwardAuth # ForwardAuth
Using an External Service to Forward Authentication Using an External Service to Forward Authentication

View file

@ -1,3 +1,8 @@
---
title: "Traefik Headers Documentation"
description: "In Traefik Proxy, the HTTP headers middleware manages the headers of requests and responses. Read the technical documentation."
---
# Headers # Headers
Managing Request/Response headers Managing Request/Response headers
@ -201,6 +206,8 @@ http:
CORS (Cross-Origin Resource Sharing) headers can be added and configured in a manner similar to the custom headers above. CORS (Cross-Origin Resource Sharing) headers can be added and configured in a manner similar to the custom headers above.
This functionality allows for more advanced security features to quickly be set. This functionality allows for more advanced security features to quickly be set.
If CORS headers are set, then the middleware does not pass preflight requests to any service,
instead the response will be generated and sent back to the client directly.
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:

View file

@ -1,3 +1,8 @@
---
title: "Traefik InFlightReq Documentation"
description: "Traefik Proxy's HTTP middleware lets you limit the number of simultaneous in-flight requests. Read the technical documentation."
---
# InFlightReq # InFlightReq
Limiting the Number of Simultaneous In-Flight Requests Limiting the Number of Simultaneous In-Flight Requests

View file

@ -1,3 +1,8 @@
---
title: "Traefik HTTP Middlewares IPWhiteList"
description: "Learn how to use IPWhiteList in HTTP middleware for limiting clients to specific IPs in Traefik Proxy. Read the technical documentation."
---
# IPWhiteList # IPWhiteList
Limiting Clients to Specific IPs Limiting Clients to Specific IPs

View file

@ -1,3 +1,8 @@
---
title: "Traefik Proxy HTTP Middleware Overview"
description: "Read the official Traefik Proxy documentation for an overview of the available HTTP middleware."
---
# HTTP Middlewares # HTTP Middlewares
Controlling connections Controlling connections

View file

@ -1,3 +1,8 @@
---
title: "Traefik PassTLSClientCert Documentation"
description: "In Traefik Proxy's HTTP middleware, the PassTLSClientCert adds selected data from passed client TLS certificates to headers. Read the technical documentation."
---
# PassTLSClientCert # PassTLSClientCert
Adding Client Certificates in a Header Adding Client Certificates in a Header

View file

@ -1,3 +1,8 @@
---
title: "Traefik RateLimit Documentation"
description: "Traefik Proxy's HTTP RateLimit middleware ensures Services receive fair amounts of requests. Read the technical documentation."
---
# RateLimit # RateLimit
To Control the Number of Requests Going to a Service To Control the Number of Requests Going to a Service

View file

@ -1,3 +1,8 @@
---
title: "Traefik RedirectRegex Documentation"
description: "In Traefik Proxy's HTTP middleware, RedirectRegex redirecting clients to different locations. Read the technical documentation."
---
# RedirectRegex # RedirectRegex
Redirecting the Client to a Different Location Redirecting the Client to a Different Location

View file

@ -1,3 +1,8 @@
---
title: "Traefik RedirectScheme Documentation"
description: "In Traefik Proxy's HTTP middleware, RedirectScheme redirects clients to different schemes/ports. Read the technical documentation."
---
# RedirectScheme # RedirectScheme
Redirecting the Client to a Different Scheme/Port Redirecting the Client to a Different Scheme/Port

View file

@ -1,3 +1,8 @@
---
title: "Traefik ReplacePath Documentation"
description: "In Traefik Proxy's HTTP middleware, ReplacePath updates paths before forwarding requests. Read the technical documentation."
---
# ReplacePath # ReplacePath
Updating the Path Before Forwarding the Request Updating the Path Before Forwarding the Request

View file

@ -1,3 +1,8 @@
---
title: "Traefik ReplacePathRegex Documentation"
description: "In Traefik Proxy's HTTP middleware, ReplacePathRegex updates paths before forwarding requests, using a regex. Read the technical documentation."
---
# ReplacePathRegex # ReplacePathRegex
Updating the Path Before Forwarding the Request (Using a Regex) Updating the Path Before Forwarding the Request (Using a Regex)

View file

@ -1,3 +1,8 @@
---
title: "Traefik HTTP Retry Documentation"
description: "Configure Traefik Proxy's HTTP Retry middleware, so you can retry requests to a backend server until it succeeds. Read the technical documentation."
---
# Retry # Retry
Retrying until it Succeeds Retrying until it Succeeds

View file

@ -1,3 +1,8 @@
---
title: "Traefik StripPrefix Documentation"
description: "In Traefik Proxy's HTTP middleware, StripPrefix removes prefixes from paths before forwarding requests. Read the technical documentation."
---
# StripPrefix # StripPrefix
Removing Prefixes From the Path Before Forwarding the Request Removing Prefixes From the Path Before Forwarding the Request

View file

@ -1,3 +1,8 @@
---
title: "Traefik StripPrefixRegex Documentation"
description: "In Traefik Proxy's HTTP middleware, StripPrefixRegex removes prefixes from paths before forwarding requests, using regex. Read the technical documentation."
---
# StripPrefixRegex # StripPrefixRegex
Removing Prefixes From the Path Before Forwarding the Request (Using a Regex) Removing Prefixes From the Path Before Forwarding the Request (Using a Regex)

View file

@ -1,3 +1,8 @@
---
title: "Traefik Proxy Middleware Overview"
description: "There are several available middleware in Traefik Proxy used to modify requests or headers, take charge of redirections, add authentication, and so on."
---
# Middlewares # Middlewares
Tweaking the Request Tweaking the Request

View file

@ -1,3 +1,8 @@
---
title: "Traefik TCP Middlewares IPWhiteList"
description: "Learn how to use IPWhiteList in TCP middleware for limiting clients to specific IPs in Traefik Proxy. Read the technical documentation."
---
# IPWhiteList # IPWhiteList
Limiting Clients to Specific IPs Limiting Clients to Specific IPs

View file

@ -1,3 +1,8 @@
---
title: "Traefik Proxy TCP Middleware Overview"
description: "Read the official Traefik Proxy documentation for an overview of the available TCP middleware."
---
# TCP Middlewares # TCP Middlewares
Controlling connections Controlling connections

View file

@ -1,3 +1,8 @@
---
title: "Traefik V2 Migration Documentation"
description: "Migrate from Traefik Proxy v1 to v2 and update all the necessary configurations to take advantage of all the improvements. Read the technical documentation."
---
# Migration Guide: From v1 to v2 # Migration Guide: From v1 to v2
How to Migrate from Traefik v1 to Traefik v2. How to Migrate from Traefik v1 to Traefik v2.

View file

@ -1,3 +1,8 @@
---
title: "Traefik Migration Documentation"
description: "Learn the steps needed to migrate to new Traefik Proxy v2 versions, i.e. v2.0 to v2.1 or v2.1 to v2.2. Read the technical documentation."
---
# Migration: Steps needed between the versions # Migration: Steps needed between the versions
## v2.0 to v2.1 ## v2.0 to v2.1

View file

@ -1,3 +1,8 @@
---
title: "Traefik Access Logs Documentation"
description: "Access logs are a key part of observability in Traefik Proxy. Read the technical documentation to learn their configurations, rotations, and time zones."
---
# Access Logs # Access Logs
Who Calls Whom? Who Calls Whom?
@ -133,10 +138,9 @@ Each field can be set to:
- `drop` to drop the value - `drop` to drop the value
- `redact` to replace the value with "redacted" - `redact` to replace the value with "redacted"
The `defaultMode` for `fields.headers` is `drop`. The `defaultMode` for `fields.names` is `keep`.
[accessLog.fields] The `defaultMode` for `fields.headers` is `drop`.
defaultMode = "keep"
```yaml tab="File (YAML)" ```yaml tab="File (YAML)"
# Limiting the Logs to Specific Fields # Limiting the Logs to Specific Fields
@ -161,6 +165,9 @@ accessLog:
filePath = "/path/to/access.log" filePath = "/path/to/access.log"
format = "json" format = "json"
[accessLog.fields]
defaultMode = "keep"
[accessLog.fields.names] [accessLog.fields.names]
"ClientUsername" = "drop" "ClientUsername" = "drop"

View file

@ -1,3 +1,8 @@
---
title: "Traefik Logs Documentation"
description: "Logs are a key part of observability in Traefik Proxy. Read the technical documentation to learn their configurations, rotations, and time zones."
---
# Logs # Logs
Reading What's Happening Reading What's Happening

View file

@ -1,3 +1,8 @@
---
title: "Traefik Datadog Metrics Documentation"
description: "Traefik Proxy supports Datadog for backend metrics. Read the technical documentation to enable Datadog for observability."
---
# Datadog # Datadog
To enable the Datadog: To enable the Datadog:

View file

@ -1,3 +1,8 @@
---
title: "Traefik InfluxDB Documentation"
description: "Traefik supports several metrics backends, including InfluxDB. Learn how to implement it for observability in Traefik Proxy. Read the technical documentation."
---
# InfluxDB # InfluxDB
To enable the InfluxDB: To enable the InfluxDB:

View file

@ -1,3 +1,8 @@
---
title: "Traefik Metrics Overview"
description: "Traefik Proxy supports four metrics backend systems: Datadog, InfluxDB, Prometheus, and StatsD. Read the full documentation to get started."
---
# Metrics # Metrics
Traefik supports 4 metrics backends: Traefik supports 4 metrics backends:

View file

@ -1,3 +1,8 @@
---
title: "Traefik Prometheus Documentation"
description: "Traefik supports several metrics backends, including Prometheus. Learn how to implement it for observability in Traefik Proxy. Read the technical documentation."
---
# Prometheus # Prometheus
To enable the Prometheus: To enable the Prometheus:

View file

@ -1,3 +1,8 @@
---
title: "Traefik StatsD Documentation"
description: "Traefik supports several metrics backends, including StatsD. Learn how to implement it for observability in Traefik Proxy. Read the technical documentation."
---
# StatsD # StatsD
To enable the Statsd: To enable the Statsd:

View file

@ -1,3 +1,8 @@
---
title: "Traefik Datadog Tracing Documentation"
description: "Traefik Proxy supports Datadog for tracing. Read the technical documentation to enable Datadog for observability."
---
# Datadog # Datadog
To enable the Datadog tracer: To enable the Datadog tracer:

View file

@ -1,3 +1,8 @@
---
title: "Traefik Elastic Documentation"
description: "Traefik supports several tracing backends, including Elastic. Learn how to implement it for observability in Traefik Proxy. Read the technical documentation."
---
# Elastic # Elastic
To enable the Elastic tracer: To enable the Elastic tracer:

View file

@ -1,3 +1,8 @@
---
title: "Traefik Haystack Documentation"
description: "Traefik supports several tracing backends, including Haystack. Learn how to implement it for observability in Traefik Proxy. Read the technical documentation."
---
# Haystack # Haystack
To enable the Haystack tracer: To enable the Haystack tracer:

View file

@ -1,3 +1,8 @@
---
title: "Traefik Instana Documentation"
description: "Traefik supports several tracing backends, including Instana. Learn how to implement it for observability in Traefik Proxy. Read the technical documentation."
---
# Instana # Instana
To enable the Instana tracer: To enable the Instana tracer:

View file

@ -1,3 +1,8 @@
---
title: "Traefik Jaeger Documentation"
description: "Traefik supports several tracing backends, including Jaeger. Learn how to implement it for observability in Traefik Proxy. Read the technical documentation."
---
# Jaeger # Jaeger
To enable the Jaeger tracer: To enable the Jaeger tracer:

View file

@ -1,3 +1,8 @@
---
title: "Traefik Tracing Overview"
description: "The Traefik Proxy tracing system allows developers to visualize call flows in their infrastructure. Read the full documentation."
---
# Tracing # Tracing
Visualize the Requests Flow Visualize the Requests Flow

View file

@ -1,3 +1,8 @@
---
title: "Traefik Zipkin Documentation"
description: "Traefik supports several tracing backends, including Zipkin. Learn how to implement it for observability in Traefik Proxy. Read the technical documentation."
---
# Zipkin # Zipkin
To enable the Zipkin tracer: To enable the Zipkin tracer:

View file

@ -1,3 +1,8 @@
---
title: "Traefik API Documentation"
description: "Traefik Proxy exposes information through API handlers. Learn about the security, configuration, and endpoints of APIs. Read the technical documentation."
---
# API # API
Traefik exposes a number of information through an API handler, such as the configuration of all routers, services, middlewares, etc. Traefik exposes a number of information through an API handler, such as the configuration of all routers, services, middlewares, etc.

View file

@ -1,3 +1,8 @@
---
title: "Traefik CLI Documentation"
description: "Learn the basics of the Traefik Proxy command line interface (CLI). Read the technical documentation."
---
# CLI # CLI
The Traefik Command Line The Traefik Command Line

View file

@ -1,3 +1,8 @@
---
title: "Traefik Dashboard Documentation"
description: "The dashboard shows you the current active routes handled by Traefik Proxy in one central place. Read the technical documentation to learn its operations."
---
# The Dashboard # The Dashboard
See What's Going On See What's Going On

View file

@ -1,3 +1,8 @@
---
title: "Traefik Ping Documentation"
description: "In Traefik Proxy, Ping lets you check the health of your Traefik instances. Read the technical documentation for configuration examples and options."
---
# Ping # Ping
Checking the Health of Your Traefik Instances Checking the Health of Your Traefik Instances

View file

@ -1,3 +1,8 @@
---
title: "Traefik Plugins Documentation"
description: "Learn how to connect Traefik Proxy with Pilot, a SaaS platform that offers features for metrics, alerts, and plugins. Read the technical documentation."
---
# Plugins and Traefik Pilot # Plugins and Traefik Pilot
!!! warning "Traefik Pilot Deprecation" !!! warning "Traefik Pilot Deprecation"

View file

@ -1,3 +1,8 @@
---
title: "Consul Catalog Configuration Discovery"
description: "Learn how to use Consul Catalog as a provider for configuration discovery in Traefik Proxy. Read the technical documentation."
---
# Traefik & Consul Catalog # Traefik & Consul Catalog
A Story of Tags, Services & Instances A Story of Tags, Services & Instances

View file

@ -1,3 +1,8 @@
---
title: "Traefik Consul Documentation"
description: "Use Consul as a provider for configuration discovery in Traefik Proxy. Automate and store your configurations with Consul. Read the technical documentation."
---
# Traefik & Consul # Traefik & Consul
A Story of KV store & Containers A Story of KV store & Containers

View file

@ -1,3 +1,8 @@
---
title: "Traefik Docker Documentation"
description: "Learn how to achieve configuration discovery in Traefik through Docker. Read the technical documentation."
---
# Traefik & Docker # Traefik & Docker
A Story of Labels & Containers A Story of Labels & Containers

View file

@ -1,3 +1,8 @@
---
title: "Traefik AWS ECS Documentation"
description: "Configuration discovery in Traefik is achieved through Providers. Read the technical documentation for leveraging AWS ECS in Traefik."
---
# Traefik & AWS ECS # Traefik & AWS ECS
A Story of Labels & Elastic Containers A Story of Labels & Elastic Containers

View file

@ -1,3 +1,8 @@
---
title: "Traefik Etcd Documentation"
description: "Use Etcd as a provider for configuration discovery in Traefik Proxy. Automate and store your configurations with Etcd. Read the technical documentation."
---
# Traefik & Etcd # Traefik & Etcd
A Story of KV store & Containers A Story of KV store & Containers

View file

@ -1,3 +1,8 @@
---
title: "Traefik File Documentation"
description: "The file provider in Traefik Proxy lets you define the dynamic configuration in a YAML or TOML file. Read the technical documentation."
---
# Traefik & File # Traefik & File
Good Old Configuration File Good Old Configuration File

View file

@ -1,3 +1,8 @@
---
title: "Traefik HTTP Documentation"
description: "Provide your dynamic configuration via an HTTP(S) endpoint and let Traefik Proxy do the rest. Read the technical documentation."
---
# Traefik & HTTP # Traefik & HTTP
Provide your [dynamic configuration](./overview.md) via an HTTP(S) endpoint and let Traefik do the rest! Provide your [dynamic configuration](./overview.md) via an HTTP(S) endpoint and let Traefik do the rest!

View file

@ -1,3 +1,8 @@
---
title: "Kubernetes IngressRoute & Traefik CRD"
description: "The Traefik team developed a Custom Resource Definition (CRD) for an IngressRoute type, to provide a better way to configure access to a Kubernetes cluster."
---
# Traefik & Kubernetes # Traefik & Kubernetes
The Kubernetes Ingress Controller, The Custom Resource Way. The Kubernetes Ingress Controller, The Custom Resource Way.

View file

@ -1,3 +1,8 @@
---
title: "Traefik Kubernetes Gateway API Documentation"
description: "Learn how to use the Kubernetes Gateway API as a provider for configuration discovery in Traefik Proxy. Read the technical documentation."
---
# Traefik & Kubernetes with Gateway API # Traefik & Kubernetes with Gateway API
The Kubernetes Gateway API, The Experimental Way. The Kubernetes Gateway API, The Experimental Way.

View file

@ -1,3 +1,8 @@
---
title: "Traefik Kubernetes Ingress Documentation"
description: "Understand the requirements, routing configuration, and how to set up Traefik Proxy as your Kubernetes Ingress Controller. Read the technical documentation."
---
# Traefik & Kubernetes # Traefik & Kubernetes
The Kubernetes Ingress Controller. The Kubernetes Ingress Controller.

View file

@ -1,3 +1,8 @@
---
title: "Traefik Configuration for Marathon"
description: "Traefik Proxy can be configured to use Marathon as a provider. Read the technical documentation to learn how."
---
# Traefik & Marathon # Traefik & Marathon
Traefik can be configured to use Marathon as a provider. Traefik can be configured to use Marathon as a provider.

View file

@ -1,3 +1,8 @@
---
title: "Traefik Configuration Discovery Overview"
description: "Configuration discovery in Traefik is achieved through Providers. The providers are infrastructure components. Read the documentation to learn more."
---
# Overview # Overview
Traefik's Many Friends Traefik's Many Friends

View file

@ -1,3 +1,8 @@
---
title: ""Traefik Configuration Discovery: Rancher""
description: "Read the official Traefik documentation to learn how to expose Rancher services by default in Traefik Proxy."
---
# Traefik & Rancher # Traefik & Rancher
A Story of Labels, Services & Containers A Story of Labels, Services & Containers

View file

@ -1,3 +1,8 @@
---
title: "Traefik Redis Documentation"
description: "For configuration discovery in Traefik Proxy, you can store your configurations in Redis. Read the technical documentation."
---
# Traefik & Redis # Traefik & Redis
A Story of KV store & Containers A Story of KV store & Containers

View file

@ -1,3 +1,8 @@
---
title: "Traefik ZooKeeper Documentation"
description: "For configuration discovery in Traefik Proxy, you can store your configurations in ZooKeeper. Read the technical documentation."
---
# Traefik & ZooKeeper # Traefik & ZooKeeper
A Story of KV Store & Containers A Story of KV Store & Containers

View file

@ -1,3 +1,8 @@
---
title: "Traefik Consul Configuration Documentation"
description: "View the reference for performing dynamic configurations with Traefik Proxy and Consul Catalog. Read the technical documentation."
---
# Consul Catalog Configuration Reference # Consul Catalog Configuration Reference
Dynamic configuration with Consul Catalog Dynamic configuration with Consul Catalog

View file

@ -56,6 +56,7 @@
- "traefik.http.middlewares.middleware10.headers.framedeny=true" - "traefik.http.middlewares.middleware10.headers.framedeny=true"
- "traefik.http.middlewares.middleware10.headers.hostsproxyheaders=foobar, foobar" - "traefik.http.middlewares.middleware10.headers.hostsproxyheaders=foobar, foobar"
- "traefik.http.middlewares.middleware10.headers.isdevelopment=true" - "traefik.http.middlewares.middleware10.headers.isdevelopment=true"
- "traefik.http.middlewares.middleware10.headers.permissionspolicy=foobar"
- "traefik.http.middlewares.middleware10.headers.publickey=foobar" - "traefik.http.middlewares.middleware10.headers.publickey=foobar"
- "traefik.http.middlewares.middleware10.headers.referrerpolicy=foobar" - "traefik.http.middlewares.middleware10.headers.referrerpolicy=foobar"
- "traefik.http.middlewares.middleware10.headers.sslforcehost=true" - "traefik.http.middlewares.middleware10.headers.sslforcehost=true"
@ -153,6 +154,7 @@
- "traefik.http.services.service01.loadbalancer.healthcheck.followredirects=true" - "traefik.http.services.service01.loadbalancer.healthcheck.followredirects=true"
- "traefik.http.services.service01.loadbalancer.passhostheader=true" - "traefik.http.services.service01.loadbalancer.passhostheader=true"
- "traefik.http.services.service01.loadbalancer.responseforwarding.flushinterval=foobar" - "traefik.http.services.service01.loadbalancer.responseforwarding.flushinterval=foobar"
- "traefik.http.services.service01.loadbalancer.serverstransport=foobar"
- "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"
@ -160,8 +162,8 @@
- "traefik.http.services.service01.loadbalancer.sticky.cookie.secure=true" - "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.http.services.service01.loadbalancer.serverstransport=foobar" - "traefik.tcp.middlewares.tcpmiddleware00.ipwhitelist.sourcerange=foobar, foobar"
- "traefik.tcp.middlewares.middleware00.ipwhitelist.sourcerange=foobar, foobar" - "traefik.tcp.middlewares.tcpmiddleware01.inflightconn.amount=42"
- "traefik.tcp.routers.tcprouter0.entrypoints=foobar, foobar" - "traefik.tcp.routers.tcprouter0.entrypoints=foobar, foobar"
- "traefik.tcp.routers.tcprouter0.middlewares=foobar, foobar" - "traefik.tcp.routers.tcprouter0.middlewares=foobar, foobar"
- "traefik.tcp.routers.tcprouter0.rule=foobar" - "traefik.tcp.routers.tcprouter0.rule=foobar"
@ -188,9 +190,9 @@
- "traefik.tcp.routers.tcprouter1.tls.domains[1].sans=foobar, foobar" - "traefik.tcp.routers.tcprouter1.tls.domains[1].sans=foobar, foobar"
- "traefik.tcp.routers.tcprouter1.tls.options=foobar" - "traefik.tcp.routers.tcprouter1.tls.options=foobar"
- "traefik.tcp.routers.tcprouter1.tls.passthrough=true" - "traefik.tcp.routers.tcprouter1.tls.passthrough=true"
- "traefik.tcp.services.tcpservice01.loadbalancer.proxyprotocol.version=42"
- "traefik.tcp.services.tcpservice01.loadbalancer.terminationdelay=42" - "traefik.tcp.services.tcpservice01.loadbalancer.terminationdelay=42"
- "traefik.tcp.services.tcpservice01.loadbalancer.server.port=foobar" - "traefik.tcp.services.tcpservice01.loadbalancer.server.port=foobar"
- "traefik.tcp.services.tcpservice01.loadbalancer.proxyprotocol.version=42"
- "traefik.udp.routers.udprouter0.entrypoints=foobar, foobar" - "traefik.udp.routers.udprouter0.entrypoints=foobar, foobar"
- "traefik.udp.routers.udprouter0.service=foobar" - "traefik.udp.routers.udprouter0.service=foobar"
- "traefik.udp.routers.udprouter1.entrypoints=foobar, foobar" - "traefik.udp.routers.udprouter1.entrypoints=foobar, foobar"

View file

@ -1,3 +1,8 @@
---
title: "Traefik Docker Configuration Documentation"
description: "Reference dynamic configuration with Docker labels in Traefik Proxy. Read the technical documentation."
---
# Docker Configuration Reference # Docker Configuration Reference
Dynamic configuration with Docker Labels Dynamic configuration with Docker Labels

View file

@ -1,3 +1,8 @@
---
title: "Traefik AWS ECS Configuration Documentation"
description: "Learn how to do dynamic configuration in Traefik Proxy with AWS ECS. Read the technical documentation."
---
# ECS Configuration Reference # ECS Configuration Reference
Dynamic configuration with ECS provider Dynamic configuration with ECS provider

View file

@ -1,3 +1,8 @@
---
title: "Traefik File Dynamic Configuration"
description: "This guide will provide you with the YAML and TOML files for dynamic configuration in Traefik Proxy. Read the technical documentation."
---
# File Configuration Reference # File Configuration Reference
Dynamic configuration with files Dynamic configuration with files

View file

@ -186,6 +186,7 @@
publicKey = "foobar" publicKey = "foobar"
referrerPolicy = "foobar" referrerPolicy = "foobar"
featurePolicy = "foobar" featurePolicy = "foobar"
permissionsPolicy = "foobar"
isDevelopment = true isDevelopment = true
[http.middlewares.Middleware10.headers.customRequestHeaders] [http.middlewares.Middleware10.headers.customRequestHeaders]
name0 = "foobar" name0 = "foobar"
@ -243,7 +244,7 @@
[http.middlewares.Middleware15] [http.middlewares.Middleware15]
[http.middlewares.Middleware15.rateLimit] [http.middlewares.Middleware15.rateLimit]
average = 42 average = 42
period = 42 period = "42s"
burst = 42 burst = 42
[http.middlewares.Middleware15.rateLimit.sourceCriterion] [http.middlewares.Middleware15.rateLimit.sourceCriterion]
requestHeaderName = "foobar" requestHeaderName = "foobar"
@ -271,7 +272,7 @@
[http.middlewares.Middleware20] [http.middlewares.Middleware20]
[http.middlewares.Middleware20.retry] [http.middlewares.Middleware20.retry]
attempts = 42 attempts = 42
initialInterval = 42 initialInterval = "42s"
[http.middlewares.Middleware21] [http.middlewares.Middleware21]
[http.middlewares.Middleware21.stripPrefix] [http.middlewares.Middleware21.stripPrefix]
prefixes = ["foobar", "foobar"] prefixes = ["foobar", "foobar"]
@ -299,6 +300,8 @@
dialTimeout = "42s" dialTimeout = "42s"
responseHeaderTimeout = "42s" responseHeaderTimeout = "42s"
idleConnTimeout = "42s" idleConnTimeout = "42s"
readIdleTimeout = "42s"
pingTimeout = "42s"
[http.serversTransports.ServersTransport1] [http.serversTransports.ServersTransport1]
serverName = "foobar" serverName = "foobar"
insecureSkipVerify = true insecureSkipVerify = true
@ -318,6 +321,8 @@
dialTimeout = "42s" dialTimeout = "42s"
responseHeaderTimeout = "42s" responseHeaderTimeout = "42s"
idleConnTimeout = "42s" idleConnTimeout = "42s"
readIdleTimeout = "42s"
pingTimeout = "42s"
[tcp] [tcp]
[tcp.routers] [tcp.routers]
@ -380,9 +385,12 @@
name = "foobar" name = "foobar"
weight = 42 weight = 42
[tcp.middlewares] [tcp.middlewares]
[tcp.middlewares.Middleware00] [tcp.middlewares.TCPMiddleware00]
[tcp.middlewares.Middleware00.ipWhiteList] [tcp.middlewares.TCPMiddleware00.ipWhiteList]
sourceRange = ["foobar", "foobar"] sourceRange = ["foobar", "foobar"]
[tcp.middlewares.TCPMiddleware01]
[tcp.middlewares.TCPMiddleware01.inFlightConn]
amount = 42
[udp] [udp]
[udp.routers] [udp.routers]

View file

@ -222,6 +222,7 @@ http:
publicKey: foobar publicKey: foobar
referrerPolicy: foobar referrerPolicy: foobar
featurePolicy: foobar featurePolicy: foobar
permissionsPolicy: foobar
isDevelopment: true isDevelopment: true
Middleware11: Middleware11:
ipWhiteList: ipWhiteList:
@ -276,7 +277,7 @@ http:
Middleware15: Middleware15:
rateLimit: rateLimit:
average: 42 average: 42
period: 42 period: 42s
burst: 42 burst: 42
sourceCriterion: sourceCriterion:
ipStrategy: ipStrategy:
@ -306,7 +307,7 @@ http:
Middleware20: Middleware20:
retry: retry:
attempts: 42 attempts: 42
initialInterval: 42 initialInterval: 42s
Middleware21: Middleware21:
stripPrefix: stripPrefix:
prefixes: prefixes:
@ -335,6 +336,8 @@ http:
dialTimeout: 42s dialTimeout: 42s
responseHeaderTimeout: 42s responseHeaderTimeout: 42s
idleConnTimeout: 42s idleConnTimeout: 42s
readIdleTimeout: 42s
pingTimeout: 42s
disableHTTP2: true disableHTTP2: true
peerCertURI: foobar peerCertURI: foobar
ServersTransport1: ServersTransport1:
@ -353,6 +356,8 @@ http:
dialTimeout: 42s dialTimeout: 42s
responseHeaderTimeout: 42s responseHeaderTimeout: 42s
idleConnTimeout: 42s idleConnTimeout: 42s
readIdleTimeout: 42s
pingTimeout: 42s
disableHTTP2: true disableHTTP2: true
peerCertURI: foobar peerCertURI: foobar
tcp: tcp:
@ -403,12 +408,6 @@ tcp:
sans: sans:
- foobar - foobar
- foobar - foobar
middlewares:
Middleware00:
ipWhiteList:
sourceRange:
- foobar
- foobar
services: services:
TCPService01: TCPService01:
loadBalancer: loadBalancer:
@ -425,6 +424,15 @@ tcp:
weight: 42 weight: 42
- name: foobar - name: foobar
weight: 42 weight: 42
middlewares:
TCPMiddleware00:
ipWhiteList:
sourceRange:
- foobar
- foobar
TCPMiddleware01:
inFlightConn:
amount: 42
udp: udp:
routers: routers:
UDPRouter0: UDPRouter0:

View file

@ -1,3 +1,8 @@
---
title: "Traefik Kubernetes CRD Documentation"
description: "Learn about the definitions, resources, and RBAC of dynamic configuration with Kubernetes CRD in Traefik Proxy. Read the technical documentation."
---
# Kubernetes Configuration Reference # Kubernetes Configuration Reference
Dynamic configuration with Kubernetes Custom Resource Dynamic configuration with Kubernetes Custom Resource

View file

@ -39,7 +39,7 @@ spec:
port: 9443 port: 9443
hostname: example.com hostname: example.com
tls: tls:
- certificateRefs: certificateRefs:
- kind: Secret - kind: Secret
name: mysecret name: mysecret

View file

@ -1,3 +1,8 @@
---
title: "Traefik Kubernetes Routing"
description: "Reference the dynamic configuration with the Kubernetes Gateway provider in Traefik Proxy. Read the technical documentation."
---
# Kubernetes Configuration Reference # Kubernetes Configuration Reference
Dynamic configuration with Kubernetes Gateway provider. Dynamic configuration with Kubernetes Gateway provider.

View file

@ -69,6 +69,7 @@
| `traefik/http/middlewares/Middleware10/headers/hostsProxyHeaders/0` | `foobar` | | `traefik/http/middlewares/Middleware10/headers/hostsProxyHeaders/0` | `foobar` |
| `traefik/http/middlewares/Middleware10/headers/hostsProxyHeaders/1` | `foobar` | | `traefik/http/middlewares/Middleware10/headers/hostsProxyHeaders/1` | `foobar` |
| `traefik/http/middlewares/Middleware10/headers/isDevelopment` | `true` | | `traefik/http/middlewares/Middleware10/headers/isDevelopment` | `true` |
| `traefik/http/middlewares/Middleware10/headers/permissionsPolicy` | `foobar` |
| `traefik/http/middlewares/Middleware10/headers/publicKey` | `foobar` | | `traefik/http/middlewares/Middleware10/headers/publicKey` | `foobar` |
| `traefik/http/middlewares/Middleware10/headers/referrerPolicy` | `foobar` | | `traefik/http/middlewares/Middleware10/headers/referrerPolicy` | `foobar` |
| `traefik/http/middlewares/Middleware10/headers/sslForceHost` | `true` | | `traefik/http/middlewares/Middleware10/headers/sslForceHost` | `true` |
@ -114,7 +115,7 @@
| `traefik/http/middlewares/Middleware14/plugin/PluginConf/foo` | `bar` | | `traefik/http/middlewares/Middleware14/plugin/PluginConf/foo` | `bar` |
| `traefik/http/middlewares/Middleware15/rateLimit/average` | `42` | | `traefik/http/middlewares/Middleware15/rateLimit/average` | `42` |
| `traefik/http/middlewares/Middleware15/rateLimit/burst` | `42` | | `traefik/http/middlewares/Middleware15/rateLimit/burst` | `42` |
| `traefik/http/middlewares/Middleware15/rateLimit/period` | `42` | | `traefik/http/middlewares/Middleware15/rateLimit/period` | `42s` |
| `traefik/http/middlewares/Middleware15/rateLimit/sourceCriterion/ipStrategy/depth` | `42` | | `traefik/http/middlewares/Middleware15/rateLimit/sourceCriterion/ipStrategy/depth` | `42` |
| `traefik/http/middlewares/Middleware15/rateLimit/sourceCriterion/ipStrategy/excludedIPs/0` | `foobar` | | `traefik/http/middlewares/Middleware15/rateLimit/sourceCriterion/ipStrategy/excludedIPs/0` | `foobar` |
| `traefik/http/middlewares/Middleware15/rateLimit/sourceCriterion/ipStrategy/excludedIPs/1` | `foobar` | | `traefik/http/middlewares/Middleware15/rateLimit/sourceCriterion/ipStrategy/excludedIPs/1` | `foobar` |
@ -130,7 +131,7 @@
| `traefik/http/middlewares/Middleware19/replacePathRegex/regex` | `foobar` | | `traefik/http/middlewares/Middleware19/replacePathRegex/regex` | `foobar` |
| `traefik/http/middlewares/Middleware19/replacePathRegex/replacement` | `foobar` | | `traefik/http/middlewares/Middleware19/replacePathRegex/replacement` | `foobar` |
| `traefik/http/middlewares/Middleware20/retry/attempts` | `42` | | `traefik/http/middlewares/Middleware20/retry/attempts` | `42` |
| `traefik/http/middlewares/Middleware20/retry/initialInterval` | `42` | | `traefik/http/middlewares/Middleware20/retry/initialInterval` | `42s` |
| `traefik/http/middlewares/Middleware21/stripPrefix/forceSlash` | `true` | | `traefik/http/middlewares/Middleware21/stripPrefix/forceSlash` | `true` |
| `traefik/http/middlewares/Middleware21/stripPrefix/prefixes/0` | `foobar` | | `traefik/http/middlewares/Middleware21/stripPrefix/prefixes/0` | `foobar` |
| `traefik/http/middlewares/Middleware21/stripPrefix/prefixes/1` | `foobar` | | `traefik/http/middlewares/Middleware21/stripPrefix/prefixes/1` | `foobar` |
@ -173,6 +174,8 @@
| `traefik/http/serversTransports/ServersTransport0/disableHTTP2` | `true` | | `traefik/http/serversTransports/ServersTransport0/disableHTTP2` | `true` |
| `traefik/http/serversTransports/ServersTransport0/forwardingTimeouts/dialTimeout` | `42s` | | `traefik/http/serversTransports/ServersTransport0/forwardingTimeouts/dialTimeout` | `42s` |
| `traefik/http/serversTransports/ServersTransport0/forwardingTimeouts/idleConnTimeout` | `42s` | | `traefik/http/serversTransports/ServersTransport0/forwardingTimeouts/idleConnTimeout` | `42s` |
| `traefik/http/serversTransports/ServersTransport0/forwardingTimeouts/pingTimeout` | `42s` |
| `traefik/http/serversTransports/ServersTransport0/forwardingTimeouts/readIdleTimeout` | `42s` |
| `traefik/http/serversTransports/ServersTransport0/forwardingTimeouts/responseHeaderTimeout` | `42s` | | `traefik/http/serversTransports/ServersTransport0/forwardingTimeouts/responseHeaderTimeout` | `42s` |
| `traefik/http/serversTransports/ServersTransport0/insecureSkipVerify` | `true` | | `traefik/http/serversTransports/ServersTransport0/insecureSkipVerify` | `true` |
| `traefik/http/serversTransports/ServersTransport0/maxIdleConnsPerHost` | `42` | | `traefik/http/serversTransports/ServersTransport0/maxIdleConnsPerHost` | `42` |
@ -187,6 +190,8 @@
| `traefik/http/serversTransports/ServersTransport1/disableHTTP2` | `true` | | `traefik/http/serversTransports/ServersTransport1/disableHTTP2` | `true` |
| `traefik/http/serversTransports/ServersTransport1/forwardingTimeouts/dialTimeout` | `42s` | | `traefik/http/serversTransports/ServersTransport1/forwardingTimeouts/dialTimeout` | `42s` |
| `traefik/http/serversTransports/ServersTransport1/forwardingTimeouts/idleConnTimeout` | `42s` | | `traefik/http/serversTransports/ServersTransport1/forwardingTimeouts/idleConnTimeout` | `42s` |
| `traefik/http/serversTransports/ServersTransport1/forwardingTimeouts/pingTimeout` | `42s` |
| `traefik/http/serversTransports/ServersTransport1/forwardingTimeouts/readIdleTimeout` | `42s` |
| `traefik/http/serversTransports/ServersTransport1/forwardingTimeouts/responseHeaderTimeout` | `42s` | | `traefik/http/serversTransports/ServersTransport1/forwardingTimeouts/responseHeaderTimeout` | `42s` |
| `traefik/http/serversTransports/ServersTransport1/insecureSkipVerify` | `true` | | `traefik/http/serversTransports/ServersTransport1/insecureSkipVerify` | `true` |
| `traefik/http/serversTransports/ServersTransport1/maxIdleConnsPerHost` | `42` | | `traefik/http/serversTransports/ServersTransport1/maxIdleConnsPerHost` | `42` |
@ -231,8 +236,9 @@
| `traefik/http/services/Service04/failover/fallback` | `foobar` | | `traefik/http/services/Service04/failover/fallback` | `foobar` |
| `traefik/http/services/Service04/failover/healthCheck` | `` | | `traefik/http/services/Service04/failover/healthCheck` | `` |
| `traefik/http/services/Service04/failover/service` | `foobar` | | `traefik/http/services/Service04/failover/service` | `foobar` |
| `traefik/tcp/middlewares/Middleware00/ipWhiteList/sourceRange/0` | `foobar` | | `traefik/tcp/middlewares/TCPMiddleware00/ipWhiteList/sourceRange/0` | `foobar` |
| `traefik/tcp/middlewares/Middleware00/ipWhiteList/sourceRange/1` | `foobar` | | `traefik/tcp/middlewares/TCPMiddleware00/ipWhiteList/sourceRange/1` | `foobar` |
| `traefik/tcp/middlewares/TCPMiddleware01/inFlightConn/amount` | `42` |
| `traefik/tcp/routers/TCPRouter0/entryPoints/0` | `foobar` | | `traefik/tcp/routers/TCPRouter0/entryPoints/0` | `foobar` |
| `traefik/tcp/routers/TCPRouter0/entryPoints/1` | `foobar` | | `traefik/tcp/routers/TCPRouter0/entryPoints/1` | `foobar` |
| `traefik/tcp/routers/TCPRouter0/middlewares/0` | `foobar` | | `traefik/tcp/routers/TCPRouter0/middlewares/0` | `foobar` |

Some files were not shown because too many files have changed in this diff Show more