chore: move to Traefik organization.
Co-authored-by: Romain <rtribotte@users.noreply.github.com>
This commit is contained in:
parent
9df89e66e3
commit
c0f1e74bed
421 changed files with 5213 additions and 5234 deletions
24
.github/CODEOWNERS
vendored
24
.github/CODEOWNERS
vendored
|
@ -1,24 +0,0 @@
|
||||||
provider/kubernetes/** @containous/kubernetes
|
|
||||||
provider/rancher/** @containous/rancher
|
|
||||||
provider/marathon/** @containous/marathon
|
|
||||||
provider/docker/** @containous/docker
|
|
||||||
|
|
||||||
docs/user-guide/kubernetes.md @containous/kubernetes
|
|
||||||
docs/user-guide/marathon.md @containous/marathon
|
|
||||||
docs/user-guide/swarm.md @containous/docker
|
|
||||||
docs/user-guide/swarm-mode.md @containous/docker
|
|
||||||
|
|
||||||
docs/configuration/backends/docker.md @containous/docker
|
|
||||||
docs/configuration/backends/kubernetes.md @containous/kubernetes
|
|
||||||
docs/configuration/backends/marathon.md @containous/marathon
|
|
||||||
docs/configuration/backends/rancher.md @containous/rancher
|
|
||||||
|
|
||||||
examples/k8s/ @containous/kubernetes
|
|
||||||
examples/compose-k8s.yaml @containous/kubernetes
|
|
||||||
examples/k8s.namespace.yaml @containous/kubernetes
|
|
||||||
examples/compose-rancher.yml @containous/rancher
|
|
||||||
examples/compose-marathon.yml @containous/marathon
|
|
||||||
|
|
||||||
vendor/github.com/gambol99/go-marathon @containous/marathon
|
|
||||||
vendor/github.com/rancher @containous/rancher
|
|
||||||
vendor/k8s.io/ @containous/kubernetes
|
|
|
@ -11,7 +11,7 @@ builds:
|
||||||
env:
|
env:
|
||||||
- CGO_ENABLED=0
|
- CGO_ENABLED=0
|
||||||
ldflags:
|
ldflags:
|
||||||
- -s -w -X github.com/containous/traefik/v2/pkg/version.Version={{.Version}} -X github.com/containous/traefik/v2/pkg/version.Codename={{.Env.CODENAME}} -X github.com/containous/traefik/v2/pkg/version.BuildDate={{.Date}}
|
- -s -w -X github.com/traefik/traefik/v2/pkg/version.Version={{.Version}} -X github.com/traefik/traefik/v2/pkg/version.Codename={{.Env.CODENAME}} -X github.com/traefik/traefik/v2/pkg/version.BuildDate={{.Date}}
|
||||||
|
|
||||||
goos:
|
goos:
|
||||||
- linux
|
- linux
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# For personnal CI
|
# For personnal CI
|
||||||
# mv /home/runner/workspace/src/github.com/<username>/ /home/runner/workspace/src/github.com/containous/
|
# mv /home/runner/workspace/src/github.com/<username>/ /home/runner/workspace/src/github.com/traefik/
|
||||||
# cd /home/runner/workspace/src/github.com/containous/traefik/
|
# cd /home/runner/workspace/src/github.com/traefik/traefik/
|
||||||
for s in apache2 cassandra elasticsearch memcached mysql mongod postgresql sphinxsearch rethinkdb rabbitmq-server redis-server; do sudo service $s stop; done
|
for s in apache2 cassandra elasticsearch memcached mysql mongod postgresql sphinxsearch rethinkdb rabbitmq-server redis-server; do sudo service $s stop; done
|
||||||
sudo swapoff -a
|
sudo swapoff -a
|
||||||
sudo dd if=/dev/zero of=/swapfile bs=1M count=3072
|
sudo dd if=/dev/zero of=/swapfile bs=1M count=3072
|
||||||
|
@ -10,7 +10,7 @@ sudo rm -rf /home/runner/.rbenv
|
||||||
sudo rm -rf /usr/local/golang/{1.4.3,1.5.4,1.6.4,1.7.6,1.8.6,1.9.7,1.10.3,1.11}
|
sudo rm -rf /usr/local/golang/{1.4.3,1.5.4,1.6.4,1.7.6,1.8.6,1.9.7,1.10.3,1.11}
|
||||||
#export DOCKER_VERSION=18.06.3
|
#export DOCKER_VERSION=18.06.3
|
||||||
source .semaphoreci/vars
|
source .semaphoreci/vars
|
||||||
if [ -z "${PULL_REQUEST_NUMBER}" ]; then SHOULD_TEST="-*-"; else TEMP_STORAGE=$(curl --silent https://patch-diff.githubusercontent.com/raw/containous/traefik/pull/${PULL_REQUEST_NUMBER}.diff | patch --dry-run -p1 -R || true); fi
|
if [ -z "${PULL_REQUEST_NUMBER}" ]; then SHOULD_TEST="-*-"; else TEMP_STORAGE=$(curl --silent https://patch-diff.githubusercontent.com/raw/traefik/traefik/pull/${PULL_REQUEST_NUMBER}.diff | patch --dry-run -p1 -R || true); fi
|
||||||
echo ${SHOULD_TEST}
|
echo ${SHOULD_TEST}
|
||||||
if [ -n "$TEMP_STORAGE" ]; then SHOULD_TEST=$(echo "$TEMP_STORAGE" | grep -Ev '(.md|.yaml|.yml)' || :); fi
|
if [ -n "$TEMP_STORAGE" ]; then SHOULD_TEST=$(echo "$TEMP_STORAGE" | grep -Ev '(.md|.yaml|.yml)' || :); fi
|
||||||
echo ${TEMP_STORAGE}
|
echo ${TEMP_STORAGE}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
export REPO='containous/traefik'
|
export REPO='traefik/traefik'
|
||||||
|
|
||||||
if VERSION=$(git describe --exact-match --abbrev=0 --tags);
|
if VERSION=$(git describe --exact-match --abbrev=0 --tags);
|
||||||
then
|
then
|
||||||
|
|
12
.travis.yml
12
.travis.yml
|
@ -29,10 +29,10 @@ before_deploy:
|
||||||
if [ "$TRAVIS_TAG" ]; then
|
if [ "$TRAVIS_TAG" ]; then
|
||||||
make release-packages;
|
make release-packages;
|
||||||
fi;
|
fi;
|
||||||
curl -sfL https://raw.githubusercontent.com/containous/structor/master/godownloader.sh | bash -s -- -b "${GOPATH}/bin" ${STRUCTOR_VERSION}
|
curl -sfL https://raw.githubusercontent.com/traefik/structor/master/godownloader.sh | bash -s -- -b "${GOPATH}/bin" ${STRUCTOR_VERSION}
|
||||||
curl -sSfL https://raw.githubusercontent.com/traefik/mixtus/master/godownloader.sh | sh -s -- -b "${GOPATH}/bin" ${MIXTUS_VERSION}
|
curl -sSfL https://raw.githubusercontent.com/traefik/mixtus/master/godownloader.sh | sh -s -- -b "${GOPATH}/bin" ${MIXTUS_VERSION}
|
||||||
structor -o containous -r traefik --dockerfile-url="https://raw.githubusercontent.com/containous/traefik/v1.7/docs.Dockerfile" --menu.js-url="https://raw.githubusercontent.com/containous/structor/master/traefik-menu.js.gotmpl" --rqts-url="https://raw.githubusercontent.com/containous/structor/master/requirements-override.txt" --force-edit-url --exp-branch=master --debug;
|
structor -o traefik -r traefik --dockerfile-url="https://raw.githubusercontent.com/traefik/traefik/v1.7/docs.Dockerfile" --menu.js-url="https://raw.githubusercontent.com/traefik/structor/master/traefik-menu.js.gotmpl" --rqts-url="https://raw.githubusercontent.com/traefik/structor/master/requirements-override.txt" --force-edit-url --exp-branch=master --debug;
|
||||||
mixtus --dst-doc-path="./traefik" --dst-owner=traefik --dst-repo-name=doc --git-user-email="30906710+traefiker@users.noreply.github.com" --git-user-name=traefiker --src-doc-path="./site" --src-owner=containous --src-repo-name=traefik;
|
mixtus --dst-doc-path="./traefik" --dst-owner=traefik --dst-repo-name=doc --git-user-email="30906710+traefiker@users.noreply.github.com" --git-user-name=traefiker --src-doc-path="./site" --src-owner=traefik --src-repo-name=traefik;
|
||||||
fi
|
fi
|
||||||
|
|
||||||
deploy:
|
deploy:
|
||||||
|
@ -42,13 +42,13 @@ deploy:
|
||||||
skip_cleanup: true
|
skip_cleanup: true
|
||||||
file_glob: true
|
file_glob: true
|
||||||
on:
|
on:
|
||||||
repo: containous/traefik
|
repo: traefik/traefik
|
||||||
tags: true
|
tags: true
|
||||||
- provider: script
|
- provider: script
|
||||||
script: sh script/deploy.sh
|
script: sh script/deploy.sh
|
||||||
skip_cleanup: true
|
skip_cleanup: true
|
||||||
on:
|
on:
|
||||||
repo: containous/traefik
|
repo: traefik/traefik
|
||||||
tags: true
|
tags: true
|
||||||
- provider: pages
|
- provider: pages
|
||||||
edge: false
|
edge: false
|
||||||
|
@ -56,5 +56,5 @@ deploy:
|
||||||
local_dir: site
|
local_dir: site
|
||||||
skip_cleanup: true
|
skip_cleanup: true
|
||||||
on:
|
on:
|
||||||
repo: containous/traefik
|
repo: traefik/traefik
|
||||||
all_branches: true
|
all_branches: true
|
||||||
|
|
Binary file not shown.
7994
CHANGELOG.md
7994
CHANGELOG.md
File diff suppressed because it is too large
Load diff
|
@ -1,6 +1,6 @@
|
||||||
The MIT License (MIT)
|
The MIT License (MIT)
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS
|
Copyright (c) 2016-2020 Containous SAS; 2020 Traefik Labs
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|
4
Makefile
4
Makefile
|
@ -13,7 +13,7 @@ GIT_BRANCH := $(subst heads/,,$(shell git rev-parse --abbrev-ref HEAD 2>/dev/nul
|
||||||
TRAEFIK_DEV_IMAGE := traefik-dev$(if $(GIT_BRANCH),:$(subst /,-,$(GIT_BRANCH)))
|
TRAEFIK_DEV_IMAGE := traefik-dev$(if $(GIT_BRANCH),:$(subst /,-,$(GIT_BRANCH)))
|
||||||
|
|
||||||
REPONAME := $(shell echo $(REPO) | tr '[:upper:]' '[:lower:]')
|
REPONAME := $(shell echo $(REPO) | tr '[:upper:]' '[:lower:]')
|
||||||
TRAEFIK_IMAGE := $(if $(REPONAME),$(REPONAME),"containous/traefik")
|
TRAEFIK_IMAGE := $(if $(REPONAME),$(REPONAME),"traefik/traefik")
|
||||||
|
|
||||||
INTEGRATION_OPTS := $(if $(MAKE_DOCKER_HOST),-e "DOCKER_HOST=$(MAKE_DOCKER_HOST)", -e "TEST_CONTAINER=1" -v "/var/run/docker.sock:/var/run/docker.sock")
|
INTEGRATION_OPTS := $(if $(MAKE_DOCKER_HOST),-e "DOCKER_HOST=$(MAKE_DOCKER_HOST)", -e "TEST_CONTAINER=1" -v "/var/run/docker.sock:/var/run/docker.sock")
|
||||||
DOCKER_BUILD_ARGS := $(if $(DOCKER_VERSION), "--build-arg=DOCKER_VERSION=$(DOCKER_VERSION)",)
|
DOCKER_BUILD_ARGS := $(if $(DOCKER_VERSION), "--build-arg=DOCKER_VERSION=$(DOCKER_VERSION)",)
|
||||||
|
@ -29,7 +29,7 @@ TRAEFIK_ENVS := \
|
||||||
-e CI \
|
-e CI \
|
||||||
-e CONTAINER=DOCKER # Indicator for integration tests that we are running inside a container.
|
-e CONTAINER=DOCKER # Indicator for integration tests that we are running inside a container.
|
||||||
|
|
||||||
TRAEFIK_MOUNT := -v "$(CURDIR)/$(BIND_DIR):/go/src/github.com/containous/traefik/$(BIND_DIR)"
|
TRAEFIK_MOUNT := -v "$(CURDIR)/$(BIND_DIR):/go/src/github.com/traefik/traefik/$(BIND_DIR)"
|
||||||
DOCKER_RUN_OPTS := $(TRAEFIK_ENVS) $(TRAEFIK_MOUNT) "$(TRAEFIK_DEV_IMAGE)"
|
DOCKER_RUN_OPTS := $(TRAEFIK_ENVS) $(TRAEFIK_MOUNT) "$(TRAEFIK_DEV_IMAGE)"
|
||||||
DOCKER_NON_INTERACTIVE ?= false
|
DOCKER_NON_INTERACTIVE ?= false
|
||||||
DOCKER_RUN_TRAEFIK := docker run --add-host=host.docker.internal:127.0.0.1 $(INTEGRATION_OPTS) $(if $(DOCKER_NON_INTERACTIVE), , -it) $(DOCKER_RUN_OPTS)
|
DOCKER_RUN_TRAEFIK := docker run --add-host=host.docker.internal:127.0.0.1 $(INTEGRATION_OPTS) $(if $(DOCKER_NON_INTERACTIVE), , -it) $(DOCKER_RUN_OPTS)
|
||||||
|
|
10
README.md
10
README.md
|
@ -5,9 +5,9 @@
|
||||||
|
|
||||||
[![Build Status SemaphoreCI](https://semaphoreci.com/api/v1/containous/traefik/branches/master/shields_badge.svg)](https://semaphoreci.com/containous/traefik)
|
[![Build Status SemaphoreCI](https://semaphoreci.com/api/v1/containous/traefik/branches/master/shields_badge.svg)](https://semaphoreci.com/containous/traefik)
|
||||||
[![Docs](https://img.shields.io/badge/docs-current-brightgreen.svg)](https://docs.traefik.io)
|
[![Docs](https://img.shields.io/badge/docs-current-brightgreen.svg)](https://docs.traefik.io)
|
||||||
[![Go Report Card](https://goreportcard.com/badge/containous/traefik)](https://goreportcard.com/report/containous/traefik)
|
[![Go Report Card](https://goreportcard.com/badge/traefik/traefik)](https://goreportcard.com/report/traefik/traefik)
|
||||||
[![](https://images.microbadger.com/badges/image/traefik.svg)](https://microbadger.com/images/traefik)
|
[![](https://images.microbadger.com/badges/image/traefik.svg)](https://microbadger.com/images/traefik)
|
||||||
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/containous/traefik/blob/master/LICENSE.md)
|
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/traefik/traefik/blob/master/LICENSE.md)
|
||||||
[![Join the community support forum at https://community.containo.us/](https://img.shields.io/badge/style-register-green.svg?style=social&label=Discourse)](https://community.containo.us/)
|
[![Join the community support forum at https://community.containo.us/](https://img.shields.io/badge/style-register-green.svg?style=social&label=Discourse)](https://community.containo.us/)
|
||||||
[![Twitter](https://img.shields.io/twitter/follow/traefik.svg?style=social)](https://twitter.com/intent/follow?screen_name=traefik)
|
[![Twitter](https://img.shields.io/twitter/follow/traefik.svg?style=social)](https://twitter.com/intent/follow?screen_name=traefik)
|
||||||
|
|
||||||
|
@ -102,13 +102,13 @@ If you need commercial support, please contact [Containo.us](https://containo.us
|
||||||
|
|
||||||
## Download
|
## Download
|
||||||
|
|
||||||
- Grab the latest binary from the [releases](https://github.com/containous/traefik/releases) page and run it with the [sample configuration file](https://raw.githubusercontent.com/containous/traefik/master/traefik.sample.toml):
|
- Grab the latest binary from the [releases](https://github.com/traefik/traefik/releases) page and run it with the [sample configuration file](https://raw.githubusercontent.com/traefik/traefik/master/traefik.sample.toml):
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
./traefik --configFile=traefik.toml
|
./traefik --configFile=traefik.toml
|
||||||
```
|
```
|
||||||
|
|
||||||
- Or use the official tiny Docker image and run it with the [sample configuration file](https://raw.githubusercontent.com/containous/traefik/master/traefik.sample.toml):
|
- Or use the official tiny Docker image and run it with the [sample configuration file](https://raw.githubusercontent.com/traefik/traefik/master/traefik.sample.toml):
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker run -d -p 8080:8080 -p 80:80 -v $PWD/traefik.toml:/etc/traefik/traefik.toml traefik
|
docker run -d -p 8080:8080 -p 80:80 -v $PWD/traefik.toml:/etc/traefik/traefik.toml traefik
|
||||||
|
@ -117,7 +117,7 @@ docker run -d -p 8080:8080 -p 80:80 -v $PWD/traefik.toml:/etc/traefik/traefik.to
|
||||||
- Or get the sources:
|
- Or get the sources:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
git clone https://github.com/containous/traefik
|
git clone https://github.com/traefik/traefik
|
||||||
```
|
```
|
||||||
|
|
||||||
## Introductory Videos
|
## Introductory Videos
|
||||||
|
|
|
@ -27,11 +27,11 @@ RUN curl -sfL https://raw.githubusercontent.com/client9/misspell/master/install
|
||||||
# Download goreleaser binary to bin folder in $GOPATH
|
# Download goreleaser binary to bin folder in $GOPATH
|
||||||
RUN curl -sfL https://install.goreleaser.com/github.com/goreleaser/goreleaser.sh | sh
|
RUN curl -sfL https://install.goreleaser.com/github.com/goreleaser/goreleaser.sh | sh
|
||||||
|
|
||||||
WORKDIR /go/src/github.com/containous/traefik
|
WORKDIR /go/src/github.com/traefik/traefik
|
||||||
|
|
||||||
# Download go modules
|
# Download go modules
|
||||||
COPY go.mod .
|
COPY go.mod .
|
||||||
COPY go.sum .
|
COPY go.sum .
|
||||||
RUN GO111MODULE=on GOPROXY=https://proxy.golang.org go mod download
|
RUN GO111MODULE=on GOPROXY=https://proxy.golang.org go mod download
|
||||||
|
|
||||||
COPY . /go/src/github.com/containous/traefik
|
COPY . /go/src/github.com/traefik/traefik
|
||||||
|
|
|
@ -3,8 +3,8 @@ package cmd
|
||||||
import (
|
import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/containous/traefik/v2/pkg/config/static"
|
|
||||||
ptypes "github.com/traefik/paerser/types"
|
ptypes "github.com/traefik/paerser/types"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/config/static"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TraefikCmdConfiguration wraps the static configuration and extra parameters.
|
// TraefikCmdConfiguration wraps the static configuration and extra parameters.
|
||||||
|
|
|
@ -7,8 +7,8 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/containous/traefik/v2/pkg/config/static"
|
|
||||||
"github.com/traefik/paerser/cli"
|
"github.com/traefik/paerser/cli"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/config/static"
|
||||||
)
|
)
|
||||||
|
|
||||||
// NewCmd builds a new HealthCheck command.
|
// NewCmd builds a new HealthCheck command.
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/containous/traefik/v2/pkg/config/static"
|
"github.com/traefik/traefik/v2/pkg/config/static"
|
||||||
"github.com/containous/traefik/v2/pkg/plugins"
|
"github.com/traefik/traefik/v2/pkg/plugins"
|
||||||
)
|
)
|
||||||
|
|
||||||
const outputDir = "./plugins-storage/"
|
const outputDir = "./plugins-storage/"
|
||||||
|
|
|
@ -11,34 +11,34 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/containous/traefik/v2/autogen/genstatic"
|
|
||||||
"github.com/containous/traefik/v2/cmd"
|
|
||||||
"github.com/containous/traefik/v2/cmd/healthcheck"
|
|
||||||
cmdVersion "github.com/containous/traefik/v2/cmd/version"
|
|
||||||
tcli "github.com/containous/traefik/v2/pkg/cli"
|
|
||||||
"github.com/containous/traefik/v2/pkg/collector"
|
|
||||||
"github.com/containous/traefik/v2/pkg/config/dynamic"
|
|
||||||
"github.com/containous/traefik/v2/pkg/config/runtime"
|
|
||||||
"github.com/containous/traefik/v2/pkg/config/static"
|
|
||||||
"github.com/containous/traefik/v2/pkg/log"
|
|
||||||
"github.com/containous/traefik/v2/pkg/metrics"
|
|
||||||
"github.com/containous/traefik/v2/pkg/middlewares/accesslog"
|
|
||||||
"github.com/containous/traefik/v2/pkg/pilot"
|
|
||||||
"github.com/containous/traefik/v2/pkg/plugins"
|
|
||||||
"github.com/containous/traefik/v2/pkg/provider/acme"
|
|
||||||
"github.com/containous/traefik/v2/pkg/provider/aggregator"
|
|
||||||
"github.com/containous/traefik/v2/pkg/provider/traefik"
|
|
||||||
"github.com/containous/traefik/v2/pkg/safe"
|
|
||||||
"github.com/containous/traefik/v2/pkg/server"
|
|
||||||
"github.com/containous/traefik/v2/pkg/server/middleware"
|
|
||||||
"github.com/containous/traefik/v2/pkg/server/service"
|
|
||||||
traefiktls "github.com/containous/traefik/v2/pkg/tls"
|
|
||||||
"github.com/containous/traefik/v2/pkg/types"
|
|
||||||
"github.com/containous/traefik/v2/pkg/version"
|
|
||||||
"github.com/coreos/go-systemd/daemon"
|
"github.com/coreos/go-systemd/daemon"
|
||||||
assetfs "github.com/elazarl/go-bindata-assetfs"
|
assetfs "github.com/elazarl/go-bindata-assetfs"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
"github.com/traefik/paerser/cli"
|
"github.com/traefik/paerser/cli"
|
||||||
|
"github.com/traefik/traefik/v2/autogen/genstatic"
|
||||||
|
"github.com/traefik/traefik/v2/cmd"
|
||||||
|
"github.com/traefik/traefik/v2/cmd/healthcheck"
|
||||||
|
cmdVersion "github.com/traefik/traefik/v2/cmd/version"
|
||||||
|
tcli "github.com/traefik/traefik/v2/pkg/cli"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/collector"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/config/dynamic"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/config/runtime"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/config/static"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/log"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/metrics"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/middlewares/accesslog"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/pilot"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/plugins"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/provider/acme"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/provider/aggregator"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/provider/traefik"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/safe"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/server"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/server/middleware"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/server/service"
|
||||||
|
traefiktls "github.com/traefik/traefik/v2/pkg/tls"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/types"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/version"
|
||||||
"github.com/vulcand/oxy/roundrobin"
|
"github.com/vulcand/oxy/roundrobin"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -7,8 +7,8 @@ import (
|
||||||
"runtime"
|
"runtime"
|
||||||
"text/template"
|
"text/template"
|
||||||
|
|
||||||
"github.com/containous/traefik/v2/pkg/version"
|
|
||||||
"github.com/traefik/paerser/cli"
|
"github.com/traefik/paerser/cli"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/version"
|
||||||
)
|
)
|
||||||
|
|
||||||
var versionTemplate = `Version: {{.Version}}
|
var versionTemplate = `Version: {{.Version}}
|
||||||
|
|
|
@ -7,4 +7,4 @@ There are many ways to contribute to the project, and there is one that always s
|
||||||
|
|
||||||
If you're talking about Traefik, [let us know](https://blog.containo.us/spread-the-love-ba5a40aa72e7) and we'll promote your enthusiasm!
|
If you're talking about Traefik, [let us know](https://blog.containo.us/spread-the-love-ba5a40aa72e7) and we'll promote your enthusiasm!
|
||||||
|
|
||||||
Also, if you've written about Traefik or shared useful information you'd like to promote, feel free to add links in the [dedicated wiki page on Github](https://github.com/containous/traefik/wiki/Awesome-Traefik).
|
Also, if you've written about Traefik or shared useful information you'd like to promote, feel free to add links in the [dedicated wiki page on Github](https://github.com/traefik/traefik/wiki/Awesome-Traefik).
|
||||||
|
|
|
@ -35,7 +35,7 @@ Step 1/10 : FROM golang:1.14-alpine
|
||||||
[...]
|
[...]
|
||||||
Successfully built 5c3c1a911277
|
Successfully built 5c3c1a911277
|
||||||
Successfully tagged traefik-dev:4475--feature-documentation
|
Successfully tagged traefik-dev:4475--feature-documentation
|
||||||
docker run -e "TEST_CONTAINER=1" -v "/var/run/docker.sock:/var/run/docker.sock" -it -e OS_ARCH_ARG -e OS_PLATFORM_ARG -e TESTFLAGS -e VERBOSE -e VERSION -e CODENAME -e TESTDIRS -e CI -e CONTAINER=DOCKER -v "/home/ldez/sources/go/src/github.com/containous/traefik/"dist":/go/src/github.com/containous/traefik/"dist"" "traefik-dev:4475--feature-documentation" ./script/make.sh generate binary
|
docker run -e "TEST_CONTAINER=1" -v "/var/run/docker.sock:/var/run/docker.sock" -it -e OS_ARCH_ARG -e OS_PLATFORM_ARG -e TESTFLAGS -e VERBOSE -e VERSION -e CODENAME -e TESTDIRS -e CI -e CONTAINER=DOCKER -v "/home/ldez/sources/go/src/github.com/traefik/traefik/"dist":/go/src/github.com/traefik/traefik/"dist"" "traefik-dev:4475--feature-documentation" ./script/make.sh generate binary
|
||||||
---> Making bundle: generate (in .)
|
---> Making bundle: generate (in .)
|
||||||
removed 'autogen/genstatic/gen.go'
|
removed 'autogen/genstatic/gen.go'
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ Requirements:
|
||||||
|
|
||||||
!!! tip "Source Directory"
|
!!! tip "Source Directory"
|
||||||
|
|
||||||
It is recommended that you clone Traefik into the `~/go/src/github.com/containous/traefik` directory.
|
It is recommended that you clone Traefik into the `~/go/src/github.com/traefik/traefik` directory.
|
||||||
This is the official golang workspace hierarchy that will allow dependencies to be properly resolved.
|
This is the official golang workspace hierarchy that will allow dependencies to be properly resolved.
|
||||||
|
|
||||||
!!! note "Environment"
|
!!! note "Environment"
|
||||||
|
@ -104,7 +104,7 @@ Once you've set up your go environment and cloned the source repository, you can
|
||||||
Beforehand, you need to get [go-bindata](https://github.com/containous/go-bindata) (the first time) in order to be able to use the `go generate` command (which is part of the build process).
|
Beforehand, you need to get [go-bindata](https://github.com/containous/go-bindata) (the first time) in order to be able to use the `go generate` command (which is part of the build process).
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd ~/go/src/github.com/containous/traefik
|
cd ~/go/src/github.com/traefik/traefik
|
||||||
|
|
||||||
# Get go-bindata. (Important: the ellipses are required.)
|
# Get go-bindata. (Important: the ellipses are required.)
|
||||||
GO111MODULE=off go get github.com/containous/go-bindata/...
|
GO111MODULE=off go get github.com/containous/go-bindata/...
|
||||||
|
@ -124,7 +124,7 @@ go generate
|
||||||
go build ./cmd/traefik
|
go build ./cmd/traefik
|
||||||
```
|
```
|
||||||
|
|
||||||
You will find the Traefik executable (`traefik`) in the `~/go/src/github.com/containous/traefik` directory.
|
You will find the Traefik executable (`traefik`) in the `~/go/src/github.com/traefik/traefik` directory.
|
||||||
|
|
||||||
## Testing
|
## Testing
|
||||||
|
|
||||||
|
@ -138,13 +138,13 @@ Run all tests (unit and integration) using the `test` target.
|
||||||
$ make test-unit
|
$ make test-unit
|
||||||
docker build -t "traefik-dev:your-feature-branch" -f build.Dockerfile .
|
docker build -t "traefik-dev:your-feature-branch" -f build.Dockerfile .
|
||||||
# […]
|
# […]
|
||||||
docker run --rm -it -e OS_ARCH_ARG -e OS_PLATFORM_ARG -e TESTFLAGS -v "/home/user/go/src/github/containous/traefik/dist:/go/src/github.com/containous/traefik/dist" "traefik-dev:your-feature-branch" ./script/make.sh generate test-unit
|
docker run --rm -it -e OS_ARCH_ARG -e OS_PLATFORM_ARG -e TESTFLAGS -v "/home/user/go/src/github/traefik/traefik/dist:/go/src/github.com/traefik/traefik/dist" "traefik-dev:your-feature-branch" ./script/make.sh generate test-unit
|
||||||
---> Making bundle: generate (in .)
|
---> Making bundle: generate (in .)
|
||||||
removed 'gen.go'
|
removed 'gen.go'
|
||||||
|
|
||||||
---> Making bundle: test-unit (in .)
|
---> Making bundle: test-unit (in .)
|
||||||
+ go test -cover -coverprofile=cover.out .
|
+ go test -cover -coverprofile=cover.out .
|
||||||
ok github.com/containous/traefik 0.005s coverage: 4.1% of statements
|
ok github.com/traefik/traefik 0.005s coverage: 4.1% of statements
|
||||||
|
|
||||||
Test success
|
Test success
|
||||||
```
|
```
|
||||||
|
@ -172,7 +172,7 @@ More: https://labix.org/gocheck
|
||||||
Unit tests can be run from the cloned directory using `$ go test ./...` which should return `ok`, similar to:
|
Unit tests can be run from the cloned directory using `$ go test ./...` which should return `ok`, similar to:
|
||||||
|
|
||||||
```test
|
```test
|
||||||
ok _/home/user/go/src/github/containous/traefik 0.004s
|
ok _/home/user/go/src/github/traefik/traefik 0.004s
|
||||||
```
|
```
|
||||||
|
|
||||||
Integration tests must be run from the `integration/` directory and require the `-integration` switch: `$ cd integration && go test -integration ./...`.
|
Integration tests must be run from the `integration/` directory and require the `-integration` switch: `$ cd integration && go test -integration ./...`.
|
||||||
|
|
|
@ -29,7 +29,7 @@ For this very reason, the sendAnonymousUsage option is mandatory: we want you to
|
||||||
|
|
||||||
## Collected Data
|
## Collected Data
|
||||||
|
|
||||||
This feature comes from the public proposal [here](https://github.com/containous/traefik/issues/2369).
|
This feature comes from the public proposal [here](https://github.com/traefik/traefik/issues/2369).
|
||||||
|
|
||||||
In order to help us learn more about how Traefik is being used and improve it, we collect anonymous usage statistics from running instances.
|
In order to help us learn more about how Traefik is being used and improve it, we collect anonymous usage statistics from running instances.
|
||||||
Those data help us prioritize our developments and focus on what's important for our users (for example, which provider is popular, and which is not).
|
Those data help us prioritize our developments and focus on what's important for our users (for example, which provider is popular, and which is not).
|
||||||
|
@ -90,6 +90,6 @@ Once a day (the first call begins 10 minutes after the start of Traefik), we col
|
||||||
|
|
||||||
## The Code for Data Collection
|
## The Code for Data Collection
|
||||||
|
|
||||||
If you want to dig into more details, here is the source code of the collecting system: [collector.go](https://github.com/containous/traefik/blob/master/pkg/collector/collector.go)
|
If you want to dig into more details, here is the source code of the collecting system: [collector.go](https://github.com/traefik/traefik/blob/master/pkg/collector/collector.go)
|
||||||
|
|
||||||
By default we anonymize all configuration fields, except fields tagged with `export=true`.
|
By default we anonymize all configuration fields, except fields tagged with `export=true`.
|
||||||
|
|
|
@ -20,7 +20,7 @@ You can build the documentation and test it locally (with live reloading), using
|
||||||
$ make docs
|
$ make docs
|
||||||
docker build -t traefik-docs -f docs.Dockerfile .
|
docker build -t traefik-docs -f docs.Dockerfile .
|
||||||
# […]
|
# […]
|
||||||
docker run --rm -v /home/user/go/github/containous/traefik:/mkdocs -p 8000:8000 traefik-docs mkdocs serve
|
docker run --rm -v /home/user/go/github/traefik/traefik:/mkdocs -p 8000:8000 traefik-docs mkdocs serve
|
||||||
# […]
|
# […]
|
||||||
[I 170828 20:47:48 server:283] Serving on http://0.0.0.0:8000
|
[I 170828 20:47:48 server:283] Serving on http://0.0.0.0:8000
|
||||||
[I 170828 20:47:48 handlers:60] Start watching changes
|
[I 170828 20:47:48 handlers:60] Start watching changes
|
||||||
|
@ -75,7 +75,7 @@ To check that the documentation meets standard expectations (no dead links, html
|
||||||
$ make docs-verify
|
$ make docs-verify
|
||||||
docker build -t traefik-docs-verify ./script/docs-verify-docker-image ## Build Validator image
|
docker build -t traefik-docs-verify ./script/docs-verify-docker-image ## Build Validator image
|
||||||
...
|
...
|
||||||
docker run --rm -v /home/travis/build/containous/traefik:/app traefik-docs-verify ## Check for dead links and w3c compliance
|
docker run --rm -v /home/travis/build/traefik/traefik:/app traefik-docs-verify ## Check for dead links and w3c compliance
|
||||||
=== Checking HTML content...
|
=== Checking HTML content...
|
||||||
Running ["HtmlCheck", "ImageCheck", "ScriptCheck", "LinkCheck"] on /app/site/basics/index.html on *.html...
|
Running ["HtmlCheck", "ImageCheck", "ScriptCheck", "LinkCheck"] on /app/site/basics/index.html on *.html...
|
||||||
```
|
```
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
|
|
||||||
## Contributions Daily Meeting
|
## Contributions Daily Meeting
|
||||||
|
|
||||||
* 3 Maintainers should attend to a Contributions Daily Meeting where we sort and label new issues ([is:issue label:status/0-needs-triage](https://github.com/containous/traefik/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3Astatus%2F0-needs-triage+)), and review every Pull Requests
|
* 3 Maintainers should attend to a Contributions Daily Meeting where we sort and label new issues ([is:issue label:status/0-needs-triage](https://github.com/traefik/traefik/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3Astatus%2F0-needs-triage+)), and review every Pull Requests
|
||||||
* Every pull request should be checked during the Contributions Daily Meeting
|
* Every pull request should be checked during the Contributions Daily Meeting
|
||||||
* Even if it’s already assigned
|
* Even if it’s already assigned
|
||||||
* Even PR labelled with `contributor/waiting-for-corrections` or `contributor/waiting-for-feedback`
|
* Even PR labelled with `contributor/waiting-for-corrections` or `contributor/waiting-for-feedback`
|
||||||
|
@ -43,7 +43,7 @@ We use [PRM](https://github.com/ldez/prm) to manage locally pull requests.
|
||||||
|
|
||||||
## Bots
|
## Bots
|
||||||
|
|
||||||
### [Myrmica Lobicornis](https://github.com/containous/lobicornis/)
|
### [Myrmica Lobicornis](https://github.com/traefik/lobicornis/)
|
||||||
|
|
||||||
Update and Merge Pull Request.
|
Update and Merge Pull Request.
|
||||||
|
|
||||||
|
@ -67,12 +67,12 @@ This label is used when:
|
||||||
* Merging branches into the master
|
* Merging branches into the master
|
||||||
* Preparing the release
|
* Preparing the release
|
||||||
|
|
||||||
### [Myrmica Bibikoffi](https://github.com/containous/bibikoffi/)
|
### [Myrmica Bibikoffi](https://github.com/traefik/bibikoffi/)
|
||||||
|
|
||||||
* closes stale issues [cron]
|
* closes stale issues [cron]
|
||||||
* use some criterion as number of days between creation, last update, labels, ...
|
* use some criterion as number of days between creation, last update, labels, ...
|
||||||
|
|
||||||
### [Myrmica Aloba](https://github.com/containous/aloba)
|
### [Myrmica Aloba](https://github.com/traefik/aloba)
|
||||||
|
|
||||||
Manage GitHub labels.
|
Manage GitHub labels.
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
Help Us Help You!
|
Help Us Help You!
|
||||||
{: .subtitle }
|
{: .subtitle }
|
||||||
|
|
||||||
We use the [GitHub issue tracker](https://github.com/containous/traefik/issues) to keep track of issues in Traefik.
|
We use the [GitHub issue tracker](https://github.com/traefik/traefik/issues) to keep track of issues in Traefik.
|
||||||
|
|
||||||
The process of sorting and checking the issues is a daunting task, and requires a lot of work (more than an hour a day ... just for sorting).
|
The process of sorting and checking the issues is a daunting task, and requires a lot of work (more than an hour a day ... just for sorting).
|
||||||
To save us some time and get quicker feedback, be sure to follow the guide lines below.
|
To save us some time and get quicker feedback, be sure to follow the guide lines below.
|
||||||
|
@ -22,7 +22,7 @@ The title must be short and descriptive. (~60 characters)
|
||||||
|
|
||||||
## Description
|
## Description
|
||||||
|
|
||||||
Follow the [issue template](https://github.com/containous/traefik/blob/master/.github/ISSUE_TEMPLATE.md) as much as possible.
|
Follow the [issue template](https://github.com/traefik/traefik/blob/master/.github/ISSUE_TEMPLATE.md) as much as possible.
|
||||||
|
|
||||||
Explain us in which conditions you encountered the issue, what is your context.
|
Explain us in which conditions you encountered the issue, what is your context.
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ The title must be short and descriptive. (~60 characters)
|
||||||
|
|
||||||
## Description
|
## Description
|
||||||
|
|
||||||
Follow the [pull request template](https://github.com/containous/traefik/blob/master/.github/PULL_REQUEST_TEMPLATE.md) as much as possible.
|
Follow the [pull request template](https://github.com/traefik/traefik/blob/master/.github/PULL_REQUEST_TEMPLATE.md) as much as possible.
|
||||||
|
|
||||||
Explain the conditions which led you to write this PR: give us context.
|
Explain the conditions which led you to write this PR: give us context.
|
||||||
The context should lead to something, an idea or a problem that you’re facing.
|
The context should lead to something, an idea or a problem that you’re facing.
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
_You_ Made It
|
_You_ Made It
|
||||||
{: .subtitle}
|
{: .subtitle}
|
||||||
|
|
||||||
Traefik truly is an [open-source project](https://github.com/containous/traefik/),
|
Traefik truly is an [open-source project](https://github.com/traefik/traefik/),
|
||||||
and wouldn't have become what it is today without the help of our [many contributors](https://github.com/containous/traefik/graphs/contributors) (at the time of writing this),
|
and wouldn't have become what it is today without the help of our [many contributors](https://github.com/traefik/traefik/graphs/contributors) (at the time of writing this),
|
||||||
not accounting for people having helped with issues, tests, comments, articles, ... or just enjoying it and letting others know.
|
not accounting for people having helped with issues, tests, comments, articles, ... or just enjoying it and letting others know.
|
||||||
|
|
||||||
So once again, thank you for your invaluable help on making Traefik such a good product.
|
So once again, thank you for your invaluable help on making Traefik such a good product.
|
||||||
|
|
|
@ -9,7 +9,7 @@ You can install Traefik with the following flavors:
|
||||||
|
|
||||||
## Use the Official Docker Image
|
## Use the Official Docker Image
|
||||||
|
|
||||||
Choose one of the [official Docker images](https://hub.docker.com/_/traefik) and run it with the [sample configuration file](https://raw.githubusercontent.com/containous/traefik/v2.3/traefik.sample.toml):
|
Choose one of the [official Docker images](https://hub.docker.com/_/traefik) and run it with the [sample configuration file](https://raw.githubusercontent.com/traefik/traefik/v2.3/traefik.sample.toml):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker run -d -p 8080:8080 -p 80:80 \
|
docker run -d -p 8080:8080 -p 80:80 \
|
||||||
|
@ -32,7 +32,7 @@ For more details, go to the [Docker provider documentation](../providers/docker.
|
||||||
The Traefik Chart from
|
The Traefik Chart from
|
||||||
[Helm's default charts repository](https://github.com/helm/charts/tree/master/stable/traefik) is still using [Traefik v1.7](https://docs.traefik.io/v1.7).
|
[Helm's default charts repository](https://github.com/helm/charts/tree/master/stable/traefik) is still using [Traefik v1.7](https://docs.traefik.io/v1.7).
|
||||||
|
|
||||||
Traefik can be installed in Kubernetes using the Helm chart from <https://github.com/containous/traefik-helm-chart>.
|
Traefik can be installed in Kubernetes using the Helm chart from <https://github.com/traefik/traefik-helm-chart>.
|
||||||
|
|
||||||
Ensure that the following requirements are met:
|
Ensure that the following requirements are met:
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ Ensure that the following requirements are met:
|
||||||
Add Traefik's chart repository to Helm:
|
Add Traefik's chart repository to Helm:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
helm repo add traefik https://containous.github.io/traefik-helm-chart
|
helm repo add traefik https://traefik.github.io/traefik-helm-chart
|
||||||
```
|
```
|
||||||
|
|
||||||
You can update the chart repository by running:
|
You can update the chart repository by running:
|
||||||
|
@ -76,7 +76,7 @@ helm install traefik traefik/traefik
|
||||||
{: #helm-custom-values }
|
{: #helm-custom-values }
|
||||||
|
|
||||||
The values are not (yet) documented, but are self-explanatory:
|
The values are not (yet) documented, but are self-explanatory:
|
||||||
you can look at the [default `values.yaml`](https://github.com/containous/traefik-helm-chart/blob/master/traefik/values.yaml) file to explore possibilities.
|
you can look at the [default `values.yaml`](https://github.com/traefik/traefik-helm-chart/blob/master/traefik/values.yaml) file to explore possibilities.
|
||||||
|
|
||||||
You can also set Traefik command line flags using `additionalArguments`.
|
You can also set Traefik command line flags using `additionalArguments`.
|
||||||
Example of installation with logging set to `DEBUG`:
|
Example of installation with logging set to `DEBUG`:
|
||||||
|
@ -128,7 +128,7 @@ spec:
|
||||||
|
|
||||||
## Use the Binary Distribution
|
## Use the Binary Distribution
|
||||||
|
|
||||||
Grab the latest binary from the [releases](https://github.com/containous/traefik/releases) page.
|
Grab the latest binary from the [releases](https://github.com/traefik/traefik/releases) page.
|
||||||
|
|
||||||
??? info "Check the integrity of the downloaded file"
|
??? info "Check the integrity of the downloaded file"
|
||||||
|
|
||||||
|
|
|
@ -48,7 +48,7 @@ Edit your `docker-compose.yml` file and add the following at the end of your fil
|
||||||
# ...
|
# ...
|
||||||
whoami:
|
whoami:
|
||||||
# A container that exposes an API to show its IP address
|
# A container that exposes an API to show its IP address
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
labels:
|
labels:
|
||||||
- "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)"
|
- "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)"
|
||||||
```
|
```
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
![Architecture](assets/img/traefik-architecture.png)
|
![Architecture](assets/img/traefik-architecture.png)
|
||||||
|
|
||||||
Traefik is an [open-source](https://github.com/containous/traefik) *Edge Router* that makes publishing your services a fun and easy experience.
|
Traefik is an [open-source](https://github.com/traefik/traefik) *Edge Router* that makes publishing your services a fun and easy experience.
|
||||||
It receives requests on behalf of your system and finds out which components are responsible for handling them.
|
It receives requests on behalf of your system and finds out which components are responsible for handling them.
|
||||||
|
|
||||||
What sets Traefik apart, besides its many features, is that it automatically discovers the right configuration for your services.
|
What sets Traefik apart, besides its many features, is that it automatically discovers the right configuration for your services.
|
||||||
|
|
|
@ -17,7 +17,7 @@ Pieces of middleware can be combined in chains to fit every scenario.
|
||||||
# As a Docker Label
|
# As a Docker Label
|
||||||
whoami:
|
whoami:
|
||||||
# A container that exposes an API to show its IP address
|
# A container that exposes an API to show its IP address
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
labels:
|
labels:
|
||||||
# Create a middleware named `foo-add-prefix`
|
# Create a middleware named `foo-add-prefix`
|
||||||
- "traefik.http.middlewares.foo-add-prefix.addprefix.prefix=/foo"
|
- "traefik.http.middlewares.foo-add-prefix.addprefix.prefix=/foo"
|
||||||
|
|
|
@ -10,7 +10,7 @@ feature by feature, of how the configuration looked like in v1, and how it now l
|
||||||
|
|
||||||
!!! info "Migration Helper"
|
!!! info "Migration Helper"
|
||||||
|
|
||||||
We created a tool to help during the migration: [traefik-migration-tool](https://github.com/containous/traefik-migration-tool)
|
We created a tool to help during the migration: [traefik-migration-tool](https://github.com/traefik/traefik-migration-tool)
|
||||||
|
|
||||||
This tool allows to:
|
This tool allows to:
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ To complete the connection, Traefik Pilot will issue a token that must be added
|
||||||
|
|
||||||
Traefik users can create their own plugins and contribute them to the Traefik Pilot catalog to share them with the community.
|
Traefik users can create their own plugins and contribute them to the Traefik Pilot catalog to share them with the community.
|
||||||
|
|
||||||
Plugins are written in [Go](https://golang.org/) and their code is executed by an [embedded Go interpreter](https://github.com/containous/yaegi).
|
Plugins are written in [Go](https://golang.org/) and their code is executed by an [embedded Go interpreter](https://github.com/traefik/yaegi).
|
||||||
There is no need to compile binaries and all plugins are 100% cross-platform.
|
There is no need to compile binaries and all plugins are 100% cross-platform.
|
||||||
|
|
||||||
To learn more and see code for example Traefik plugins, please see the [developer documentation](https://github.com/containous/plugindemo).
|
To learn more and see code for example Traefik plugins, please see the [developer documentation](https://github.com/traefik/plugindemo).
|
||||||
|
|
|
@ -12,24 +12,24 @@ Plugins are hosted on GitHub, but you can browse plugins to add to your register
|
||||||
To add a new plugin to a Traefik instance, you must modify that instance's static configuration.
|
To add a new plugin to a Traefik instance, you must modify that instance's static configuration.
|
||||||
The code to be added is provided by the Traefik Pilot UI when you choose **Install the Plugin**.
|
The code to be added is provided by the Traefik Pilot UI when you choose **Install the Plugin**.
|
||||||
|
|
||||||
In the example below, we add the [`blockpath`](http://github.com/containous/plugin-blockpath) and [`rewritebody`](https://github.com/containous/plugin-rewritebody) plugins:
|
In the example below, we add the [`blockpath`](http://github.com/traefik/plugin-blockpath) and [`rewritebody`](https://github.com/traefik/plugin-rewritebody) plugins:
|
||||||
|
|
||||||
```toml tab="File (TOML)"
|
```toml tab="File (TOML)"
|
||||||
[entryPoints]
|
[entryPoints]
|
||||||
[entryPoints.web]
|
[entryPoints.web]
|
||||||
address = ":80"
|
address = ":80"
|
||||||
|
|
||||||
[experimental]
|
[pilot]
|
||||||
[experimental.pilot]
|
token = "xxxxxxxxx"
|
||||||
token = "xxxxxxxxx"
|
|
||||||
|
|
||||||
[experimental.plugins]
|
[experimental.plugins]
|
||||||
[experimental.plugins.block]
|
[experimental.plugins.block]
|
||||||
modulename = "github.com/containous/plugin-blockpath"
|
modulename = "github.com/traefik/plugin-blockpath"
|
||||||
version = "v0.1.2"
|
version = "v0.2.0"
|
||||||
[experimental.plugins.rewrite]
|
|
||||||
modulename = "github.com/containous/plugin-rewritebody"
|
[experimental.plugins.rewrite]
|
||||||
version = "v0.2.0"
|
modulename = "github.com/traefik/plugin-rewritebody"
|
||||||
|
version = "v0.3.0"
|
||||||
```
|
```
|
||||||
|
|
||||||
```yaml tab="File (YAML)"
|
```yaml tab="File (YAML)"
|
||||||
|
@ -37,26 +37,26 @@ entryPoints:
|
||||||
web:
|
web:
|
||||||
address: :80
|
address: :80
|
||||||
|
|
||||||
experimental:
|
pilot:
|
||||||
pilot:
|
|
||||||
token: xxxxxxxxx
|
token: xxxxxxxxx
|
||||||
|
|
||||||
|
experimental:
|
||||||
plugins:
|
plugins:
|
||||||
block:
|
block:
|
||||||
modulename: github.com/containous/plugin-blockpath
|
modulename: github.com/traefik/plugin-blockpath
|
||||||
version: v0.1.2
|
|
||||||
rewrite:
|
|
||||||
modulename: github.com/containous/plugin-rewritebody
|
|
||||||
version: v0.2.0
|
version: v0.2.0
|
||||||
|
rewrite:
|
||||||
|
modulename: github.com/traefik/plugin-rewritebody
|
||||||
|
version: v0.3.0
|
||||||
```
|
```
|
||||||
|
|
||||||
```bash tab="CLI"
|
```bash tab="CLI"
|
||||||
--entryPoints.web.address=:80
|
--entryPoints.web.address=:80
|
||||||
--experimental.pilot.token=xxxxxxxxx
|
--pilot.token=xxxxxxxxx
|
||||||
--experimental.plugins.block.modulename=github.com/containous/plugin-blockpath
|
--experimental.plugins.block.modulename=github.com/traefik/plugin-blockpath
|
||||||
--experimental.plugins.block.version=v0.1.2
|
--experimental.plugins.block.version=v0.2.0
|
||||||
--experimental.plugins.rewrite.modulename=github.com/containous/plugin-rewritebody
|
--experimental.plugins.rewrite.modulename=github.com/traefik/plugin-rewritebody
|
||||||
--experimental.plugins.rewrite.version=v0.2.0
|
--experimental.plugins.rewrite.version=v0.3.0
|
||||||
```
|
```
|
||||||
|
|
||||||
## Configuring Plugins
|
## Configuring Plugins
|
||||||
|
|
|
@ -168,7 +168,7 @@ You can specify which Docker API Endpoint to use with the directive [`endpoint`]
|
||||||
- [Don't expose the Docker socket (not even to a container)](https://www.lvh.io/posts/dont-expose-the-docker-socket-not-even-to-a-container/)
|
- [Don't expose the Docker socket (not even to a container)](https://www.lvh.io/posts/dont-expose-the-docker-socket-not-even-to-a-container/)
|
||||||
- [A thread on Stack Overflow about sharing the `/var/run/docker.sock` file](https://news.ycombinator.com/item?id=17983623)
|
- [A thread on Stack Overflow about sharing the `/var/run/docker.sock` file](https://news.ycombinator.com/item?id=17983623)
|
||||||
- [To DinD or not to DinD](https://blog.loof.fr/2018/01/to-dind-or-not-do-dind.html)
|
- [To DinD or not to DinD](https://blog.loof.fr/2018/01/to-dind-or-not-do-dind.html)
|
||||||
- [Traefik issue GH-4174 about security with Docker socket](https://github.com/containous/traefik/issues/4174)
|
- [Traefik issue GH-4174 about security with Docker socket](https://github.com/traefik/traefik/issues/4174)
|
||||||
- [Inspecting Docker Activity with Socat](https://developers.redhat.com/blog/2015/02/25/inspecting-docker-activity-with-socat/)
|
- [Inspecting Docker Activity with Socat](https://developers.redhat.com/blog/2015/02/25/inspecting-docker-activity-with-socat/)
|
||||||
- [Letting Traefik run on Worker Nodes](https://blog.mikesir87.io/2018/07/letting-traefik-run-on-worker-nodes/)
|
- [Letting Traefik run on Worker Nodes](https://blog.mikesir87.io/2018/07/letting-traefik-run-on-worker-nodes/)
|
||||||
- [Docker Socket Proxy from Tecnativa](https://github.com/Tecnativa/docker-socket-proxy)
|
- [Docker Socket Proxy from Tecnativa](https://github.com/Tecnativa/docker-socket-proxy)
|
||||||
|
|
|
@ -391,4 +391,4 @@ providers:
|
||||||
### Further
|
### Further
|
||||||
|
|
||||||
If one wants to know more about the various aspects of the Ingress spec that Traefik supports,
|
If one wants to know more about the various aspects of the Ingress spec that Traefik supports,
|
||||||
many examples of Ingresses definitions are located in the tests [data](https://github.com/containous/traefik/tree/v2.3/pkg/provider/kubernetes/ingress/fixtures) of the Traefik repository.
|
many examples of Ingresses definitions are located in the tests [data](https://github.com/traefik/traefik/tree/v2.3/pkg/provider/kubernetes/ingress/fixtures) of the Traefik repository.
|
||||||
|
|
|
@ -32,7 +32,7 @@ See also [Marathon user guide](../user-guides/marathon.md).
|
||||||
"container": {
|
"container": {
|
||||||
"type": "DOCKER",
|
"type": "DOCKER",
|
||||||
"docker": {
|
"docker": {
|
||||||
"image": "containous/whoami",
|
"image": "traefik/whoami",
|
||||||
"network": "BRIDGE",
|
"network": "BRIDGE",
|
||||||
"portMappings": [
|
"portMappings": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -168,9 +168,6 @@ plugin's GOPATH.
|
||||||
`--experimental.devplugin.modulename`:
|
`--experimental.devplugin.modulename`:
|
||||||
plugin's module name.
|
plugin's module name.
|
||||||
|
|
||||||
`--experimental.pilot.token`:
|
|
||||||
Traefik Pilot token.
|
|
||||||
|
|
||||||
`--experimental.plugins.<name>.modulename`:
|
`--experimental.plugins.<name>.modulename`:
|
||||||
plugin's module name.
|
plugin's module name.
|
||||||
|
|
||||||
|
@ -288,6 +285,9 @@ Prefix to use for metrics collection. (Default: ```traefik```)
|
||||||
`--metrics.statsd.pushinterval`:
|
`--metrics.statsd.pushinterval`:
|
||||||
StatsD push interval. (Default: ```10```)
|
StatsD push interval. (Default: ```10```)
|
||||||
|
|
||||||
|
`--pilot.token`:
|
||||||
|
Traefik Pilot token.
|
||||||
|
|
||||||
`--ping`:
|
`--ping`:
|
||||||
Enable ping. (Default: ```false```)
|
Enable ping. (Default: ```false```)
|
||||||
|
|
||||||
|
|
|
@ -168,9 +168,6 @@ plugin's GOPATH.
|
||||||
`TRAEFIK_EXPERIMENTAL_DEVPLUGIN_MODULENAME`:
|
`TRAEFIK_EXPERIMENTAL_DEVPLUGIN_MODULENAME`:
|
||||||
plugin's module name.
|
plugin's module name.
|
||||||
|
|
||||||
`TRAEFIK_EXPERIMENTAL_PILOT_TOKEN`:
|
|
||||||
Traefik Pilot token.
|
|
||||||
|
|
||||||
`TRAEFIK_EXPERIMENTAL_PLUGINS_<NAME>_MODULENAME`:
|
`TRAEFIK_EXPERIMENTAL_PLUGINS_<NAME>_MODULENAME`:
|
||||||
plugin's module name.
|
plugin's module name.
|
||||||
|
|
||||||
|
@ -288,6 +285,9 @@ Prefix to use for metrics collection. (Default: ```traefik```)
|
||||||
`TRAEFIK_METRICS_STATSD_PUSHINTERVAL`:
|
`TRAEFIK_METRICS_STATSD_PUSHINTERVAL`:
|
||||||
StatsD push interval. (Default: ```10```)
|
StatsD push interval. (Default: ```10```)
|
||||||
|
|
||||||
|
`TRAEFIK_PILOT_TOKEN`:
|
||||||
|
Traefik Pilot token.
|
||||||
|
|
||||||
`TRAEFIK_PING`:
|
`TRAEFIK_PING`:
|
||||||
Enable ping. (Default: ```false```)
|
Enable ping. (Default: ```false```)
|
||||||
|
|
||||||
|
|
|
@ -160,24 +160,24 @@ The Kubernetes Ingress Controller, The Custom Resource Way.
|
||||||
name: whoami
|
name: whoami
|
||||||
namespace: default
|
namespace: default
|
||||||
labels:
|
labels:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
name: whoami
|
name: whoami
|
||||||
|
|
||||||
spec:
|
spec:
|
||||||
replicas: 2
|
replicas: 2
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
task: whoami
|
task: whoami
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
task: whoami
|
task: whoami
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: containouswhoami
|
- name: whoami
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
|
|
||||||
|
@ -193,7 +193,7 @@ The Kubernetes Ingress Controller, The Custom Resource Way.
|
||||||
- name: http
|
- name: http
|
||||||
port: 80
|
port: 80
|
||||||
selector:
|
selector:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
task: whoami
|
task: whoami
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -203,24 +203,24 @@ The Kubernetes Ingress Controller, The Custom Resource Way.
|
||||||
name: whoamitcp
|
name: whoamitcp
|
||||||
namespace: default
|
namespace: default
|
||||||
labels:
|
labels:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
name: whoamitcp
|
name: whoamitcp
|
||||||
|
|
||||||
spec:
|
spec:
|
||||||
replicas: 2
|
replicas: 2
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
task: whoamitcp
|
task: whoamitcp
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
task: whoamitcp
|
task: whoamitcp
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: containouswhoamitcp
|
- name: whoamitcp
|
||||||
image: containous/whoamitcp
|
image: traefik/whoamitcp
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8080
|
- containerPort: 8080
|
||||||
|
|
||||||
|
@ -236,7 +236,7 @@ The Kubernetes Ingress Controller, The Custom Resource Way.
|
||||||
- protocol: TCP
|
- protocol: TCP
|
||||||
port: 8080
|
port: 8080
|
||||||
selector:
|
selector:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
task: whoamitcp
|
task: whoamitcp
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -246,24 +246,24 @@ The Kubernetes Ingress Controller, The Custom Resource Way.
|
||||||
name: whoamiudp
|
name: whoamiudp
|
||||||
namespace: default
|
namespace: default
|
||||||
labels:
|
labels:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
name: whoamiudp
|
name: whoamiudp
|
||||||
|
|
||||||
spec:
|
spec:
|
||||||
replicas: 2
|
replicas: 2
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
task: whoamiudp
|
task: whoamiudp
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
task: whoamiudp
|
task: whoamiudp
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: containouswhoamiudp
|
- name: whoamiudp
|
||||||
image: containous/whoamiudp:dev
|
image: traefik/whoamiudp:latest
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8080
|
- containerPort: 8080
|
||||||
|
|
||||||
|
@ -278,7 +278,7 @@ The Kubernetes Ingress Controller, The Custom Resource Way.
|
||||||
ports:
|
ports:
|
||||||
- port: 8080
|
- port: 8080
|
||||||
selector:
|
selector:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
task: whoamiudp
|
task: whoamiudp
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -687,7 +687,7 @@ More information in the dedicated server [load balancing](../services/index.md#l
|
||||||
- name: http
|
- name: http
|
||||||
port: 80
|
port: 80
|
||||||
selector:
|
selector:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
task: app1
|
task: app1
|
||||||
---
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
|
@ -701,7 +701,7 @@ More information in the dedicated server [load balancing](../services/index.md#l
|
||||||
- name: http
|
- name: http
|
||||||
port: 80
|
port: 80
|
||||||
selector:
|
selector:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
task: app2
|
task: app2
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -780,7 +780,7 @@ More information in the dedicated [Weighted Round Robin](../services/index.md#we
|
||||||
- name: http
|
- name: http
|
||||||
port: 80
|
port: 80
|
||||||
selector:
|
selector:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
task: app1
|
task: app1
|
||||||
---
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
|
@ -794,7 +794,7 @@ More information in the dedicated [Weighted Round Robin](../services/index.md#we
|
||||||
- name: http
|
- name: http
|
||||||
port: 80
|
port: 80
|
||||||
selector:
|
selector:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
task: app2
|
task: app2
|
||||||
---
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
|
@ -808,7 +808,7 @@ More information in the dedicated [Weighted Round Robin](../services/index.md#we
|
||||||
- name: http
|
- name: http
|
||||||
port: 80
|
port: 80
|
||||||
selector:
|
selector:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
task: app3
|
task: app3
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -891,7 +891,7 @@ More information in the dedicated [mirroring](../services/index.md#mirroring-ser
|
||||||
- name: http
|
- name: http
|
||||||
port: 80
|
port: 80
|
||||||
selector:
|
selector:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
task: app1
|
task: app1
|
||||||
---
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
|
@ -905,7 +905,7 @@ More information in the dedicated [mirroring](../services/index.md#mirroring-ser
|
||||||
- name: http
|
- name: http
|
||||||
port: 80
|
port: 80
|
||||||
selector:
|
selector:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
task: app2
|
task: app2
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -1026,7 +1026,7 @@ and there is a second level because each whoami service is a `replicaset` and is
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: whoami1
|
- name: whoami1
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
ports:
|
ports:
|
||||||
- name: web
|
- name: web
|
||||||
containerPort: 80
|
containerPort: 80
|
||||||
|
@ -1052,7 +1052,7 @@ and there is a second level because each whoami service is a `replicaset` and is
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: whoami2
|
- name: whoami2
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
ports:
|
ports:
|
||||||
- name: web
|
- name: web
|
||||||
containerPort: 80
|
containerPort: 80
|
||||||
|
|
|
@ -151,24 +151,24 @@ which in turn will create the resulting routers, services, handlers, etc.
|
||||||
metadata:
|
metadata:
|
||||||
name: whoami
|
name: whoami
|
||||||
labels:
|
labels:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
name: whoami
|
name: whoami
|
||||||
|
|
||||||
spec:
|
spec:
|
||||||
replicas: 2
|
replicas: 2
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
task: whoami
|
task: whoami
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
task: whoami
|
task: whoami
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: containouswhoami
|
- name: whoami
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
|
|
||||||
|
@ -183,7 +183,7 @@ which in turn will create the resulting routers, services, handlers, etc.
|
||||||
- name: http
|
- name: http
|
||||||
port: 80
|
port: 80
|
||||||
selector:
|
selector:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
task: whoami
|
task: whoami
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -68,7 +68,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: whoami
|
- name: whoami
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
ports:
|
ports:
|
||||||
- name: web
|
- name: web
|
||||||
containerPort: 80
|
containerPort: 80
|
||||||
|
|
|
@ -51,7 +51,7 @@ Also note the RBAC authorization resources; they'll be referenced through the `s
|
||||||
|
|
||||||
### Services
|
### Services
|
||||||
|
|
||||||
Then, the services. One for Traefik itself, and one for the app it routes for, i.e. in this case our demo HTTP server: [whoami](https://github.com/containous/whoami).
|
Then, the services. One for Traefik itself, and one for the app it routes for, i.e. in this case our demo HTTP server: [whoami](https://github.com/traefik/whoami).
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
--8<-- "content/user-guides/crd-acme/02-services.yml"
|
--8<-- "content/user-guides/crd-acme/02-services.yml"
|
||||||
|
|
|
@ -31,7 +31,7 @@ services:
|
||||||
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
||||||
|
|
||||||
whoami:
|
whoami:
|
||||||
image: "containous/whoami"
|
image: "traefik/whoami"
|
||||||
container_name: "simple-service"
|
container_name: "simple-service"
|
||||||
labels:
|
labels:
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
|
|
|
@ -46,7 +46,7 @@ services:
|
||||||
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
||||||
|
|
||||||
whoami:
|
whoami:
|
||||||
image: "containous/whoami"
|
image: "traefik/whoami"
|
||||||
container_name: "simple-service"
|
container_name: "simple-service"
|
||||||
labels:
|
labels:
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
|
|
|
@ -26,7 +26,7 @@ services:
|
||||||
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
||||||
|
|
||||||
whoami:
|
whoami:
|
||||||
image: "containous/whoami"
|
image: "traefik/whoami"
|
||||||
container_name: "simple-service"
|
container_name: "simple-service"
|
||||||
labels:
|
labels:
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
|
|
|
@ -23,7 +23,7 @@ services:
|
||||||
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
||||||
|
|
||||||
whoami:
|
whoami:
|
||||||
image: "containous/whoami"
|
image: "traefik/whoami"
|
||||||
container_name: "simple-service"
|
container_name: "simple-service"
|
||||||
labels:
|
labels:
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
|
|
|
@ -18,7 +18,7 @@ services:
|
||||||
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
||||||
|
|
||||||
whoami:
|
whoami:
|
||||||
image: "containous/whoami"
|
image: "traefik/whoami"
|
||||||
container_name: "simple-service"
|
container_name: "simple-service"
|
||||||
labels:
|
labels:
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
|
|
|
@ -35,7 +35,7 @@ This will also be used as a starting point for the other docker-compose guides.
|
||||||
|
|
||||||
## Details
|
## Details
|
||||||
|
|
||||||
- As an example we use [whoami](https://github.com/containous/whoami) (a tiny Go server that prints os information and HTTP request to output) which was used to define our `simple-service` container.
|
- As an example we use [whoami](https://github.com/traefik/whoami) (a tiny Go server that prints os information and HTTP request to output) which was used to define our `simple-service` container.
|
||||||
|
|
||||||
- We define an entry point, along with the exposure of the matching port within docker-compose, which basically allow us to "open and accept" HTTP traffic:
|
- We define an entry point, along with the exposure of the matching port within docker-compose, which basically allow us to "open and accept" HTTP traffic:
|
||||||
|
|
||||||
|
|
|
@ -105,7 +105,7 @@ As such, there is no way to handle this situation deterministically.
|
||||||
|
|
||||||
Finally, Marathon health checks are not mandatory (the default is to use the task state as reported by Mesos), so requiring them for Traefik would raise the entry barrier for Marathon users.
|
Finally, Marathon health checks are not mandatory (the default is to use the task state as reported by Mesos), so requiring them for Traefik would raise the entry barrier for Marathon users.
|
||||||
|
|
||||||
Traefik used to use the health check results as a strict requirement but moved away from it as [users reported the dramatic consequences](https://github.com/containous/traefik/issues/653).
|
Traefik used to use the health check results as a strict requirement but moved away from it as [users reported the dramatic consequences](https://github.com/traefik/traefik/issues/653).
|
||||||
|
|
||||||
#### Draining
|
#### Draining
|
||||||
|
|
||||||
|
@ -117,4 +117,4 @@ However, implementing this fully within Traefik seems like a non-trivial underta
|
||||||
|
|
||||||
Additionally, the approach is less flexible compared to a custom termination handler since only the latter allows for the implementation of custom termination sequences that go beyond simple request draining (e.g., persisting a snapshot state to disk prior to terminating).
|
Additionally, the approach is less flexible compared to a custom termination handler since only the latter allows for the implementation of custom termination sequences that go beyond simple request draining (e.g., persisting a snapshot state to disk prior to terminating).
|
||||||
|
|
||||||
The feature is currently not implemented; a request for draining in general is at [issue 41](https://github.com/containous/traefik/issues/41).
|
The feature is currently not implemented; a request for draining in general is at [issue 41](https://github.com/traefik/traefik/issues/41).
|
||||||
|
|
|
@ -5,7 +5,7 @@ site_url: https://docs.traefik.io
|
||||||
dev_addr: 0.0.0.0:8000
|
dev_addr: 0.0.0.0:8000
|
||||||
|
|
||||||
repo_name: 'GitHub'
|
repo_name: 'GitHub'
|
||||||
repo_url: 'https://github.com/containous/traefik'
|
repo_url: 'https://github.com/traefik/traefik'
|
||||||
|
|
||||||
docs_dir: 'content'
|
docs_dir: 'content'
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ theme:
|
||||||
prev: 'Previous'
|
prev: 'Previous'
|
||||||
next: 'Next'
|
next: 'Next'
|
||||||
|
|
||||||
copyright: "Copyright © 2016-2020 Containous"
|
copyright: "Copyright © 2016-2020 Containous; 2020 Traefik Labs"
|
||||||
|
|
||||||
extra_css:
|
extra_css:
|
||||||
- assets/styles/root.css
|
- assets/styles/root.css
|
||||||
|
|
|
@ -21,7 +21,7 @@ find "${PATH_TO_SITE}" -type f -not -path "/app/site/theme/*" \
|
||||||
--check_external_hash \
|
--check_external_hash \
|
||||||
--alt_ignore="/traefik.logo.png/" \
|
--alt_ignore="/traefik.logo.png/" \
|
||||||
--http_status_ignore="0,500,501,503" \
|
--http_status_ignore="0,500,501,503" \
|
||||||
--url_ignore="/https://groups.google.com/a/traefik.io/forum/#!forum/security/,/localhost:/,/127.0.0.1:/,/fonts.gstatic.com/,/.minikube/,/github.com\/containous\/traefik\/*edit*/,/github.com\/containous\/traefik\/$/,/docs.traefik.io/,/github\.com\/golang\/oauth2\/blob\/36a7019397c4c86cf59eeab3bc0d188bac444277\/.+/,/www.akamai.com/,/pilot.traefik.io\/profile/,/containo.us/,/docs.mae.sh/,/www.mkdocs.org/,/squidfunk.github.io/,/ietf.org/" \
|
--url_ignore="/https://groups.google.com/a/traefik.io/forum/#!forum/security/,/localhost:/,/127.0.0.1:/,/fonts.gstatic.com/,/.minikube/,/github.com\/containous\/traefik\/*edit*/,/github.com\/containous\/traefik\/$/,/github.com\/traefik\/traefik\/*edit*/,/github.com\/traefik\/traefik\/$/,/docs.traefik.io/,/github\.com\/golang\/oauth2\/blob\/36a7019397c4c86cf59eeab3bc0d188bac444277\/.+/,/www.akamai.com/,/pilot.traefik.io\/profile/,/containo.us/,/docs.mae.sh/,/www.mkdocs.org/,/squidfunk.github.io/,/ietf.org/" \
|
||||||
'{}' 1>/dev/null
|
'{}' 1>/dev/null
|
||||||
## HTML-proofer options at https://github.com/gjtorikian/html-proofer#configuration
|
## HTML-proofer options at https://github.com/gjtorikian/html-proofer#configuration
|
||||||
|
|
||||||
|
|
2
docs/theme/main.html
vendored
2
docs/theme/main.html
vendored
|
@ -11,7 +11,7 @@
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block header %}
|
{% block header %}
|
||||||
{% include "partials/containous-header.html" %}
|
{% include "partials/company-header.html" %}
|
||||||
{% include "partials/header.html" %}
|
{% include "partials/header.html" %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
|
@ -197,7 +197,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="dm-right">
|
<div class="dm-right">
|
||||||
<p>Interested in joining Containous?</p>
|
<p>Interested in joining Traefik Labs?</p>
|
||||||
<a
|
<a
|
||||||
class="btn-type-1"
|
class="btn-type-1"
|
||||||
href="https://containo.us/careers/#open-positions"
|
href="https://containo.us/careers/#open-positions"
|
|
@ -23,17 +23,17 @@ RUN mkdir -p /usr/local/bin \
|
||||||
&& curl -fsSL -o /usr/local/bin/go-bindata https://github.com/containous/go-bindata/releases/download/v1.0.0/go-bindata \
|
&& curl -fsSL -o /usr/local/bin/go-bindata https://github.com/containous/go-bindata/releases/download/v1.0.0/go-bindata \
|
||||||
&& chmod +x /usr/local/bin/go-bindata
|
&& chmod +x /usr/local/bin/go-bindata
|
||||||
|
|
||||||
WORKDIR /go/src/github.com/containous/traefik
|
WORKDIR /go/src/github.com/traefik/traefik
|
||||||
|
|
||||||
# Download go modules
|
# Download go modules
|
||||||
COPY go.mod .
|
COPY go.mod .
|
||||||
COPY go.sum .
|
COPY go.sum .
|
||||||
RUN GO111MODULE=on GOPROXY=https://proxy.golang.org go mod download
|
RUN GO111MODULE=on GOPROXY=https://proxy.golang.org go mod download
|
||||||
|
|
||||||
COPY . /go/src/github.com/containous/traefik
|
COPY . /go/src/github.com/traefik/traefik
|
||||||
|
|
||||||
RUN rm -rf /go/src/github.com/containous/traefik/static/
|
RUN rm -rf /go/src/github.com/traefik/traefik/static/
|
||||||
COPY --from=webui /src/static/ /go/src/github.com/containous/traefik/static/
|
COPY --from=webui /src/static/ /go/src/github.com/traefik/traefik/static/
|
||||||
|
|
||||||
RUN ./script/make.sh generate binary
|
RUN ./script/make.sh generate binary
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@ RUN apk --no-cache --no-progress add bash curl ca-certificates tzdata \
|
||||||
&& update-ca-certificates \
|
&& update-ca-certificates \
|
||||||
&& rm -rf /var/cache/apk/*
|
&& rm -rf /var/cache/apk/*
|
||||||
|
|
||||||
COPY --from=gobuild /go/src/github.com/containous/traefik/dist/traefik /
|
COPY --from=gobuild /go/src/github.com/traefik/traefik/dist/traefik /
|
||||||
|
|
||||||
EXPOSE 80
|
EXPOSE 80
|
||||||
VOLUME ["/tmp"]
|
VOLUME ["/tmp"]
|
||||||
|
|
4
go.mod
4
go.mod
|
@ -1,4 +1,4 @@
|
||||||
module github.com/containous/traefik/v2
|
module github.com/traefik/traefik/v2
|
||||||
|
|
||||||
go 1.15
|
go 1.15
|
||||||
|
|
||||||
|
@ -18,7 +18,6 @@ require (
|
||||||
github.com/cenkalti/backoff/v4 v4.0.2
|
github.com/cenkalti/backoff/v4 v4.0.2
|
||||||
github.com/containerd/containerd v1.3.2 // indirect
|
github.com/containerd/containerd v1.3.2 // indirect
|
||||||
github.com/containous/alice v0.0.0-20181107144136-d83ebdd94cbd
|
github.com/containous/alice v0.0.0-20181107144136-d83ebdd94cbd
|
||||||
github.com/containous/yaegi v0.8.14
|
|
||||||
github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf
|
github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf
|
||||||
github.com/davecgh/go-spew v1.1.1
|
github.com/davecgh/go-spew v1.1.1
|
||||||
github.com/docker/cli v0.0.0-20200221155518-740919cc7fc0
|
github.com/docker/cli v0.0.0-20200221155518-740919cc7fc0
|
||||||
|
@ -74,6 +73,7 @@ require (
|
||||||
github.com/stvp/go-udp-testing v0.0.0-20191102171040-06b61409b154
|
github.com/stvp/go-udp-testing v0.0.0-20191102171040-06b61409b154
|
||||||
github.com/tinylib/msgp v1.0.2 // indirect
|
github.com/tinylib/msgp v1.0.2 // indirect
|
||||||
github.com/traefik/paerser v0.1.0
|
github.com/traefik/paerser v0.1.0
|
||||||
|
github.com/traefik/yaegi v0.9.0
|
||||||
github.com/uber/jaeger-client-go v2.25.0+incompatible
|
github.com/uber/jaeger-client-go v2.25.0+incompatible
|
||||||
github.com/uber/jaeger-lib v2.2.0+incompatible
|
github.com/uber/jaeger-lib v2.2.0+incompatible
|
||||||
github.com/unrolled/render v1.0.2
|
github.com/unrolled/render v1.0.2
|
||||||
|
|
4
go.sum
4
go.sum
|
@ -181,8 +181,6 @@ github.com/containous/multibuf v0.0.0-20190809014333-8b6c9a7e6bba h1:PhR03pep+5e
|
||||||
github.com/containous/multibuf v0.0.0-20190809014333-8b6c9a7e6bba/go.mod h1:zkWcASFUJEst6QwCrxLdkuw1gvaKqmflEipm+iecV5M=
|
github.com/containous/multibuf v0.0.0-20190809014333-8b6c9a7e6bba/go.mod h1:zkWcASFUJEst6QwCrxLdkuw1gvaKqmflEipm+iecV5M=
|
||||||
github.com/containous/mux v0.0.0-20181024131434-c33f32e26898 h1:1srn9voikJGofblBhWy3WuZWqo14Ou7NaswNG/I2yWc=
|
github.com/containous/mux v0.0.0-20181024131434-c33f32e26898 h1:1srn9voikJGofblBhWy3WuZWqo14Ou7NaswNG/I2yWc=
|
||||||
github.com/containous/mux v0.0.0-20181024131434-c33f32e26898/go.mod h1:z8WW7n06n8/1xF9Jl9WmuDeZuHAhfL+bwarNjsciwwg=
|
github.com/containous/mux v0.0.0-20181024131434-c33f32e26898/go.mod h1:z8WW7n06n8/1xF9Jl9WmuDeZuHAhfL+bwarNjsciwwg=
|
||||||
github.com/containous/yaegi v0.8.14 h1:SUVs88S6YwXbDgcujg3swokscGa93lozWm6myJ5MRug=
|
|
||||||
github.com/containous/yaegi v0.8.14/go.mod h1:Yj82MHpXQ9/h3ukzc2numJQ/Wr4+M3C9YLMzNjFtd3o=
|
|
||||||
github.com/coreos/bbolt v1.3.3 h1:n6AiVyVRKQFNb6mJlwESEvvLoDyiTzXX7ORAUlkeBdY=
|
github.com/coreos/bbolt v1.3.3 h1:n6AiVyVRKQFNb6mJlwESEvvLoDyiTzXX7ORAUlkeBdY=
|
||||||
github.com/coreos/bbolt v1.3.3/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
|
github.com/coreos/bbolt v1.3.3/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
|
||||||
github.com/coreos/etcd v3.3.13+incompatible h1:8F3hqu9fGYLBifCmRCJsicFqDx/D68Rt3q1JMazcgBQ=
|
github.com/coreos/etcd v3.3.13+incompatible h1:8F3hqu9fGYLBifCmRCJsicFqDx/D68Rt3q1JMazcgBQ=
|
||||||
|
@ -768,6 +766,8 @@ github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 h1:LnC5Kc
|
||||||
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
||||||
github.com/traefik/paerser v0.1.0 h1:B4v1tbvd8YnHsA7spwHKEWJoGrRP+2jYpIozsCMHhl0=
|
github.com/traefik/paerser v0.1.0 h1:B4v1tbvd8YnHsA7spwHKEWJoGrRP+2jYpIozsCMHhl0=
|
||||||
github.com/traefik/paerser v0.1.0/go.mod h1:yYnAgdEC2wJH5CgG75qGWC8SsFDEapg09o9RrA6FfrE=
|
github.com/traefik/paerser v0.1.0/go.mod h1:yYnAgdEC2wJH5CgG75qGWC8SsFDEapg09o9RrA6FfrE=
|
||||||
|
github.com/traefik/yaegi v0.9.0 h1:v9of1gq/5gR/XeohnboeCNGSJnw1CqiYf6xyBwQSNqI=
|
||||||
|
github.com/traefik/yaegi v0.9.0/go.mod h1:FAYnRlZyuVlEkvnkHq3bvJ1lW5be6XuwgLdkYgYG6Lk=
|
||||||
github.com/transip/gotransip/v6 v6.2.0 h1:0Z+qVsyeiQdWfcAUeJyF0IEKAPvhJwwpwPi2WGtBIiE=
|
github.com/transip/gotransip/v6 v6.2.0 h1:0Z+qVsyeiQdWfcAUeJyF0IEKAPvhJwwpwPi2WGtBIiE=
|
||||||
github.com/transip/gotransip/v6 v6.2.0/go.mod h1:pQZ36hWWRahCUXkFWlx9Hs711gLd8J4qdgLdRzmtY+g=
|
github.com/transip/gotransip/v6 v6.2.0/go.mod h1:pQZ36hWWRahCUXkFWlx9Hs711gLd8J4qdgLdRzmtY+g=
|
||||||
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=
|
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=
|
||||||
|
|
|
@ -12,10 +12,10 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/containous/traefik/v2/integration/try"
|
|
||||||
"github.com/containous/traefik/v2/pkg/log"
|
|
||||||
"github.com/containous/traefik/v2/pkg/middlewares/accesslog"
|
|
||||||
"github.com/go-check/check"
|
"github.com/go-check/check"
|
||||||
|
"github.com/traefik/traefik/v2/integration/try"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/log"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/middlewares/accesslog"
|
||||||
checker "github.com/vdemeester/shakers"
|
checker "github.com/vdemeester/shakers"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -10,13 +10,13 @@ import (
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/containous/traefik/v2/integration/try"
|
|
||||||
"github.com/containous/traefik/v2/pkg/config/static"
|
|
||||||
"github.com/containous/traefik/v2/pkg/provider/acme"
|
|
||||||
"github.com/containous/traefik/v2/pkg/testhelpers"
|
|
||||||
"github.com/containous/traefik/v2/pkg/types"
|
|
||||||
"github.com/go-check/check"
|
"github.com/go-check/check"
|
||||||
"github.com/miekg/dns"
|
"github.com/miekg/dns"
|
||||||
|
"github.com/traefik/traefik/v2/integration/try"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/config/static"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/provider/acme"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/testhelpers"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/types"
|
||||||
checker "github.com/vdemeester/shakers"
|
checker "github.com/vdemeester/shakers"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -6,9 +6,9 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/containous/traefik/v2/integration/try"
|
|
||||||
"github.com/go-check/check"
|
"github.com/go-check/check"
|
||||||
"github.com/hashicorp/consul/api"
|
"github.com/hashicorp/consul/api"
|
||||||
|
"github.com/traefik/traefik/v2/integration/try"
|
||||||
checker "github.com/vdemeester/shakers"
|
checker "github.com/vdemeester/shakers"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -12,10 +12,10 @@ import (
|
||||||
"github.com/abronan/valkeyrie"
|
"github.com/abronan/valkeyrie"
|
||||||
"github.com/abronan/valkeyrie/store"
|
"github.com/abronan/valkeyrie/store"
|
||||||
"github.com/abronan/valkeyrie/store/consul"
|
"github.com/abronan/valkeyrie/store/consul"
|
||||||
"github.com/containous/traefik/v2/integration/try"
|
|
||||||
"github.com/containous/traefik/v2/pkg/api"
|
|
||||||
"github.com/go-check/check"
|
"github.com/go-check/check"
|
||||||
"github.com/pmezard/go-difflib/difflib"
|
"github.com/pmezard/go-difflib/difflib"
|
||||||
|
"github.com/traefik/traefik/v2/integration/try"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/api"
|
||||||
checker "github.com/vdemeester/shakers"
|
checker "github.com/vdemeester/shakers"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -7,10 +7,10 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/containous/traefik/v2/integration/try"
|
|
||||||
"github.com/containous/traefik/v2/pkg/api"
|
|
||||||
"github.com/containous/traefik/v2/pkg/testhelpers"
|
|
||||||
"github.com/go-check/check"
|
"github.com/go-check/check"
|
||||||
|
"github.com/traefik/traefik/v2/integration/try"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/api"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/testhelpers"
|
||||||
checker "github.com/vdemeester/shakers"
|
checker "github.com/vdemeester/shakers"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -9,19 +9,19 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/containous/traefik/v2/integration/try"
|
|
||||||
"github.com/docker/docker/pkg/namesgenerator"
|
"github.com/docker/docker/pkg/namesgenerator"
|
||||||
"github.com/go-check/check"
|
"github.com/go-check/check"
|
||||||
d "github.com/libkermit/docker"
|
d "github.com/libkermit/docker"
|
||||||
"github.com/libkermit/docker-check"
|
"github.com/libkermit/docker-check"
|
||||||
|
"github.com/traefik/traefik/v2/integration/try"
|
||||||
checker "github.com/vdemeester/shakers"
|
checker "github.com/vdemeester/shakers"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Images to have or pull before the build in order to make it work.
|
// Images to have or pull before the build in order to make it work.
|
||||||
// FIXME handle this offline but loading them before build.
|
// FIXME handle this offline but loading them before build.
|
||||||
var RequiredImages = map[string]string{
|
var RequiredImages = map[string]string{
|
||||||
"swarm": "1.0.0",
|
"swarm": "1.0.0",
|
||||||
"containous/whoami": "latest",
|
"traefik/whoami": "latest",
|
||||||
}
|
}
|
||||||
|
|
||||||
// Docker tests suite.
|
// Docker tests suite.
|
||||||
|
@ -163,7 +163,7 @@ func (s *DockerSuite) TestDockerContainersWithTCPLabels(c *check.C) {
|
||||||
"traefik.tcp.Services.Super.Loadbalancer.server.port": "8080",
|
"traefik.tcp.Services.Super.Loadbalancer.server.port": "8080",
|
||||||
}
|
}
|
||||||
|
|
||||||
s.startContainerWithLabels(c, "containous/whoamitcp", labels, "-name", "my.super.host")
|
s.startContainerWithLabels(c, "traefik/whoamitcp", labels, "-name", "my.super.host")
|
||||||
|
|
||||||
// Start traefik
|
// Start traefik
|
||||||
cmd, display := s.traefikCmd(withConfigFile(file))
|
cmd, display := s.traefikCmd(withConfigFile(file))
|
||||||
|
|
|
@ -5,8 +5,8 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/containous/traefik/v2/integration/try"
|
|
||||||
"github.com/go-check/check"
|
"github.com/go-check/check"
|
||||||
|
"github.com/traefik/traefik/v2/integration/try"
|
||||||
checker "github.com/vdemeester/shakers"
|
checker "github.com/vdemeester/shakers"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -12,10 +12,10 @@ import (
|
||||||
"github.com/abronan/valkeyrie"
|
"github.com/abronan/valkeyrie"
|
||||||
"github.com/abronan/valkeyrie/store"
|
"github.com/abronan/valkeyrie/store"
|
||||||
etcdv3 "github.com/abronan/valkeyrie/store/etcd/v3"
|
etcdv3 "github.com/abronan/valkeyrie/store/etcd/v3"
|
||||||
"github.com/containous/traefik/v2/integration/try"
|
|
||||||
"github.com/containous/traefik/v2/pkg/api"
|
|
||||||
"github.com/go-check/check"
|
"github.com/go-check/check"
|
||||||
"github.com/pmezard/go-difflib/difflib"
|
"github.com/pmezard/go-difflib/difflib"
|
||||||
|
"github.com/traefik/traefik/v2/integration/try"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/api"
|
||||||
checker "github.com/vdemeester/shakers"
|
checker "github.com/vdemeester/shakers"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -5,8 +5,8 @@ import (
|
||||||
"net"
|
"net"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"github.com/containous/traefik/v2/pkg/log"
|
|
||||||
"github.com/miekg/dns"
|
"github.com/miekg/dns"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
type handler struct{}
|
type handler struct{}
|
||||||
|
|
|
@ -5,8 +5,8 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/containous/traefik/v2/integration/try"
|
|
||||||
"github.com/go-check/check"
|
"github.com/go-check/check"
|
||||||
|
"github.com/traefik/traefik/v2/integration/try"
|
||||||
checker "github.com/vdemeester/shakers"
|
checker "github.com/vdemeester/shakers"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -4,24 +4,24 @@ metadata:
|
||||||
name: whoami
|
name: whoami
|
||||||
namespace: default
|
namespace: default
|
||||||
labels:
|
labels:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
name: whoami
|
name: whoami
|
||||||
|
|
||||||
spec:
|
spec:
|
||||||
replicas: 2
|
replicas: 2
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
task: whoami
|
task: whoami
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
task: whoami
|
task: whoami
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: containouswhoami
|
- name: whoami
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ spec:
|
||||||
- name: http
|
- name: http
|
||||||
port: 80
|
port: 80
|
||||||
selector:
|
selector:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
task: whoami
|
task: whoami
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -47,24 +47,24 @@ metadata:
|
||||||
name: whoamitcp
|
name: whoamitcp
|
||||||
namespace: default
|
namespace: default
|
||||||
labels:
|
labels:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
name: whoamitcp
|
name: whoamitcp
|
||||||
|
|
||||||
spec:
|
spec:
|
||||||
replicas: 2
|
replicas: 2
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
task: whoamitcp
|
task: whoamitcp
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
task: whoamitcp
|
task: whoamitcp
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: containouswhoamitcp
|
- name: whoamitcp
|
||||||
image: containous/whoamitcp
|
image: traefik/whoamitcp
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8080
|
- containerPort: 8080
|
||||||
|
|
||||||
|
@ -80,7 +80,7 @@ spec:
|
||||||
- name: footcp
|
- name: footcp
|
||||||
port: 8080
|
port: 8080
|
||||||
selector:
|
selector:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
task: whoamitcp
|
task: whoamitcp
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -90,24 +90,24 @@ metadata:
|
||||||
name: whoamiudp
|
name: whoamiudp
|
||||||
namespace: default
|
namespace: default
|
||||||
labels:
|
labels:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
name: whoamiudp
|
name: whoamiudp
|
||||||
|
|
||||||
spec:
|
spec:
|
||||||
replicas: 2
|
replicas: 2
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
task: whoamiudp
|
task: whoamiudp
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
task: whoamiudp
|
task: whoamiudp
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: containouswhoamiudp
|
- name: whoamiudp
|
||||||
image: containous/whoamiudp:dev
|
image: traefik/whoamiudp:latest
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8090
|
- containerPort: 8090
|
||||||
|
|
||||||
|
@ -124,7 +124,7 @@ spec:
|
||||||
name: fooudp
|
name: fooudp
|
||||||
port: 8090
|
port: 8090
|
||||||
selector:
|
selector:
|
||||||
app: containous
|
app: traefiklabs
|
||||||
task: whoamiudp
|
task: whoamiudp
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -135,4 +135,4 @@ metadata:
|
||||||
namespace: default
|
namespace: default
|
||||||
spec:
|
spec:
|
||||||
externalName: domain.com
|
externalName: domain.com
|
||||||
type: ExternalName
|
type: ExternalName
|
||||||
|
|
|
@ -11,10 +11,10 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/containous/traefik/v2/integration/helloworld"
|
|
||||||
"github.com/containous/traefik/v2/integration/try"
|
|
||||||
"github.com/containous/traefik/v2/pkg/log"
|
|
||||||
"github.com/go-check/check"
|
"github.com/go-check/check"
|
||||||
|
"github.com/traefik/traefik/v2/integration/helloworld"
|
||||||
|
"github.com/traefik/traefik/v2/integration/try"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/log"
|
||||||
"google.golang.org/grpc"
|
"google.golang.org/grpc"
|
||||||
"google.golang.org/grpc/credentials"
|
"google.golang.org/grpc/credentials"
|
||||||
)
|
)
|
||||||
|
|
|
@ -5,8 +5,8 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/containous/traefik/v2/integration/try"
|
|
||||||
"github.com/go-check/check"
|
"github.com/go-check/check"
|
||||||
|
"github.com/traefik/traefik/v2/integration/try"
|
||||||
checker "github.com/vdemeester/shakers"
|
checker "github.com/vdemeester/shakers"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -6,8 +6,8 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/containous/traefik/v2/integration/try"
|
|
||||||
"github.com/go-check/check"
|
"github.com/go-check/check"
|
||||||
|
"github.com/traefik/traefik/v2/integration/try"
|
||||||
checker "github.com/vdemeester/shakers"
|
checker "github.com/vdemeester/shakers"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -4,8 +4,8 @@ import (
|
||||||
"net/http"
|
"net/http"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/containous/traefik/v2/integration/try"
|
|
||||||
"github.com/go-check/check"
|
"github.com/go-check/check"
|
||||||
|
"github.com/traefik/traefik/v2/integration/try"
|
||||||
checker "github.com/vdemeester/shakers"
|
checker "github.com/vdemeester/shakers"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -7,9 +7,9 @@ import (
|
||||||
"net/http/httptest"
|
"net/http/httptest"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/containous/traefik/v2/integration/try"
|
|
||||||
"github.com/containous/traefik/v2/pkg/config/dynamic"
|
|
||||||
"github.com/go-check/check"
|
"github.com/go-check/check"
|
||||||
|
"github.com/traefik/traefik/v2/integration/try"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/config/dynamic"
|
||||||
checker "github.com/vdemeester/shakers"
|
checker "github.com/vdemeester/shakers"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -11,10 +11,10 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/BurntSushi/toml"
|
"github.com/BurntSushi/toml"
|
||||||
"github.com/containous/traefik/v2/integration/try"
|
|
||||||
"github.com/containous/traefik/v2/pkg/config/dynamic"
|
|
||||||
traefiktls "github.com/containous/traefik/v2/pkg/tls"
|
|
||||||
"github.com/go-check/check"
|
"github.com/go-check/check"
|
||||||
|
"github.com/traefik/traefik/v2/integration/try"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/config/dynamic"
|
||||||
|
traefiktls "github.com/traefik/traefik/v2/pkg/tls"
|
||||||
checker "github.com/vdemeester/shakers"
|
checker "github.com/vdemeester/shakers"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -14,10 +14,10 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
"text/template"
|
"text/template"
|
||||||
|
|
||||||
"github.com/containous/traefik/v2/pkg/log"
|
|
||||||
"github.com/fatih/structs"
|
"github.com/fatih/structs"
|
||||||
"github.com/go-check/check"
|
"github.com/go-check/check"
|
||||||
compose "github.com/libkermit/compose/check"
|
compose "github.com/libkermit/compose/check"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/log"
|
||||||
checker "github.com/vdemeester/shakers"
|
checker "github.com/vdemeester/shakers"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -14,11 +14,11 @@ import (
|
||||||
"regexp"
|
"regexp"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/containous/traefik/v2/integration/try"
|
|
||||||
"github.com/containous/traefik/v2/pkg/api"
|
|
||||||
"github.com/containous/traefik/v2/pkg/log"
|
|
||||||
"github.com/go-check/check"
|
"github.com/go-check/check"
|
||||||
"github.com/pmezard/go-difflib/difflib"
|
"github.com/pmezard/go-difflib/difflib"
|
||||||
|
"github.com/traefik/traefik/v2/integration/try"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/api"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/log"
|
||||||
checker "github.com/vdemeester/shakers"
|
checker "github.com/vdemeester/shakers"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -8,8 +8,8 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/containous/traefik/v2/integration/try"
|
|
||||||
"github.com/go-check/check"
|
"github.com/go-check/check"
|
||||||
|
"github.com/traefik/traefik/v2/integration/try"
|
||||||
checker "github.com/vdemeester/shakers"
|
checker "github.com/vdemeester/shakers"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -11,8 +11,8 @@ import (
|
||||||
"syscall"
|
"syscall"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/containous/traefik/v2/integration/try"
|
|
||||||
"github.com/go-check/check"
|
"github.com/go-check/check"
|
||||||
|
"github.com/traefik/traefik/v2/integration/try"
|
||||||
checker "github.com/vdemeester/shakers"
|
checker "github.com/vdemeester/shakers"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -6,9 +6,9 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/containous/traefik/v2/integration/try"
|
|
||||||
"github.com/gambol99/go-marathon"
|
"github.com/gambol99/go-marathon"
|
||||||
"github.com/go-check/check"
|
"github.com/go-check/check"
|
||||||
|
"github.com/traefik/traefik/v2/integration/try"
|
||||||
checker "github.com/vdemeester/shakers"
|
checker "github.com/vdemeester/shakers"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -101,7 +101,7 @@ func (s *MarathonSuite15) TestConfigurationUpdate(c *check.C) {
|
||||||
app.Container.
|
app.Container.
|
||||||
Expose(80).
|
Expose(80).
|
||||||
Docker.
|
Docker.
|
||||||
Container("containous/whoami")
|
Container("traefik/whoami")
|
||||||
*app.Networks = append(*app.Networks, *marathon.NewBridgePodNetwork())
|
*app.Networks = append(*app.Networks, *marathon.NewBridgePodNetwork())
|
||||||
|
|
||||||
// Deploy the test application.
|
// Deploy the test application.
|
||||||
|
@ -121,7 +121,7 @@ func (s *MarathonSuite15) TestConfigurationUpdate(c *check.C) {
|
||||||
app.Container.
|
app.Container.
|
||||||
Expose(80).
|
Expose(80).
|
||||||
Docker.
|
Docker.
|
||||||
Container("containous/whoami")
|
Container("traefik/whoami")
|
||||||
*app.Networks = append(*app.Networks, *marathon.NewBridgePodNetwork())
|
*app.Networks = append(*app.Networks, *marathon.NewBridgePodNetwork())
|
||||||
|
|
||||||
// Deploy the test application.
|
// Deploy the test application.
|
||||||
|
|
|
@ -6,9 +6,9 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/containous/traefik/v2/integration/try"
|
|
||||||
"github.com/gambol99/go-marathon"
|
"github.com/gambol99/go-marathon"
|
||||||
"github.com/go-check/check"
|
"github.com/go-check/check"
|
||||||
|
"github.com/traefik/traefik/v2/integration/try"
|
||||||
checker "github.com/vdemeester/shakers"
|
checker "github.com/vdemeester/shakers"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -111,7 +111,7 @@ func (s *MarathonSuite) TestConfigurationUpdate(c *check.C) {
|
||||||
AddLabel("traefik.http.Routers.rt.Rule", "PathPrefix(`/service`)")
|
AddLabel("traefik.http.Routers.rt.Rule", "PathPrefix(`/service`)")
|
||||||
app.Container.Docker.Bridged().
|
app.Container.Docker.Bridged().
|
||||||
Expose(80).
|
Expose(80).
|
||||||
Container("containous/whoami")
|
Container("traefik/whoami")
|
||||||
|
|
||||||
// Deploy the test application.
|
// Deploy the test application.
|
||||||
deployApplication(c, client, app)
|
deployApplication(c, client, app)
|
||||||
|
@ -128,7 +128,7 @@ func (s *MarathonSuite) TestConfigurationUpdate(c *check.C) {
|
||||||
AddLabel("traefik.http.Routers.app.Rule", "PathPrefix(`/app`)")
|
AddLabel("traefik.http.Routers.app.Rule", "PathPrefix(`/app`)")
|
||||||
app.Container.Docker.Bridged().
|
app.Container.Docker.Bridged().
|
||||||
Expose(80).
|
Expose(80).
|
||||||
Container("containous/whoami")
|
Container("traefik/whoami")
|
||||||
|
|
||||||
// Deploy the test application.
|
// Deploy the test application.
|
||||||
deployApplication(c, client, app)
|
deployApplication(c, client, app)
|
||||||
|
|
|
@ -5,8 +5,8 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/containous/traefik/v2/integration/try"
|
|
||||||
"github.com/go-check/check"
|
"github.com/go-check/check"
|
||||||
|
"github.com/traefik/traefik/v2/integration/try"
|
||||||
checker "github.com/vdemeester/shakers"
|
checker "github.com/vdemeester/shakers"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -5,8 +5,8 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/containous/traefik/v2/integration/try"
|
|
||||||
"github.com/go-check/check"
|
"github.com/go-check/check"
|
||||||
|
"github.com/traefik/traefik/v2/integration/try"
|
||||||
checker "github.com/vdemeester/shakers"
|
checker "github.com/vdemeester/shakers"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -12,10 +12,10 @@ import (
|
||||||
"github.com/abronan/valkeyrie"
|
"github.com/abronan/valkeyrie"
|
||||||
"github.com/abronan/valkeyrie/store"
|
"github.com/abronan/valkeyrie/store"
|
||||||
"github.com/abronan/valkeyrie/store/redis"
|
"github.com/abronan/valkeyrie/store/redis"
|
||||||
"github.com/containous/traefik/v2/integration/try"
|
|
||||||
"github.com/containous/traefik/v2/pkg/api"
|
|
||||||
"github.com/go-check/check"
|
"github.com/go-check/check"
|
||||||
"github.com/pmezard/go-difflib/difflib"
|
"github.com/pmezard/go-difflib/difflib"
|
||||||
|
"github.com/traefik/traefik/v2/integration/try"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/api"
|
||||||
checker "github.com/vdemeester/shakers"
|
checker "github.com/vdemeester/shakers"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
server0:
|
server0:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
labels:
|
labels:
|
||||||
- traefik.enable=true
|
- traefik.enable=true
|
||||||
- traefik.http.routers.rt-server0.entryPoints=web
|
- traefik.http.routers.rt-server0.entryPoints=web
|
||||||
- traefik.http.routers.rt-server0.rule=Path("/test")
|
- traefik.http.routers.rt-server0.rule=Path("/test")
|
||||||
- traefik.http.services.service1.loadbalancer.server.port=80
|
- traefik.http.services.service1.loadbalancer.server.port=80
|
||||||
server1:
|
server1:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
labels:
|
labels:
|
||||||
- traefik.enable=true
|
- traefik.enable=true
|
||||||
- traefik.http.routers.rt-server1.entryPoints=web
|
- traefik.http.routers.rt-server1.entryPoints=web
|
||||||
|
@ -14,21 +14,21 @@ server1:
|
||||||
- traefik.http.routers.rt-server1.service=service1
|
- traefik.http.routers.rt-server1.service=service1
|
||||||
- traefik.http.services.service1.loadbalancer.server.port=80
|
- traefik.http.services.service1.loadbalancer.server.port=80
|
||||||
server2:
|
server2:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
labels:
|
labels:
|
||||||
- traefik.enable=true
|
- traefik.enable=true
|
||||||
- traefik.http.routers.rt-server2.entryPoints=web
|
- traefik.http.routers.rt-server2.entryPoints=web
|
||||||
- traefik.http.routers.rt-server2.rule=Host("frontend2.docker.local")
|
- traefik.http.routers.rt-server2.rule=Host("frontend2.docker.local")
|
||||||
- traefik.http.services.service2.loadbalancer.server.port=80
|
- traefik.http.services.service2.loadbalancer.server.port=80
|
||||||
server3:
|
server3:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
labels:
|
labels:
|
||||||
- traefik.enable=true
|
- traefik.enable=true
|
||||||
- traefik.http.routers.rt-server3.entryPoints=web
|
- traefik.http.routers.rt-server3.entryPoints=web
|
||||||
- traefik.http.routers.rt-server3.rule=Host("frontend2.docker.local")
|
- traefik.http.routers.rt-server3.rule=Host("frontend2.docker.local")
|
||||||
- traefik.http.services.service2.loadbalancer.server.port=80
|
- traefik.http.services.service2.loadbalancer.server.port=80
|
||||||
authFrontend:
|
authFrontend:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
labels:
|
labels:
|
||||||
- traefik.enable=true
|
- traefik.enable=true
|
||||||
- traefik.http.routers.rt-authFrontend.entryPoints=httpFrontendAuth
|
- traefik.http.routers.rt-authFrontend.entryPoints=httpFrontendAuth
|
||||||
|
@ -37,7 +37,7 @@ authFrontend:
|
||||||
- traefik.http.middlewares.basicauth.basicauth.users=test:$$apr1$$H6uskkkW$$IgXLP6ewTrSuBkTrqE8wj/
|
- traefik.http.middlewares.basicauth.basicauth.users=test:$$apr1$$H6uskkkW$$IgXLP6ewTrSuBkTrqE8wj/
|
||||||
- traefik.http.services.service3.loadbalancer.server.port=80
|
- traefik.http.services.service3.loadbalancer.server.port=80
|
||||||
digestAuthMiddleware:
|
digestAuthMiddleware:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
labels:
|
labels:
|
||||||
- traefik.enable=true
|
- traefik.enable=true
|
||||||
- traefik.http.routers.rt-digestAuthMiddleware.entryPoints=digestAuth
|
- traefik.http.routers.rt-digestAuthMiddleware.entryPoints=digestAuth
|
||||||
|
@ -46,7 +46,7 @@ digestAuthMiddleware:
|
||||||
- traefik.http.middlewares.digestauth.digestauth.users=test:traefik:a2688e031edb4be6a3797f3882655c05, test2:traefik:518845800f9e2bfb1f1f740ec24f074e
|
- traefik.http.middlewares.digestauth.digestauth.users=test:traefik:a2688e031edb4be6a3797f3882655c05, test2:traefik:518845800f9e2bfb1f1f740ec24f074e
|
||||||
- traefik.http.services.service3.loadbalancer.server.port=80
|
- traefik.http.services.service3.loadbalancer.server.port=80
|
||||||
frontendRedirect:
|
frontendRedirect:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
labels:
|
labels:
|
||||||
- traefik.enable=true
|
- traefik.enable=true
|
||||||
- traefik.http.routers.rt-frontendRedirect.entryPoints=frontendRedirect
|
- traefik.http.routers.rt-frontendRedirect.entryPoints=frontendRedirect
|
||||||
|
@ -56,7 +56,7 @@ frontendRedirect:
|
||||||
- traefik.http.middlewares.redirecthttp.redirectScheme.port=8000
|
- traefik.http.middlewares.redirecthttp.redirectScheme.port=8000
|
||||||
- traefik.http.services.service3.loadbalancer.server.port=80
|
- traefik.http.services.service3.loadbalancer.server.port=80
|
||||||
rateLimit:
|
rateLimit:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
labels:
|
labels:
|
||||||
- traefik.enable=true
|
- traefik.enable=true
|
||||||
- traefik.http.routers.rt-rateLimit.entryPoints=httpRateLimit
|
- traefik.http.routers.rt-rateLimit.entryPoints=httpRateLimit
|
||||||
|
@ -67,7 +67,7 @@ rateLimit:
|
||||||
- traefik.http.middlewares.rate.ratelimit.burst=2
|
- traefik.http.middlewares.rate.ratelimit.burst=2
|
||||||
- traefik.http.services.service3.loadbalancer.server.port=80
|
- traefik.http.services.service3.loadbalancer.server.port=80
|
||||||
frontendWhitelist:
|
frontendWhitelist:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
labels:
|
labels:
|
||||||
- traefik.enable=true
|
- traefik.enable=true
|
||||||
- traefik.http.routers.rt-frontendWhitelist.entryPoints=web
|
- traefik.http.routers.rt-frontendWhitelist.entryPoints=web
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
whoami1:
|
whoami1:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
labels:
|
labels:
|
||||||
- traefik.enable=true
|
- traefik.enable=true
|
||||||
- traefik.http.routers.router1.rule=PathPrefix("/whoami")
|
- traefik.http.routers.router1.rule=PathPrefix("/whoami")
|
||||||
|
|
||||||
whoami2:
|
whoami2:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
labels:
|
labels:
|
||||||
- traefik.enable=false
|
- traefik.enable=false
|
||||||
|
|
|
@ -11,14 +11,14 @@ consul-agent:
|
||||||
links:
|
links:
|
||||||
- consul
|
- consul
|
||||||
whoami1:
|
whoami1:
|
||||||
image: containous/whoami:v1.3.0
|
image: traefik/whoami
|
||||||
hostname: whoami1
|
hostname: whoami1
|
||||||
whoami2:
|
whoami2:
|
||||||
image: containous/whoami:v1.3.0
|
image: traefik/whoami
|
||||||
hostname: whoami2
|
hostname: whoami2
|
||||||
whoami3:
|
whoami3:
|
||||||
image: containous/whoami:v1.3.0
|
image: traefik/whoami
|
||||||
hostname: whoami3
|
hostname: whoami3
|
||||||
whoamitcp:
|
whoamitcp:
|
||||||
image: containous/whoamitcp
|
image: traefik/whoamitcp
|
||||||
hostname: whoamitcp
|
hostname: whoamitcp
|
||||||
|
|
|
@ -1,20 +1,20 @@
|
||||||
whoami1:
|
whoami1:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
ports:
|
ports:
|
||||||
- "8881:80"
|
- "8881:80"
|
||||||
whoami2:
|
whoami2:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
ports:
|
ports:
|
||||||
- "8882:80"
|
- "8882:80"
|
||||||
whoami3:
|
whoami3:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
ports:
|
ports:
|
||||||
- "8883:80"
|
- "8883:80"
|
||||||
whoami4:
|
whoami4:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
ports:
|
ports:
|
||||||
- "8884:80"
|
- "8884:80"
|
||||||
whoami5:
|
whoami5:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
ports:
|
ports:
|
||||||
- "8885:80"
|
- "8885:80"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
whoami1:
|
whoami1:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
|
|
||||||
whoami2:
|
whoami2:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
server1:
|
server1:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
labels:
|
labels:
|
||||||
- traefik.enable=true
|
- traefik.enable=true
|
||||||
- traefik.http.services.service1.loadbalancer.server.port=80
|
- traefik.http.services.service1.loadbalancer.server.port=80
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
whoami1:
|
whoami1:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
labels:
|
labels:
|
||||||
- traefik.http.Routers.RouterMini.Rule=PathPrefix("/whoami")
|
- traefik.http.Routers.RouterMini.Rule=PathPrefix("/whoami")
|
||||||
- traefik.enable=true
|
- traefik.enable=true
|
||||||
|
|
|
@ -4,4 +4,4 @@ haproxy:
|
||||||
- ../haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg
|
- ../haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg
|
||||||
|
|
||||||
whoami:
|
whoami:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
whoami1:
|
whoami1:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
whoami:
|
whoami:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
whoami1:
|
whoami1:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
ports:
|
ports:
|
||||||
- "8881:80"
|
- "8881:80"
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
whoami:
|
whoami:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
whoami1:
|
whoami1:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
whoami2:
|
whoami2:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
|
@ -1,5 +1,5 @@
|
||||||
whoami-a:
|
whoami-a:
|
||||||
image: containous/whoamitcp
|
image: traefik/whoamitcp
|
||||||
command: -name whoami-a -certFile /certs/whoami-a.crt -keyFile /certs/whoami-a.key
|
command: -name whoami-a -certFile /certs/whoami-a.crt -keyFile /certs/whoami-a.key
|
||||||
volumes:
|
volumes:
|
||||||
- ../../fixtures/tcp:/certs
|
- ../../fixtures/tcp:/certs
|
||||||
|
@ -7,7 +7,7 @@ whoami-a:
|
||||||
- "8081:8080"
|
- "8081:8080"
|
||||||
|
|
||||||
whoami-b:
|
whoami-b:
|
||||||
image: containous/whoamitcp
|
image: traefik/whoamitcp
|
||||||
command: -name whoami-b -certFile /certs/whoami-b.crt -keyFile /certs/whoami-b.key
|
command: -name whoami-b -certFile /certs/whoami-b.crt -keyFile /certs/whoami-b.key
|
||||||
volumes:
|
volumes:
|
||||||
- ../../fixtures/tcp:/certs
|
- ../../fixtures/tcp:/certs
|
||||||
|
@ -15,24 +15,24 @@ whoami-b:
|
||||||
- "8082:8080"
|
- "8082:8080"
|
||||||
|
|
||||||
whoami-no-cert:
|
whoami-no-cert:
|
||||||
image: containous/whoamitcp
|
image: traefik/whoamitcp
|
||||||
command: -name whoami-no-cert
|
command: -name whoami-no-cert
|
||||||
ports:
|
ports:
|
||||||
- "8083:8080"
|
- "8083:8080"
|
||||||
|
|
||||||
whoami-no-tls:
|
whoami-no-tls:
|
||||||
image: containous/whoamitcp
|
image: traefik/whoamitcp
|
||||||
command: -name whoami-no-tls
|
command: -name whoami-no-tls
|
||||||
ports:
|
ports:
|
||||||
- "8084:8080"
|
- "8084:8080"
|
||||||
|
|
||||||
whoami:
|
whoami:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
ports:
|
ports:
|
||||||
- "8085:80"
|
- "8085:80"
|
||||||
|
|
||||||
whoami-banner:
|
whoami-banner:
|
||||||
image: containous/whoamitcp
|
image: traefik/whoamitcp
|
||||||
command: -name whoami-banner --banner
|
command: -name whoami-banner --banner
|
||||||
ports:
|
ports:
|
||||||
- "8086:8080"
|
- "8086:8080"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
whoami:
|
whoami:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
labels:
|
labels:
|
||||||
- traefik.http.routers.route1.rule=PathPrefix(`/`)
|
- traefik.http.routers.route1.rule=PathPrefix(`/`)
|
||||||
- traefik.http.routers.route1.middlewares=passtls
|
- traefik.http.routers.route1.middlewares=passtls
|
||||||
|
|
|
@ -18,4 +18,4 @@ jaeger:
|
||||||
- "14268:14268"
|
- "14268:14268"
|
||||||
- "9411:9411"
|
- "9411:9411"
|
||||||
whoami:
|
whoami:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
whoami-a:
|
whoami-a:
|
||||||
image: containous/whoamiudp:dev
|
image: traefik/whoamiudp:latest
|
||||||
command: -name whoami-a
|
command: -name whoami-a
|
||||||
|
|
||||||
whoami-b:
|
whoami-b:
|
||||||
image: containous/whoamiudp:dev
|
image: traefik/whoamiudp:latest
|
||||||
command: -name whoami-b
|
command: -name whoami-b
|
||||||
|
|
||||||
whoami-c:
|
whoami-c:
|
||||||
image: containous/whoamiudp:dev
|
image: traefik/whoamiudp:latest
|
||||||
command: -name whoami-c
|
command: -name whoami-c
|
||||||
|
|
||||||
whoami-d:
|
whoami-d:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
noOverrideWhitelist:
|
noOverrideWhitelist:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
labels:
|
labels:
|
||||||
- traefik.enable=true
|
- traefik.enable=true
|
||||||
- traefik.http.routers.rt1.rule=Host("no.override.whitelist.docker.local")
|
- traefik.http.routers.rt1.rule=Host("no.override.whitelist.docker.local")
|
||||||
|
@ -7,7 +7,7 @@ noOverrideWhitelist:
|
||||||
- traefik.http.middlewares.wl1.ipwhiteList.sourceRange=8.8.8.8
|
- traefik.http.middlewares.wl1.ipwhiteList.sourceRange=8.8.8.8
|
||||||
|
|
||||||
overrideIPStrategyRemoteAddrWhitelist:
|
overrideIPStrategyRemoteAddrWhitelist:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
labels:
|
labels:
|
||||||
- traefik.enable=true
|
- traefik.enable=true
|
||||||
- traefik.http.routers.rt2.rule=Host("override.remoteaddr.whitelist.docker.local")
|
- traefik.http.routers.rt2.rule=Host("override.remoteaddr.whitelist.docker.local")
|
||||||
|
@ -16,7 +16,7 @@ overrideIPStrategyRemoteAddrWhitelist:
|
||||||
- traefik.http.middlewares.wl2.ipwhitelist.ipStrategy=true
|
- traefik.http.middlewares.wl2.ipwhitelist.ipStrategy=true
|
||||||
|
|
||||||
overrideIPStrategyDepthWhitelist:
|
overrideIPStrategyDepthWhitelist:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
labels:
|
labels:
|
||||||
- traefik.enable=true
|
- traefik.enable=true
|
||||||
- traefik.http.routers.rt3.rule=Host("override.depth.whitelist.docker.local")
|
- traefik.http.routers.rt3.rule=Host("override.depth.whitelist.docker.local")
|
||||||
|
@ -25,7 +25,7 @@ overrideIPStrategyDepthWhitelist:
|
||||||
- traefik.http.middlewares.wl3.ipwhitelist.ipStrategy.depth=3
|
- traefik.http.middlewares.wl3.ipwhitelist.ipStrategy.depth=3
|
||||||
|
|
||||||
overrideIPStrategyExcludedIPsWhitelist:
|
overrideIPStrategyExcludedIPsWhitelist:
|
||||||
image: containous/whoami
|
image: traefik/whoami
|
||||||
labels:
|
labels:
|
||||||
- traefik.enable=true
|
- traefik.enable=true
|
||||||
- traefik.http.routers.rt4.rule=Host("override.excludedips.whitelist.docker.local")
|
- traefik.http.routers.rt4.rule=Host("override.excludedips.whitelist.docker.local")
|
||||||
|
|
|
@ -8,9 +8,9 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/containous/traefik/v2/integration/try"
|
|
||||||
"github.com/containous/traefik/v2/pkg/config/dynamic"
|
|
||||||
"github.com/go-check/check"
|
"github.com/go-check/check"
|
||||||
|
"github.com/traefik/traefik/v2/integration/try"
|
||||||
|
"github.com/traefik/traefik/v2/pkg/config/dynamic"
|
||||||
checker "github.com/vdemeester/shakers"
|
checker "github.com/vdemeester/shakers"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -5,9 +5,9 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/containous/traefik/v2/integration/try"
|
|
||||||
"github.com/go-check/check"
|
"github.com/go-check/check"
|
||||||
"github.com/gorilla/websocket"
|
"github.com/gorilla/websocket"
|
||||||
|
"github.com/traefik/traefik/v2/integration/try"
|
||||||
checker "github.com/vdemeester/shakers"
|
checker "github.com/vdemeester/shakers"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue