Merge branch v2.6 into v2.7
This commit is contained in:
commit
73ba7ed2d2
145 changed files with 1187 additions and 502 deletions
2
.github/ISSUE_TEMPLATE.md
vendored
2
.github/ISSUE_TEMPLATE.md
vendored
|
@ -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/
|
||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
|
4
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
4
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
|
@ -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
|
||||||
|
|
4
.github/ISSUE_TEMPLATE/feature-request.yml
vendored
4
.github/ISSUE_TEMPLATE/feature-request.yml
vendored
|
@ -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
|
||||||
|
|
62
Makefile
62
Makefile
|
@ -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
|
||||||
|
|
|
@ -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 .
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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
|
|
||||||
|
|
|
@ -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 \
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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!
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 PR’s in the past 6 months.
|
- The contributor has opened and successfully run medium to large PR’s in the past 6 months.
|
||||||
- The contributor has participated in multiple code reviews of other PR’s,
|
- The contributor has participated in multiple code reviews of other PR’s,
|
||||||
including those of other maintainers and contributors.
|
including those of other maintainers and contributors.
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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?
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
@ -173,4 +178,4 @@ http:
|
||||||
[http.middlewares]
|
[http.middlewares]
|
||||||
[http.middlewares.test-compress.compress]
|
[http.middlewares.test-compress.compress]
|
||||||
minResponseBodyBytes = 1200
|
minResponseBodyBytes = 1200
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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"
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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!
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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]
|
||||||
|
|
|
@ -2,11 +2,11 @@ http:
|
||||||
routers:
|
routers:
|
||||||
Router0:
|
Router0:
|
||||||
entryPoints:
|
entryPoints:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
middlewares:
|
middlewares:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
service: foobar
|
service: foobar
|
||||||
rule: foobar
|
rule: foobar
|
||||||
priority: 42
|
priority: 42
|
||||||
|
@ -14,21 +14,21 @@ http:
|
||||||
options: foobar
|
options: foobar
|
||||||
certResolver: foobar
|
certResolver: foobar
|
||||||
domains:
|
domains:
|
||||||
- main: foobar
|
- main: foobar
|
||||||
sans:
|
sans:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
- main: foobar
|
- main: foobar
|
||||||
sans:
|
sans:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
Router1:
|
Router1:
|
||||||
entryPoints:
|
entryPoints:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
middlewares:
|
middlewares:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
service: foobar
|
service: foobar
|
||||||
rule: foobar
|
rule: foobar
|
||||||
priority: 42
|
priority: 42
|
||||||
|
@ -36,14 +36,14 @@ http:
|
||||||
options: foobar
|
options: foobar
|
||||||
certResolver: foobar
|
certResolver: foobar
|
||||||
domains:
|
domains:
|
||||||
- main: foobar
|
- main: foobar
|
||||||
sans:
|
sans:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
- main: foobar
|
- main: foobar
|
||||||
sans:
|
sans:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
services:
|
services:
|
||||||
Service01:
|
Service01:
|
||||||
loadBalancer:
|
loadBalancer:
|
||||||
|
@ -54,8 +54,8 @@ http:
|
||||||
httpOnly: true
|
httpOnly: true
|
||||||
sameSite: foobar
|
sameSite: foobar
|
||||||
servers:
|
servers:
|
||||||
- url: foobar
|
- url: foobar
|
||||||
- url: foobar
|
- url: foobar
|
||||||
healthCheck:
|
healthCheck:
|
||||||
scheme: foobar
|
scheme: foobar
|
||||||
path: foobar
|
path: foobar
|
||||||
|
@ -77,18 +77,18 @@ http:
|
||||||
maxBodySize: 42
|
maxBodySize: 42
|
||||||
healthCheck: {}
|
healthCheck: {}
|
||||||
mirrors:
|
mirrors:
|
||||||
- name: foobar
|
- name: foobar
|
||||||
percent: 42
|
percent: 42
|
||||||
- name: foobar
|
- name: foobar
|
||||||
percent: 42
|
percent: 42
|
||||||
Service03:
|
Service03:
|
||||||
weighted:
|
weighted:
|
||||||
healthCheck: {}
|
healthCheck: {}
|
||||||
services:
|
services:
|
||||||
- name: foobar
|
- name: foobar
|
||||||
weight: 42
|
weight: 42
|
||||||
- name: foobar
|
- name: foobar
|
||||||
weight: 42
|
weight: 42
|
||||||
sticky:
|
sticky:
|
||||||
cookie:
|
cookie:
|
||||||
name: foobar
|
name: foobar
|
||||||
|
@ -107,8 +107,8 @@ http:
|
||||||
Middleware01:
|
Middleware01:
|
||||||
basicAuth:
|
basicAuth:
|
||||||
users:
|
users:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
usersFile: foobar
|
usersFile: foobar
|
||||||
realm: foobar
|
realm: foobar
|
||||||
removeHeader: true
|
removeHeader: true
|
||||||
|
@ -123,16 +123,16 @@ http:
|
||||||
Middleware03:
|
Middleware03:
|
||||||
chain:
|
chain:
|
||||||
middlewares:
|
middlewares:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
Middleware04:
|
Middleware04:
|
||||||
circuitBreaker:
|
circuitBreaker:
|
||||||
expression: foobar
|
expression: foobar
|
||||||
Middleware05:
|
Middleware05:
|
||||||
compress:
|
compress:
|
||||||
excludedContentTypes:
|
excludedContentTypes:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
minResponseBodyBytes: 42
|
minResponseBodyBytes: 42
|
||||||
Middleware06:
|
Middleware06:
|
||||||
contentType:
|
contentType:
|
||||||
|
@ -140,8 +140,8 @@ http:
|
||||||
Middleware07:
|
Middleware07:
|
||||||
digestAuth:
|
digestAuth:
|
||||||
users:
|
users:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
usersFile: foobar
|
usersFile: foobar
|
||||||
removeHeader: true
|
removeHeader: true
|
||||||
realm: foobar
|
realm: foobar
|
||||||
|
@ -149,8 +149,8 @@ http:
|
||||||
Middleware08:
|
Middleware08:
|
||||||
errors:
|
errors:
|
||||||
status:
|
status:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
service: foobar
|
service: foobar
|
||||||
query: foobar
|
query: foobar
|
||||||
Middleware09:
|
Middleware09:
|
||||||
|
@ -164,12 +164,12 @@ http:
|
||||||
insecureSkipVerify: true
|
insecureSkipVerify: true
|
||||||
trustForwardHeader: true
|
trustForwardHeader: true
|
||||||
authResponseHeaders:
|
authResponseHeaders:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
authResponseHeadersRegex: foobar
|
authResponseHeadersRegex: foobar
|
||||||
authRequestHeaders:
|
authRequestHeaders:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
Middleware10:
|
Middleware10:
|
||||||
headers:
|
headers:
|
||||||
customRequestHeaders:
|
customRequestHeaders:
|
||||||
|
@ -180,28 +180,28 @@ http:
|
||||||
name1: foobar
|
name1: foobar
|
||||||
accessControlAllowCredentials: true
|
accessControlAllowCredentials: true
|
||||||
accessControlAllowHeaders:
|
accessControlAllowHeaders:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
accessControlAllowMethods:
|
accessControlAllowMethods:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
accessControlAllowOriginList:
|
accessControlAllowOriginList:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
accessControlAllowOriginListRegex:
|
accessControlAllowOriginListRegex:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
accessControlExposeHeaders:
|
accessControlExposeHeaders:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
accessControlMaxAge: 42
|
accessControlMaxAge: 42
|
||||||
addVaryHeader: true
|
addVaryHeader: true
|
||||||
allowedHosts:
|
allowedHosts:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
hostsProxyHeaders:
|
hostsProxyHeaders:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
sslRedirect: true
|
sslRedirect: true
|
||||||
sslTemporaryRedirect: true
|
sslTemporaryRedirect: true
|
||||||
sslHost: foobar
|
sslHost: foobar
|
||||||
|
@ -222,17 +222,18 @@ http:
|
||||||
publicKey: foobar
|
publicKey: foobar
|
||||||
referrerPolicy: foobar
|
referrerPolicy: foobar
|
||||||
featurePolicy: foobar
|
featurePolicy: foobar
|
||||||
|
permissionsPolicy: foobar
|
||||||
isDevelopment: true
|
isDevelopment: true
|
||||||
Middleware11:
|
Middleware11:
|
||||||
ipWhiteList:
|
ipWhiteList:
|
||||||
sourceRange:
|
sourceRange:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
ipStrategy:
|
ipStrategy:
|
||||||
depth: 42
|
depth: 42
|
||||||
excludedIPs:
|
excludedIPs:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
Middleware12:
|
Middleware12:
|
||||||
inFlightReq:
|
inFlightReq:
|
||||||
amount: 42
|
amount: 42
|
||||||
|
@ -240,8 +241,8 @@ http:
|
||||||
ipStrategy:
|
ipStrategy:
|
||||||
depth: 42
|
depth: 42
|
||||||
excludedIPs:
|
excludedIPs:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
requestHeaderName: foobar
|
requestHeaderName: foobar
|
||||||
requestHost: true
|
requestHost: true
|
||||||
Middleware13:
|
Middleware13:
|
||||||
|
@ -276,14 +277,14 @@ http:
|
||||||
Middleware15:
|
Middleware15:
|
||||||
rateLimit:
|
rateLimit:
|
||||||
average: 42
|
average: 42
|
||||||
period: 42
|
period: 42s
|
||||||
burst: 42
|
burst: 42
|
||||||
sourceCriterion:
|
sourceCriterion:
|
||||||
ipStrategy:
|
ipStrategy:
|
||||||
depth: 42
|
depth: 42
|
||||||
excludedIPs:
|
excludedIPs:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
requestHeaderName: foobar
|
requestHeaderName: foobar
|
||||||
requestHost: true
|
requestHost: true
|
||||||
Middleware16:
|
Middleware16:
|
||||||
|
@ -306,64 +307,68 @@ http:
|
||||||
Middleware20:
|
Middleware20:
|
||||||
retry:
|
retry:
|
||||||
attempts: 42
|
attempts: 42
|
||||||
initialInterval: 42
|
initialInterval: 42s
|
||||||
Middleware21:
|
Middleware21:
|
||||||
stripPrefix:
|
stripPrefix:
|
||||||
prefixes:
|
prefixes:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
forceSlash: true
|
forceSlash: true
|
||||||
Middleware22:
|
Middleware22:
|
||||||
stripPrefixRegex:
|
stripPrefixRegex:
|
||||||
regex:
|
regex:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
serversTransports:
|
serversTransports:
|
||||||
ServersTransport0:
|
ServersTransport0:
|
||||||
serverName: foobar
|
serverName: foobar
|
||||||
insecureSkipVerify: true
|
insecureSkipVerify: true
|
||||||
rootCAs:
|
rootCAs:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
certificates:
|
certificates:
|
||||||
- certFile: foobar
|
- certFile: foobar
|
||||||
keyFile: foobar
|
keyFile: foobar
|
||||||
- certFile: foobar
|
- certFile: foobar
|
||||||
keyFile: foobar
|
keyFile: foobar
|
||||||
maxIdleConnsPerHost: 42
|
maxIdleConnsPerHost: 42
|
||||||
forwardingTimeouts:
|
forwardingTimeouts:
|
||||||
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:
|
||||||
serverName: foobar
|
serverName: foobar
|
||||||
insecureSkipVerify: true
|
insecureSkipVerify: true
|
||||||
rootCAs:
|
rootCAs:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
certificates:
|
certificates:
|
||||||
- certFile: foobar
|
- certFile: foobar
|
||||||
keyFile: foobar
|
keyFile: foobar
|
||||||
- certFile: foobar
|
- certFile: foobar
|
||||||
keyFile: foobar
|
keyFile: foobar
|
||||||
maxIdleConnsPerHost: 42
|
maxIdleConnsPerHost: 42
|
||||||
forwardingTimeouts:
|
forwardingTimeouts:
|
||||||
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:
|
||||||
routers:
|
routers:
|
||||||
TCPRouter0:
|
TCPRouter0:
|
||||||
entryPoints:
|
entryPoints:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
middlewares:
|
middlewares:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
service: foobar
|
service: foobar
|
||||||
rule: foobar
|
rule: foobar
|
||||||
priority: 42
|
priority: 42
|
||||||
|
@ -372,21 +377,21 @@ tcp:
|
||||||
options: foobar
|
options: foobar
|
||||||
certResolver: foobar
|
certResolver: foobar
|
||||||
domains:
|
domains:
|
||||||
- main: foobar
|
- main: foobar
|
||||||
sans:
|
sans:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
- main: foobar
|
- main: foobar
|
||||||
sans:
|
sans:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
TCPRouter1:
|
TCPRouter1:
|
||||||
entryPoints:
|
entryPoints:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
middlewares:
|
middlewares:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
service: foobar
|
service: foobar
|
||||||
rule: foobar
|
rule: foobar
|
||||||
priority: 42
|
priority: 42
|
||||||
|
@ -395,20 +400,14 @@ tcp:
|
||||||
options: foobar
|
options: foobar
|
||||||
certResolver: foobar
|
certResolver: foobar
|
||||||
domains:
|
domains:
|
||||||
- main: foobar
|
- main: foobar
|
||||||
sans:
|
sans:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
- main: foobar
|
- main: foobar
|
||||||
sans:
|
sans:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
middlewares:
|
|
||||||
Middleware00:
|
|
||||||
ipWhiteList:
|
|
||||||
sourceRange:
|
|
||||||
- foobar
|
|
||||||
- foobar
|
|
||||||
services:
|
services:
|
||||||
TCPService01:
|
TCPService01:
|
||||||
loadBalancer:
|
loadBalancer:
|
||||||
|
@ -416,66 +415,75 @@ tcp:
|
||||||
proxyProtocol:
|
proxyProtocol:
|
||||||
version: 42
|
version: 42
|
||||||
servers:
|
servers:
|
||||||
- address: foobar
|
- address: foobar
|
||||||
- address: foobar
|
- address: foobar
|
||||||
TCPService02:
|
TCPService02:
|
||||||
weighted:
|
weighted:
|
||||||
services:
|
services:
|
||||||
- name: foobar
|
- name: foobar
|
||||||
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:
|
||||||
entryPoints:
|
entryPoints:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
service: foobar
|
service: foobar
|
||||||
UDPRouter1:
|
UDPRouter1:
|
||||||
entryPoints:
|
entryPoints:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
service: foobar
|
service: foobar
|
||||||
services:
|
services:
|
||||||
UDPService01:
|
UDPService01:
|
||||||
loadBalancer:
|
loadBalancer:
|
||||||
servers:
|
servers:
|
||||||
- address: foobar
|
- address: foobar
|
||||||
- address: foobar
|
- address: foobar
|
||||||
UDPService02:
|
UDPService02:
|
||||||
weighted:
|
weighted:
|
||||||
services:
|
services:
|
||||||
- name: foobar
|
- name: foobar
|
||||||
weight: 42
|
weight: 42
|
||||||
- name: foobar
|
- name: foobar
|
||||||
weight: 42
|
weight: 42
|
||||||
tls:
|
tls:
|
||||||
certificates:
|
certificates:
|
||||||
- certFile: foobar
|
- certFile: foobar
|
||||||
keyFile: foobar
|
keyFile: foobar
|
||||||
stores:
|
stores:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
- certFile: foobar
|
- certFile: foobar
|
||||||
keyFile: foobar
|
keyFile: foobar
|
||||||
stores:
|
stores:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
options:
|
options:
|
||||||
Options0:
|
Options0:
|
||||||
minVersion: foobar
|
minVersion: foobar
|
||||||
maxVersion: foobar
|
maxVersion: foobar
|
||||||
cipherSuites:
|
cipherSuites:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
curvePreferences:
|
curvePreferences:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
clientAuth:
|
clientAuth:
|
||||||
caFiles:
|
caFiles:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
clientAuthType: foobar
|
clientAuthType: foobar
|
||||||
sniStrict: true
|
sniStrict: true
|
||||||
preferServerCipherSuites: true
|
preferServerCipherSuites: true
|
||||||
|
@ -486,15 +494,15 @@ tls:
|
||||||
minVersion: foobar
|
minVersion: foobar
|
||||||
maxVersion: foobar
|
maxVersion: foobar
|
||||||
cipherSuites:
|
cipherSuites:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
curvePreferences:
|
curvePreferences:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
clientAuth:
|
clientAuth:
|
||||||
caFiles:
|
caFiles:
|
||||||
- foobar
|
- foobar
|
||||||
- foobar
|
- foobar
|
||||||
clientAuthType: foobar
|
clientAuthType: foobar
|
||||||
sniStrict: true
|
sniStrict: true
|
||||||
preferServerCipherSuites: true
|
preferServerCipherSuites: true
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -39,9 +39,9 @@ spec:
|
||||||
port: 9443
|
port: 9443
|
||||||
hostname: example.com
|
hostname: example.com
|
||||||
tls:
|
tls:
|
||||||
- certificateRefs:
|
certificateRefs:
|
||||||
- kind: Secret
|
- kind: Secret
|
||||||
name: mysecret
|
name: mysecret
|
||||||
|
|
||||||
---
|
---
|
||||||
apiVersion: gateway.networking.k8s.io/v1alpha2
|
apiVersion: gateway.networking.k8s.io/v1alpha2
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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
Loading…
Reference in a new issue