diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index 500ad4acd..29d244ddb 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -1,6 +1,6 @@
---
name: Bug Report
-about: Create a report to help us improve Maesh
+about: Create a report to help us improve Traefik Mesh.
---
@@ -29,7 +29,7 @@ HOW TO WRITE A GOOD BUG REPORT?
-### Output of controller log: (_What version of Maesh are you using?_)
+### Output of controller log: (_What version of Traefik Mesh are you using?_)
diff --git a/.gitignore b/.gitignore
index 704127d96..08f45f98b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,11 +9,10 @@
*.log
*.exe
cover.out
-maesh
-!maesh/
+traefik-mesh
/dist/
.vscode
vendor
pages/
-maesh-gh-pages*
+mesh-gh-pages*
*.zip
diff --git a/.goreleaser.yml b/.goreleaser.yml
index 237e4dc3d..8b8c06a3c 100644
--- a/.goreleaser.yml
+++ b/.goreleaser.yml
@@ -1,16 +1,16 @@
-project_name: maesh
+project_name: traefik-mesh
builds:
- - binary: maesh
+ - binary: traefik-mesh
- main: ./cmd/maesh/maesh.go
+ main: ./cmd/mesh/mesh.go
env:
- CGO_ENABLED=0
ldflags:
- -s -w
- - -X github.com/containous/maesh/pkg/version.Version={{.Version}}
- - -X github.com/containous/maesh/pkg/version.Commit={{.Commit}}
- - -X github.com/containous/maesh/pkg/version.Date={{.Date}}
+ - -X github.com/traefik/mesh/pkg/version.Version={{.Version}}
+ - -X github.com/traefik/mesh/pkg/version.Commit={{.Commit}}
+ - -X github.com/traefik/mesh/pkg/version.Date={{.Date}}
goos:
- linux
- freebsd
@@ -30,7 +30,7 @@ builds:
goarch: arm64
archives:
- - id: maesh
+ - id: traefik-mesh
name_template: '{{ .ProjectName }}_v{{ .Version }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}'
format: tar.gz
files:
diff --git a/.semaphore/semaphore.yml b/.semaphore/semaphore.yml
index a9e076133..b7cdcb51f 100644
--- a/.semaphore/semaphore.yml
+++ b/.semaphore/semaphore.yml
@@ -1,5 +1,5 @@
version: v1.0
-name: Maesh Pipeline
+name: Traefik Mesh Pipeline
agent:
machine:
@@ -33,9 +33,9 @@ blocks:
- name: Build and check
commands:
- make check build
- - cache store maesh-dist-$SEMAPHORE_GIT_BRANCH-$SEMAPHORE_WORKFLOW_ID dist
- - docker save containous/maesh:latest > maesh-img.tar
- - cache store maesh-img-$SEMAPHORE_GIT_BRANCH-$SEMAPHORE_WORKFLOW_ID maesh-img.tar
+ - cache store traefik-mesh-dist-$SEMAPHORE_GIT_BRANCH-$SEMAPHORE_WORKFLOW_ID dist
+ - docker save traefik/mesh:latest > traefik-mesh-img.tar
+ - cache store traefik-mesh-img-$SEMAPHORE_GIT_BRANCH-$SEMAPHORE_WORKFLOW_ID traefik-mesh-img.tar
- name: Unit Tests
skip:
@@ -62,9 +62,9 @@ blocks:
- sudo semgo go1.15
- checkout
- cache restore
- - cache restore maesh-dist-$SEMAPHORE_GIT_BRANCH-$SEMAPHORE_WORKFLOW_ID
- - cache restore maesh-img-$SEMAPHORE_GIT_BRANCH-$SEMAPHORE_WORKFLOW_ID
- - docker load < maesh-img.tar
+ - cache restore traefik-mesh-dist-$SEMAPHORE_GIT_BRANCH-$SEMAPHORE_WORKFLOW_ID
+ - cache restore traefik-mesh-img-$SEMAPHORE_GIT_BRANCH-$SEMAPHORE_WORKFLOW_ID
+ - docker load < traefik-mesh-img.tar
jobs:
- name: ACL Enabled Suite
commands:
diff --git a/.travis.yml b/.travis.yml
index 1bf08be54..7a88890a8 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -47,10 +47,10 @@ before_deploy:
if ! [ "$BEFORE_DEPLOY_RUN" ]; then
export BEFORE_DEPLOY_RUN=1;
echo "${DOCKER_PASSWORD}" | docker login -u "${DOCKER_USERNAME}" --password-stdin;
- 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};
- structor -o containous -r maesh --dockerfile-url="https://raw.githubusercontent.com/containous/maesh/master/docs/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;
- mixtus --dst-doc-path="./mesh" --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=maesh;
+ structor -o traefik -r mesh --dockerfile-url="https://raw.githubusercontent.com/traefik/mesh/master/docs/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="./mesh" --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=mesh;
fi
# Copy helm packages
- cp -r pages/charts/. site/charts
@@ -94,5 +94,5 @@ deploy:
skip_cleanup: true
keep_history: true
on:
- repo: containous/maesh
+ repo: traefik/mesh
all_branches: true
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 3eefacf8b..75417bc12 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,35 +1,33 @@
# Contributing
-Maesh is an open source project, and your feedback and contributions
-are needed and always welcome.
+Traefik Mesh is an open source project, and your feedback and contributions are needed and always welcome.
-[Issues] and [Pull Requests] are opened at https://github.com/containous/maesh.
+[Issues] and [Pull Requests] are opened at https://github.com/traefik/mesh.
-Non trivial changes should be discussed with the project maintainers by
-opening a [Feature Request] clearly explaining rationale, background
-and possible implementation ideas. Feel free to provide code in such
-discussions.
+Non trivial changes should be discussed with the project maintainers by opening a [Feature Request] clearly explaining rationale,
+background and possible implementation ideas. Feel free to provide code in such discussions.
-Once the proposal is approved, a Pull Request can be opened. If you want
-to provide early visibility to reviewers, create a [Draft Pull Request].
+Once the proposal is approved, a Pull Request can be opened. If you want to provide early visibility to reviewers, create a [Draft Pull Request].
-[Issues]: https://github.com/containous/maesh/issues
-[Pull Requests]: https://github.com/containous/maesh/issues
-[Feature Request]: https://github.com/containous/maesh/issues/new?template=feature_request.md
+[Issues]: https://github.com/traefik/mesh/issues
+[Pull Requests]: https://github.com/traefik/mesh/issues
+[Feature Request]: https://github.com/traefik/mesh/issues/new?template=feature_request.md
[Draft Pull Request]: https://github.blog/2019-02-14-introducing-draft-pull-requests/
## Release Process
-Maesh follows the [semver](https://semver.org/) scheme when releasing new versions.
+Traefik Mesh follows the [semver](https://semver.org/) scheme when releasing new versions.
-Therefore, all PR's (except fixing a bug in a specific version) should be made against the `master` branch. If you're attempting to fix a bug in an already released version, please use the correct branch of that release (e.g. `v1.1`). All bug-fixes made to a specific branch will be backported to master, prior to releasing a new (major / minor) version. Patch releases will be made out of the version branch.
+Therefore, all PR's (except fixing a bug in a specific version) should be made against the `master` branch.
+If you're attempting to fix a bug in an already released version, please use the correct branch of that release (e.g. `v1.1`).
+All bug-fixes made to a specific branch will be backported to master, prior to releasing a new (major / minor) version. Patch releases will be made out of the version branch.
### Release steps
-In order to release a new version of Maesh, the following steps have to be done:
+In order to release a new version of Traefik Mesh, the following steps have to be done:
* Create a Prepare release PR updating the chart version and app version to upcoming release
-* Prepare a list of release notes for the #maesh
+* Prepare a list of release notes for the #traefik-mesh
* Merge Prepare release PR
* Create and push a tag on the release commit
-* Create a new release branch (v1.x) on upstream to allow versioned docs to be built
\ No newline at end of file
+* Create a new release branch (v1.x) on upstream to allow versioned docs to be built
diff --git a/Dockerfile b/Dockerfile
index 637b52fcc..235923541 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,3 @@
-# Let's build maesh for linux-amd64
FROM golang:1.15-alpine AS base-image
# Package dependencies
@@ -16,7 +15,7 @@ RUN apk --no-cache --no-progress add \
&& update-ca-certificates \
&& rm -rf /var/cache/apk/*
-WORKDIR /go/src/github.com/containous/maesh
+WORKDIR /go/src/github.com/traefik/mesh
# Download goreleaser binary to bin folder in $GOPATH
RUN curl -sfL https://install.goreleaser.com/github.com/goreleaser/goreleaser.sh | sh
@@ -42,6 +41,6 @@ RUN addgroup -g 1000 -S app && \
adduser -u 1000 -S app -G app
COPY --from=base-image /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
-COPY --from=maker /go/src/github.com/containous/maesh/dist/maesh /app/
+COPY --from=maker /go/src/github.com/traefik/mesh/dist/traefik-mesh /app/
-ENTRYPOINT ["/app/maesh"]
+ENTRYPOINT ["/app/traefik-mesh"]
diff --git a/LICENSE b/LICENSE
index 59d479ee9..253cb5383 100644
--- a/LICENSE
+++ b/LICENSE
@@ -186,7 +186,8 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.
- Copyright 2019 Containous SAS
+ Copyright 2020 Containous SAS
+ Copyright 2020 Traefik Labs
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/Makefile b/Makefile
index 8c346a892..2c0908c65 100644
--- a/Makefile
+++ b/Makefile
@@ -1,11 +1,11 @@
-DOCKER_IMAGE_NAME := containous/maesh
+DOCKER_IMAGE_NAME := traefik/mesh
UNAME := $(shell uname)
SRCS = $(shell git ls-files '*.go' | grep -v '^vendor/')
-BINARY_NAME = maesh
+BINARY_NAME = traefik-mesh
DIST_DIR = $(CURDIR)/dist
-DIST_DIR_MAESH = $(DIST_DIR)/$(BINARY_NAME)
-PROJECT ?= github.com/containous/$(BINARY_NAME)
+DIST_DIR_TRAEFIK_MESH = $(DIST_DIR)/$(BINARY_NAME)
+PROJECT ?= github.com/traefik/mesh
TAG_NAME ?= $(shell git tag -l --contains HEAD)
SHA := $(shell git rev-parse --short HEAD)
@@ -22,7 +22,7 @@ $(DIST_DIR):
mkdir -p $(DIST_DIR)
clean:
- rm -rf $(CURDIR)/dist/ cover.out $(CURDIR)/pages $(CURDIR)/gh-pages.zip $(CURDIR)/maesh-gh-pages
+ rm -rf $(CURDIR)/dist/ cover.out $(CURDIR)/pages $(CURDIR)/gh-pages.zip $(CURDIR)/mesh-gh-pages
# Static linting of source files. See .golangci.toml for options
local-check: $(DIST_DIR) helm-lint
@@ -30,11 +30,11 @@ local-check: $(DIST_DIR) helm-lint
# Local commands
local-build: $(DIST_DIR)
- CGO_ENABLED=0 go build -o ${DIST_DIR_MAESH} -ldflags="-s -w \
- -X github.com/containous/$(BINARY_NAME)/pkg/version.Version=$(VERSION) \
- -X github.com/containous/$(BINARY_NAME)/pkg/version.Commit=$(SHA) \
- -X github.com/containous/$(BINARY_NAME)/pkg/version.Date=$(BUILD_DATE)" \
- $(CURDIR)/cmd/$(BINARY_NAME)/*.go
+ CGO_ENABLED=0 go build -o ${DIST_DIR_TRAEFIK_MESH} -ldflags="-s -w \
+ -X github.com/traefik/mesh/pkg/version.Version=$(VERSION) \
+ -X github.com/traefik/mesh/pkg/version.Commit=$(SHA) \
+ -X github.com/traefik/mesh/pkg/version.Date=$(BUILD_DATE)" \
+ $(CURDIR)/cmd/mesh/mesh.go
local-test: clean
go test -v -cover ./...
@@ -105,19 +105,19 @@ helm:
@command -v helm >/dev/null 2>&1 || curl -L https://git.io/get_helm.sh | bash -s -- -v v3.0.1
helm-lint: helm
- helm lint helm/chart/maesh
+ helm lint helm/chart/mesh
k3d:
@command -v k3d >/dev/null 2>&1 || curl -s https://raw.githubusercontent.com/rancher/k3d/v3.0.1/install.sh | TAG=v3.0.1 bash
pages:
mkdir -p $(CURDIR)/pages
- rm -rf $(CURDIR)/gh-pages.zip $(CURDIR)/maesh-gh-pages
+ rm -rf $(CURDIR)/gh-pages.zip $(CURDIR)/mesh-gh-pages
curl -sSLO https://$(PROJECT)/archive/gh-pages.zip
unzip $(CURDIR)/gh-pages.zip
# We only keep the directory "charts" so documentation may remove files
- cp -r $(CURDIR)/maesh-gh-pages/charts $(CURDIR)/pages/
- rm -rf $(CURDIR)/gh-pages.zip $(CURDIR)/maesh-gh-pages
+ cp -r $(CURDIR)/mesh-gh-pages/charts $(CURDIR)/pages/
+ rm -rf $(CURDIR)/gh-pages.zip $(CURDIR)/mesh-gh-pages
docs-package: pages
make -C $(CURDIR)/docs
@@ -125,8 +125,8 @@ docs-package: pages
cp $(CURDIR)/docs/CNAME $(CURDIR)/pages/CNAME
helm-package: helm-lint pages
- helm package --app-version $(TAG_NAME) $(CURDIR)/helm/chart/maesh
- cp helm/chart/maesh/README.md index.md
+ helm package --app-version $(TAG_NAME) $(CURDIR)/helm/chart/mesh
+ cp helm/chart/mesh/README.md index.md
mkdir -p $(CURDIR)/pages/charts
mv *.tgz index.md $(CURDIR)/pages/charts/
helm repo index $(CURDIR)/pages/charts/
diff --git a/README.md b/README.md
index 9d612ccc9..c2cab4e5d 100644
--- a/README.md
+++ b/README.md
@@ -1,23 +1,22 @@
-
+
-[![Travis CI Build Status](https://travis-ci.com/containous/maesh.svg?branch=master)](https://travis-ci.com/containous/maesh)
-[![Semaphore CI Build Status](https://containous.semaphoreci.com/badges/maesh/branches/master.svg?style=shields)](https://containous.semaphoreci.com/projects/maesh)
+[![Travis CI Build Status](https://travis-ci.com/traefik/mesh.svg?branch=master)](https://travis-ci.com/traefik/mesh)
+[![Semaphore CI Build Status](https://traefik.semaphoreci.com/badges/mesh/branches/master.svg?style=shields)](https://traefik.semaphoreci.com/projects/mesh)
[![Docs](https://img.shields.io/badge/docs-current-brightgreen.svg)](https://docs.mae.sh)
-[![Go Report Card](https://goreportcard.com/badge/github.com/containous/maesh)](https://goreportcard.com/report/github.com/containous/maesh)
-[![Release](https://img.shields.io/github/tag-date/containous/maesh.svg)](https://github.com/containous/maesh/releases)
-[![GitHub](https://img.shields.io/github/license/containous/maesh)](https://github.com/containous/maesh/blob/master/LICENSE)
+[![Go Report Card](https://goreportcard.com/badge/github.com/traefik/mesh)](https://goreportcard.com/report/github.com/traefik/mesh)
+[![Release](https://img.shields.io/github/tag-date/traefik/mesh.svg)](https://github.com/traefik/mesh/releases)
+[![GitHub](https://img.shields.io/github/license/traefik/mesh)](https://github.com/traefik/mesh/blob/master/LICENSE)
[![Discourse status](https://img.shields.io/discourse/https/community.containo.us/status?label=Community&style=social)](https://community.containo.us/c/maesh)
-## Maesh: Simpler Service Mesh
+## Traefik Mesh: Simpler Service Mesh
-Maesh is a simple, yet full-featured service mesh.
+Traefik Mesh is a simple, yet full-featured service mesh.
It is container-native and fits as your de-facto service mesh in your Kubernetes cluster.
It supports the latest Service Mesh Interface specification [SMI](https://smi-spec.io) that facilitates integration with pre-existing solution.
-Moreover, Maesh is opt-in by default,
-which means that your existing services are unaffected until you decide to add them to the mesh.
+Moreover, Traefik Mesh is opt-in by default, which means that your existing services are unaffected until you decide to add them to the mesh.
@@ -26,15 +25,15 @@ which means that your existing services are unaffected until you decide to add t
## Non-Invasive Service Mesh
-Maesh does not use any sidecar container but handles routing through proxy endpoints running on each node.
+Traefik Mesh does not use any sidecar container but handles routing through proxy endpoints running on each node.
The mesh controller runs in a dedicated pod and handles all the configuration parsing and deployment to the proxy nodes.
-Maesh supports multiple configuration options: annotations on user service objects, and SMI objects.
-Not using sidecars means that Maesh does not modify your Kubernetes objects, and does not modify your traffic without your knowledge.
-Using the Maesh endpoints is all that is required.
+Traefik Mesh supports multiple configuration options: annotations on user service objects, and SMI objects.
+Not using sidecars means that Traefik Mesh does not modify your Kubernetes objects, and does not modify your traffic without your knowledge.
+Using the Traefik Mesh endpoints is all that is required.
-
-
+
+
## Prerequisites
@@ -48,9 +47,9 @@ To run this app, you require the following:
## Install (Helm v3 only)
```shell
-helm repo add maesh https://containous.github.io/maesh/charts
+helm repo add traefik-mesh https://traefik.github.io/mesh/charts
helm repo update
-helm install maesh maesh/maesh
+helm install traefik-mesh traefik-mesh/traefik-mesh
```
You can find the complete documentation at https://docs.mae.sh.
diff --git a/cmd/cleanup/cleanup.go b/cmd/cleanup/cleanup.go
index fdf102332..78059dd9f 100644
--- a/cmd/cleanup/cleanup.go
+++ b/cmd/cleanup/cleanup.go
@@ -4,9 +4,9 @@ import (
"context"
"fmt"
- "github.com/containous/maesh/cmd"
- "github.com/containous/maesh/pkg/cleanup"
- "github.com/containous/maesh/pkg/k8s"
+ "github.com/traefik/mesh/cmd"
+ "github.com/traefik/mesh/pkg/cleanup"
+ "github.com/traefik/mesh/pkg/k8s"
"github.com/traefik/paerser/cli"
)
@@ -14,7 +14,7 @@ import (
func NewCmd(cConfig *cmd.CleanupConfiguration, loaders []cli.ResourceLoader) *cli.Command {
return &cli.Command{
Name: "cleanup",
- Description: `Removes Maesh shadow services from a Kubernetes cluster.`,
+ Description: `Removes Traefik Mesh shadow services from a Kubernetes cluster.`,
Configuration: cConfig,
Run: func(_ []string) error {
return cleanupCommand(cConfig)
@@ -31,7 +31,7 @@ func cleanupCommand(cConfig *cmd.CleanupConfiguration) error {
return fmt.Errorf("could not create logger: %w", err)
}
- logger.Debug("Starting maesh cleanup...")
+ logger.Debug("Starting cleanup...")
logger.Debugf("Using masterURL: %q", cConfig.MasterURL)
logger.Debugf("Using kubeconfig: %q", cConfig.KubeConfig)
diff --git a/cmd/configuration.go b/cmd/configuration.go
index b05a50270..7766b3c96 100644
--- a/cmd/configuration.go
+++ b/cmd/configuration.go
@@ -4,8 +4,8 @@ import (
"os"
)
-// MaeshConfiguration wraps the static configuration and extra parameters.
-type MaeshConfiguration struct {
+// TraefikMeshConfiguration wraps the static configuration and extra parameters.
+type TraefikMeshConfiguration struct {
ConfigFile string `description:"Configuration file to use. If specified all other flags are ignored." export:"true"`
KubeConfig string `description:"Path to a kubeconfig. Only required if out-of-cluster." export:"true"`
MasterURL string `description:"The address of the Kubernetes API server. Overrides any value in kubeconfig. Only required if out-of-cluster." export:"true"`
@@ -15,7 +15,7 @@ type MaeshConfiguration struct {
ACL bool `description:"Enable ACL mode." export:"true"`
SMI bool `description:"Enable SMI operation, deprecated, use --acl instead." export:"true"`
DefaultMode string `description:"Default mode for mesh services." export:"true"`
- Namespace string `description:"The namespace that maesh is installed in." export:"true"`
+ Namespace string `description:"The namespace that Traefik Mesh is installed in." export:"true"`
WatchNamespaces []string `description:"Namespaces to watch." export:"true"`
IgnoreNamespaces []string `description:"Namespaces to ignore." export:"true"`
APIPort int32 `description:"API port for the controller." export:"true"`
@@ -25,9 +25,9 @@ type MaeshConfiguration struct {
LimitUDPPort int32 `description:"Number of UDP ports allocated." export:"true"`
}
-// NewMaeshConfiguration creates a MaeshConfiguration with default values.
-func NewMaeshConfiguration() *MaeshConfiguration {
- return &MaeshConfiguration{
+// NewTraefikMeshConfiguration creates a TraefikMeshConfiguration with default values.
+func NewTraefikMeshConfiguration() *TraefikMeshConfiguration {
+ return &TraefikMeshConfiguration{
ConfigFile: "",
KubeConfig: os.Getenv("KUBECONFIG"),
LogLevel: "error",
@@ -53,7 +53,7 @@ type PrepareConfiguration struct {
LogLevel string `description:"The log level." export:"true"`
LogFormat string `description:"The log format." export:"true"`
Debug bool `description:"Debug mode, deprecated, use --loglevel=debug instead." export:"true"`
- Namespace string `description:"The namespace that maesh is installed in." export:"true"`
+ Namespace string `description:"The namespace that Traefik Mesh is installed in." export:"true"`
ClusterDomain string `description:"Your internal K8s cluster domain." export:"true"`
SMI bool `description:"Enable SMI operation, deprecated, use --acl instead." export:"true"`
ACL bool `description:"Enable ACL mode." export:"true"`
@@ -77,7 +77,7 @@ type CleanupConfiguration struct {
ConfigFile string `description:"Configuration file to use. If specified all other flags are ignored." export:"true"`
KubeConfig string `description:"Path to a kubeconfig. Only required if out-of-cluster." export:"true"`
MasterURL string `description:"The address of the Kubernetes API server. Overrides any value in kubeconfig. Only required if out-of-cluster." export:"true"`
- Namespace string `description:"The namespace that maesh is installed in." export:"true"`
+ Namespace string `description:"The namespace that Traefik Mesh is installed in." export:"true"`
LogLevel string `description:"The log level." export:"true"`
LogFormat string `description:"The log format." export:"true"`
}
diff --git a/cmd/loaders.go b/cmd/loaders.go
index a8747ae7d..f986df8e8 100644
--- a/cmd/loaders.go
+++ b/cmd/loaders.go
@@ -14,21 +14,39 @@ import (
"github.com/traefik/paerser/parser"
)
-const maeshPrefix = "MAESH_"
+const (
+ meshPrefix = "MESH_"
+ maeshPrefix = "MAESH_"
+ traefikMeshPrefix = "TRAEFIK_MESH_"
+)
-// EnvLoader loads a configuration from all the environment variables prefixed with "MAESH_".
+// EnvLoader loads a configuration from all the environment variables.
type EnvLoader struct{}
-// Load loads the command's configuration from the environment variables.
+// Load loads the command's configuration from the environment variables prefixed with "TRAEFIK_MESH_" or "MAESH_".
+// The "MAESH_" prefix is deprecated and will be removed in the next major release.
+// If "TRAEFIK_MESH_" and "MAESH_" env variables are mixed up an error is returned.
+// As it is not possible to have a prefix with multiple "_" everything is normalized to "MESH_" under the hood for the decoding.
func (e *EnvLoader) Load(_ []string, cmd *cli.Command) (bool, error) {
logger := logrus.StandardLogger()
- vars := env.FindPrefixedEnvVars(os.Environ(), maeshPrefix, cmd.Configuration)
+ traefikMeshVars := findAndNormalizePrefixedEnvVars(traefikMeshPrefix, cmd.Configuration)
+ maeshVars := findAndNormalizePrefixedEnvVars(maeshPrefix, cmd.Configuration)
+
+ if len(maeshVars) > 0 && len(traefikMeshVars) > 0 {
+ return false, fmt.Errorf("environment variable prefixed by %q cannot be mixed with variable prefixed by %q", maeshPrefix, traefikMeshPrefix)
+ }
+
+ vars := traefikMeshVars
+ if len(maeshVars) > 0 {
+ vars = maeshVars
+ }
+
if len(vars) == 0 {
return false, nil
}
- if err := env.Decode(vars, maeshPrefix, cmd.Configuration); err != nil {
+ if err := env.Decode(vars, meshPrefix, cmd.Configuration); err != nil {
logger.Debug("environment variables", strings.Join(vars, ", "))
return false, fmt.Errorf("failed to decode configuration from environment variables: %w ", err)
}
@@ -38,6 +56,16 @@ func (e *EnvLoader) Load(_ []string, cmd *cli.Command) (bool, error) {
return true, nil
}
+func findAndNormalizePrefixedEnvVars(prefix string, config interface{}) []string {
+ vars := env.FindPrefixedEnvVars(os.Environ(), prefix, config)
+
+ for _, v := range vars {
+ vars = append(vars, strings.Replace(v, prefix, meshPrefix, 1))
+ }
+
+ return vars
+}
+
// FileLoader loads a configuration from a file.
type FileLoader struct{}
@@ -72,9 +100,13 @@ func (f *FileLoader) Load(args []string, cmd *cli.Command) (bool, error) {
// loadConfigFiles tries to decode the given configuration file and all default locations for the configuration file.
// It stops as soon as decoding one of them is successful.
+// The default maesh locations are deprecated and will be removed in a future major release.
func loadConfigFiles(configFile string, element interface{}) (string, error) {
finder := cli.Finder{
- BasePaths: []string{"/etc/maesh/maesh", "$XDG_CONFIG_HOME/maesh", "$HOME/.config/maesh", "./maesh"},
+ BasePaths: []string{
+ "/etc/maesh/maesh", "$XDG_CONFIG_HOME/maesh", "$HOME/.config/maesh", "./maesh",
+ "/etc/traefik-mesh/traefik-mesh", "$XDG_CONFIG_HOME/traefik-mesh", "$HOME/.config/traefik-mesh", "./traefik-mesh",
+ },
Extensions: []string{"toml", "yaml", "yml"},
}
diff --git a/cmd/maesh/maesh.go b/cmd/mesh/mesh.go
similarity index 74%
rename from cmd/maesh/maesh.go
rename to cmd/mesh/mesh.go
index 1da6a10d1..68a6d1a47 100644
--- a/cmd/maesh/maesh.go
+++ b/cmd/mesh/mesh.go
@@ -9,14 +9,14 @@ import (
"sync"
"time"
- "github.com/containous/maesh/cmd"
- "github.com/containous/maesh/cmd/cleanup"
- "github.com/containous/maesh/cmd/prepare"
- "github.com/containous/maesh/cmd/version"
- "github.com/containous/maesh/pkg/api"
- "github.com/containous/maesh/pkg/controller"
- "github.com/containous/maesh/pkg/k8s"
"github.com/sirupsen/logrus"
+ "github.com/traefik/mesh/cmd"
+ "github.com/traefik/mesh/cmd/cleanup"
+ "github.com/traefik/mesh/cmd/prepare"
+ "github.com/traefik/mesh/cmd/version"
+ "github.com/traefik/mesh/pkg/api"
+ "github.com/traefik/mesh/pkg/controller"
+ "github.com/traefik/mesh/pkg/k8s"
"github.com/traefik/paerser/cli"
)
@@ -27,37 +27,37 @@ const (
)
func main() {
- maeshConfig := cmd.NewMaeshConfiguration()
- maeshLoaders := []cli.ResourceLoader{&cmd.FileLoader{}, &cli.FlagLoader{}, &cmd.EnvLoader{}}
-
- cmdMaesh := &cli.Command{
- Name: "maesh",
- Description: `maesh`,
- Configuration: maeshConfig,
- Resources: maeshLoaders,
+ traefikMeshConfig := cmd.NewTraefikMeshConfiguration()
+ traefikMeshLoaders := []cli.ResourceLoader{&cmd.FileLoader{}, &cli.FlagLoader{}, &cmd.EnvLoader{}}
+
+ cmdTraefikMesh := &cli.Command{
+ Name: "traefik-mesh",
+ Description: `traefik-mesh`,
+ Configuration: traefikMeshConfig,
+ Resources: traefikMeshLoaders,
Run: func(_ []string) error {
- return maeshCommand(maeshConfig)
+ return traefikMeshCommand(traefikMeshConfig)
},
}
prepareConfig := cmd.NewPrepareConfiguration()
- if err := cmdMaesh.AddCommand(prepare.NewCmd(prepareConfig, maeshLoaders)); err != nil {
+ if err := cmdTraefikMesh.AddCommand(prepare.NewCmd(prepareConfig, traefikMeshLoaders)); err != nil {
stdlog.Println(err)
os.Exit(1)
}
cleanupConfig := cmd.NewCleanupConfiguration()
- if err := cmdMaesh.AddCommand(cleanup.NewCmd(cleanupConfig, maeshLoaders)); err != nil {
+ if err := cmdTraefikMesh.AddCommand(cleanup.NewCmd(cleanupConfig, traefikMeshLoaders)); err != nil {
stdlog.Println(err)
os.Exit(1)
}
- if err := cmdMaesh.AddCommand(version.NewCmd()); err != nil {
+ if err := cmdTraefikMesh.AddCommand(version.NewCmd()); err != nil {
stdlog.Println(err)
os.Exit(1)
}
- if err := cli.Execute(cmdMaesh); err != nil {
+ if err := cli.Execute(cmdTraefikMesh); err != nil {
stdlog.Println(err)
os.Exit(1)
}
@@ -65,7 +65,7 @@ func main() {
os.Exit(0)
}
-func maeshCommand(config *cmd.MaeshConfiguration) error {
+func traefikMeshCommand(config *cmd.TraefikMeshConfiguration) error {
ctx := cmd.ContextWithSignal(context.Background())
log, err := cmd.NewLogger(config.LogFormat, config.LogLevel, config.Debug)
@@ -73,7 +73,7 @@ func maeshCommand(config *cmd.MaeshConfiguration) error {
return fmt.Errorf("could not create logger: %w", err)
}
- log.Debug("Starting maesh controller...")
+ log.Debug("Starting controller...")
log.Debugf("Using masterURL: %q", config.MasterURL)
log.Debugf("Using kubeconfig: %q", config.KubeConfig)
diff --git a/cmd/prepare/prepare.go b/cmd/prepare/prepare.go
index 57e0df5d6..63ae2d00b 100644
--- a/cmd/prepare/prepare.go
+++ b/cmd/prepare/prepare.go
@@ -4,9 +4,9 @@ import (
"context"
"fmt"
- "github.com/containous/maesh/cmd"
- "github.com/containous/maesh/pkg/dns"
- "github.com/containous/maesh/pkg/k8s"
+ "github.com/traefik/mesh/cmd"
+ "github.com/traefik/mesh/pkg/dns"
+ "github.com/traefik/mesh/pkg/k8s"
"github.com/traefik/paerser/cli"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
@@ -32,7 +32,7 @@ func prepareCommand(pConfig *cmd.PrepareConfiguration) error {
return fmt.Errorf("could not create logger: %w", err)
}
- log.Debug("Starting maesh prepare...")
+ log.Debug("Starting prepare...")
log.Debugf("Using masterURL: %q", pConfig.MasterURL)
log.Debugf("Using kubeconfig: %q", pConfig.KubeConfig)
diff --git a/cmd/version/version.go b/cmd/version/version.go
index e580a4ed0..8a545b7df 100644
--- a/cmd/version/version.go
+++ b/cmd/version/version.go
@@ -4,7 +4,7 @@ import (
"fmt"
"runtime"
- "github.com/containous/maesh/pkg/version"
+ "github.com/traefik/mesh/pkg/version"
"github.com/traefik/paerser/cli"
)
@@ -21,7 +21,7 @@ platform : %s/%s
func NewCmd() *cli.Command {
return &cli.Command{
Name: "version",
- Description: `Shows the current Maesh version.`,
+ Description: `Shows the current Traefik Mesh version.`,
Configuration: nil,
Run: func(_ []string) error {
printVersion()
diff --git a/docs/CNAME b/docs/CNAME
index fc6d2320d..8b1378917 100644
--- a/docs/CNAME
+++ b/docs/CNAME
@@ -1 +1 @@
-docs.mae.sh
+
diff --git a/docs/Makefile b/docs/Makefile
index 0c8da3829..72af8fce9 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -1,12 +1,12 @@
#######
-# This Makefile contains all targets related to the documentation
+# This Makefile contains all targets related to the documentation.
#######
DOCS_VERIFY_SKIP ?= false
DOCS_LINT_SKIP ?= false
-MAESH_DOCS_BUILD_IMAGE ?= maesh-docs
-MAESH_DOCS_CHECK_IMAGE ?= $(MAESH_DOCS_BUILD_IMAGE)-check
+TRAEFIK_MESH_DOCS_BUILD_IMAGE ?= traefik-mesh-docs
+TRAEFIK_MESH_DOCS_CHECK_IMAGE ?= $(TRAEFIK_MESH_DOCS_BUILD_IMAGE)-check
SITE_DIR := $(CURDIR)/site
@@ -19,28 +19,28 @@ docs: clean image lint build verify
# Writer Mode: build and serve docs on http://localhost:8000 with livereload
serve: image
- docker run $(DOCKER_RUN_DOC_OPTS) $(MAESH_DOCS_BUILD_IMAGE) mkdocs serve
+ docker run $(DOCKER_RUN_DOC_OPTS) $(TRAEFIK_MESH_DOCS_BUILD_IMAGE) mkdocs serve
# Utilities Targets for each step
image:
- docker build -t $(MAESH_DOCS_BUILD_IMAGE) -f docs.Dockerfile ./
+ docker build -t $(TRAEFIK_MESH_DOCS_BUILD_IMAGE) -f docs.Dockerfile ./
build: image
- docker run $(DOCKER_RUN_DOC_OPTS) $(MAESH_DOCS_BUILD_IMAGE) sh -c "mkdocs build \
+ docker run $(DOCKER_RUN_DOC_OPTS) $(TRAEFIK_MESH_DOCS_BUILD_IMAGE) sh -c "mkdocs build \
&& chown -R $(shell id -u):$(shell id -g) ./site"
verify: build
@if [ "$(DOCS_VERIFY_SKIP)" != "true" ]; then \
- docker build -t $(MAESH_DOCS_CHECK_IMAGE) -f check.Dockerfile ./; \
- docker run --rm -v $(CURDIR):/app $(MAESH_DOCS_CHECK_IMAGE) /verify.sh; \
+ docker build -t $(TRAEFIK_MESH_DOCS_CHECK_IMAGE) -f check.Dockerfile ./; \
+ docker run --rm -v $(CURDIR):/app $(TRAEFIK_MESH_DOCS_CHECK_IMAGE) /verify.sh; \
else \
echo "DOCS_VERIFY_SKIP is true: no verification done."; \
fi
lint:
@if [ "$(DOCS_LINT_SKIP)" != "true" ]; then \
- docker build -t $(MAESH_DOCS_CHECK_IMAGE) -f check.Dockerfile ./ && \
- docker run --rm -v $(CURDIR):/app $(MAESH_DOCS_CHECK_IMAGE) /lint.sh; \
+ docker build -t $(TRAEFIK_MESH_DOCS_CHECK_IMAGE) -f check.Dockerfile ./ && \
+ docker run --rm -v $(CURDIR):/app $(TRAEFIK_MESH_DOCS_CHECK_IMAGE) /lint.sh; \
else \
echo "DOCS_LINT_SKIP is true: no linting done."; \
fi
diff --git a/docs/content/api.md b/docs/content/api.md
index 682baf83d..117283526 100644
--- a/docs/content/api.md
+++ b/docs/content/api.md
@@ -1,7 +1,7 @@
# API
-Maesh includes a built-in API that can be used for debugging purposes.
-This can be useful when Maesh is not working as intended.
+Traefik Mesh includes a built-in API that can be used for debugging purposes.
+This can be useful when Traefik Mesh is not working as intended.
The API is accessed via the controller pod, and for security reasons is not exposed via service.
The API can be accessed by making a `GET` request to `http://:9000` combined with one of the following paths:
@@ -14,16 +14,16 @@ This endpoint provides raw json of the current configuration built by the contro
## `/api/status/nodes`
-This endpoint provides a json array containing some details about the readiness of the Maesh nodes visible by the controller
+This endpoint provides a json array containing some details about the readiness of the Traefik Mesh nodes visible by the controller.
This endpoint will still return a 200 if there are no visible nodes.
-## `/api/status/node/{maesh-pod-name}/configuration`
+## `/api/status/node/{traefik-mesh-pod-name}/configuration`
-This endpoint provides raw json of the current configuration on the Maesh node with the pod name given in `{maesh-pod-name}`.
+This endpoint provides raw json of the current configuration on the Traefik Mesh node with the pod name given in `{traefik-mesh-pod-name}`.
This endpoint provides a 404 response if the pod cannot be found, or other non-200 status codes on other errors.
If errors are encountered, the error will be returned in the body, and logged on the controller.
## `/api/status/readiness`
-This endpoint returns a 200 response if the controller successfully deployed a configuration to all Maesh nodes, and Maesh
-is ready for use. Otherwise, it will return a 500.
+This endpoint returns a 200 response if the controller has successfully started.
+Otherwise, it will return a 500.
diff --git a/docs/content/assets/img/after-maesh-graphic.png b/docs/content/assets/img/after-traefik-mesh-graphic.png
similarity index 100%
rename from docs/content/assets/img/after-maesh-graphic.png
rename to docs/content/assets/img/after-traefik-mesh-graphic.png
diff --git a/docs/content/assets/img/after-maesh-graphic.svg b/docs/content/assets/img/after-traefik-mesh-graphic.svg
similarity index 100%
rename from docs/content/assets/img/after-maesh-graphic.svg
rename to docs/content/assets/img/after-traefik-mesh-graphic.svg
diff --git a/docs/content/assets/img/before-maesh-graphic.png b/docs/content/assets/img/before-traefik-mesh-graphic.png
similarity index 100%
rename from docs/content/assets/img/before-maesh-graphic.png
rename to docs/content/assets/img/before-traefik-mesh-graphic.png
diff --git a/docs/content/assets/img/before-maesh-graphic.svg b/docs/content/assets/img/before-traefik-mesh-graphic.svg
similarity index 100%
rename from docs/content/assets/img/before-maesh-graphic.svg
rename to docs/content/assets/img/before-traefik-mesh-graphic.svg
diff --git a/docs/content/assets/img/maesh-logo.svg b/docs/content/assets/img/traefik-mesh-logo.svg
similarity index 100%
rename from docs/content/assets/img/maesh-logo.svg
rename to docs/content/assets/img/traefik-mesh-logo.svg
diff --git a/docs/content/assets/img/maesh.logo.horizontal.png b/docs/content/assets/img/traefik-mesh.logo.horizontal.png
similarity index 100%
rename from docs/content/assets/img/maesh.logo.horizontal.png
rename to docs/content/assets/img/traefik-mesh.logo.horizontal.png
diff --git a/docs/content/assets/img/maesh.png b/docs/content/assets/img/traefik-mesh.png
similarity index 100%
rename from docs/content/assets/img/maesh.png
rename to docs/content/assets/img/traefik-mesh.png
diff --git a/docs/content/compatibility.md b/docs/content/compatibility.md
index acaca0b5b..a4a1a39a9 100644
--- a/docs/content/compatibility.md
+++ b/docs/content/compatibility.md
@@ -1,18 +1,19 @@
# Compatibility
-Maesh supports [similiar to Kubernetes](https://kubernetes.io/docs/setup/release/version-skew-policy/#supported-versions) at least the latest 3 minor versions of Kubernetes, therefore currently:
+Traefik Mesh supports, [similar to Kubernetes](https://kubernetes.io/docs/setup/release/version-skew-policy/#supported-versions), at least the latest three minor versions of Kubernetes, therefore currently:
* 1.17
* 1.18
* 1.19
-General functionality can not be guaranted for versions older than that. However, we expect it to work with Kubernetes down to 1.11 currently.
+General functionality cannot be guaranted for versions older than that. However, we expect it to work with Kubernetes down to 1.11 currently.
## Compatibility by Features
-Some of Maesh's features are only supported on certain Kubernetes versions. Please see the table below.
+Some of Traefik Mesh's features are only supported on certain Kubernetes versions.
+Please see the table below.
- | Features | K8s 1.17 | K8s 1.18 | K8s 1.19 |
- |-----------------------|----------|----------|----------|
- | General functionality | ✔ | ✔ | ✔ |
- | Service Topology | ✔ | ✔ | ✔ |
+| Features | K8s 1.17 | K8s 1.18 | K8s 1.19 |
+|-----------------------|----------|----------|----------|
+| General functionality | ✔ | ✔ | ✔ |
+| Service Topology | ✔ | ✔ | ✔ |
diff --git a/docs/content/configuration.md b/docs/content/configuration.md
index 8e3c4faa2..b2146d58b 100644
--- a/docs/content/configuration.md
+++ b/docs/content/configuration.md
@@ -1,6 +1,6 @@
# Configuration
-The configuration for Maesh is broken down into two parts: the static configuration, and the dynamic configuration.
+The configuration for Traefik Mesh is broken down into two parts: the static configuration, and the dynamic configuration.
The static configuration is configured when the service mesh is installed and is configured via the `values.yaml` file in the Helm install.
## Static configuration
@@ -15,13 +15,13 @@ The static configuration is configured when the service mesh is installed and is
- Tracing can be enabled.
- Access-Control List (ACL) mode can be enabled.
- This configures Maesh to run in ACL mode, where all traffic is forbidden unless explicitly allowed via an SMI
+ This configures Traefik Mesh to run in ACL mode, where all traffic is forbidden unless explicitly allowed via an SMI
[TrafficTarget](https://github.com/servicemeshinterface/smi-spec/blob/master/apis/traffic-access/v1alpha2/traffic-access.md#traffictarget). Please see
the [SMI Specification](https://github.com/servicemeshinterface/smi-spec/blob/master/apis/traffic-access/v1alpha2/traffic-access.md) for more information.
## Dynamic configuration
-Dynamic configuration can be provided to Maesh using annotations on Kubernetes services and via SMI objects.
+Dynamic configuration can be provided to Traefik Mesh using annotations on Kubernetes services and via SMI objects.
| Features | ACL disabled | ACL enabled |
|-----------------------|--------------|-------------|
@@ -35,14 +35,14 @@ Dynamic configuration can be provided to Maesh using annotations on Kubernetes s
### Kubernetes Service Annotations
-Annotations on services give the ability to configure how Maesh interprets them.
+Annotations on services give the ability to configure how Traefik Mesh interprets them.
#### Traffic type
The traffic type can be configured by using the following annotation:
```yaml
-maesh.containo.us/traffic-type: "http"
+mesh.traefik.io/traffic-type: "http"
```
This annotation can be set to either `http`, `tcp` or `udp` and will specifies the mode for that service operation.
@@ -58,32 +58,32 @@ If this annotation is not present, the mesh service will operate in the default
The scheme used to define custom scheme for request:
```yaml
-maesh.containo.us/scheme: "h2c"
+mesh.traefik.io/scheme: "h2c"
```
-This annotation can be set to either `http`, `https` or `h2c` and is available for `maesh.containo.us/traffic-type: "http"`.
+This annotation can be set to either `http`, `https` or `h2c` and is available for `mesh.traefik.io/traffic-type: "http"`.
??? Note "Limitations"
Please keep in mind, that if you set the scheme to `https` your service needs to expose itself via HTTPS as there is no
- mTLS in Maesh.
+ mTLS in Traefik Mesh.
#### Retry
Retries can be enabled by using the following annotation:
```yaml
-maesh.containo.us/retry-attempts: "2"
+mesh.traefik.io/retry-attempts: "2"
```
-This annotation sets the number of retry attempts that Maesh will make if a network error occurs.
+This annotation sets the number of retry attempts that Traefik Mesh will make if a network error occurs.
Please note that this value is a string, and needs to be quoted.
#### Circuit breaker
-
+
Circuit breaker can be enabled by using the following annotation:
```yaml
-maesh.containo.us/circuit-breaker-expression: "Expression"
+mesh.traefik.io/circuit-breaker-expression: "Expression"
```
This annotation sets the expression for circuit breaking.
@@ -97,8 +97,8 @@ All configuration options are available [here](https://docs.traefik.io/v2.0/midd
Rate limiting can be enabled by using the following annotations:
```yaml
-maesh.containo.us/ratelimit-average: "100"
-maesh.containo.us/ratelimit-burst: "200"
+mesh.traefik.io/ratelimit-average: "100"
+mesh.traefik.io/ratelimit-burst: "200"
```
These annotation sets average and burst requests per second limit for the service.
@@ -170,7 +170,7 @@ spec:
In this example, we grant access to all pods running with the service account `client` under the namespace `client` to the HTTP route `api` specified by on the group `server-routes` on all pods running with the service account `server` under the namespace `server`.
-Any client running with the service account `client` under the `client` namespace accessing `server.server.maesh/api` is allowed to access the `/api` resource. Others will receive 404 answers from the Maesh node.
+Any client running with the service account `client` under the `client` namespace accessing `server.server.traefik.mesh/api` is allowed to access the `/api` resource. Others will receive 404 answers from the Traefik Mesh node.
More information can be found [in the SMI specification](https://github.com/servicemeshinterface/smi-spec/blob/master/apis/traffic-access/v1alpha2/traffic-access.md).
@@ -194,10 +194,10 @@ spec:
```
In this example, we define a traffic split for our server service between two versions of our server, v1 and v2.
-`server.server.maesh` directs 80% of the traffic to the server-v1 pods, and 20% of the traffic to the server-v2 pods.
+`server.server.traefik.mesh` directs 80% of the traffic to the server-v1 pods, and 20% of the traffic to the server-v2 pods.
More information can be found [in the SMI specification](https://github.com/servicemeshinterface/smi-spec/blob/master/apis/traffic-split/v1alpha3/traffic-split.md).
#### Traffic Metrics
-At the moment, Maesh does not implement the [Traffic Metrics specification](https://github.com/servicemeshinterface/smi-spec/blob/master/apis/traffic-metrics/traffic-metrics-WD.md).
+At the moment, Traefik Mesh does not implement the [Traffic Metrics specification](https://github.com/servicemeshinterface/smi-spec/blob/master/apis/traffic-metrics/traffic-metrics-WD.md).
diff --git a/docs/content/contributing/building-testing.md b/docs/content/contributing/building-testing.md
index bf4a79c7c..fea9cfe36 100644
--- a/docs/content/contributing/building-testing.md
+++ b/docs/content/contributing/building-testing.md
@@ -1,22 +1,22 @@
# Building and Testing
-So you want to build your own Maesh binary from the sources? Let's see how.
+So you want to build your own Traefik Mesh binary from the sources? Let's see how.
## Building
-To build Maesh from the sources you need either [Docker](https://github.com/docker/docker) and [make](https://www.gnu.org/software/make/manual/make.html),
+To build Traefik Mesh from the sources you need either [Docker](https://github.com/docker/docker) and [make](https://www.gnu.org/software/make/manual/make.html),
or [Go](https://github.com/golang/go).
### With `Docker` and `make`
-Maesh can be built from the sources by using the `make` command. This will create a binary for the Linux platform in
-the `dist` directory and a Docker image:
+Traefik Mesh can be built from the sources by using the `make` command.
+This will create a binary for the Linux platform in the `dist` directory and a Docker image:
```bash
$ make
#[...]
-Successfully tagged containous/maesh:latest
-docker run --name=build -t "containous/maesh:latest" version
+Successfully tagged traefik/mesh:latest
+docker run --name=build -t "traefik/mesh:latest" version
version:
version : b417901
commit : b417901
@@ -27,7 +27,7 @@ version:
#[...]
$ ls dist/
-maesh
+traefik-mesh
```
!!! Note
@@ -40,12 +40,12 @@ Requirements:
- `Go` v1.14+
- Environment variable `GO111MODULE=on`
-One your Go environment is set up, you can build Maesh from the sources by using the `go build` command. The Go compiler
-will build an executable for your platform.
+One your Go environment is set up, you can build Traefik Mesh from the sources by using the `go build` command.
+The Go compiler will build an executable for your platform.
```bash
-$ go build -o dist/maesh cmd/maesh/*.go
-$ ./dist/maesh version
+$ go build -o dist/traefik-mesh cmd/mesh/mesh.go
+$ ./dist/traefik-mesh version
version:
version : dev
commit : I don't remember exactly
@@ -63,18 +63,18 @@ Run unit tests by using the `test` target:
```bash
$ make test
-docker build --tag "containous/maesh:test" --target maker --build-arg="MAKE_TARGET=local-test" /home/user/maesh/
+docker build --tag "traefik/mesh:test" --target maker --build-arg="MAKE_TARGET=local-test" /home/user/traefik-mesh/
#[...]
--- PASS: TestBuildConfiguration (0.00s)
--- PASS: TestBuildConfiguration/simple_configuration_build_with_HTTP_service (0.20s)
PASS
coverage: 69.7% of statements
-ok github.com/containous/maesh/pkg/providers/smi 1.982s coverage: 69.7% of statements
-? github.com/containous/maesh/pkg/signals [no test files]
+ok github.com/traefik/mesh/pkg/providers/smi 1.982s coverage: 69.7% of statements
+? github.com/traefik/mesh/pkg/signals [no test files]
Removing intermediate container 4e887c16ddee
---> 75d44229a46e
Successfully built 75d44229a46e
-Successfully tagged containous/maesh:test
+Successfully tagged traefik/mesh:test
```
Run the integration tests by using the `test-integration` target. For development purposes, you can specify which tests
@@ -117,8 +117,8 @@ time="2020-04-09T16:09:16+04:00" level=debug msg="Found trafficsplits for servic
--- PASS: TestBuildConfiguration (0.00s)
--- PASS: TestBuildConfiguration/simple_configuration_build_with_HTTP_service (0.21s)
PASS
-ok github.com/containous/maesh/pkg/providers/smi 3.634s
-? github.com/containous/maesh/pkg/signals [no test files]
+ok github.com/traefik/mesh/pkg/providers/smi 3.634s
+? github.com/traefik/mesh/pkg/signals [no test files]
```
Run the integration tests in the `integration` directory by using the `go test ./integration -integration` command:
@@ -129,9 +129,9 @@ $ go test -v ./integration -integration -check.f HelmSuite
OK: 2 passed
--- PASS: Test (161.20s)
PASS
-ok github.com/containous/maesh/integration 162.695s
+ok github.com/traefik/mesh/integration 162.695s
```
!!! Important
- Before running the integration tests, build the Maesh Docker image. Check out the [Building](#building) section for
- more details.
+ Before running the integration tests, build the Traefik Mesh Docker image.
+ Check out the [Building](#building) section for more details.
diff --git a/docs/content/contributing/documentation.md b/docs/content/contributing/documentation.md
index 94e46895f..9e245a151 100644
--- a/docs/content/contributing/documentation.md
+++ b/docs/content/contributing/documentation.md
@@ -13,9 +13,9 @@ You can build the documentation and test it locally (with live reloading), using
```bash
$ make serve
-docker build -t maesh-docs -f docs.Dockerfile ./
+docker build -t traefik-mesh-docs -f docs.Dockerfile ./
# […]
-docker run --rm -v /Users/kevinpollet/Documents/Dev/maesh/docs:/mkdocs -p 8000:8000 maesh-docs mkdocs serve
+docker run --rm -v /home/user/traefik-mesh/docs:/mkdocs -p 8000:8000 traefik-mesh-docs mkdocs serve
# […]
INFO - Building documentation...
INFO - Cleaning site directory
@@ -66,9 +66,9 @@ If you've made changes to the documentation, it's safer to clean it before verif
```bash
$ make clean verify
-docker build -t maesh-docs -f docs.Dockerfile ./
+docker build -t traefik-mesh-docs -f docs.Dockerfile ./
# […]
-docker run --rm -v /Users/kevinpollet/Documents/Dev/maesh/docs:/mkdocs -p 8000:8000 maesh-docs sh -c "mkdocs build && chown -R 501:20 ./site"
+docker run --rm -v /home/user/traefik-mesh/docs:/mkdocs -p 8000:8000 traefik-mesh-docs sh -c "mkdocs build && chown -R 501:20 ./site"
=== Checking HTML content...
# […]
```
diff --git a/docs/content/contributing/submitting-issues.md b/docs/content/contributing/submitting-issues.md
index dd6bfdb3c..9b53dda20 100644
--- a/docs/content/contributing/submitting-issues.md
+++ b/docs/content/contributing/submitting-issues.md
@@ -1,13 +1,13 @@
# Submitting Issues
-We use the [GitHub issue tracker](https://github.com/containous/maesh/issues) to keep track of Maesh issues.
+We use the [GitHub issue tracker](https://github.com/traefik/mesh/issues) to keep track of Traefik Mesh issues.
The process of sorting and checking the issues requires a lot of work. To save us some time and get quicker feedback,
be sure to follow the guidelines below.
!!! Important "Getting Help"
- The issue tracker is not a general support forum, but a place to report bugs and asks for new features. For end-user
- related support questions, use the [Maesh community forum](https://community.containo.us/c/maesh/15).
+ The issue tracker is not a general support forum, but a place to report bugs and asks for new features.
+ For end-user related support questions, use the [Traefik Mesh community forum](https://community.containo.us/c/maesh).
## Issue Title
@@ -15,7 +15,7 @@ The title must be short and descriptive. (~60 characters)
## Description
-Follow the [issue template](https://github.com/containous/maesh/blob/master/.github/ISSUE_TEMPLATE/) as much as possible.
+Follow the [issue template](https://github.com/traefik/mesh/blob/master/.github/ISSUE_TEMPLATE/) as much as possible.
Explain in which context you encountered the issue.
@@ -28,9 +28,9 @@ what matters, and help them understand the structure of your message (see the [G
Remember, when asking for new features, they must be useful to the majority (and not only useful in edge case scenarios, or hack-like setups).
-Do your best to explain what you're looking for, and why it would improve Maesh for everyone.
+Do your best to explain what you're looking for, and why it would improve Traefik Mesh for everyone.
## International English
-Maesh maintainers/users are not all native English speakers, so if you sometimes feel that some messages sound rude,
+Traefik Mesh maintainers/users are not all native English speakers, so if you sometimes feel that some messages sound rude,
remember that it's probably a language barrier problem from someone willing to help you.
diff --git a/docs/content/contributing/submitting-pull-requests.md b/docs/content/contributing/submitting-pull-requests.md
index fbad1a89b..fc30f02a3 100644
--- a/docs/content/contributing/submitting-pull-requests.md
+++ b/docs/content/contributing/submitting-pull-requests.md
@@ -1,6 +1,6 @@
# Submitting Pull Requests
-So you've decided to improve Maesh? Thank You! Now the last step is to submit your Pull Request in a way that makes sure
+So you've decided to improve Traefik Mesh? Thank You! Now the last step is to submit your Pull Request in a way that makes sure
it gets the attention it deserves.
Let's go through the classic pitfalls to make sure everything is right.
@@ -11,7 +11,7 @@ The title must be short and descriptive. (~60 characters)
## Description
-Follow the [pull request template](https://github.com/containous/maesh/blob/master/.github/PULL_REQUEST_TEMPLATE.md)
+Follow the [pull request template](https://github.com/traefik/mesh/blob/master/.github/PULL_REQUEST_TEMPLATE.md)
as much as possible.
Explain the conditions which led you to write this PR: give us context. The context should lead to something, an idea or
diff --git a/docs/content/contributing/thank-you.md b/docs/content/contributing/thank-you.md
index 4f0441295..fe25ab4d0 100644
--- a/docs/content/contributing/thank-you.md
+++ b/docs/content/contributing/thank-you.md
@@ -1,6 +1,6 @@
# Thank You!
-Maesh is an [open-source project](https://github.com/containous/maesh/), your feedback and contributions are needed and
+Traefik Mesh is an [open-source project](https://github.com/traefik/mesh/), your feedback and contributions are needed and
always welcome!
!!! Question "Where to Go Next?"
@@ -10,7 +10,7 @@ always welcome!
read the page [Submitting Issues](./submitting-issues.md).
- Discover how to make an efficient contribution,
read the page [Submitting Pull Requests](./submitting-pull-requests.md).
- - Learn how to build and test Maesh,
+ - Learn how to build and test Traefik Mesh,
the page [Building and Testing](./building-testing.md) is for you.
- Contribute to the documentation,
read the related page [Documentation](./documentation.md).
diff --git a/docs/content/examples.md b/docs/content/examples.md
index e42d523b4..8016d37c7 100644
--- a/docs/content/examples.md
+++ b/docs/content/examples.md
@@ -1,9 +1,9 @@
# Examples
-Here are some examples on how to easily deploy Maesh on your cluster.
+Here are some examples on how to easily deploy Traefik Mesh on your cluster.
??? Note "Prerequisites"
- Before following those examples, make sure your cluster follows [the prerequisites for deploying Maesh](quickstart.md#prerequisites).
+ Before following those examples, make sure your cluster follows [the prerequisites for deploying Traefik Mesh](quickstart.md#prerequisites).
## Simple Example
@@ -50,7 +50,7 @@ spec:
serviceAccount: whoami-server
containers:
- name: whoami
- image: containous/whoami:v1.4.0
+ image: traefik/whoami:latest
imagePullPolicy: IfNotPresent
---
@@ -72,7 +72,7 @@ spec:
serviceAccount: whoami-server
containers:
- name: whoami-tcp
- image: containous/whoamitcp:latest
+ image: traefik/whoamitcp:latest
imagePullPolicy: IfNotPresent
---
@@ -174,13 +174,13 @@ my data
Received: my data
```
-You can now install Maesh [by following this documentation](install.md) on your cluster.
+You can now install Traefik Mesh [by following this documentation](install.md) on your cluster.
-Since Maesh is not intrusive, it has to be explicitly given access to services before it can be used. You can ensure that the HTTP endpoint of your service does not pass through Maesh since no `X-Forwarded-For` header should be added.
+Since Traefik Mesh is not intrusive, it has to be explicitly given access to services before it can be used. You can ensure that the HTTP endpoint of your service does not pass through Traefik Mesh since no `X-Forwarded-For` header should be added.
-Now, in order to configure Maesh for your `whoami` service, you just need to update the `whoami` service specs, in order to add the appropriate annotations.
+Now, in order to configure Traefik Mesh for your `whoami` service, you just need to update the `whoami` service specs, in order to add the appropriate annotations.
-The HTTP service needs to have `maesh.containo.us/traffic-type: "http"` and the TCP service, `maesh.containo.us/traffic-type: "tcp"`.
+The HTTP service needs to have `mesh.traefik.io/traffic-type: "http"` and the TCP service, `mesh.traefik.io/traffic-type: "tcp"`.
```yaml
---
@@ -191,10 +191,9 @@ metadata:
namespace: whoami
labels:
app: whoami
- # These annotations enable Maesh for this service:
annotations:
- maesh.containo.us/traffic-type: "http"
- maesh.containo.us/retry-attempts: "2"
+ mesh.traefik.io/traffic-type: "http"
+ mesh.traefik.io/retry-attempts: "2"
spec:
type: ClusterIP
ports:
@@ -211,9 +210,8 @@ metadata:
namespace: whoami
labels:
app: whoami-tcp
- # These annotations enable Maesh for this service:
annotations:
- maesh.containo.us/traffic-type: "tcp"
+ mesh.traefik.io/traffic-type: "tcp"
spec:
type: ClusterIP
ports:
@@ -223,10 +221,10 @@ spec:
app: whoami-tcp
```
-You should now be able to access your HTTP and TCP services through the Maesh endpoint:
+You should now be able to access your HTTP and TCP services through the Traefik Mesh endpoint:
```bash tab="Command"
-kubectl -n whoami exec whoami-client -- curl -s whoami.whoami.maesh
+kubectl -n whoami exec whoami-client -- curl -s whoami.whoami.traefik.mesh
```
```text tab="Expected Output"
@@ -235,7 +233,7 @@ IP: 127.0.0.1
IP: 5.6.7.8
RemoteAddr: 1.2.3.4:12345
GET / HTTP/1.1
-Host: whoami.whoami.maesh
+Host: whoami.whoami.traefik.mesh
User-Agent: curl/7.64.0
Accept: */*
X-Forwarded-For: 3.4.5.6
@@ -243,12 +241,12 @@ X-Forwarded-For: 3.4.5.6
## ACL Example
-The [ACL mode](install.md#access-control-list) can be enabled when installing Maesh. Once activated, all traffic is forbidden unless explicitly authorized
-using the SMI [TrafficTarget](https://github.com/servicemeshinterface/smi-spec/blob/master/apis/traffic-access/v1alpha2/traffic-access.md#traffictarget) resource. This example will present the configuration required to allow the client
-pod to send traffic to the HTTP and TCP services defined in the previous example.
+The [ACL mode](install.md#access-control-list) can be enabled when installing Traefik Mesh.
+Once activated, all traffic is forbidden unless explicitly authorized using the SMI [TrafficTarget](https://github.com/servicemeshinterface/smi-spec/blob/master/apis/traffic-access/v1alpha2/traffic-access.md#traffictarget) resource.
+This example will present the configuration required to allow the client pod to send traffic to the HTTP and TCP services defined in the previous example.
-Each `TrafficTarget` defines that a set of source `ServiceAccount` is capable of sending traffic to a destination `ServiceAccount`. To authorize the `whoami-client` pod to send traffic to `whoami.whoami.maesh`, we need to
-explicitly allow it to hit the pods exposed by the `whoami` service.
+Each `TrafficTarget` defines that a set of source `ServiceAccount` is capable of sending traffic to a destination `ServiceAccount`.
+To authorize the `whoami-client` pod to send traffic to `whoami.whoami.traefik.mesh`, we need to explicitly allow it to hit the pods exposed by the `whoami` service.
```yaml
---
diff --git a/docs/content/index.md b/docs/content/index.md
index fcd1434e7..6a9b1fefb 100644
--- a/docs/content/index.md
+++ b/docs/content/index.md
@@ -1,14 +1,14 @@
-# Maesh: Simpler Service Mesh
+# Traefik Mesh: Simpler Service Mesh
-
+
-Maesh is a lightweight and simpler service mesh designed from the ground up to be straightforward, easy to install and easy to use.
+Traefik Mesh is a lightweight and simpler service mesh designed from the ground up to be straightforward, easy to install and easy to use.
-Built on top of Traefik, Maesh fits as your de-facto service mesh in your Kubernetes cluster supporting the latest Service Mesh Interface specification (SMI).
+Built on top of Traefik, Traefik Mesh fits as your de-facto service mesh in your Kubernetes cluster supporting the latest Service Mesh Interface specification (SMI).
-Moreover, Maesh is opt-in by default, which means that your existing services are unaffected until you decide to add them to the mesh.
+Moreover, Traefik Mesh is opt-in by default, which means that your existing services are unaffected until you decide to add them to the mesh.
@@ -16,15 +16,15 @@ Moreover, Maesh is opt-in by default, which means that your existing services ar
## Non-Invasive Service Mesh
-Maesh does not use any sidecar container but handles routing through proxy endpoints running on each node.
+Traefik Mesh does not use any sidecar container but handles routing through proxy endpoints running on each node.
The mesh controller runs in a dedicated pod and handles all the configuration parsing and deployment to the proxy nodes.
-Maesh supports multiple configuration options: annotations on user service objects, and SMI objects.
-Not using sidecars means that Maesh does not modify your Kubernetes objects and does not modify your traffic without your knowledge.
-Using the Maesh endpoints is all that is required.
+Traefik Mesh supports multiple configuration options: annotations on user service objects, and SMI objects.
+Not using sidecars means that Traefik Mesh does not modify your Kubernetes objects and does not modify your traffic without your knowledge.
+Using the Traefik Mesh endpoints is all that is required.
-
-
+
+
## Prerequisites
diff --git a/docs/content/install.md b/docs/content/install.md
index f5d11d02c..d9fd92d6c 100644
--- a/docs/content/install.md
+++ b/docs/content/install.md
@@ -1,23 +1,23 @@
# Installation
-To install Maesh, the installation method is quite simple:
+To install Traefik Mesh, the installation method is quite simple:
```bash
-helm repo add maesh https://containous.github.io/maesh/charts
+helm repo add traefik-mesh https://traefik.github.io/mesh/charts
helm repo update
```
-Install Maesh Helm Chart:
+Install Traefik Mesh Helm Chart:
```bash
-helm install maesh maesh/maesh
+helm install traefik-mesh traefik-mesh/traefik-mesh
```
## Install from source
!!! Note "Supported Installations"
Please be aware that the supported installation method is via Helm, using official releases.
- If you want to build/install/run Maesh from source, we may not be able to provide support.
+ If you want to build/install/run Traefik Mesh from source, we may not be able to provide support.
Installing from source is intended for development/contributing.
To build the image locally, run:
@@ -33,40 +33,39 @@ You will then be able to use the tagged image as your image in your `values.yaml
To deploy the Helm Chart, run:
```shell
-helm install maesh helm/chart/maesh --set controller.image.pullPolicy=IfNotPresent --set controller.image.tag=latest
+helm install traefik-mesh helm/chart/mesh --set controller.image.pullPolicy=IfNotPresent --set controller.image.tag=latest
```
## KubeDNS support
-Maesh supports KubeDNS:
+Traefik Mesh supports KubeDNS:
```bash
-helm install maesh maesh/maesh --set kubedns=true
+helm install traefik-mesh traefik-mesh/traefik-mesh --set kubedns=true
```
-With the `kubedns` parameter Maesh will install CoreDNS and patch KubeDNS to use it as a [stubDomain](https://v1-17.docs.kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/#example-stub-domain).
+With the `kubedns` parameter Traefik Mesh will install CoreDNS and patch KubeDNS to use it as a [stubDomain](https://v1-17.docs.kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/#example-stub-domain).
## Custom cluster domain
If you use a cluster domain other than `cluster.local` set it by using the `clusterDomain` parameter:
```bash
-helm install maesh maesh/maesh --set clusterDomain=my.custom.domain.com
+helm install traefik-mesh traefik-mesh/traefik-mesh --set clusterDomain=my.custom.domain.com
```
## Access Control List
-By default, Maesh does not restrict traffic between pods and services. However, some scenarios require more control
-over the rules for internal communication. The Access Control List mode (ACL) requires a set of rules to explicitly allow
-traffic between different resources.
+By default, Traefik Mesh does not restrict traffic between pods and services. However, some scenarios require more control over the rules for internal communication.
+The Access Control List mode (ACL) requires a set of rules to explicitly allow traffic between different resources.
-To enable ACL, install Maesh in ACL mode by setting the `acl` Helm Chart option to `true`.
+To enable ACL, install Traefik Mesh in ACL mode by setting the `acl` Helm Chart option to `true`.
```bash
-helm install maesh --namespace=maesh maesh/maesh --set acl=true
+helm install traefik-mesh --namespace=traefik-mesh traefik-mesh/traefik-mesh --set acl=true
```
-Maesh supports the [SMI specification](https://smi-spec.io/) which defines a set of custom resources
+Traefik Mesh supports the [SMI specification](https://smi-spec.io/) which defines a set of custom resources
to provide a fine-grained control over instrumentation, routing and access control of east-west communications.
!!! Note "CRDs"
@@ -77,45 +76,45 @@ to provide a fine-grained control over instrumentation, routing and access contr
## Platform recommendations
-Maesh works on Kubernetes environments that conforms to the global Kubernetes specification.
+Traefik Mesh works on Kubernetes environments that conforms to the global Kubernetes specification.
That being said, we have had users encounter issues when using variants such as minikube, microk8s,
and other development distributions.
-Maesh runs without issue on most public clouds (AWS, GKE, Azure, DigitalOcean, and more).
-If you want to run Maesh in development, we would recommend using [k3s](https://k3s.io/), as it is fully conformant.
-We use k3s in Maesh's integration tests, so you can be sure that it works properly.
+Traefik Mesh runs without issue on most public clouds (AWS, GKE, Azure, DigitalOcean, and more).
+If you want to run Traefik Mesh in development, we would recommend using [k3s](https://k3s.io/), as it is fully conformant.
+We use k3s in Traefik Mesh's integration tests, so you can be sure that it works properly.
If you encounter issues on variants such as minikube or microk8s, please try and reproduce the issue on k3s.
If you are unable to reproduce, it may be an issue with the distribution behaving differently than official Kubernetes.
## Verify your installation
-You can check that Maesh has been installed properly by running the following command:
+You can check that Traefik Mesh has been installed properly by running the following command:
```bash tab="Command"
-kubectl get all -n maesh
+kubectl get all -n traefik-mesh
```
```text tab="Expected Output"
-NAME READY STATUS RESTARTS AGE
-pod/maesh-controller-676fb86b89-pj8ph 1/1 Running 0 11s
-pod/maesh-mesh-w62z5 1/1 Running 0 11s
-pod/maesh-mesh-zjlpf 1/1 Running 0 11s
+NAME READY STATUS RESTARTS AGE
+pod/traefik-mesh-controller-676fb86b89-pj8ph 1/1 Running 0 11s
+pod/traefik-mesh-proxy-w62z5 1/1 Running 0 11s
+pod/traefik-mesh-proxy-zjlpf 1/1 Running 0 11s
-NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
-daemonset.apps/maesh-mesh 2 2 0 2 0 29s
+NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
+daemonset.apps/traefik-mesh-proxy 2 2 0 2 0 29s
-NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
-deployment.apps/maesh-controller 1 1 1 0 28s
+NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
+deployment.apps/traefik-mesh-controller 1 1 1 0 28s
-NAME DESIRED CURRENT READY AGE
-replicaset.apps/maesh-controller-676fb86b89 1 1 0 28s
+NAME DESIRED CURRENT READY AGE
+replicaset.apps/traefik-mesh-controller-676fb86b89 1 1 0 28s
```
## Usage
-To use Maesh, instead of referencing services via their normal `.`, instead use `..maesh`.
-This will access the Maesh service mesh, and will allow you to route requests through Maesh.
+To use Traefik Mesh, instead of referencing services via their normal `.`, instead use `..traefik.mesh`.
+This will access the Traefik Mesh service mesh, and will allow you to route requests through Traefik Mesh.
-By default, Maesh is opt-in, meaning you have to use the Maesh service names to access the mesh, so you can have some services running through the mesh, and some services not.
+By default, Traefik Mesh is opt-in, meaning you have to use the Traefik Mesh service names to access the mesh, so you can have some services running through the mesh, and some services not.
diff --git a/docs/content/migration/helm-chart.md b/docs/content/migration/helm-chart.md
index bd82fda3e..7403b3d27 100644
--- a/docs/content/migration/helm-chart.md
+++ b/docs/content/migration/helm-chart.md
@@ -5,44 +5,52 @@ Helm Chart
## v2.1 to v3.0
+### Traefik Mesh renaming
+
+All existing resources have been renamed and prefixed by `traefik-mesh`.
+For example, the `maesh-controller`resource has been renamed to `traefik-mesh-controller`.
+
+### Mesh Property Name
+
+Inside the Traefik Mesh helm chart, the `mesh` property has been renamed to `proxy`.
+
### Image version
-Since version `v1.4`, Maesh uses plain [Traefik](https://github.com/containous/traefik/) Docker image for mesh proxies.
-Therefore, to change the image version used for the controller, or the mesh proxies you should use the `controller.image`
-and `mesh.image` options.
+Since version `v1.4`, Traefik Mesh uses plain [Traefik](https://github.com/traefik/traefik/) Docker image for proxies.
+Therefore, to change the image version used for the controller, or the proxies you should use the `controller.image` and `proxy.image` options.
+
+### Default Mode
+
+The `mesh.defaultMode` option has been removed.
+You should use the new `defaultMode` option to configure the default traffic mode.
## v2.0 to v2.1
### Default Mode
The `mesh.defaultMode` option has been deprecated and will be removed in a future major release.
-You should use the new `defaultMode` option to configure the default traffic mode for Maesh services.
+You should use the new `defaultMode` option to configure the default traffic mode.
### Prometheus and Grafana services
-Prior to version `v2.1`, when the Metrics chart is deployed, Prometheus and Grafana services are exposed by default through
-a `NodePort`. For security reasons, those services are not exposed by default anymore. To expose them you should use the
-new `prometheus.service` and `grafana.service` options, more details in the corresponding [values.yaml](https://github.com/containous/maesh/blob/e59b861ac91261b950663410a6223a02fc7e2290/helm/chart/maesh/charts/metrics/values.yaml).
+Prior to version `v2.1`, when the Metrics chart is deployed, Prometheus and Grafana services are exposed by default through a `NodePort`.
+For security reasons, those services are not exposed by default anymore.
+To expose them you should use the new `prometheus.service` and `grafana.service` options, more details in the corresponding [values.yaml](https://github.com/traefik/mesh/blob/e59b861ac91261b950663410a6223a02fc7e2290/helm/chart/maesh/charts/metrics/values.yaml).
## v1.x to v2.0
-### Default Mode
-
-The `mesh.defaultMode` option has been removed. You should use the new `defaultMode` option to configure the default traffic
-mode for Maesh services.
-
### Image version
-Since version `v1.2`, Maesh uses [Traefik](https://github.com/containous/traefik/) as a library and does not rely on its
-Docker image anymore. Therefore, the `controller.image` and `mesh.image` options have been removed. You should use the
-new `image` option as described in the [documentation](../install.md#deploy-helm-chart).
+Since version `v1.2`, [Traefik](https://github.com/traefik/traefik/) is used as a library.
+Therefore, the `controller.image` and `mesh.image` options have been removed.
+You should use the new `image` option as described in the [documentation](../install.md#deploy-helm-chart).
### Log Level
-The `controller.logging.debug` and `mesh.logging` options have been removed. You should use the new `controller.logLevel`
-and `mesh.logLevel` options to configure the logging level for the controller and proxies.
+The `controller.logging.debug` and `mesh.logging` options have been removed.
+You should use the new `controller.logLevel` and `mesh.logLevel` options to configure the logging level for the controller and proxies.
### SMI Mode
-The `smi.enable` option has been deprecated and removed. You should use the new and backward compatible ACL mode
-option as described in the [documentation](../install.md#access-control-list).
+The `smi.enable` option has been deprecated and removed.
+You should use the new and backward compatible ACL mode option as described in the [documentation](../install.md#access-control-list).
diff --git a/docs/content/migration/maesh-v1.md b/docs/content/migration/maesh-v1.md
deleted file mode 100644
index d6db975ec..000000000
--- a/docs/content/migration/maesh-v1.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# Minor Migrations
-
-Maesh v1
-{: .subtitle }
-
-## v1.1 to v1.2
-
-### Debug
-
-The `--debug` CLI flag is deprecated and will be removed in a future major release. Instead, you should use the new
-`--logLevel` flag with `debug` as value.
-
-### SMI Mode
-
-The `--smi` CLI flag is deprecated and will be removed in a future major release. Instead, you should use the new and
-backward compatible `--acl` flag.
diff --git a/docs/content/migration/traefik-mesh-v1.md b/docs/content/migration/traefik-mesh-v1.md
new file mode 100644
index 000000000..e3cf7223e
--- /dev/null
+++ b/docs/content/migration/traefik-mesh-v1.md
@@ -0,0 +1,55 @@
+# Minor Migrations
+
+Traefik Mesh v1
+{: .subtitle }
+
+## Traefik Mesh v1.4
+
+Maesh has been renamed to Traefik Mesh in an effort to rename all of our products and make them look closer.
+Through this renaming process, a couple of things changed which might be worth mentioning for a migration process.
+All areas that changed are mentioned below with the appropriate actions needed to do.
+
+Everything called Maesh references to `v1.3`, while Traefik Mesh refers to `v1.4`.
+
+### Environment Variable Prefix
+
+Prior to Traefik Mesh, environment variables were prefixed with `MAESH_`.
+Now they're prefixed with `TRAEFIK_MESH_` and the `MAESH_` prefix is deprecated.
+You need to decide on either using `MAESH_` or `TRAEFIK_MESH_` as mixing both will result in an error.
+
+### Configuration File Name
+
+The default configuration file name is changed from `maesh` to `traefik-mesh` as well.
+
+### DNS Name
+
+The well known internal DNS name, to opt in into the usage of Maesh was `.maesh`.
+Now, with the rebranding process this has been changed to `traefik.mesh` and thus, you now need to use the DNS name of `servicename.servicenamespace.traefik.maesh` to opt-in into the usage of Traefik Mesh.
+The old name `.maesh`, is deprecated and will be removed eventually.
+
+### Docker Image Name
+
+As part of the process, the docker-image has been moved from `containous/maesh` to `traefik/mesh`.
+The old image will not be updated anymore and `traefik/mesh` starts with `v1.4.0`.
+
+### Binary
+
+The new binary name is `traefik-mesh`, rather than `maesh` before.
+However, as Traefik Mesh is running inside k8s this change should not be critical as it's hidden by the docker-image name.
+
+### Annotations
+
+As part of the rebranding process, the annotation prefix has changed.
+The annotation prefix `maesh.containo.us/` has been deprecated in favour of `mesh.traefik.io`.
+
+## v1.1 to v1.2
+
+### Debug
+
+The `--debug` CLI flag is deprecated and will be removed in a future major release.
+Instead, you should use the new `--logLevel` flag with `debug` as value.
+
+### SMI Mode
+
+The `--smi` CLI flag is deprecated and will be removed in a future major release.
+Instead, you should use the new and backward compatible `--acl` flag.
diff --git a/docs/content/quickstart.md b/docs/content/quickstart.md
index e55b3f0d0..ffb918277 100644
--- a/docs/content/quickstart.md
+++ b/docs/content/quickstart.md
@@ -1,6 +1,6 @@
# Quickstart
-Maesh can be installed in your cluster without affecting any running services.
+Traefik Mesh can be installed in your cluster without affecting any running services.
It can safely be installed using the [Helm Chart](https://helm.sh/docs/intro/using_helm/#helm-install-installing-a-package).
## Prerequisites
@@ -11,15 +11,12 @@ It can safely be installed using the [Helm Chart](https://helm.sh/docs/intro/usi
### RBAC
-Depending on the tool you used to deploy your cluster you might need
-to tweak RBAC permissions.
+Depending on the tool you used to deploy your cluster you might need to tweak RBAC permissions.
#### `kubeadm`
-If you used `kubeadm` to deploy your cluster, a fast way to allow the
-helm installation to perform all steps it needs is to edit the
-`cluster-admin` `ClusterRoleBinding`, adding the following to the
-`subjects` section:
+If you used `kubeadm` to deploy your cluster, a fast way to allow the helm installation to perform all steps it needs is to edit the
+`cluster-admin` `ClusterRoleBinding`, adding the following to the `subjects` section:
```yaml
- kind: ServiceAccount
@@ -27,31 +24,31 @@ helm installation to perform all steps it needs is to edit the
namespace: kube-system
```
-## Installing Maesh
+## Installing Traefik Mesh
```bash tab="Command"
-helm repo add maesh https://containous.github.io/maesh/charts
+helm repo add traefik-mesh https://traefik.github.io/mesh/charts
helm repo update
-helm install maesh maesh/maesh
+helm install traefik-mesh traefik-mesh/traefik-mesh
```
```bash tab="Expected output"
[...]
NOTES:
-Thank you for installing maesh.
+Thank you for installing traefik-mesh.
-Your release is named maesh.
+Your release is named traefik-mesh.
To learn more about the release, try:
- $ helm status maesh
- $ helm get maesh
+ $ helm status traefik-mesh
+ $ helm get traefik-mesh
```
-## Using Maesh
+## Using Traefik Mesh
-As an example, let's deploy a server application and a client application under the `maesh-test` namespace.
+As an example, let's deploy a server application and a client application under the `test` namespace.
```yaml tab="server.yaml"
---
@@ -59,7 +56,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
name: server
- namespace: maesh-test
+ namespace: test
labels:
app: server
spec:
@@ -74,7 +71,7 @@ spec:
spec:
containers:
- name: server
- image: containous/whoami:v1.4.0
+ image: traefik/whoami:latest
ports:
- containerPort: 80
---
@@ -82,7 +79,7 @@ kind: Service
apiVersion: v1
metadata:
name: server
- namespace: maesh-test
+ namespace: test
spec:
selector:
app: server
@@ -99,7 +96,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
name: client
- namespace: maesh-test
+ namespace: test
labels:
app: client
spec:
@@ -124,7 +121,7 @@ spec:
Create the namespace then deploy those two applications:
```bash
-kubectl create namespace maesh-test
+kubectl create namespace test
kubectl apply -f server.yaml
kubectl apply -f client.yaml
```
@@ -132,7 +129,7 @@ kubectl apply -f client.yaml
You should now see the following output:
```bash tab="Command"
-kubectl get all -n maesh-test
+kubectl get all -n test
```
```text tab="Expected output"
@@ -156,13 +153,13 @@ replicaset.apps/server-7c8fd58db5 2 2 2 77s
Take note of the client app pod name (here it's `client-7446fdf848-x96fq`) and open a new terminal session inside this pod using `kubectl exec`.
```bash
-kubectl -n maesh-test exec -ti client-7446fdf848-x96fq ash
+kubectl -n test exec -ti client-7446fdf848-x96fq ash
```
From inside the client container, make sure your server is reachable using the Kubernetes DNS service discovery.
```bash tab="Command"
-curl server.maesh-test.svc.cluster.local
+curl server.test.svc.cluster.local
```
```test tab="Expected Output"
@@ -173,17 +170,17 @@ IP: 10.42.2.10
IP: fe80::a4ec:77ff:fe37:1cdd
RemoteAddr: 10.42.2.9:46078
GET / HTTP/1.1
-Host: server.maesh-test.svc.cluster.local
+Host: server.test.svc.cluster.local
User-Agent: curl/7.64.0
Accept: */*
```
You can note that all this server application is doing is to respond with the content of the request it receives.
-Now replace the `svc.cluster.local` suffix by `maesh`, and tada: you are now using Maesh to reach your server!
+Now replace the `svc.cluster.local` suffix by `traefik.mesh`, and tada: you are now using Traefik Mesh to reach your server!
```bash tab="Command"
-curl server.maesh-test.maesh
+curl server.test.traefik.mesh
```
```test tab="Expected Output"
@@ -194,21 +191,21 @@ IP: 10.42.1.7
IP: fe80::601d:7cff:fe26:c8c6
RemoteAddr: 10.42.1.5:59478
GET / HTTP/1.1
-Host: server.maesh-test.maesh
+Host: server.test.traefik.mesh
User-Agent: curl/7.64.0
Accept: */*
Accept-Encoding: gzip
Uber-Trace-Id: 3f9e7129a059f70:7e889a1ebcb147ac:3f9e7129a059f70:1
X-Forwarded-For: 10.42.2.9
-X-Forwarded-Host: server.maesh-test.maesh
+X-Forwarded-Host: server.test.traefik.mesh
X-Forwarded-Port: 80
X-Forwarded-Proto: http
-X-Forwarded-Server: maesh-mesh-w95q2
+X-Forwarded-Server: traefik-mesh-proxy-w95q2
X-Real-Ip: 10.42.2.9
```
-Note the presence of `X-Forwarded` headers as well as other instrumentation headers like `Uber-Trace-Id`, indicating than your request has been processed and instrumented by Maesh.
+Note the presence of `X-Forwarded` headers as well as other instrumentation headers like `Uber-Trace-Id`, indicating than your request has been processed and instrumented by Traefik Mesh.
## What's next
-See the [examples page](examples.md) to see a more advanced example, or dive into the [configuration](configuration.md) to discover all Maesh capabilities.
+See the [examples page](examples.md) to see a more advanced example, or dive into the [configuration](configuration.md) to discover all Traefik Mesh capabilities.
diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml
index 9087591bf..906260387 100644
--- a/docs/mkdocs.yml
+++ b/docs/mkdocs.yml
@@ -1,11 +1,11 @@
-site_name: Maesh
-site_description: Maesh Documentation
+site_name: Traefik Mesh
+site_description: Traefik Mesh Documentation
site_author: containo.us
site_url: https://docs.mae.sh
dev_addr: 0.0.0.0:8000
repo_name: 'GitHub'
-repo_url: 'https://github.com/containous/maesh'
+repo_url: 'https://github.com/traefik/mesh'
docs_dir: 'content'
edit_uri: 'edit/master/docs/content/'
@@ -16,8 +16,8 @@ theme:
custom_dir: 'theme'
language: en
include_sidebar: true
- favicon: assets/img/maesh-logo.svg
- logo: assets/img/maesh-logo.svg
+ favicon: assets/img/traefik-mesh-logo.svg
+ logo: assets/img/traefik-mesh-logo.svg
feature:
tabs: false
palette:
@@ -27,7 +27,7 @@ theme:
prev: 'Previous'
next: 'Next'
-copyright: "Copyright © 2016-2020 Containous"
+copyright: "Copyright © 2020 Traefik Labs"
extra_css:
- assets/styles/root.css
@@ -76,7 +76,7 @@ nav:
- 'Examples': 'examples.md'
- 'API': 'api.md'
- 'Migration':
- - 'Maesh v1': 'migration/maesh-v1.md'
+ - 'Traefik Mesh v1': 'migration/traefik-mesh-v1.md'
- 'Helm Chart': 'migration/helm-chart.md'
- 'Contributing':
- 'Thank You!': 'contributing/thank-you.md'
diff --git a/docs/scripts/verify.sh b/docs/scripts/verify.sh
index f451557e1..492b244b7 100755
--- a/docs/scripts/verify.sh
+++ b/docs/scripts/verify.sh
@@ -19,10 +19,10 @@ find "${PATH_TO_SITE}" -type f -not -path "/app/site/theme/*" \
htmlproofer \
--check-html \
--check_external_hash \
- --alt_ignore="/maesh-logo.png/" \
- --alt_ignore="/maesh-logo.svg/" \
+ --alt_ignore="/traefik-mesh-logo.png/" \
+ --alt_ignore="/traefik-mesh-logo.svg/" \
--http_status_ignore="0,500,501,503" \
- --url_ignore="/fonts.gstatic.com/,/docs.mae.sh/,/github.com\/containous\/maesh\/edit*/,/pilot.traefik.io\/profile/,/containo.us/,/docs.traefik.io/,/www.mkdocs.org/,/squidfunk.github.io/,/ietf.org/" \
+ --url_ignore="/fonts.gstatic.com/,/docs.mae.sh/,/github.com\/traefik\/mesh\/edit*/,/pilot.traefik.io\/profile/,/containo.us/,/docs.traefik.io/,/www.mkdocs.org/,/squidfunk.github.io/,/ietf.org/" \
'{}' 1>/dev/null
## HTML-proofer options at https://github.com/gjtorikian/html-proofer#configuration
diff --git a/docs/theme/main.html b/docs/theme/main.html
index c4929f69e..f3b193a66 100644
--- a/docs/theme/main.html
+++ b/docs/theme/main.html
@@ -6,12 +6,12 @@
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
-})(window,document,'script','dataLayer','GTM-W6HPV6C');
+})(window,document,'script','dataLayer','GTM-KVZ2ZDK');
{%- endblock %}
{% block header %}
- {% include "partials/containous-header.html" %}
+ {% include "partials/company-header.html" %}
{% include "partials/header.html" %}
{% endblock %}
diff --git a/docs/theme/partials/containous-header.html b/docs/theme/partials/company-header.html
similarity index 99%
rename from docs/theme/partials/containous-header.html
rename to docs/theme/partials/company-header.html
index e81587e90..44360b7d1 100644
--- a/docs/theme/partials/containous-header.html
+++ b/docs/theme/partials/company-header.html
@@ -197,7 +197,7 @@
-
Interested in joining Containous?
+
Interested in joining Traefik Labs?
-
\ No newline at end of file
+
diff --git a/go.mod b/go.mod
index 7dff9f0fc..09e2439f4 100644
--- a/go.mod
+++ b/go.mod
@@ -1,10 +1,9 @@
-module github.com/containous/maesh
+module github.com/traefik/mesh
go 1.15
require (
github.com/cenkalti/backoff/v4 v4.0.2
- github.com/containous/traefik/v2 v2.3.0-rc4
github.com/go-check/check v0.0.0-20180628173108-788fd7840127
github.com/google/uuid v1.1.1
github.com/gorilla/mux v1.7.3
@@ -13,6 +12,7 @@ require (
github.com/sirupsen/logrus v1.6.0
github.com/stretchr/testify v1.6.1
github.com/traefik/paerser v0.1.0
+ github.com/traefik/traefik/v2 v2.3.0-rc6
github.com/vdemeester/shakers v0.1.0
k8s.io/api v0.18.6
k8s.io/apimachinery v0.18.6
diff --git a/go.sum b/go.sum
index 9782fd6ff..f34bf028f 100644
--- a/go.sum
+++ b/go.sum
@@ -64,6 +64,7 @@ github.com/DataDog/zstd v1.3.6-0.20190409195224-796139022798 h1:2T/jmrHeTezcCM58
github.com/DataDog/zstd v1.3.6-0.20190409195224-796139022798/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo=
github.com/ExpediaDotCom/haystack-client-go v0.0.0-20190315171017-e7edbdf53a61 h1:1NIUJ+MAMpqDr4LWIfNsoJR+G7zg/8GZVwuRkmJxtTc=
github.com/ExpediaDotCom/haystack-client-go v0.0.0-20190315171017-e7edbdf53a61/go.mod h1:62qWSDaEI0BLykU+zQza5CAKgW0lOy9oBSz3/DvYz4w=
+github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=
github.com/Masterminds/goutils v1.1.0 h1:zukEsf/1JZwCMgHiK3GZftabmxiCw4apj3a28RPBiVg=
github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU=
github.com/Masterminds/semver v1.4.2 h1:WBLTQ37jOCzSLtXNdoo8bNM8876KhNqOKvrlGITgsTc=
@@ -83,8 +84,10 @@ github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMo
github.com/OpenDNS/vegadns2client v0.0.0-20180418235048-a3fa4a771d87 h1:xPMsUicZ3iosVPSIP7bW5EcGUzjiiMl1OYTe14y/R24=
github.com/OpenDNS/vegadns2client v0.0.0-20180418235048-a3fa4a771d87/go.mod h1:iGLljf5n9GjT6kc0HBvyI1nOKnGQbNB66VzSNbK5iks=
github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
+github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
+github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=
github.com/Shopify/sarama v1.23.1 h1:XxJBCZEoWJtoWjf/xRbmGUpAmTZGnuuF0ON0EvxxBrs=
@@ -95,13 +98,15 @@ github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrd
github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g=
github.com/abronan/valkeyrie v0.0.0-20200127174252-ef4277a138cd h1:UlQRt3CZdeD+WfDamDtdDDOu84CYbGIh9/B28TgzCZk=
github.com/abronan/valkeyrie v0.0.0-20200127174252-ef4277a138cd/go.mod h1:2RUNONRAQ8bS1QcVJF3dYO/faiEro6NAAIQ6CqBkpD0=
-github.com/akamai/AkamaiOPEN-edgegrid-golang v0.9.8 h1:6rJvj+NXjjauunLeS7uGy891F1cuAwsWKa9iGzTjz1s=
-github.com/akamai/AkamaiOPEN-edgegrid-golang v0.9.8/go.mod h1:aVvklgKsPENRkl29bNwrHISa1F+YLGTHArMxZMBqWM8=
+github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c=
+github.com/akamai/AkamaiOPEN-edgegrid-golang v0.9.18/go.mod h1:L+HB2uBoDgi3+r1pJEJcbGwyyHhd2QXaGsKLbDwtm8Q=
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
+github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
-github.com/aliyun/alibaba-cloud-sdk-go v1.61.112 h1:E273ePcLllLIBGg5BHr3T0Fp1BJTvUyh5Y57ziSy81w=
-github.com/aliyun/alibaba-cloud-sdk-go v1.61.112/go.mod h1:pUKYbK5JQ+1Dfxk80P0qxGqe5dkxDoabbZS7zOcouyA=
+github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
+github.com/aliyun/alibaba-cloud-sdk-go v1.61.458/go.mod h1:pUKYbK5JQ+1Dfxk80P0qxGqe5dkxDoabbZS7zOcouyA=
github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
+github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
github.com/armon/go-metrics v0.0.0-20190430140413-ec5e00d3c878 h1:EFSB7Zo9Eg91v7MJPVsifUysc/wPdN+NOnVe6bWbdBM=
@@ -109,9 +114,13 @@ github.com/armon/go-metrics v0.0.0-20190430140413-ec5e00d3c878/go.mod h1:3AMJUQh
github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI=
github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
+github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A=
+github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU=
github.com/aws/aws-sdk-go v1.16.23/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
+github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
github.com/aws/aws-sdk-go v1.30.20 h1:ktsy2vodSZxz/arYqo7DlpkIeNohHL+4Rmjdo7YGtrE=
github.com/aws/aws-sdk-go v1.30.20/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0=
+github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
@@ -122,19 +131,23 @@ github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc h1:biVzkmvwrH8
github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
github.com/c0va23/go-proxyprotocol v0.9.1 h1:5BCkp0fDJOhzzH1lhjUgHhmZz9VvRMMif1U2D31hb34=
github.com/c0va23/go-proxyprotocol v0.9.1/go.mod h1:TNjUV+llvk8TvWJxlPYAeAYZgSzT/iicNr3nWBWX320=
-github.com/cenkalti/backoff/v4 v4.0.0/go.mod h1:eEew/i+1Q6OrCDZh3WiXYv3+nJwBASZ8Bog/87DQnVg=
+github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ=
+github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4=
+github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
github.com/cenkalti/backoff/v4 v4.0.2 h1:JIufpQLbh4DkbQoii76ItQIUFzevQSqOLZca4eamEDs=
github.com/cenkalti/backoff/v4 v4.0.2/go.mod h1:eEew/i+1Q6OrCDZh3WiXYv3+nJwBASZ8Bog/87DQnVg=
github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
+github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag=
github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I=
+github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
-github.com/cloudflare/cloudflare-go v0.10.2 h1:VBodKICVPnwmDxstcW3biKcDSpFIfS/RELUXsZSBYK4=
-github.com/cloudflare/cloudflare-go v0.10.2/go.mod h1:qhVI5MKwBGhdNU89ZRz2plgYutcJ5PCekLxXn56w6SY=
+github.com/cloudflare/cloudflare-go v0.13.2/go.mod h1:27kfc1apuifUmJhp069y0+hwlKDg4bd8LWlu7oKeZvM=
+github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd h1:qMd81Ts1T2OTKmB4acZcyKaMtRnY5Y44NuXGX2GFJ1w=
github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=
github.com/codegangsta/negroni v1.0.0 h1:+aYywywx4bnKXWvoWtRfJ91vC59NbEhEY03sZjQhbVY=
@@ -161,24 +174,23 @@ 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/mux v0.0.0-20200408164629-f779179d490a h1:9HowJycBgtJU6s+2ic6cTeAV1CaJC+dJfC7rFoMwoyc=
github.com/containous/mux v0.0.0-20200408164629-f779179d490a/go.mod h1:z8WW7n06n8/1xF9Jl9WmuDeZuHAhfL+bwarNjsciwwg=
-github.com/containous/traefik/v2 v2.3.0-rc4 h1:WEOM8Un8RTK65CZHXqaWIhokdcX3BlE6TGNaduW9QLc=
-github.com/containous/traefik/v2 v2.3.0-rc4/go.mod h1:xHE4peU2VKKZL2A5VqAovE+nDhrFH/Au/AqkwJr1sfk=
-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/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
github.com/coreos/etcd v3.3.13+incompatible h1:8F3hqu9fGYLBifCmRCJsicFqDx/D68Rt3q1JMazcgBQ=
github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
github.com/coreos/go-semver v0.2.0 h1:3Jm3tLmsgAYcjC+4Up7hJrFBPr+n7rAqYeSw/SZazuY=
github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
+github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf h1:iW4rZ826su+pqaw19uhpSCzhj44qo35pNgKFGqzDKkU=
github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
+github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg=
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
-github.com/cpu/goacmedns v0.0.2 h1:hYAgjnPu7HogTgb8trqQouR/RrBgXq1TPBgmxbK9eRA=
-github.com/cpu/goacmedns v0.0.2/go.mod h1:4MipLkI+qScwqtVxcNO6okBhbgRrr7/tKXUSgSL0teQ=
+github.com/cpu/goacmedns v0.0.3/go.mod h1:4MipLkI+qScwqtVxcNO6okBhbgRrr7/tKXUSgSL0teQ=
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
+github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -186,10 +198,7 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumC
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
github.com/dimchansky/utfbom v1.1.0 h1:FcM3g+nofKgUteL8dm/UpdRXNC9KmADgTpLKsu0TRo4=
github.com/dimchansky/utfbom v1.1.0/go.mod h1:rO41eb7gLfo8SF1jd9F8HplJm1Fewwi4mQvIirEdv+8=
-github.com/dnaeon/go-vcr v0.0.0-20180814043457-aafff18a5cc2 h1:G9/PqfhOrt8JXnw0DGTfVoOkKHDhOlEZqhE/cu+NvQM=
-github.com/dnaeon/go-vcr v0.0.0-20180814043457-aafff18a5cc2/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E=
-github.com/dnsimple/dnsimple-go v0.60.0 h1:N+q+ML1CZGf+5r4udu9Opy7WJNtOaFT9aM86Af9gLhk=
-github.com/dnsimple/dnsimple-go v0.60.0/go.mod h1:O5TJ0/U6r7AfT8niYNlmohpLbCSG+c71tQlGr9SeGrg=
+github.com/dnsimple/dnsimple-go v0.63.0/go.mod h1:O5TJ0/U6r7AfT8niYNlmohpLbCSG+c71tQlGr9SeGrg=
github.com/docker/cli v0.0.0-20200221155518-740919cc7fc0 h1:hlGHcYGaaHs/yffSubcUKlp8TyV1v7qhcZZ5nGNQ2Fw=
github.com/docker/cli v0.0.0-20200221155518-740919cc7fc0/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
github.com/docker/distribution v2.7.1+incompatible h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug=
@@ -207,6 +216,7 @@ github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7/go.mod h1:cyGadeNE
github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=
github.com/donovanhide/eventsource v0.0.0-20170630084216-b8f31a59085e h1:rMOGp6HPeMHbdLrZkX2nD+94uqDunc27tXVuS+ey4mQ=
github.com/donovanhide/eventsource v0.0.0-20170630084216-b8f31a59085e/go.mod h1:56wL82FO0bfMU5RvfXoIwSOP2ggqqxT+tAfNEIyxuHw=
+github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
github.com/eapache/channels v1.1.0 h1:F1taHcn7/F0i8DYqKXJnyhJcVpp2kgFcNePxXtnyu4k=
github.com/eapache/channels v1.1.0/go.mod h1:jMm2qB5Ubtg9zLd+inMZd2/NUvXgzmWXsDaLyQIGfH0=
github.com/eapache/go-resiliency v1.1.0 h1:1NtRmCAqadE2FN4ZcN6g90TP3uk8cg9rn9eNK2197aU=
@@ -215,6 +225,7 @@ github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 h1:YEetp8
github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU=
github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc=
github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=
+github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385 h1:clC1lXBpe2kTj2VHdaIu9ajZQe4kcEY9j0NsnDDBZ3o=
github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM=
github.com/elastic/go-sysinfo v1.1.1 h1:ZVlaLDyhVkDfjwPGU55CQRCRolNpc7P0BbyhhQZQmMI=
@@ -225,6 +236,7 @@ github.com/elazarl/go-bindata-assetfs v1.0.0 h1:G/bYguwHIzWq9ZoyUQqrjTmJbbYn3j3C
github.com/elazarl/go-bindata-assetfs v1.0.0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4=
github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
+github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao2r4iyvLdACqsl/Ljk=
github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g=
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
@@ -232,14 +244,15 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7
github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
github.com/evanphx/json-patch v4.5.0+incompatible h1:ouOWdg56aJriqS0huScTkVXPC5IcNrDCXZ6OoTAWu7M=
github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
-github.com/exoscale/egoscale v0.18.1 h1:1FNZVk8jHUx0AvWhOZxLEDNlacTU0chMXUUNkm9EZaI=
-github.com/exoscale/egoscale v0.18.1/go.mod h1:Z7OOdzzTOz1Q1PjQXumlz9Wn/CddH0zSYdCF3rnBKXE=
+github.com/exoscale/egoscale v0.23.0/go.mod h1:hRo78jkjkCDKpivQdRBEpNYF5+cVpCJCPDg2/r45KaY=
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo=
github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M=
github.com/felixge/httpsnoop v1.0.0 h1:gh8fMGz0rlOv/1WmRZm7OgncIOTsAj21iNJot48omJQ=
github.com/felixge/httpsnoop v1.0.0/go.mod h1:3+D9sFq0ahK/JeJPhCBUV1xlf4/eIYrUQaxulT0VzX8=
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc=
+github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4=
+github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20=
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/gambol99/go-marathon v0.0.0-20180614232016-99a156b96fb2 h1:df6OFl8WNXk82xxP3R9ZPZ5seOA8XZkwLdbEzZF1/xI=
@@ -247,8 +260,8 @@ github.com/gambol99/go-marathon v0.0.0-20180614232016-99a156b96fb2/go.mod h1:GLy
github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
-github.com/go-acme/lego/v3 v3.8.0 h1:9OOEn54eZvEPRRdM7xiC5f7EBW0MlEeChr+kzlIhdN8=
-github.com/go-acme/lego/v3 v3.8.0/go.mod h1:kYiHYgSRzb1l2NQPWvWvkVG5etNCusGFsZc2MTak3m0=
+github.com/go-acme/lego/v4 v4.0.1 h1:vPwbTYfw5+fOaON9rWCN43iNrPw5cdJBhNMnA8oxBTM=
+github.com/go-acme/lego/v4 v4.0.1/go.mod h1:pIFm5tWkXSgiAEfJ/XQCQIvX1cEvHFwbgLZyx8OVSUE=
github.com/go-cmd/cmd v1.0.5/go.mod h1:y8q8qlK5wQibcw63djSl/ntiHUHXHGdCkPk0j4QeW4s=
github.com/go-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w=
github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q=
@@ -258,21 +271,29 @@ github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
github.com/go-kit/kit v0.9.0 h1:wDJmvq38kDhkVxi50ni9ykkdUr1PKgqKOoi01fa0Mdk=
github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
+github.com/go-kit/kit v0.10.1-0.20200915143503-439c4d2ed3ea/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o=
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
github.com/go-logfmt/logfmt v0.4.0 h1:MP4Eh7ZCb31lleYCFuwm0oe4/YGak+5l1vA2NOE80nA=
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
+github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0=
github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
+github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w=
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg=
github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
+github.com/go-openapi/jsonreference v0.19.3 h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o=
github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc=
+github.com/go-openapi/spec v0.19.3 h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc=
github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo=
github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I=
github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
+github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY=
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
+github.com/go-resty/resty/v2 v2.1.1-0.20191201195748-d7b97669fe48/go.mod h1:dZGr0i9PLlaaTD4H/hoZIDjQ+r6xq8mgbRzHZf7f2J8=
+github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
@@ -331,6 +352,7 @@ github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hf
github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
+github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
@@ -341,12 +363,14 @@ github.com/googleapis/gnostic v0.1.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTV
github.com/googleapis/gnostic v0.2.0 h1:l6N3VoaVzTncYYW+9yOz2LJJammFZGBO13sqgEhpy9g=
github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8=
-github.com/gophercloud/gophercloud v0.3.0 h1:6sjpKIpVwRIIwmcEGp+WwNovNsem+c+2vm6oxshRpL8=
-github.com/gophercloud/gophercloud v0.3.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8=
+github.com/gophercloud/gophercloud v0.6.1-0.20191122030953-d8ac278c1c9d/go.mod h1:ozGNgr9KYOVATV5jsgHl/ceCDXGuguqOZAzoQ/2vcNM=
+github.com/gophercloud/gophercloud v0.7.0/go.mod h1:gmC5oQqMDOMO1t1gq5DquX/yAU808e/4mzjjDA76+Ss=
+github.com/gophercloud/utils v0.0.0-20200508015959-b0167b94122c/go.mod h1:ehWUbLQJPqS0Ep+CxeD559hsm9pthPXadJNKwZkp43w=
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8=
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
github.com/gorilla/context v1.1.1 h1:AWwleXJkX/nhcU9bZSnZoi3h/qGYqQAGhq6zZe/aQW8=
github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=
+github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
@@ -355,6 +379,7 @@ github.com/gravitational/trace v0.0.0-20190726142706-a535a178675f/go.mod h1:RvdO
github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
github.com/grpc-ecosystem/go-grpc-middleware v1.0.0 h1:Iju5GlWwrvL6UBg4zJJt3btmonfrMlCDdsejg4CZE7c=
github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
+github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
github.com/grpc-ecosystem/grpc-gateway v1.8.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
@@ -385,8 +410,7 @@ github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1:
github.com/hashicorp/go-multierror v1.0.0 h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uPribsnS6o=
github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=
github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs=
-github.com/hashicorp/go-retryablehttp v0.6.6 h1:HJunrbHTDDbBb/ay4kxa1n+dLmttUlnP3V9oNE4hmsM=
-github.com/hashicorp/go-retryablehttp v0.6.6/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY=
+github.com/hashicorp/go-retryablehttp v0.6.7/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY=
github.com/hashicorp/go-rootcerts v1.0.0 h1:Rqb66Oo1X/eSV1x66xbDccZjhJigjg0+e82kpwzSwCI=
github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU=
github.com/hashicorp/go-sockaddr v1.0.0 h1:GeH6tui99pF4NJgfnhp+L6+FfobzVW3Ah46sLo0ICXs=
@@ -413,6 +437,7 @@ github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
github.com/huandu/xstrings v1.3.1 h1:4jgBlKK6tLKFvO8u5pmYjG91cqytmDCDvGh7ECVFfFs=
github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
+github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg=
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/iij/doapi v0.0.0-20190504054126-0bbf12d6d7df h1:MZf03xP9WdakyXhOWuAD5uPK3wHh96wCsqe3hCMKh8E=
github.com/iij/doapi v0.0.0-20190504054126-0bbf12d6d7df/go.mod h1:QMZY7/J/KSQEhKWFeDesPjMj+wCHReeknARU3wqlyN4=
@@ -420,8 +445,8 @@ github.com/imdario/mergo v0.3.5 h1:JboBksRwiiAJWvIYJVo46AfV+IAIKZpfrSzVKj42R4Q=
github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
github.com/imdario/mergo v0.3.8 h1:CGgOkSJeqMRmt0D9XLWExdT4m4F1vd3FV3VPt+0VxkQ=
github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
-github.com/influxdata/influxdb1-client v0.0.0-20190809212627-fc22c7df067e h1:txQltCyjXAqVVSZDArPEhUTg35hKwVIuXwtQo7eAMNQ=
-github.com/influxdata/influxdb1-client v0.0.0-20190809212627-fc22c7df067e/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo=
+github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
+github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo=
github.com/instana/go-sensor v1.5.1 h1:GLxYsYiDWD15RSXDHS70VvTVU/CbwUimWrK6/e4eBPQ=
github.com/instana/go-sensor v1.5.1/go.mod h1:5dEieTqu59XZr2/X53xF2Px4v83aSRRZa/47VbxAVa4=
github.com/jcmturner/gofork v0.0.0-20190328161633-dc7c13fece03 h1:FUwcHNlEqkqLjLBdCp5PRlCFijNjvcYANOZXzCfXwCM=
@@ -468,10 +493,10 @@ github.com/labbsr0x/goh v1.0.1/go.mod h1:8K2UhVoaWXcCU7Lxoa2omWnC8gyW8px7/lmO61c
github.com/libkermit/compose v0.0.0-20171122111507-c04e39c026ad/go.mod h1:GyCk/ifDcqsU1tsRMMWqXANnTtxzcwEWscb7j5qmblM=
github.com/libkermit/docker v0.0.0-20171122101128-e6674d32b807/go.mod h1:std11u6pTaNwryy0Hy1dTQNdHKka1jNpflEieKtv5VE=
github.com/libkermit/docker-check v0.0.0-20171122104347-1113af38e591/go.mod h1:EBQ0jeOrBpOTkquwjmJl4W6z5xqlf5oA2LZfTqRNcO0=
-github.com/linode/linodego v0.10.0 h1:AMdb82HVgY8o3mjBXJcUv9B+fnJjfDMn2rNRGbX+jvM=
-github.com/linode/linodego v0.10.0/go.mod h1:cziNP7pbvE3mXIPneHj0oRY8L1WtGEIKlZ8LANE4eXA=
-github.com/liquidweb/liquidweb-go v1.6.0 h1:vIj1I/Wf97fUnyirD+bi6Y63c0GiXk9nKI1+sFFl3G0=
-github.com/liquidweb/liquidweb-go v1.6.0/go.mod h1:UDcVnAMDkZxpw4Y7NOHkqoeiGacVLEIG/i5J9cyixzQ=
+github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM=
+github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4=
+github.com/linode/linodego v0.21.0/go.mod h1:UTpq1JUZD0CZsJ8rt+0CRkqbzrp1MbGakVPt2DXY5Mk=
+github.com/liquidweb/liquidweb-go v1.6.1/go.mod h1:UDcVnAMDkZxpw4Y7NOHkqoeiGacVLEIG/i5J9cyixzQ=
github.com/looplab/fsm v0.1.0 h1:Qte7Zdn/5hBNbXzP7yxVU4OIFHWXBovyTT2LaBTyC20=
github.com/looplab/fsm v0.1.0/go.mod h1:m2VaOfDHxqXBBMgc26m6yUOwkFn8H2AlJDE+jd/uafI=
github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ=
@@ -484,17 +509,18 @@ github.com/mailgun/ttlmap v0.0.0-20170619185759-c1c17f74874f/go.mod h1:8heskWJ5c
github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
+github.com/mailru/easyjson v0.7.0 h1:aizVhC/NAAcKWb+5QsU1iNOZb4Yws5UO2I+aIprQITM=
github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs=
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
+github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
-github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
+github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
github.com/mattn/go-tty v0.0.0-20180219170247-931426f7535a/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE=
github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
-github.com/miekg/dns v1.1.27 h1:aEH/kqUzUxGJ/UHcEKdJY+ugH6WEzsEBBSPa8zuy1aM=
-github.com/miekg/dns v1.1.27/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
+github.com/miekg/dns v1.1.31/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
github.com/mitchellh/copystructure v1.0.0 h1:Laisrj+bAB6b/yJwB5Bt3ITZhGJdqmxquMKeZ+mmkFQ=
github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw=
@@ -510,9 +536,7 @@ github.com/mitchellh/hashstructure v1.0.0/go.mod h1:QjSHrPWS+BGUVBYkbTZWEnOh3G1D
github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY=
github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
-github.com/mitchellh/mapstructure v1.3.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
-github.com/mitchellh/mapstructure v1.3.2 h1:mRS76wmkOn3KkKAyXDu42V+6ebnXWIztFSYGN7GeoRg=
-github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
+github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/mitchellh/reflectwalk v1.0.0 h1:9D+8oIskB4VJBN5SFlmc27fSlIBZaov1Wpk/IfikLNY=
github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
@@ -528,17 +552,27 @@ github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRW
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
github.com/namedotcom/go v0.0.0-20180403034216-08470befbe04 h1:o6uBwrhM5C8Ll3MAAxrQxRHEu7FkapwTuI2WmL1rw4g=
github.com/namedotcom/go v0.0.0-20180403034216-08470befbe04/go.mod h1:5sN+Lt1CaY4wsPvgQH/jsuJi4XO2ssZbdsIizr4CVC8=
+github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg=
+github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU=
+github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k=
+github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w=
+github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w=
+github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w=
+github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32 h1:W6apQkHrMkS0Muv8G/TipAy/FJl/rCYT0+EuS8+Z0z4=
github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uYLpLIr5fm8diHn0JbqRycJi6w0Ms=
github.com/nrdcg/auroradns v1.0.1 h1:m/kBq83Xvy3cU261MOknd8BdnOk12q4lAWM+kOdsC2Y=
github.com/nrdcg/auroradns v1.0.1/go.mod h1:y4pc0i9QXYlFCWrhWrUSIETnZgrf4KuwjDIWmmXo3JI=
+github.com/nrdcg/desec v0.5.0/go.mod h1:2ejvMazkav1VdDbv2HeQO7w+Ta1CGHqzQr27ZBYTuEQ=
github.com/nrdcg/dnspod-go v0.4.0 h1:c/jn1mLZNKF3/osJ6mz3QPxTudvPArXTjpkmYj0uK6U=
github.com/nrdcg/dnspod-go v0.4.0/go.mod h1:vZSoFSFeQVm2gWLMkyX61LZ8HI3BaqtHZWgPTGKr6KQ=
-github.com/nrdcg/goinwx v0.7.0 h1:j6JlOp0nNwtvaP09TvKqc9pktjH81nOad0+Gx9S1t9U=
-github.com/nrdcg/goinwx v0.7.0/go.mod h1:4tKJOCi/1lTxuw9/yB2Ez0aojwtUCSkckjc22eALpqE=
+github.com/nrdcg/goinwx v0.8.1/go.mod h1:tILVc10gieBp/5PMvbcYeXM6pVQ+c9jxDZnpaR1UW7c=
github.com/nrdcg/namesilo v0.2.1 h1:kLjCjsufdW/IlC+iSfAqj0iQGgKjlbUUeDJio5Y6eMg=
github.com/nrdcg/namesilo v0.2.1/go.mod h1:lwMvfQTyYq+BbjJd30ylEG4GPSS6PII0Tia4rRpRiyw=
-github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=
+github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs=
+github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA=
+github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=
+github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA=
github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
@@ -550,6 +584,7 @@ github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1Cpa
github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME=
github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
+github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk=
github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
github.com/opencontainers/go-digest v1.0.0-rc1 h1:WzifXhOVOEOuFYOJAW6aQqW0TooG2iki3E3Ii+WN7gQ=
github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
@@ -563,6 +598,7 @@ github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492 h1
github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis=
github.com/opentracing/basictracer-go v1.0.0 h1:YyUAhaEfjoWXclZVJ9sGoNct7j4TVk7lZWlQw5UXuoo=
github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74=
+github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
github.com/opentracing/opentracing-go v1.1.0 h1:pWlfV3Bxv7k65HYwkikxat0+s3pV4bsqf19k25Ur8rU=
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5 h1:ZCnq+JUrvXcDVhX/xRolRBZifmabN1HcS1wrPSvxhrU=
@@ -571,15 +607,16 @@ github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJ
github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4=
github.com/openzipkin/zipkin-go v0.2.2 h1:nY8Hti+WKaP0cRsSeQ026wU03QsM762XBeCXBb9NAWI=
github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4=
-github.com/oracle/oci-go-sdk v7.0.0+incompatible h1:oj5ESjXwwkFRdhZSnPlShvLWYdt/IZ65RQxveYM3maA=
-github.com/oracle/oci-go-sdk v7.0.0+incompatible/go.mod h1:VQb79nF8Z2cwLkLS35ukwStZIg5F66tcBccjip/j888=
-github.com/ovh/go-ovh v0.0.0-20181109152953-ba5adb4cf014 h1:37VE5TYj2m/FLA9SNr4z0+A0JefvTmR60Zwf8XSEV7c=
-github.com/ovh/go-ovh v0.0.0-20181109152953-ba5adb4cf014/go.mod h1:joRatxRJaZBsY3JAOEMcoOp05CnZzsx4scTxi95DHyQ=
+github.com/oracle/oci-go-sdk v24.2.0+incompatible/go.mod h1:VQb79nF8Z2cwLkLS35ukwStZIg5F66tcBccjip/j888=
+github.com/ovh/go-ovh v1.1.0/go.mod h1:AxitLZ5HBRPyUd+Zl60Ajaag+rNTdVXWIkzfrVuTXWA=
+github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM=
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY=
github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc=
github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ=
+github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
+github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac=
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
github.com/philhofer/fwd v1.0.0 h1:UbZqGr5Y38ApvM/V/jEljVxwocdweyH+vmYvRPBnbqQ=
github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU=
@@ -603,16 +640,19 @@ github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod
github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
github.com/prometheus/client_golang v1.1.0 h1:BQ53HtBmfOitExawJ6LokA4x8ov/z0SYYb0+HxJfRI8=
github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g=
+github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og=
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4 h1:gQz4mCbXsO+nc9n1hCxHcGA3Zx3Eo+UHZoInFGUIXNM=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
github.com/prometheus/common v0.6.0 h1:kRhiuYSXR3+uv2IbVbZhUxK5zVD/2pp3Gd2PpvPkpEo=
github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc=
+github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA=
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
@@ -621,6 +661,7 @@ github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsT
github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ=
github.com/prometheus/procfs v0.0.5 h1:3+auTFlqw+ZaQYJARz6ArODtkaIwtvBTx3N2NehQlL8=
github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ=
+github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
github.com/rainycape/memcache v0.0.0-20150622160815-1031fa0ce2f2/go.mod h1:7tZKcyumwBO6qip7RNQ5r77yrssm9bfCowcLEBcU5IA=
github.com/rancher/go-rancher-metadata v0.0.0-20200311180630-7f4c936a06ac h1:wBGhHdXKICZmvAPWS8gQoMyOWDH7QAi9bU4Z1nDWnFU=
github.com/rancher/go-rancher-metadata v0.0.0-20200311180630-7f4c936a06ac/go.mod h1:67sLWL17mVlO1HFROaTBmU71NB4R8UNCesFHhg0f6LQ=
@@ -630,10 +671,10 @@ github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6So
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
-github.com/sacloud/libsacloud v1.26.1 h1:td3Kd7lvpSAxxHEVpnaZ9goHmmhi0D/RfP0Rqqf/kek=
-github.com/sacloud/libsacloud v1.26.1/go.mod h1:79ZwATmHLIFZIMd7sxA3LwzVy/B77uj3LDoToVTxDoQ=
+github.com/sacloud/libsacloud v1.36.2/go.mod h1:P7YAOVmnIn3DKHqCZcUKYUXmSwGBm3yS7IBEjKVSrjg=
github.com/samuel/go-zookeeper v0.0.0-20180130194729-c4fab1ac1bec h1:6ncX5ko6B9LntYM0YBRXkiSaZMmLYeZ/NWcmeB43mMY=
github.com/samuel/go-zookeeper v0.0.0-20180130194729-c4fab1ac1bec/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E=
+github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E=
github.com/santhosh-tekuri/jsonschema v1.2.4 h1:hNhW8e7t+H1vgY+1QeEQpveR6D4+OwKPXCfD2aieJis=
github.com/santhosh-tekuri/jsonschema v1.2.4/go.mod h1:TEAUOeZSmIxTTuHatJzrvARHiuO9LYd+cIxzgEHCQI4=
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I=
@@ -654,13 +695,18 @@ github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIK
github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
github.com/soheilhy/cmux v0.1.4 h1:0HKaf1o97UwFjHH9o5XsHUOF+tqmdA7KEzXLpiyaw0E=
github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
+github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY=
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng=
github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
+github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
+github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=
+github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=
+github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48=
@@ -675,16 +721,17 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
github.com/stvp/go-udp-testing v0.0.0-20191102171040-06b61409b154 h1:XGopsea1Dw7ecQ8JscCNQXDGYAKDiWjDeXnpN/+BY9g=
github.com/stvp/go-udp-testing v0.0.0-20191102171040-06b61409b154/go.mod h1:7jxmlfBCDBXRzr0eAQJ48XC1hBu1np4CS5+cHEYfwpc=
github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
-github.com/timewasted/linode v0.0.0-20160829202747-37e84520dcf7 h1:CpHxIaZzVy26GqJn8ptRyto8fuoYOd1v0fXm9bG3wQ8=
-github.com/timewasted/linode v0.0.0-20160829202747-37e84520dcf7/go.mod h1:imsgLplxEC/etjIhdr3dNzV3JeT27LbVu5pYWm0JCBY=
github.com/tinylib/msgp v1.0.2 h1:DfdQrzQa7Yh2es9SuLkixqxuXS2SxsdYn0KbdrOGWD8=
github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE=
+github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 h1:LnC5Kc/wtumK+WB441p7ynQJzVuNRJiqddSIE3IlSEQ=
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/go.mod h1:yYnAgdEC2wJH5CgG75qGWC8SsFDEapg09o9RrA6FfrE=
-github.com/transip/gotransip/v6 v6.0.2 h1:rOCMY607PYF+YvMHHtJt7eZRd0mx/uhyz6dsXWPmn+4=
-github.com/transip/gotransip/v6 v6.0.2/go.mod h1:pQZ36hWWRahCUXkFWlx9Hs711gLd8J4qdgLdRzmtY+g=
+github.com/traefik/traefik/v2 v2.3.0-rc6 h1:B1+uYaP9cyscs1K9+SQ2rJYO6BVoY18JwNKMzorF4vQ=
+github.com/traefik/traefik/v2 v2.3.0-rc6/go.mod h1:CAemATo18BZPU8YbSRDLF/Q9v7W52WnRblbo2/BsizM=
+github.com/traefik/yaegi v0.9.0/go.mod h1:FAYnRlZyuVlEkvnkHq3bvJ1lW5be6XuwgLdkYgYG6Lk=
+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/uber-go/atomic v1.3.2 h1:Azu9lPBWRNKzYXSIwRfgRuDuS0YKsK4NFhiQv98gkxo=
github.com/uber-go/atomic v1.3.2/go.mod h1:/Ct5t2lcmbJ4OSe/waGBoaVvVqtO0bmtfVNex1PFV8g=
@@ -696,15 +743,16 @@ github.com/unrolled/render v1.0.2/go.mod h1:gN9T0NhL4Bfbwu8ann7Ry/TGHYfosul+J0ob
github.com/unrolled/secure v1.0.7 h1:BcQHp3iKZyZCKj5gRqwQG+5urnGBF00wGgoPPwtheVQ=
github.com/unrolled/secure v1.0.7/go.mod h1:uGc1OcRF8gCVBA+ANksKmvM85Hka6SZtQIbrKc3sHS4=
github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
+github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
+github.com/urfave/cli v1.22.4/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
github.com/vdemeester/shakers v0.1.0 h1:K+n9sSyUCg2ywmZkv+3c7vsYZfivcfKhMh8kRxCrONM=
github.com/vdemeester/shakers v0.1.0/go.mod h1:IZ1HHynUOQt32iQ3rvAeVddXLd19h/6LWiKsh9RZtAQ=
github.com/vulcand/oxy v1.1.0 h1:DbBijGo1+6cFqR9jarkMxasdj0lgWwrrFtue6ijek4Q=
github.com/vulcand/oxy v1.1.0/go.mod h1:ADiMYHi8gkGl2987yQIzDRoXZilANF4WtKaQ92OppKY=
github.com/vulcand/predicate v1.1.0 h1:Gq/uWopa4rx/tnZu2opOSBqHK63Yqlou/SzrbwdJiNg=
github.com/vulcand/predicate v1.1.0/go.mod h1:mlccC5IRBoc2cIFmCB8ZM62I3VDb6p2GXESMHa3CnZg=
-github.com/vultr/govultr v0.4.2 h1:9i8xKZ+xp6vwZ9raqHoBLzhB4wCnMj7nOQTj5YIRLWY=
-github.com/vultr/govultr v0.4.2/go.mod h1:TUuUizMOFc7z+PNMssb6iGjKjQfpw5arIaOLfocVudQ=
+github.com/vultr/govultr v0.5.0/go.mod h1:wZZXZbYbqyY1n3AldoeYNZK4Wnmmoq6dNFkvd5TV3ss=
github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I=
github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y=
github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
@@ -723,6 +771,8 @@ go.elastic.co/fastjson v1.0.0 h1:ooXV/ABvf+tBul26jcVViPT3sBir0PvXgibYB1IQQzg=
go.elastic.co/fastjson v1.0.0/go.mod h1:PmeUOMMtLHQr9ZS9J9owrAVg0FkaZDRZJEFTTGHtchs=
go.etcd.io/bbolt v1.3.1-etcd.8 h1:6J7QAKqfFBGnU80KRnuQxfjjeE5xAGE/qB810I3FQHQ=
go.etcd.io/bbolt v1.3.1-etcd.8/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
+go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
+go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg=
go.etcd.io/etcd v3.3.13+incompatible h1:jCejD5EMnlGxFvcGRyEV4VGlENZc7oPQX6o0t7n3xbw=
go.etcd.io/etcd v3.3.13+incompatible/go.mod h1:yaeTdrJi5lOmYerz05bd8+V7KubZs8YSFZfzsF9A6aI=
go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
@@ -735,12 +785,16 @@ go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
go.uber.org/atomic v1.4.0 h1:cxzIVoETapQEqDhQu3QfnvXAV4AlzcvUCxkVUFw3+EU=
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
+go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
go.uber.org/multierr v1.1.0 h1:HoEmRHQPVSqub6w2z2d2EOVs2fjyFRGyofhKuyDq0QI=
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
+go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4=
go.uber.org/ratelimit v0.0.0-20180316092928-c15da0234277 h1:d9qaMM+ODpCq+9We41//fu/sHsTnXcrqd1en3x+GKy4=
go.uber.org/ratelimit v0.0.0-20180316092928-c15da0234277/go.mod h1:2X8KaoNd1J0lZV+PxJk/5+DGbO/tpwLR1m++a7FnB/Y=
+go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
go.uber.org/zap v1.10.0 h1:ORx85nbTijNz8ljznvCMR1ZBIPKFn3jQrag10X2AsuM=
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
+go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM=
golang.org/x/crypto v0.0.0-20180621125126-a49355c7e3f8/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
@@ -753,12 +807,14 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20191202143827-86a70503ff7e/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200317142112-1b76d66859c6 h1:TjszyFsQsyZNHwdVdZ5m7bjmreu0znc2kRYsEml9/Ww=
golang.org/x/crypto v0.0.0-20200317142112-1b76d66859c6/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200414173820-0848c9571904 h1:bXoxMPcSLOq08zI3/c5dEBT6lE4eh+jOh886GHrn6V8=
golang.org/x/crypto v0.0.0-20200414173820-0848c9571904/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI=
+golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -790,7 +846,6 @@ golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzB
golang.org/x/mod v0.2.0 h1:KU7oHjnv3XNWfa5COkzUifxZmxp1TyI7ImMXqFxLwvQ=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20180611182652-db08ff08e862/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -808,11 +863,13 @@ golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20190930134127-c5a3c61f89f3/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20191126235420-ef20fe5d7933/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -820,6 +877,8 @@ golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLL
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200301022130-244492dfa37a h1:GuSPYbZzB5/dcLNCwLQLsg3obCJtX9IJhpXkvY7kzk0=
golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20200822124328-c89045814202 h1:VvcQYSHwXgi7W+TpUR6A9g6Up98WAHf3f/ulnJ62IyA=
+golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -857,12 +916,15 @@ golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191025021431-6c3a3bfe00ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191128015809-6d18c012aee9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -871,17 +933,21 @@ golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527 h1:uYVVQ9WP/Ds2ROhcaGPeIdVq0RIXVLwsHlnvJ+cT1So=
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884=
+golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
+golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.0.0-20190921001708-c4c64cad1fd0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e h1:EHBhcS0mlXEAVwNyO2dLfjToGsyY4j24pTs2ScHnX7s=
+golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -904,14 +970,18 @@ golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtn
golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20191203134012-c197fd4bf371/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
@@ -938,6 +1008,7 @@ google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/
google.golang.org/api v0.20.0 h1:jz2KixHX7EcCPiQrySzPdnYT7DbINAypCqKZ1Z7GM40=
google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
+google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
@@ -948,6 +1019,7 @@ google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRn
google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
+google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s=
google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8=
@@ -967,9 +1039,11 @@ google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZi
google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM=
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
+google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
+google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.27.1 h1:zvIju4sqAGvwKspUQOhwnpcqSbzi7/H6QomNNjTL4sk=
@@ -980,9 +1054,13 @@ gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLks
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
+gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw=
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4=
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
+gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o=
gopkg.in/h2non/gock.v1 v1.0.15 h1:SzLqcIlb/fDfg7UvukMpNcWsu7sI5tWwL+KCATZqks0=
gopkg.in/h2non/gock.v1 v1.0.15/go.mod h1:sX4zAkdYX1TRGJ2JY156cFspQn4yRWn6p9EMdODlynE=
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
@@ -990,6 +1068,7 @@ gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
gopkg.in/ini.v1 v1.42.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/ini.v1 v1.51.1 h1:GyboHr4UqMiLUybYjd22ZjQIKEJEpgtLXtuGbR21Oho=
gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
+gopkg.in/ini.v1 v1.57.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/jcmturner/aescts.v1 v1.0.1 h1:cVVZBK2b1zY26haWB4vbBiZrfFQnfbTVrE3xZq6hrEw=
gopkg.in/jcmturner/aescts.v1 v1.0.1/go.mod h1:nsR8qBOg+OucoIW+WMhB3GspUQXq9XorLnQb9XtvcOo=
gopkg.in/jcmturner/dnsutils.v1 v1.0.1 h1:cIuC1OLRGZrld+16ZJvvZxVJeKPsvd5eUIvxfoN5hSM=
@@ -1000,20 +1079,21 @@ gopkg.in/jcmturner/gokrb5.v7 v7.2.3 h1:hHMV/yKPwMnJhPuPx7pH2Uw/3Qyf+thJYlisUc440
gopkg.in/jcmturner/gokrb5.v7 v7.2.3/go.mod h1:l8VISx+WGYp+Fp7KRbsiUuXTTOnxIc3Tuvyavf11/WM=
gopkg.in/jcmturner/rpc.v1 v1.1.0 h1:QHIUxTX1ISuAv9dD2wJ9HWQVuWDX/Zc0PfeC2tjc4rU=
gopkg.in/jcmturner/rpc.v1 v1.1.0/go.mod h1:YIdkC4XfD6GXbzje11McwsDuOlZQSb9W4vfLvuNnlv8=
-gopkg.in/ns1/ns1-go.v2 v2.0.0-20190730140822-b51389932cbc h1:GAcf+t0o8gdJAdSFYdE9wChu4bIyguMVqz0RHiFL5VY=
-gopkg.in/ns1/ns1-go.v2 v2.0.0-20190730140822-b51389932cbc/go.mod h1:VV+3haRsgDiVLxyifmMBrBIuCWFBPYKbRssXB9z67Hw=
+gopkg.in/ns1/ns1-go.v2 v2.4.2/go.mod h1:GMnKY+ZuoJ+lVLL+78uSTjwTz2jMazq6AfGKQOYhsPk=
gopkg.in/redis.v5 v5.2.9 h1:MNZYOLPomQzZMfpN3ZtD1uyJ2IDonTTlxYiV/pEApiw=
gopkg.in/redis.v5 v5.2.9/go.mod h1:6gtv0/+A4iM08kdRfocWYB3bLX2tebpNtfKlFT6H4mY=
-gopkg.in/resty.v1 v1.9.1/go.mod h1:vo52Hzryw9PnPHcJfPsBiFW62XhNx5OczbV9y+IMpgc=
gopkg.in/resty.v1 v1.12.0 h1:CuXP0Pjfw9rOuY6EP+UvtNvt5DSqHpIxILZKT/quCZI=
gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
-gopkg.in/square/go-jose.v2 v2.3.1 h1:SK5KegNXmKmqE342YYN2qPHEnUYeoMiXXl1poUlI+o4=
-gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
+gopkg.in/square/go-jose.v2 v2.5.1 h1:7odma5RETjNHWJnR32wx8t+Io4djHE1PqxCFx3iiZ2w=
+gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
+gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI=
gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10=
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
@@ -1045,8 +1125,10 @@ k8s.io/client-go v0.18.2/go.mod h1:Xcm5wVGXX9HAA2JJ2sSBUn3tCJ+4SVlCbl2MNNv+CIU=
k8s.io/client-go v0.18.6 h1:I+oWqJbibLSGsZj8Xs8F0aWVXJVIoUHWaaJV3kUN/Zw=
k8s.io/client-go v0.18.6/go.mod h1:/fwtGLjYMS1MaM5oi+eXhKwG+1UHidUEXRh6cNsdO0Q=
k8s.io/code-generator v0.18.0/go.mod h1:+UHX5rSbxmR8kzS+FAv7um6dtYrZokQvjHpDSYRVkTc=
+k8s.io/code-generator v0.18.2 h1:C1Nn2JiMf244CvBDKVPX0W2mZFJkVBg54T8OV7/Imso=
k8s.io/code-generator v0.18.2/go.mod h1:+UHX5rSbxmR8kzS+FAv7um6dtYrZokQvjHpDSYRVkTc=
k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
+k8s.io/gengo v0.0.0-20200114144118-36b2048a9120 h1:RPscN6KhmG54S33L+lr3GS+oD1jmchIU0ll519K6FA4=
k8s.io/gengo v0.0.0-20200114144118-36b2048a9120/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
@@ -1070,3 +1152,4 @@ sigs.k8s.io/structured-merge-diff/v3 v3.0.0/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnM
sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=
sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
+sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU=
diff --git a/helm/chart/maesh/.helmignore b/helm/chart/mesh/.helmignore
similarity index 100%
rename from helm/chart/maesh/.helmignore
rename to helm/chart/mesh/.helmignore
diff --git a/helm/chart/maesh/Chart.yaml b/helm/chart/mesh/Chart.yaml
similarity index 74%
rename from helm/chart/maesh/Chart.yaml
rename to helm/chart/mesh/Chart.yaml
index aab83e2aa..eaacb0558 100644
--- a/helm/chart/maesh/Chart.yaml
+++ b/helm/chart/mesh/Chart.yaml
@@ -1,8 +1,8 @@
apiVersion: v2
-name: maesh
+name: traefik-mesh
version: 2.1.2
appVersion: v1.3.2
-description: Maesh - Simpler Service Mesh
+description: Traefik Mesh - Simpler Service Mesh
type: application
keywords:
- traefik
@@ -10,7 +10,7 @@ keywords:
- smi
home: https://mae.sh/
sources:
- - https://github.com/containous/maesh/
+ - https://github.com/traefik/mesh/
maintainers:
- name: emilevauge
email: emile@vauge.com
@@ -24,7 +24,7 @@ maintainers:
email: harold@containo.us
- name: kevinpollet
email: kevin@containo.us
-icon: https://raw.githubusercontent.com/containous/maesh/v1.2/docs/content/assets/img/maesh.png
+icon: https://raw.githubusercontent.com/traefik/mesh/master/docs/content/assets/img/traefik-mesh.png
dependencies:
- name: tracing
version: 0.0.3
diff --git a/helm/chart/maesh/Guidelines.md b/helm/chart/mesh/Guidelines.md
similarity index 92%
rename from helm/chart/maesh/Guidelines.md
rename to helm/chart/mesh/Guidelines.md
index af3ea1460..09fce1fde 100644
--- a/helm/chart/maesh/Guidelines.md
+++ b/helm/chart/mesh/Guidelines.md
@@ -1,10 +1,10 @@
-# Maesh Helm Chart Guidelines
+# Traefik Mesh Helm Chart Guidelines
-This document outlines the guidelines for developing, managing and extending the Maesh Helm Chart.
+This document outlines the guidelines for developing, managing and extending the Traefik Mesh Helm Chart.
## Optionality
-All non-critical features (features not mandatory to start Maesh) in the Helm Chart must be optional.
+All non-critical features (features not mandatory to start Traefik Mesh) in the Helm Chart must be optional.
All non-critical features should be disabled (commented out) in the `values.yaml` file.
All optional non-critical features should be disabled (commented out) in the `values.yaml` file, and have a comment `# (Optional)` in the line above.
This allows minimal configuration, and ease of extension.
@@ -13,7 +13,7 @@ This allows minimal configuration, and ease of extension.
```yaml
image:
- name: containous/maesh
+ name: traefik/mesh
```
This feature is critical, and therefore is defined clearly in the `values.yaml` file.
@@ -64,7 +64,7 @@ These should just be added as an uncommented non-critical feature:
```yaml
image:
- name: containous/maesh
+ name: traefik/mesh
# (Optional)
# pullPolicy: IfNotPresent
```
diff --git a/helm/chart/maesh/README.md b/helm/chart/mesh/README.md
similarity index 65%
rename from helm/chart/maesh/README.md
rename to helm/chart/mesh/README.md
index eb2494a2b..e9eeb0e5e 100644
--- a/helm/chart/maesh/README.md
+++ b/helm/chart/mesh/README.md
@@ -1,9 +1,9 @@
-# Maesh
+# Traefik Mesh
-Maesh is a simple, yet full-featured service mesh. It is container-native and fits as your de-facto service mesh in your Kubernetes cluster.
+Traefik Mesh is a simple, yet full-featured service mesh. It is container-native and fits as your de-facto service mesh in your Kubernetes cluster.
It supports the latest Service Mesh Interface specification [SMI](https://smi-spec.io/) that facilitates integration with pre-existing solution.
-Moreover, Maesh is opt-in by default, which means that your existing services are unaffected until you decide to add them to the mesh.
+Moreover, Traefik Mesh is opt-in by default, which means that your existing services are unaffected until you decide to add them to the mesh.
## Prerequisites
@@ -13,83 +13,82 @@ Moreover, Maesh is opt-in by default, which means that your existing services ar
## Installing the Chart
-To install the chart with the release name `maesh`:
+To install the chart with the release name `traefik-mesh`:
```bash
-$ helm repo add maesh https://containous.github.io/maesh/charts
+$ helm repo add traefik-mesh https://traefik.github.io/mesh/charts
$ helm repo update
-$ helm install maesh maesh/maesh
+$ helm install traefik-mesh traefik-mesh/traefik-mesh
```
-You can use the `--namespace my-namespace` flag to deploy Maesh in a custom namespace and the `--set "key1=val1,key2=val2,..."`
-flag to configure it. Where `key1=val1`, `key2=val2`, `...` are chart values that you can find at
-https://github.com/containous/maesh/blob/master/helm/chart/maesh/values.yaml.
+You can use the `--namespace my-namespace` flag to deploy Traefik Mesh in a custom namespace and the `--set "key1=val1,key2=val2,..."` flag to configure it.
+Where `key1=val1`, `key2=val2`, `...` are chart values that you can find at https://github.com/traefik/mesh/blob/master/helm/chart/mesh/values.yaml.
## Uninstalling the Chart
-To uninstall the chart with the release name `maesh`:
+To uninstall the chart with the release name `traefik-mesh`:
```bash
-$ helm uninstall maesh
+$ helm uninstall traefik-mesh
```
## Configuration
-The following table lists the configurable parameters of the Maesh chart and their default values.
-
-| Key | Description | Default |
-|--------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------|
-| acl | Enable ACL mode. | `false` |
-| clusterDomain | Custom cluster domain. | `"cluster.local"` |
-| controller.affinity | Node/Pod affinities for the controller. | `{}` |
-| controller.ignoreNamespaces | Namespace to ignore for the controller. | `[]` |
-| controller.image.name | Docker image for the controller. | `"containous/maesh"` |
-| controller.image.pullPolicy | Pull policy for the controller Docker image. | `"IfNotPresent"` |
-| controller.image.pullSecret | Name of the Secret resource containing the private registry credentials for the controller image. | |
-| controller.image.tag | Tag for the controller container Docker image. | `{{ .Chart.AppVersion }}` |
-| controller.logFormat | Controller log format. | `"common"` |
-| controller.logLevel | Controller log level. | `"error"` |
-| controller.nodeSelector | Node labels for pod assignment. See the [K8S documentation](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) for more details. | `{}` |
-| controller.resources.limit.cpu | Maximum amount of CPU units that the controller container can use. | `"200m"` |
-| controller.resources.limit.mem | Maximum amount of memory that the controller container can use. | `"100Mi"` |
-| controller.resources.request.cpu | Amount of CPU units that the controller container requests. | `"100m"` |
-| controller.resources.request.mem | Amount of memory that the controller container requests. | `"50Mi"` |
-| controller.tolerations | Tolerations section for the controller. See the [K8S documentation](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) for more details. | `[]` |
-| controller.watchNamespaces | Namespace to watch for the controller. | `[]` |
-| defaultMode | The default mesh mode. This means that new mesh services will operate by default in HTTP mode. | `"http"` |
-| kubedns | Enable KubeDNS support. | `false` |
-| limits.http | Number of HTTP ports to allocate. | `10` |
-| limits.tcp | Number of TCP ports to allocate. | `25` |
-| limits.udp | Number of UDP ports to allocate. | `25` |
-| logFormat | Log format for the controller and the mesh proxy. | `"common"` |
-| logLevel | Log level for the controller and the mesh proxy. | `"error"` |
-| mesh.additionalArguments | Arguments to be added to the mesh proxy container args. | `[]` |
-| mesh.annotations | Annotations to be added to the mesh proxy deployment. | `{}` |
-| mesh.env | Additional environment variables to set in the mesh proxy pods. | `[]` |
-| mesh.envFrom | Additional environment variables to set in the mesh proxy pods. | `[]` |
-| mesh.forwardingTimeouts.dialTimeout | Maximum duration allowed for a connection to a backend server to be established. See the [Traefik documentation](https://docs.traefik.io/routing/overview/#forwardingtimeoutsdialtimeout) for more details. | `"30s"` |
-| mesh.forwardingTimeouts.idleConnTimeout | Maximum amount of time an idle (keep-alive) connection will remain idle before closing itself. See the [Traefik documentation](https://docs.traefik.io/routing/overview/#forwardingtimeoutsresponseheadertimeout) for more details. | `"1s"` |
-| mesh.forwardingTimeouts.responseHeaderTimeout | Maximum amount of time, if non-zero, to wait for a server's response headers after fully writing the request (including its body, if any). See the [Traefik documentation](https://docs.traefik.io/routing/overview/#forwardingtimeoutsresponseheadertimeout) for more details. | `"0s"` |
-| mesh.image.name | Docker image for the mesh proxy. | `"traefik"` |
-| mesh.image.pullPolicy | Pull policy for the mesh proxy image. | `"IfNotPresent"` |
-| mesh.image.pullSecret | Name of the Secret resource containing the private registry credentials for the mesh proxy image. | |
-| mesh.image.tag | Tag for the mesh proxy container Docker image. | `"v2.3"` |
-| mesh.logFormat | Mesh proxy log format. | `"common"` |
-| mesh.logLevel | Mesh proxy log level. | `"error"` |
-| mesh.nodeSelector | Node labels for pod assignment. See the [K8S documentation](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) for more details. | `{}` |
-| mesh.podAnnotations | Annotations to be added to the mesh proxy pods. | `{}` |
-| mesh.pollInterval | Polling interval to get the configuration from the controller. | `"1s"` |
-| mesh.pollTimeout | Polling timeout when connecting to the controller configuration endpoint. | `"1s"` |
-| mesh.resources.limit.cpu | Maximum amount of CPU units that the mesh proxy container can use. | `"200m"` |
-| mesh.resources.limit.mem | Maximum amount of memory that the mesh proxy container can use. | `"100Mi"` |
-| mesh.resources.request.cpu | Amount of CPU units that the mesh proxy container requests. | `"100m"` |
-| mesh.resources.request.mem | Amount of memory that the mesh proxy container requests. | `"50Mi"` |
-| mesh.tolerations | Tolerations section for the mesh proxy. See the [K8S documentation](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) for more details. | `[]` |
+The following table lists the configurable parameters of the Traefik Mesh chart and their default values.
+
+| Key | Description | Default |
+|------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------|
+| acl | Enable ACL mode. | `false` |
+| clusterDomain | Custom cluster domain. | `"cluster.local"` |
+| controller.affinity | Node/Pod affinities for the controller. | `{}` |
+| controller.ignoreNamespaces | Namespace to ignore for the controller. | `[]` |
+| controller.image.name | Docker image for the controller. | `"traefik/mesh"` |
+| controller.image.pullPolicy | Pull policy for the controller Docker image. | `"IfNotPresent"` |
+| controller.image.pullSecret | Name of the Secret resource containing the private registry credentials for the controller image. | |
+| controller.image.tag | Tag for the controller container Docker image. | `{{ .Chart.AppVersion }}` |
+| controller.logFormat | Controller log format. | `"common"` |
+| controller.logLevel | Controller log level. | `"error"` |
+| controller.nodeSelector | Node labels for pod assignment. See the [K8S documentation](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) for more details. | `{}` |
+| controller.resources.limit.cpu | Maximum amount of CPU units that the controller container can use. | `"200m"` |
+| controller.resources.limit.mem | Maximum amount of memory that the controller container can use. | `"100Mi"` |
+| controller.resources.request.cpu | Amount of CPU units that the controller container requests. | `"100m"` |
+| controller.resources.request.mem | Amount of memory that the controller container requests. | `"50Mi"` |
+| controller.tolerations | Tolerations section for the controller. See the [K8S documentation](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) for more details. | `[]` |
+| controller.watchNamespaces | Namespace to watch for the controller. | `[]` |
+| defaultMode | The default mesh mode. This means that new services will operate by default in HTTP mode. | `"http"` |
+| kubedns | Enable KubeDNS support. | `false` |
+| limits.http | Number of HTTP ports to allocate. | `10` |
+| limits.tcp | Number of TCP ports to allocate. | `25` |
+| limits.udp | Number of UDP ports to allocate. | `25` |
+| logFormat | Log format for the controller and the proxy. | `"common"` |
+| logLevel | Log level for the controller and the proxy. | `"error"` |
+| proxy.additionalArguments | Arguments to be added to the proxy container args. | `[]` |
+| proxy.annotations | Annotations to be added to the proxy deployment. | `{}` |
+| proxy.env | Additional environment variables to set in the proxy pods. | `[]` |
+| proxy.envFrom | Additional environment variables to set in the proxy pods. | `[]` |
+| proxy.forwardingTimeouts.dialTimeout | Maximum duration allowed for a connection to a backend server to be established. See the [Traefik documentation](https://docs.traefik.io/routing/overview/#forwardingtimeoutsdialtimeout) for more details. | `"30s"` |
+| proxy.forwardingTimeouts.idleConnTimeout | Maximum amount of time an idle (keep-alive) connection will remain idle before closing itself. See the [Traefik documentation](https://docs.traefik.io/routing/overview/#forwardingtimeoutsresponseheadertimeout) for more details. | `"1s"` |
+| proxy.forwardingTimeouts.responseHeaderTimeout | Maximum amount of time, if non-zero, to wait for a server's response headers after fully writing the request (including its body, if any). See the [Traefik documentation](https://docs.traefik.io/routing/overview/#forwardingtimeoutsresponseheadertimeout) for more details. | `"0s"` |
+| proxy.image.name | Docker image for the proxy. | `"traefik"` |
+| proxy.image.pullPolicy | Pull policy for the proxy image. | `"IfNotPresent"` |
+| proxy.image.pullSecret | Name of the Secret resource containing the private registry credentials for the proxy image. | |
+| proxy.image.tag | Tag for the proxy container Docker image. | `"v2.3"` |
+| proxy.logFormat | Proxy log format. | `"common"` |
+| proxy.logLevel | Proxy log level. | `"error"` |
+| proxy.nodeSelector | Node labels for pod assignment. See the [K8S documentation](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) for more details. | `{}` |
+| proxy.podAnnotations | Annotations to be added to the proxy pods. | `{}` |
+| proxy.pollInterval | Polling interval to get the configuration from the controller. | `"1s"` |
+| proxy.pollTimeout | Polling timeout when connecting to the controller configuration endpoint. | `"1s"` |
+| proxy.resources.limit.cpu | Maximum amount of CPU units that the proxy container can use. | `"200m"` |
+| proxy.resources.limit.mem | Maximum amount of memory that the proxy container can use. | `"100Mi"` |
+| proxy.resources.request.cpu | Amount of CPU units that the proxy container requests. | `"100m"` |
+| proxy.resources.request.mem | Amount of memory that the proxy container requests. | `"50Mi"` |
+| proxy.tolerations | Tolerations section for the proxy. See the [K8S documentation](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) for more details. | `[]` |
### Metrics
-The following table lists the available parameters to configure the metrics integrations on the mesh proxies.
-As the mesh proxies are vanilla Traefik, check out the corresponding [documentation](https://docs.traefik.io/observability/metrics/overview/) for more details.
+The following table lists the available parameters to configure the metrics integrations on the Traefik Mesh proxies.
+As the proxies are vanilla Traefik, check out the corresponding [documentation](https://docs.traefik.io/observability/metrics/overview/) for more details.
| Key | Description | Default |
|--------------------------------------------------|------------------------------------------------------------------------------------------------------------------|--------------------------------------------|
@@ -123,8 +122,8 @@ As the mesh proxies are vanilla Traefik, check out the corresponding [documentat
### Tracing
-The following table lists the available parameters to configure the tracing integrations on the mesh proxies.
-As the mesh proxies are vanilla Traefik, check out the corresponding [documentation](https://docs.traefik.io/observability/tracing/overview/) for more details.
+The following table lists the available parameters to configure the tracing integrations on the Traefik Mesh proxies.
+As the proxies are vanilla Traefik, check out the corresponding [documentation](https://docs.traefik.io/observability/tracing/overview/) for more details.
| Key | Description | Default |
|------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------|
diff --git a/helm/chart/maesh/charts/metrics/Chart.yaml b/helm/chart/mesh/charts/metrics/Chart.yaml
similarity index 100%
rename from helm/chart/maesh/charts/metrics/Chart.yaml
rename to helm/chart/mesh/charts/metrics/Chart.yaml
diff --git a/helm/chart/maesh/charts/metrics/dashboards/traefik.json b/helm/chart/mesh/charts/metrics/dashboards/traefik.json
similarity index 100%
rename from helm/chart/maesh/charts/metrics/dashboards/traefik.json
rename to helm/chart/mesh/charts/metrics/dashboards/traefik.json
diff --git a/helm/chart/maesh/charts/metrics/templates/grafana-pdb.yaml b/helm/chart/mesh/charts/metrics/templates/grafana-pdb.yaml
similarity index 83%
rename from helm/chart/maesh/charts/metrics/templates/grafana-pdb.yaml
rename to helm/chart/mesh/charts/metrics/templates/grafana-pdb.yaml
index 5da1ae909..c6096666a 100644
--- a/helm/chart/maesh/charts/metrics/templates/grafana-pdb.yaml
+++ b/helm/chart/mesh/charts/metrics/templates/grafana-pdb.yaml
@@ -6,7 +6,7 @@ metadata:
labels:
app: maesh
component: grafana
- chart: {{ include "maesh.chartLabel" . | quote }}
+ chart: {{ include "traefikMesh.chartLabel" . | quote }}
release: {{ .Release.Name | quote }}
heritage: {{ .Release.Service | quote }}
spec:
diff --git a/helm/chart/maesh/charts/metrics/templates/grafana.yaml b/helm/chart/mesh/charts/metrics/templates/grafana.yaml
similarity index 95%
rename from helm/chart/maesh/charts/metrics/templates/grafana.yaml
rename to helm/chart/mesh/charts/metrics/templates/grafana.yaml
index f88ff8f28..2f9b956a9 100644
--- a/helm/chart/maesh/charts/metrics/templates/grafana.yaml
+++ b/helm/chart/mesh/charts/metrics/templates/grafana.yaml
@@ -7,7 +7,7 @@ metadata:
labels:
app: maesh
component: grafana
- chart: {{ include "maesh.chartLabel" . | quote }}
+ chart: {{ include "traefikMesh.chartLabel" . | quote }}
release: {{ .Release.Name | quote }}
heritage: {{ .Release.Service | quote }}
spec:
@@ -102,7 +102,7 @@ metadata:
labels:
app: maesh
component: grafana
- chart: {{ include "maesh.chartLabel" . | quote }}
+ chart: {{ include "traefikMesh.chartLabel" . | quote }}
release: {{ .Release.Name | quote }}
heritage: {{ .Release.Service | quote }}
data:
@@ -146,7 +146,7 @@ data:
editable: true
options:
path: /var/lib/grafana/dashboards
- homeDashboardId: maesh
+ homeDashboardId: traefik-mesh
---
apiVersion: v1
@@ -157,7 +157,7 @@ metadata:
labels:
app: maesh
component: grafana
- chart: {{ include "maesh.chartLabel" . | quote }}
+ chart: {{ include "traefikMesh.chartLabel" . | quote }}
release: {{ .Release.Name | quote }}
heritage: {{ .Release.Service | quote }}
spec:
diff --git a/helm/chart/maesh/charts/metrics/templates/prometheus-pdb.yaml b/helm/chart/mesh/charts/metrics/templates/prometheus-pdb.yaml
similarity index 84%
rename from helm/chart/maesh/charts/metrics/templates/prometheus-pdb.yaml
rename to helm/chart/mesh/charts/metrics/templates/prometheus-pdb.yaml
index 909778754..209d56487 100644
--- a/helm/chart/maesh/charts/metrics/templates/prometheus-pdb.yaml
+++ b/helm/chart/mesh/charts/metrics/templates/prometheus-pdb.yaml
@@ -6,7 +6,7 @@ metadata:
labels:
app: maesh
component: prometheus
- chart: {{ include "maesh.chartLabel" . | quote }}
+ chart: {{ include "traefikMesh.chartLabel" . | quote }}
release: {{ .Release.Name | quote }}
heritage: {{ .Release.Service | quote }}
spec:
diff --git a/helm/chart/maesh/charts/metrics/templates/prometheus.yaml b/helm/chart/mesh/charts/metrics/templates/prometheus.yaml
similarity index 95%
rename from helm/chart/maesh/charts/metrics/templates/prometheus.yaml
rename to helm/chart/mesh/charts/metrics/templates/prometheus.yaml
index c0cab3e19..e9205fcc4 100644
--- a/helm/chart/maesh/charts/metrics/templates/prometheus.yaml
+++ b/helm/chart/mesh/charts/metrics/templates/prometheus.yaml
@@ -8,7 +8,7 @@ metadata:
labels:
app: maesh
component: prometheus
- chart: {{ include "maesh.chartLabel" . | quote }}
+ chart: {{ include "traefikMesh.chartLabel" . | quote }}
release: {{ .Release.Name | quote }}
heritage: {{ .Release.Service | quote }}
data:
@@ -31,7 +31,7 @@ metadata:
labels:
app: maesh
component: prometheus
- chart: {{ include "maesh.chartLabel" . | quote }}
+ chart: {{ include "traefikMesh.chartLabel" . | quote }}
release: {{ .Release.Name | quote }}
heritage: {{ .Release.Service | quote }}
data:
@@ -44,7 +44,7 @@ data:
- "/prometheus/rules/*.yaml"
scrape_configs:
- - job_name: 'maesh'
+ - job_name: 'traefik-mesh'
relabel_configs:
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
action: keep
@@ -73,7 +73,7 @@ metadata:
labels:
app: maesh
component: prometheus
- chart: {{ include "maesh.chartLabel" . | quote }}
+ chart: {{ include "traefikMesh.chartLabel" . | quote }}
release: {{ .Release.Name | quote }}
heritage: {{ .Release.Service | quote }}
spec:
@@ -177,7 +177,7 @@ metadata:
labels:
app: maesh
component: prometheus
- chart: {{ include "maesh.chartLabel" . | quote }}
+ chart: {{ include "traefikMesh.chartLabel" . | quote }}
release: {{ .Release.Name | quote }}
heritage: {{ .Release.Service | quote }}
annotations:
diff --git a/helm/chart/maesh/charts/metrics/templates/rbac.yaml b/helm/chart/mesh/charts/metrics/templates/rbac.yaml
similarity index 85%
rename from helm/chart/maesh/charts/metrics/templates/rbac.yaml
rename to helm/chart/mesh/charts/metrics/templates/rbac.yaml
index b177b567a..393069aea 100644
--- a/helm/chart/maesh/charts/metrics/templates/rbac.yaml
+++ b/helm/chart/mesh/charts/metrics/templates/rbac.yaml
@@ -6,7 +6,7 @@ metadata:
labels:
app: maesh
component: prometheus
- chart: {{ include "maesh.chartLabel" . | quote }}
+ chart: {{ include "traefikMesh.chartLabel" . | quote }}
release: {{ .Release.Name | quote }}
heritage: {{ .Release.Service | quote }}
roleRef:
@@ -26,7 +26,7 @@ metadata:
labels:
app: maesh
component: prometheus
- chart: {{ include "maesh.chartLabel" . | quote }}
+ chart: {{ include "traefikMesh.chartLabel" . | quote }}
release: {{ .Release.Name | quote }}
heritage: {{ .Release.Service | quote }}
rules:
@@ -57,7 +57,7 @@ metadata:
labels:
app: maesh
component: prometheus
- chart: {{ include "maesh.chartLabel" . | quote }}
+ chart: {{ include "traefikMesh.chartLabel" . | quote }}
release: {{ .Release.Name | quote }}
heritage: {{ .Release.Service | quote }}
@@ -70,6 +70,6 @@ metadata:
labels:
app: maesh
component: grafana
- chart: {{ include "maesh.chartLabel" . | quote }}
+ chart: {{ include "traefikMesh.chartLabel" . | quote }}
release: {{ .Release.Name | quote }}
heritage: {{ .Release.Service | quote }}
diff --git a/helm/chart/maesh/charts/metrics/templates/storage.yaml b/helm/chart/mesh/charts/metrics/templates/storage.yaml
similarity index 88%
rename from helm/chart/maesh/charts/metrics/templates/storage.yaml
rename to helm/chart/mesh/charts/metrics/templates/storage.yaml
index 9f7e4dafa..14e640350 100644
--- a/helm/chart/maesh/charts/metrics/templates/storage.yaml
+++ b/helm/chart/mesh/charts/metrics/templates/storage.yaml
@@ -7,7 +7,7 @@ metadata:
labels:
app: maesh
component: grafana
- chart: {{ include "maesh.chartLabel" . | quote }}
+ chart: {{ include "traefikMesh.chartLabel" . | quote }}
release: {{ .Release.Name | quote }}
heritage: {{ .Release.Service | quote }}
spec:
@@ -29,7 +29,7 @@ metadata:
labels:
app: maesh
component: prometheus
- chart: {{ include "maesh.chartLabel" . | quote }}
+ chart: {{ include "traefikMesh.chartLabel" . | quote }}
release: {{ .Release.Name | quote }}
heritage: {{ .Release.Service | quote }}
spec:
diff --git a/helm/chart/maesh/charts/metrics/values.yaml b/helm/chart/mesh/charts/metrics/values.yaml
similarity index 100%
rename from helm/chart/maesh/charts/metrics/values.yaml
rename to helm/chart/mesh/charts/metrics/values.yaml
diff --git a/helm/chart/maesh/charts/tracing/Chart.yaml b/helm/chart/mesh/charts/tracing/Chart.yaml
similarity index 100%
rename from helm/chart/maesh/charts/tracing/Chart.yaml
rename to helm/chart/mesh/charts/tracing/Chart.yaml
diff --git a/helm/chart/maesh/charts/tracing/templates/jaeger-deployment.yaml b/helm/chart/mesh/charts/tracing/templates/jaeger-deployment.yaml
similarity index 100%
rename from helm/chart/maesh/charts/tracing/templates/jaeger-deployment.yaml
rename to helm/chart/mesh/charts/tracing/templates/jaeger-deployment.yaml
diff --git a/helm/chart/maesh/charts/tracing/templates/jaeger-pdb.yaml b/helm/chart/mesh/charts/tracing/templates/jaeger-pdb.yaml
similarity index 85%
rename from helm/chart/maesh/charts/tracing/templates/jaeger-pdb.yaml
rename to helm/chart/mesh/charts/tracing/templates/jaeger-pdb.yaml
index 82f894ce9..38d40cdd9 100644
--- a/helm/chart/maesh/charts/tracing/templates/jaeger-pdb.yaml
+++ b/helm/chart/mesh/charts/tracing/templates/jaeger-pdb.yaml
@@ -5,7 +5,7 @@ metadata:
name: jaeger
labels:
app: jaeger
- chart: {{ include "maesh.chartLabel" . | quote }}
+ chart: {{ include "traefikMesh.chartLabel" . | quote }}
release: {{ .Release.Name | quote }}
heritage: {{ .Release.Service | quote }}
spec:
diff --git a/helm/chart/maesh/charts/tracing/templates/jaeger-sa.yaml b/helm/chart/mesh/charts/tracing/templates/jaeger-sa.yaml
similarity index 81%
rename from helm/chart/maesh/charts/tracing/templates/jaeger-sa.yaml
rename to helm/chart/mesh/charts/tracing/templates/jaeger-sa.yaml
index aaf58643b..d91f4fab1 100644
--- a/helm/chart/maesh/charts/tracing/templates/jaeger-sa.yaml
+++ b/helm/chart/mesh/charts/tracing/templates/jaeger-sa.yaml
@@ -6,7 +6,7 @@ metadata:
namespace: {{ .Release.Namespace }}
labels:
app: jaeger
- chart: {{ include "maesh.chartLabel" . | quote}}
+ chart: {{ include "traefikMesh.chartLabel" . | quote}}
release: {{ .Release.Name | quote }}
heritage: {{ .Release.Service | quote }}
automountServiceAccountToken: false
diff --git a/helm/chart/maesh/charts/tracing/templates/jaeger-services.yaml b/helm/chart/mesh/charts/tracing/templates/jaeger-services.yaml
similarity index 100%
rename from helm/chart/maesh/charts/tracing/templates/jaeger-services.yaml
rename to helm/chart/mesh/charts/tracing/templates/jaeger-services.yaml
diff --git a/helm/chart/maesh/charts/tracing/values.yaml b/helm/chart/mesh/charts/tracing/values.yaml
similarity index 100%
rename from helm/chart/maesh/charts/tracing/values.yaml
rename to helm/chart/mesh/charts/tracing/values.yaml
diff --git a/helm/chart/maesh/crds/smi-access.yaml b/helm/chart/mesh/crds/smi-access.yaml
similarity index 98%
rename from helm/chart/maesh/crds/smi-access.yaml
rename to helm/chart/mesh/crds/smi-access.yaml
index ab11de1d7..298ac0f63 100644
--- a/helm/chart/maesh/crds/smi-access.yaml
+++ b/helm/chart/mesh/crds/smi-access.yaml
@@ -86,4 +86,4 @@ spec:
type: string
namespace:
description: Namespace of this source.
- type: string
\ No newline at end of file
+ type: string
diff --git a/helm/chart/maesh/crds/smi-specs.yaml b/helm/chart/mesh/crds/smi-specs.yaml
similarity index 99%
rename from helm/chart/maesh/crds/smi-specs.yaml
rename to helm/chart/mesh/crds/smi-specs.yaml
index f29f32312..7f6bdc052 100644
--- a/helm/chart/maesh/crds/smi-specs.yaml
+++ b/helm/chart/mesh/crds/smi-specs.yaml
@@ -93,4 +93,4 @@ spec:
storage: false
- name: v1alpha1
served: false
- storage: false
\ No newline at end of file
+ storage: false
diff --git a/helm/chart/maesh/crds/smi-split.yaml b/helm/chart/mesh/crds/smi-split.yaml
similarity index 98%
rename from helm/chart/maesh/crds/smi-split.yaml
rename to helm/chart/mesh/crds/smi-split.yaml
index 224eb6a12..b953d1998 100644
--- a/helm/chart/maesh/crds/smi-split.yaml
+++ b/helm/chart/mesh/crds/smi-split.yaml
@@ -68,4 +68,4 @@ spec:
type: string
weight:
description: Traffic weight value of this backend.
- type: number
\ No newline at end of file
+ type: number
diff --git a/helm/chart/maesh/templates/NOTES.txt b/helm/chart/mesh/templates/NOTES.txt
similarity index 100%
rename from helm/chart/maesh/templates/NOTES.txt
rename to helm/chart/mesh/templates/NOTES.txt
diff --git a/helm/chart/maesh/templates/_helpers.tpl b/helm/chart/mesh/templates/_helpers.tpl
similarity index 56%
rename from helm/chart/maesh/templates/_helpers.tpl
rename to helm/chart/mesh/templates/_helpers.tpl
index 1656bd309..e89d8e5cd 100644
--- a/helm/chart/maesh/templates/_helpers.tpl
+++ b/helm/chart/mesh/templates/_helpers.tpl
@@ -3,28 +3,28 @@
{{/*
Define the Chart version Label.
*/}}
-{{- define "maesh.chartLabel" -}}
+{{- define "traefikMesh.chartLabel" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version -}}
{{- end -}}
{{/*
-Define the templated image with tag.
+Define the templated controller image with tag.
*/}}
-{{- define "maesh.controllerImage" -}}
+{{- define "traefikMesh.controllerImage" -}}
{{- printf "%s:%s" .Values.controller.image.name ( .Values.controller.image.tag | default .Chart.AppVersion ) -}}
{{- end -}}
{{/*
-Define the templated mesh image with tag.
+Define the templated proxy image with tag.
*/}}
-{{- define "maesh.meshImage" -}}
- {{- printf "%s:%s" .Values.mesh.image.name ( .Values.mesh.image.tag | default "v2.3" ) -}}
+{{- define "traefikMesh.proxyImage" -}}
+ {{- printf "%s:%s" .Values.proxy.image.name ( .Values.proxy.image.tag | default "v2.3" ) -}}
{{- end -}}
{{/*
-Define the watchNamespaces List.
+Define the controller watchNamespaces List.
*/}}
-{{- define "maesh.controllerWatchNamespaces" -}}
+{{- define "traefikMesh.controllerWatchNamespaces" -}}
--watchNamespaces=
{{- range $idx, $ns := .Values.controller.watchNamespaces }}
{{- if $idx }},{{ end }}
@@ -33,9 +33,9 @@ Define the watchNamespaces List.
{{- end -}}
{{/*
-Define the ignoreNamespaces List.
+Define the controller ignoreNamespaces List.
*/}}
-{{- define "maesh.controllerIgnoreNamespaces" -}}
+{{- define "traefikMesh.controllerIgnoreNamespaces" -}}
--ignoreNamespaces=
{{- range $idx, $ns := .Values.controller.ignoreNamespaces }}
{{- if $idx }},{{ end }}
diff --git a/helm/chart/maesh/templates/controller/controller-deployment.yaml b/helm/chart/mesh/templates/controller/controller-deployment.yaml
similarity index 88%
rename from helm/chart/maesh/templates/controller/controller-deployment.yaml
rename to helm/chart/mesh/templates/controller/controller-deployment.yaml
index 21298ca75..2401bd9d7 100644
--- a/helm/chart/maesh/templates/controller/controller-deployment.yaml
+++ b/helm/chart/mesh/templates/controller/controller-deployment.yaml
@@ -2,12 +2,12 @@
apiVersion: apps/v1
kind: Deployment
metadata:
- name: maesh-controller
+ name: traefik-mesh-controller
namespace: {{ .Release.Namespace }}
labels:
app: maesh
component: controller
- chart: {{ include "maesh.chartLabel" . | quote }}
+ chart: {{ include "traefikMesh.chartLabel" . | quote }}
release: {{ .Release.Name | quote }}
heritage: {{ .Release.Service | quote }}
spec:
@@ -27,7 +27,7 @@ spec:
prometheus.io/scrape: "true"
prometheus.io/port: "4646"
spec:
- serviceAccountName: maesh-controller
+ serviceAccountName: traefik-mesh-controller
securityContext:
runAsNonRoot: true
runAsUser: 999
@@ -48,8 +48,8 @@ spec:
{{ toYaml . | indent 8 }}
{{- end }}
containers:
- - name: maesh-controller
- image: {{ include "maesh.controllerImage" . | quote }}
+ - name: traefik-mesh-controller
+ image: {{ include "traefikMesh.controllerImage" . | quote }}
imagePullPolicy: {{ .Values.controller.image.pullPolicy | default "IfNotPresent" }}
args:
{{- if or .Values.controller.logLevel .Values.logLevel }}
@@ -66,10 +66,10 @@ spec:
{{- end }}
- "--namespace={{ .Release.Namespace }}"
{{- if .Values.controller.watchNamespaces }}
- - {{ include "maesh.controllerWatchNamespaces" . | quote }}
+ - {{ include "traefikMesh.controllerWatchNamespaces" . | quote }}
{{- end }}
{{- if .Values.controller.ignoreNamespaces }}
- - {{ include "maesh.controllerIgnoreNamespaces" . | quote }}
+ - {{ include "traefikMesh.controllerIgnoreNamespaces" . | quote }}
{{- end }}
{{- if .Values.limits.http }}
- "--limitHTTPPort={{ .Values.limits.http }}"
@@ -97,8 +97,8 @@ spec:
initialDelaySeconds: 3
periodSeconds: 1
initContainers:
- - name: maesh-prepare
- image: {{ include "maesh.controllerImage" . | quote }}
+ - name: traefik-mesh-prepare
+ image: {{ include "traefikMesh.controllerImage" . | quote }}
imagePullPolicy: {{ .Values.controller.image.pullPolicy | default "IfNotPresent"}}
args:
- "prepare"
diff --git a/helm/chart/maesh/templates/controller/controller-pdb.yaml b/helm/chart/mesh/templates/controller/controller-pdb.yaml
similarity index 80%
rename from helm/chart/maesh/templates/controller/controller-pdb.yaml
rename to helm/chart/mesh/templates/controller/controller-pdb.yaml
index a260c8311..67f2b297a 100644
--- a/helm/chart/maesh/templates/controller/controller-pdb.yaml
+++ b/helm/chart/mesh/templates/controller/controller-pdb.yaml
@@ -2,12 +2,12 @@
apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
- name: maesh-controller
+ name: traefik-mesh-controller
namespace: {{ .Release.Namespace }}
labels:
app: maesh
component: controller
- chart: {{ include "maesh.chartLabel" . | quote }}
+ chart: {{ include "traefikMesh.chartLabel" . | quote }}
release: {{ .Release.Name | quote }}
heritage: {{ .Release.Service | quote }}
spec:
diff --git a/helm/chart/maesh/templates/controller/controller-rbac.yaml b/helm/chart/mesh/templates/controller/controller-rbac.yaml
similarity index 84%
rename from helm/chart/maesh/templates/controller/controller-rbac.yaml
rename to helm/chart/mesh/templates/controller/controller-rbac.yaml
index bf18bca3f..5e3674283 100644
--- a/helm/chart/maesh/templates/controller/controller-rbac.yaml
+++ b/helm/chart/mesh/templates/controller/controller-rbac.yaml
@@ -2,12 +2,12 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
- name: maesh-controller-role
+ name: traefik-mesh-controller-role
namespace: {{ .Release.Namespace }}
labels:
app: maesh
component: controller
- chart: {{ include "maesh.chartLabel" . | quote}}
+ chart: {{ include "traefikMesh.chartLabel" . | quote}}
release: {{ .Release.Name | quote }}
heritage: {{ .Release.Service | quote }}
rules:
@@ -63,19 +63,19 @@ rules:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
- name: maesh-controller
+ name: traefik-mesh-controller
namespace: {{ .Release.Namespace }}
labels:
app: maesh
component: controller
- chart: {{ include "maesh.chartLabel" . | quote}}
+ chart: {{ include "traefikMesh.chartLabel" . | quote}}
release: {{ .Release.Name | quote }}
heritage: {{ .Release.Service | quote }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
- name: maesh-controller-role
+ name: traefik-mesh-controller-role
subjects:
- kind: ServiceAccount
- name: maesh-controller
+ name: traefik-mesh-controller
namespace: {{ .Release.Namespace }}
diff --git a/helm/chart/maesh/templates/controller/controller-sa.yaml b/helm/chart/mesh/templates/controller/controller-sa.yaml
similarity index 74%
rename from helm/chart/maesh/templates/controller/controller-sa.yaml
rename to helm/chart/mesh/templates/controller/controller-sa.yaml
index 4121659f9..a153bba21 100644
--- a/helm/chart/maesh/templates/controller/controller-sa.yaml
+++ b/helm/chart/mesh/templates/controller/controller-sa.yaml
@@ -2,12 +2,12 @@
apiVersion: v1
kind: ServiceAccount
metadata:
- name: maesh-controller
+ name: traefik-mesh-controller
namespace: {{ .Release.Namespace }}
labels:
app: maesh
component: controller
- chart: {{ include "maesh.chartLabel" . | quote}}
+ chart: {{ include "traefikMesh.chartLabel" . | quote}}
release: {{ .Release.Name | quote }}
heritage: {{ .Release.Service | quote }}
automountServiceAccountToken: true
diff --git a/helm/chart/maesh/templates/controller/controller-service.yaml b/helm/chart/mesh/templates/controller/controller-service.yaml
similarity index 83%
rename from helm/chart/maesh/templates/controller/controller-service.yaml
rename to helm/chart/mesh/templates/controller/controller-service.yaml
index 3ee3dde3f..1fdc4d773 100644
--- a/helm/chart/maesh/templates/controller/controller-service.yaml
+++ b/helm/chart/mesh/templates/controller/controller-service.yaml
@@ -2,7 +2,7 @@
apiVersion: v1
kind: Service
metadata:
- name: maesh-controller
+ name: traefik-mesh-controller
namespace: {{ .Release.Namespace }}
labels:
app: maesh
@@ -11,7 +11,6 @@ spec:
type: ClusterIP
ports:
- port: 9000
- name: mesh-controller-api
targetPort: api
selector:
app: maesh
diff --git a/helm/chart/maesh/templates/controller/hooks/cleanup-hook.yaml b/helm/chart/mesh/templates/controller/hooks/cleanup-hook.yaml
similarity index 84%
rename from helm/chart/maesh/templates/controller/hooks/cleanup-hook.yaml
rename to helm/chart/mesh/templates/controller/hooks/cleanup-hook.yaml
index 7d8bb573f..1dc709abb 100644
--- a/helm/chart/maesh/templates/controller/hooks/cleanup-hook.yaml
+++ b/helm/chart/mesh/templates/controller/hooks/cleanup-hook.yaml
@@ -2,12 +2,12 @@
apiVersion: v1
kind: ServiceAccount
metadata:
- name: maesh-cleanup
+ name: traefik-mesh-cleanup
namespace: {{ .Release.Namespace }}
labels:
app: maesh
component: cleanup
- chart: {{ include "maesh.chartLabel" . | quote}}
+ chart: {{ include "traefikMesh.chartLabel" . | quote}}
release: {{ .Release.Name | quote }}
heritage: {{ .Release.Service | quote }}
annotations:
@@ -19,12 +19,12 @@ metadata:
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
- name: maesh-cleanup-role
+ name: traefik-mesh-cleanup-role
namespace: {{ .Release.Namespace }}
labels:
app: maesh
component: cleanup
- chart: {{ include "maesh.chartLabel" . | quote}}
+ chart: {{ include "traefikMesh.chartLabel" . | quote}}
release: {{ .Release.Name | quote }}
heritage: {{ .Release.Service | quote }}
annotations:
@@ -60,12 +60,12 @@ rules:
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
- name: maesh-cleanup
+ name: traefik-mesh-cleanup
namespace: {{ .Release.Namespace }}
labels:
app: maesh
component: cleanup
- chart: {{ include "maesh.chartLabel" . | quote}}
+ chart: {{ include "traefikMesh.chartLabel" . | quote}}
release: {{ .Release.Name | quote }}
heritage: {{ .Release.Service | quote }}
annotations:
@@ -75,22 +75,22 @@ metadata:
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
- name: maesh-cleanup-role
+ name: traefik-mesh-cleanup-role
subjects:
- kind: ServiceAccount
- name: maesh-cleanup
+ name: traefik-mesh-cleanup
namespace: {{ .Release.Namespace }}
---
apiVersion: batch/v1
kind: Job
metadata:
- name: maesh-cleanup
+ name: traefik-mesh-cleanup
namespace: {{ .Release.Namespace }}
labels:
app: maesh
component: cleanup
- chart: {{ include "maesh.chartLabel" . | quote }}
+ chart: {{ include "traefikMesh.chartLabel" . | quote }}
release: {{ .Release.Name | quote}}
heritage: {{ .Release.Service | quote}}
annotations:
@@ -107,15 +107,15 @@ spec:
component: cleanup
release: {{ .Release.Name | quote}}
spec:
- serviceAccountName: maesh-cleanup
+ serviceAccountName: traefik-mesh-cleanup
restartPolicy: Never
{{- if .Values.controller.image.pullSecret }}
imagePullSecrets:
- name: {{ .Values.controller.image.pullSecret }}
{{- end }}
containers:
- - name: maesh-cleanup
- image: {{ include "maesh.controllerImage" . | quote }}
+ - name: traefik-mesh-cleanup
+ image: {{ include "traefikMesh.controllerImage" . | quote }}
imagePullPolicy: {{ .Values.controller.image.pullPolicy | default "IfNotPresent" }}
args:
- "cleanup"
diff --git a/helm/chart/maesh/templates/coredns/coredns-configmap.yaml b/helm/chart/mesh/templates/coredns/coredns-configmap.yaml
similarity index 91%
rename from helm/chart/maesh/templates/coredns/coredns-configmap.yaml
rename to helm/chart/mesh/templates/coredns/coredns-configmap.yaml
index cfffffd3a..7490b0b06 100644
--- a/helm/chart/maesh/templates/coredns/coredns-configmap.yaml
+++ b/helm/chart/mesh/templates/coredns/coredns-configmap.yaml
@@ -8,7 +8,7 @@ metadata:
labels:
app: maesh
component: coredns
- chart: {{ include "maesh.chartLabel" . | quote }}
+ chart: {{ include "traefikMesh.chartLabel" . | quote }}
release: {{ .Release.Name | quote}}
heritage: {{ .Release.Service | quote}}
data:
diff --git a/helm/chart/maesh/templates/coredns/coredns-deployment.yaml b/helm/chart/mesh/templates/coredns/coredns-deployment.yaml
similarity index 96%
rename from helm/chart/maesh/templates/coredns/coredns-deployment.yaml
rename to helm/chart/mesh/templates/coredns/coredns-deployment.yaml
index 84be488fc..d301753ac 100644
--- a/helm/chart/maesh/templates/coredns/coredns-deployment.yaml
+++ b/helm/chart/mesh/templates/coredns/coredns-deployment.yaml
@@ -8,7 +8,7 @@ metadata:
labels:
app: maesh
component: coredns
- chart: {{ include "maesh.chartLabel" . | quote }}
+ chart: {{ include "traefikMesh.chartLabel" . | quote }}
release: {{ .Release.Name | quote}}
heritage: {{ .Release.Service | quote}}
spec:
@@ -29,7 +29,7 @@ spec:
component: coredns
release: {{ .Release.Name | quote }}
spec:
- serviceAccountName: maesh-coredns
+ serviceAccountName: traefik-mesh-coredns
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
diff --git a/helm/chart/maesh/templates/coredns/coredns-rbac.yaml b/helm/chart/mesh/templates/coredns/coredns-rbac.yaml
similarity index 79%
rename from helm/chart/maesh/templates/coredns/coredns-rbac.yaml
rename to helm/chart/mesh/templates/coredns/coredns-rbac.yaml
index 766c56306..6c03def0c 100644
--- a/helm/chart/maesh/templates/coredns/coredns-rbac.yaml
+++ b/helm/chart/mesh/templates/coredns/coredns-rbac.yaml
@@ -6,10 +6,10 @@ metadata:
labels:
app: maesh
component: coredns
- chart: {{ include "maesh.chartLabel" . | quote }}
+ chart: {{ include "traefikMesh.chartLabel" . | quote }}
release: {{ .Release.Name | quote}}
heritage: {{ .Release.Service | quote}}
- name: maesh-coredns-role
+ name: traefik-mesh-coredns-role
namespace: {{ .Release.Namespace }}
rules:
- apiGroups:
@@ -33,12 +33,12 @@ rules:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
- name: maesh-coredns
+ name: traefik-mesh-coredns
namespace: {{ .Release.Namespace }}
labels:
app: maesh
component: coredns
- chart: {{ include "maesh.chartLabel" . | quote }}
+ chart: {{ include "traefikMesh.chartLabel" . | quote }}
release: {{ .Release.Name | quote}}
heritage: {{ .Release.Service | quote}}
annotations:
@@ -46,9 +46,9 @@ metadata:
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
- name: maesh-coredns-role
+ name: traefik-mesh-coredns-role
subjects:
- kind: ServiceAccount
- name: maesh-coredns
+ name: traefik-mesh-coredns
namespace: {{ .Release.Namespace }}
{{- end }}
diff --git a/helm/chart/maesh/templates/coredns/coredns-sa.yaml b/helm/chart/mesh/templates/coredns/coredns-sa.yaml
similarity index 74%
rename from helm/chart/maesh/templates/coredns/coredns-sa.yaml
rename to helm/chart/mesh/templates/coredns/coredns-sa.yaml
index b6af36f4c..7d24e2d2f 100644
--- a/helm/chart/maesh/templates/coredns/coredns-sa.yaml
+++ b/helm/chart/mesh/templates/coredns/coredns-sa.yaml
@@ -3,12 +3,12 @@
apiVersion: v1
kind: ServiceAccount
metadata:
- name: maesh-coredns
+ name: traefik-mesh-coredns
namespace: {{ .Release.Namespace }}
labels:
app: maesh
component: coredns
- chart: {{ include "maesh.chartLabel" . | quote }}
+ chart: {{ include "traefikMesh.chartLabel" . | quote }}
release: {{ .Release.Name | quote}}
heritage: {{ .Release.Service | quote}}
{{- end}}
diff --git a/helm/chart/maesh/templates/coredns/coredns-service.yaml b/helm/chart/mesh/templates/coredns/coredns-service.yaml
similarity index 91%
rename from helm/chart/maesh/templates/coredns/coredns-service.yaml
rename to helm/chart/mesh/templates/coredns/coredns-service.yaml
index e0f3fb3ca..50af41dc5 100644
--- a/helm/chart/maesh/templates/coredns/coredns-service.yaml
+++ b/helm/chart/mesh/templates/coredns/coredns-service.yaml
@@ -8,7 +8,7 @@ metadata:
labels:
app: maesh
component: coredns
- chart: {{ include "maesh.chartLabel" . | quote }}
+ chart: {{ include "traefikMesh.chartLabel" . | quote }}
release: {{ .Release.Name | quote}}
heritage: {{ .Release.Service | quote}}
annotations:
diff --git a/helm/chart/maesh/templates/mesh/mesh-daemonset.yaml b/helm/chart/mesh/templates/proxy/proxy-daemonset.yaml
similarity index 84%
rename from helm/chart/maesh/templates/mesh/mesh-daemonset.yaml
rename to helm/chart/mesh/templates/proxy/proxy-daemonset.yaml
index b4099a8a9..0cbe9c7c6 100644
--- a/helm/chart/maesh/templates/mesh/mesh-daemonset.yaml
+++ b/helm/chart/mesh/templates/proxy/proxy-daemonset.yaml
@@ -2,15 +2,15 @@
apiVersion: apps/v1
kind: DaemonSet
metadata:
- name: maesh-mesh
+ name: traefik-mesh-proxy
namespace: {{ .Release.Namespace }}
labels:
app: maesh
component: maesh-mesh
- chart: {{ include "maesh.chartLabel" . | quote }}
+ chart: {{ include "traefikMesh.chartLabel" . | quote }}
release: {{ .Release.Name | quote }}
heritage: {{ .Release.Service | quote }}
- {{- with .Values.mesh.annotations }}
+ {{- with .Values.proxy.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
@@ -29,36 +29,36 @@ spec:
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "8080"
- {{- with .Values.mesh.podAnnotations }}
+ {{- with .Values.proxy.podAnnotations }}
{{- toYaml . | nindent 8 }}
{{- end }}
spec:
- serviceAccountName: maesh-mesh
+ serviceAccountName: traefik-mesh-proxy
securityContext:
runAsNonRoot: true
runAsUser: 999
terminationGracePeriodSeconds: 30
- {{- if .Values.mesh.image.pullSecret }}
+ {{- if .Values.proxy.image.pullSecret }}
imagePullSecrets:
- - name: {{ .Values.mesh.image.pullSecret }}
+ - name: {{ .Values.proxy.image.pullSecret }}
{{- end }}
- {{- with .Values.mesh.nodeSelector }}
+ {{- with .Values.proxy.nodeSelector }}
nodeSelector:
{{ toYaml . | indent 8 }}
{{- end }}
- {{- with .Values.mesh.tolerations }}
+ {{- with .Values.proxy.tolerations }}
tolerations:
{{ toYaml . | indent 8 }}
{{- end }}
containers:
- - name: maesh-mesh
- image: {{ include "maesh.meshImage" . | quote }}
- imagePullPolicy: {{ .Values.mesh.image.pullPolicy | default "IfNotPresent" }}
- {{- with .Values.mesh.env }}
+ - name: traefik-mesh-proxy
+ image: {{ include "traefikMesh.proxyImage" . | quote }}
+ imagePullPolicy: {{ .Values.proxy.image.pullPolicy | default "IfNotPresent" }}
+ {{- with .Values.proxy.env }}
env:
{{- toYaml . | nindent 12 }}
{{- end }}
- {{- with .Values.mesh.envFrom }}
+ {{- with .Values.proxy.envFrom }}
envFrom:
{{- toYaml . | nindent 12 }}
{{- end }}
@@ -76,12 +76,12 @@ spec:
{{- range $i, $port := untilStep 15000 ((add (.Values.limits.udp|int) 15000)|int) 1 }}
- {{ printf "\"--entryPoints.udp-%d.address=:%d/udp\"" $port $port }}
{{- end }}
- - {{ printf "--providers.http.endpoint=http://maesh-controller.%s.svc.%s:9000/api/configuration/current" .Release.Namespace (default "cluster.local" .Values.clusterDomain) | quote }}
- {{- if .Values.mesh.pollInterval }}
- - "--providers.http.pollInterval={{ .Values.mesh.pollInterval }}"
+ - {{ printf "--providers.http.endpoint=http://traefik-mesh-controller.%s.svc.%s:9000/api/configuration/current" .Release.Namespace (default "cluster.local" .Values.clusterDomain) | quote }}
+ {{- if .Values.proxy.pollInterval }}
+ - "--providers.http.pollInterval={{ .Values.proxy.pollInterval }}"
{{- end }}
- {{- if .Values.mesh.pollTimeout }}
- - "--providers.http.pollTimeout={{ .Values.mesh.pollTimeout }}"
+ {{- if .Values.proxy.pollTimeout }}
+ - "--providers.http.pollTimeout={{ .Values.proxy.pollTimeout }}"
{{- end }}
{{- if .Values.tracing.jaeger.enabled }}
{{- if .Values.tracing.jaeger.localAgentHostPort }}
@@ -161,22 +161,22 @@ spec:
- "--api.dashboard=false"
- "--api.insecure"
- "--ping"
- {{- if .Values.mesh.forwardingTimeouts }}
- {{- if .Values.mesh.forwardingTimeouts.dialTimeout }}
- - "--serversTransport.forwardingTimeouts.dialTimeout={{ .Values.mesh.forwardingTimeouts.dialTimeout }}"
+ {{- if .Values.proxy.forwardingTimeouts }}
+ {{- if .Values.proxy.forwardingTimeouts.dialTimeout }}
+ - "--serversTransport.forwardingTimeouts.dialTimeout={{ .Values.proxy.forwardingTimeouts.dialTimeout }}"
{{- end }}
- {{- if .Values.mesh.forwardingTimeouts.responseHeaderTimeout }}
- - "--serversTransport.forwardingTimeouts.responseHeaderTimeout={{ .Values.mesh.forwardingTimeouts.responseHeaderTimeout }}"
+ {{- if .Values.proxy.forwardingTimeouts.responseHeaderTimeout }}
+ - "--serversTransport.forwardingTimeouts.responseHeaderTimeout={{ .Values.proxy.forwardingTimeouts.responseHeaderTimeout }}"
{{- end }}
- {{- if .Values.mesh.forwardingTimeouts.idleConnTimeout }}
- - "--serversTransport.forwardingTimeouts.idleConnTimeout={{ .Values.mesh.forwardingTimeouts.idleConnTimeout }}"
+ {{- if .Values.proxy.forwardingTimeouts.idleConnTimeout }}
+ - "--serversTransport.forwardingTimeouts.idleConnTimeout={{ .Values.proxy.forwardingTimeouts.idleConnTimeout }}"
{{- end }}
{{- end }}
- {{- if or .Values.mesh.logLevel .Values.logLevel }}
- - "--log.level={{ or .Values.mesh.logLevel .Values.logLevel }}"
+ {{- if or .Values.proxy.logLevel .Values.logLevel }}
+ - "--log.level={{ or .Values.proxy.logLevel .Values.logLevel }}"
{{- end }}
- {{- if or .Values.mesh.logFormat .Values.logFormat }}
- - "--log.format={{ or .Values.mesh.logFormat .Values.logFormat }}"
+ {{- if or .Values.proxy.logFormat .Values.logFormat }}
+ - "--log.format={{ or .Values.proxy.logFormat .Values.logFormat }}"
{{- end }}
{{- if .Values.metrics.prometheus.enabled }}
- "--metrics.prometheus=true"
@@ -253,7 +253,7 @@ spec:
- "--metrics.statsd.prefix={{ .Values.metrics.statsd.prefix }}"
{{- end }}
{{- end }}
- {{- with .Values.mesh.additionalArguments }}
+ {{- with .Values.proxy.additionalArguments }}
{{- range . }}
- {{ . | quote }}
{{- end }}
@@ -278,8 +278,8 @@ spec:
periodSeconds: 1
resources:
requests:
- memory: {{ .Values.mesh.resources.request.mem }}
- cpu: {{ .Values.mesh.resources.request.cpu }}
+ memory: {{ .Values.proxy.resources.request.mem }}
+ cpu: {{ .Values.proxy.resources.request.cpu }}
limits:
- memory: {{ .Values.mesh.resources.limit.mem }}
- cpu: {{ .Values.mesh.resources.limit.cpu }}
+ memory: {{ .Values.proxy.resources.limit.mem }}
+ cpu: {{ .Values.proxy.resources.limit.cpu }}
diff --git a/helm/chart/maesh/templates/mesh/mesh-sa.yaml b/helm/chart/mesh/templates/proxy/proxy-sa.yaml
similarity index 75%
rename from helm/chart/maesh/templates/mesh/mesh-sa.yaml
rename to helm/chart/mesh/templates/proxy/proxy-sa.yaml
index 8d33544b6..45f7a87ee 100644
--- a/helm/chart/maesh/templates/mesh/mesh-sa.yaml
+++ b/helm/chart/mesh/templates/proxy/proxy-sa.yaml
@@ -2,12 +2,12 @@
apiVersion: v1
kind: ServiceAccount
metadata:
- name: maesh-mesh
+ name: traefik-mesh-proxy
namespace: {{ .Release.Namespace }}
labels:
app: maesh
component: maesh-mesh
- chart: {{ include "maesh.chartLabel" . | quote}}
+ chart: {{ include "traefikMesh.chartLabel" . | quote}}
release: {{ .Release.Name | quote }}
heritage: {{ .Release.Service | quote }}
automountServiceAccountToken: false
diff --git a/helm/chart/maesh/values.yaml b/helm/chart/mesh/values.yaml
similarity index 98%
rename from helm/chart/maesh/values.yaml
rename to helm/chart/mesh/values.yaml
index 1bbe9d881..3e33e6c38 100644
--- a/helm/chart/maesh/values.yaml
+++ b/helm/chart/mesh/values.yaml
@@ -1,4 +1,4 @@
-# Default values for Maesh.
+# Default values for Traefik Mesh.
# acl: true
@@ -18,7 +18,7 @@ limits:
controller:
image:
- name: containous/maesh
+ name: traefik/mesh
# (Optional)
# pullPolicy: IfNotPresent
# (Optional)
@@ -48,7 +48,7 @@ controller:
tolerations: []
affinity: {}
-mesh:
+proxy:
image:
name: traefik
# (Optional)
diff --git a/integration/acl_disabled_test.go b/integration/acl_disabled_test.go
index 110e34411..3c5a41b6b 100644
--- a/integration/acl_disabled_test.go
+++ b/integration/acl_disabled_test.go
@@ -4,11 +4,11 @@ import (
"net/http"
"time"
- "github.com/containous/maesh/integration/k3d"
- "github.com/containous/maesh/integration/tool"
- "github.com/containous/maesh/integration/try"
"github.com/go-check/check"
"github.com/sirupsen/logrus"
+ "github.com/traefik/mesh/integration/k3d"
+ "github.com/traefik/mesh/integration/tool"
+ "github.com/traefik/mesh/integration/try"
checker "github.com/vdemeester/shakers"
)
@@ -23,11 +23,11 @@ func (s *ACLDisabledSuite) SetUpSuite(c *check.C) {
var err error
requiredImages := []k3d.DockerImage{
- {Name: "containous/maesh:latest", Local: true},
+ {Name: "traefik/mesh:latest", Local: true},
{Name: "traefik:v2.3"},
- {Name: "containous/whoami:v1.0.1"},
- {Name: "containous/whoamitcp:v0.0.2"},
- {Name: "containous/whoamiudp:v0.0.1"},
+ {Name: "traefik/whoami:latest"},
+ {Name: "traefik/whoamitcp:latest"},
+ {Name: "traefik/whoamiudp:latest"},
{Name: "giantswarm/tiny-tools:3.9"},
}
@@ -38,17 +38,17 @@ func (s *ACLDisabledSuite) SetUpSuite(c *check.C) {
)
c.Assert(err, checker.IsNil)
- c.Assert(s.cluster.CreateNamespace(s.logger, maeshNamespace), checker.IsNil)
+ c.Assert(s.cluster.CreateNamespace(s.logger, traefikMeshNamespace), checker.IsNil)
c.Assert(s.cluster.CreateNamespace(s.logger, testNamespace), checker.IsNil)
c.Assert(s.cluster.Apply(s.logger, smiCRDs), checker.IsNil)
c.Assert(s.cluster.Apply(s.logger, "testdata/tool/tool.yaml"), checker.IsNil)
- c.Assert(s.cluster.Apply(s.logger, "testdata/maesh/controller-acl-disabled.yaml"), checker.IsNil)
- c.Assert(s.cluster.Apply(s.logger, "testdata/maesh/proxy.yaml"), checker.IsNil)
+ c.Assert(s.cluster.Apply(s.logger, "testdata/traefik-mesh/controller-acl-disabled.yaml"), checker.IsNil)
+ c.Assert(s.cluster.Apply(s.logger, "testdata/traefik-mesh/proxy.yaml"), checker.IsNil)
c.Assert(s.cluster.WaitReadyPod("tool", testNamespace, 60*time.Second), checker.IsNil)
- c.Assert(s.cluster.WaitReadyDeployment("maesh-controller", maeshNamespace, 60*time.Second), checker.IsNil)
- c.Assert(s.cluster.WaitReadyDaemonSet("maesh-mesh", maeshNamespace, 60*time.Second), checker.IsNil)
+ c.Assert(s.cluster.WaitReadyDeployment("traefik-mesh-controller", traefikMeshNamespace, 60*time.Second), checker.IsNil)
+ c.Assert(s.cluster.WaitReadyDaemonSet("traefik-mesh-proxy", traefikMeshNamespace, 60*time.Second), checker.IsNil)
s.tool = tool.New(s.logger, "tool", testNamespace)
}
@@ -65,7 +65,7 @@ func (s *ACLDisabledSuite) TestHTTPService(c *check.C) {
c.Assert(s.cluster.Apply(s.logger, "testdata/acl_disabled/http"), checker.IsNil)
defer s.cluster.Delete(s.logger, "testdata/acl_disabled/http")
- s.assertHTTPServiceReachable(c, "server-http.test.maesh:8080", "server-http", 60*time.Second)
+ s.assertHTTPServiceReachable(c, "server-http.test.traefik.mesh:8080", "server-http", 60*time.Second)
}
// TestTCPService deploys a TCP service "server" with one Pod called "server" and asserts this service is
@@ -74,7 +74,7 @@ func (s *ACLDisabledSuite) TestTCPService(c *check.C) {
c.Assert(s.cluster.Apply(s.logger, "testdata/acl_disabled/tcp"), checker.IsNil)
defer s.cluster.Delete(s.logger, "testdata/acl_disabled/tcp")
- s.assertTCPServiceReachable(c, "server-tcp.test.maesh", 8080, "server-tcp", 60*time.Second)
+ s.assertTCPServiceReachable(c, "server-tcp.test.traefik.mesh", 8080, "server-tcp", 60*time.Second)
}
// TestUDPService deploys a UDP service "server" with one Pod called "server" and asserts this service is
@@ -83,7 +83,7 @@ func (s *ACLDisabledSuite) TestUDPervice(c *check.C) {
c.Assert(s.cluster.Apply(s.logger, "testdata/acl_disabled/udp"), checker.IsNil)
defer s.cluster.Delete(s.logger, "testdata/acl_disabled/udp")
- s.assertUDPServiceReachable(c, "server-udp.test.maesh", 8080, "server-udp", 60*time.Second)
+ s.assertUDPServiceReachable(c, "server-udp.test.traefik.mesh", 8080, "server-udp", 60*time.Second)
}
// TestSplitTraffic deploys an HTTP service "server" and a TrafficSplit attached to it configured to distribute equally
@@ -93,8 +93,7 @@ func (s *ACLDisabledSuite) TestSplitTraffic(c *check.C) {
c.Assert(s.cluster.Apply(s.logger, "testdata/acl_disabled/traffic-split"), checker.IsNil)
defer s.cluster.Delete(s.logger, "testdata/acl_disabled/traffic-split")
- s.assertHTTPServiceReachable(c, "server-split.test.maesh:8080", "server-v1", 60*time.Second)
- s.assertHTTPServiceReachable(c, "server-split.test.maesh:8080", "server-v2", 30*time.Second)
+ s.assertHTTPServiceReachable(c, "server-split.test.traefik.mesh:8080", "server-v1", 60*time.Second)
}
func (s *ACLDisabledSuite) assertHTTPServiceReachable(c *check.C, url, expectedHostname string, timeout time.Duration) {
diff --git a/integration/acl_enabled_test.go b/integration/acl_enabled_test.go
index d0d4f0046..2bb87ace8 100644
--- a/integration/acl_enabled_test.go
+++ b/integration/acl_enabled_test.go
@@ -4,11 +4,11 @@ import (
"net/http"
"time"
- "github.com/containous/maesh/integration/k3d"
- "github.com/containous/maesh/integration/tool"
- "github.com/containous/maesh/integration/try"
"github.com/go-check/check"
"github.com/sirupsen/logrus"
+ "github.com/traefik/mesh/integration/k3d"
+ "github.com/traefik/mesh/integration/tool"
+ "github.com/traefik/mesh/integration/try"
checker "github.com/vdemeester/shakers"
)
@@ -24,9 +24,9 @@ func (s *ACLEnabledSuite) SetUpSuite(c *check.C) {
var err error
requiredImages := []k3d.DockerImage{
- {Name: "containous/maesh:latest", Local: true},
+ {Name: "traefik/mesh:latest", Local: true},
{Name: "traefik:v2.3"},
- {Name: "containous/whoami:v1.0.1"},
+ {Name: "traefik/whoami:latest"},
{Name: "giantswarm/tiny-tools:3.9"},
}
@@ -37,19 +37,19 @@ func (s *ACLEnabledSuite) SetUpSuite(c *check.C) {
)
c.Assert(err, checker.IsNil)
- c.Assert(s.cluster.CreateNamespace(s.logger, maeshNamespace), checker.IsNil)
+ c.Assert(s.cluster.CreateNamespace(s.logger, traefikMeshNamespace), checker.IsNil)
c.Assert(s.cluster.CreateNamespace(s.logger, testNamespace), checker.IsNil)
c.Assert(s.cluster.Apply(s.logger, smiCRDs), checker.IsNil)
c.Assert(s.cluster.Apply(s.logger, "testdata/tool/tool-authorized.yaml"), checker.IsNil)
c.Assert(s.cluster.Apply(s.logger, "testdata/tool/tool-forbidden.yaml"), checker.IsNil)
- c.Assert(s.cluster.Apply(s.logger, "testdata/maesh/controller-acl-enabled.yaml"), checker.IsNil)
- c.Assert(s.cluster.Apply(s.logger, "testdata/maesh/proxy.yaml"), checker.IsNil)
+ c.Assert(s.cluster.Apply(s.logger, "testdata/traefik-mesh/controller-acl-enabled.yaml"), checker.IsNil)
+ c.Assert(s.cluster.Apply(s.logger, "testdata/traefik-mesh/proxy.yaml"), checker.IsNil)
c.Assert(s.cluster.WaitReadyPod("tool-authorized", testNamespace, 60*time.Second), checker.IsNil)
c.Assert(s.cluster.WaitReadyPod("tool-forbidden", testNamespace, 60*time.Second), checker.IsNil)
- c.Assert(s.cluster.WaitReadyDeployment("maesh-controller", maeshNamespace, 60*time.Second), checker.IsNil)
- c.Assert(s.cluster.WaitReadyDaemonSet("maesh-mesh", maeshNamespace, 60*time.Second), checker.IsNil)
+ c.Assert(s.cluster.WaitReadyDeployment("traefik-mesh-controller", traefikMeshNamespace, 60*time.Second), checker.IsNil)
+ c.Assert(s.cluster.WaitReadyDaemonSet("traefik-mesh-proxy", traefikMeshNamespace, 60*time.Second), checker.IsNil)
s.toolAuthorized = tool.New(s.logger, "tool-authorized", testNamespace)
s.toolForbidden = tool.New(s.logger, "tool-forbidden", testNamespace)
@@ -66,16 +66,16 @@ func (s *ACLEnabledSuite) TestHTTPServiceWithTrafficTarget(c *check.C) {
defer s.cluster.Delete(s.logger, "testdata/acl_enabled/http")
s.logger.Infof("Asserting TrafficTarget with no HTTPRouteGroup are enforced")
- s.assertHTTPServiceStatus(c, s.toolAuthorized, "server-http.test.maesh:8080", nil, http.StatusOK)
- s.assertHTTPServiceStatus(c, s.toolForbidden, "server-http.test.maesh:8080", nil, http.StatusForbidden)
+ s.assertHTTPServiceStatus(c, s.toolAuthorized, "server-http.test.traefik.mesh:8080", nil, http.StatusOK)
+ s.assertHTTPServiceStatus(c, s.toolForbidden, "server-http.test.traefik.mesh:8080", nil, http.StatusForbidden)
s.logger.Infof("Asserting HTTPRouteGroup path filtering is enforced")
- s.assertHTTPServiceStatus(c, s.toolAuthorized, "server-http-api.test.maesh:8080/api", nil, http.StatusOK)
- s.assertHTTPServiceStatus(c, s.toolAuthorized, "server-http-api.test.maesh:8080", nil, http.StatusForbidden)
+ s.assertHTTPServiceStatus(c, s.toolAuthorized, "server-http-api.test.traefik.mesh:8080/api", nil, http.StatusOK)
+ s.assertHTTPServiceStatus(c, s.toolAuthorized, "server-http-api.test.traefik.mesh:8080", nil, http.StatusForbidden)
s.logger.Infof("Asserting HTTPRouteGroup header filtering is enforced")
- s.assertHTTPServiceStatus(c, s.toolAuthorized, "server-http-header.test.maesh:8080", map[string]string{"Authorized": "true"}, http.StatusOK)
- s.assertHTTPServiceStatus(c, s.toolAuthorized, "server-http-header.test.maesh:8080", map[string]string{"Authorized": "false"}, http.StatusForbidden)
+ s.assertHTTPServiceStatus(c, s.toolAuthorized, "server-http-header.test.traefik.mesh:8080", map[string]string{"Authorized": "true"}, http.StatusOK)
+ s.assertHTTPServiceStatus(c, s.toolAuthorized, "server-http-header.test.traefik.mesh:8080", map[string]string{"Authorized": "false"}, http.StatusForbidden)
}
func (s *ACLEnabledSuite) TestHTTPServiceWithTrafficSplit(c *check.C) {
@@ -83,8 +83,8 @@ func (s *ACLEnabledSuite) TestHTTPServiceWithTrafficSplit(c *check.C) {
defer s.cluster.Delete(s.logger, "testdata/acl_enabled/traffic-split")
s.logger.Info("Asserting TrafficTarget is enforced")
- s.assertHTTPServiceStatus(c, s.toolAuthorized, "server-http-split.test.maesh:8080", nil, http.StatusOK)
- s.assertHTTPServiceStatus(c, s.toolForbidden, "server-http-split.test.maesh:8080", nil, http.StatusForbidden)
+ s.assertHTTPServiceStatus(c, s.toolAuthorized, "server-http-split.test.traefik.mesh:8080", nil, http.StatusOK)
+ s.assertHTTPServiceStatus(c, s.toolForbidden, "server-http-split.test.traefik.mesh:8080", nil, http.StatusForbidden)
}
func (s *ACLEnabledSuite) assertHTTPServiceStatus(c *check.C, t *tool.Tool, url string, headers map[string]string, expectedStatus int) {
diff --git a/integration/coredns_test.go b/integration/coredns_test.go
index 243d91de4..0fdca242c 100644
--- a/integration/coredns_test.go
+++ b/integration/coredns_test.go
@@ -5,11 +5,11 @@ import (
"fmt"
"time"
- "github.com/containous/maesh/integration/k3d"
- "github.com/containous/maesh/integration/tool"
- "github.com/containous/maesh/integration/try"
"github.com/go-check/check"
"github.com/sirupsen/logrus"
+ "github.com/traefik/mesh/integration/k3d"
+ "github.com/traefik/mesh/integration/tool"
+ "github.com/traefik/mesh/integration/try"
checker "github.com/vdemeester/shakers"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/util/retry"
@@ -26,7 +26,7 @@ func (s *CoreDNSSuite) SetUpSuite(c *check.C) {
var err error
requiredImages := []k3d.DockerImage{
- {Name: "containous/whoami:v1.0.1"},
+ {Name: "traefik/whoami:latest"},
{Name: "coredns/coredns:1.3.1"},
{Name: "coredns/coredns:1.4.0"},
{Name: "coredns/coredns:1.5.2"},
@@ -42,7 +42,7 @@ func (s *CoreDNSSuite) SetUpSuite(c *check.C) {
)
c.Assert(err, checker.IsNil)
- c.Assert(s.cluster.CreateNamespace(s.logger, maeshNamespace), checker.IsNil)
+ c.Assert(s.cluster.CreateNamespace(s.logger, traefikMeshNamespace), checker.IsNil)
c.Assert(s.cluster.CreateNamespace(s.logger, testNamespace), checker.IsNil)
c.Assert(s.cluster.Apply(s.logger, smiCRDs), checker.IsNil)
@@ -87,13 +87,18 @@ func (s *CoreDNSSuite) testCoreDNSVersion(c *check.C, version string) {
c.Assert(s.setCoreDNSVersion(version), checker.IsNil)
c.Assert(s.cluster.WaitReadyDeployment("coredns", metav1.NamespaceSystem, 60*time.Second), checker.IsNil)
- c.Assert(maeshPrepare(), checker.IsNil)
+ c.Assert(traefikMeshPrepare(), checker.IsNil)
c.Assert(s.cluster.WaitReadyDeployment("coredns", metav1.NamespaceSystem, 60*time.Second), checker.IsNil)
err := try.Retry(func() error {
return s.tool.Dig("whoami.whoami.maesh")
}, 30*time.Second)
c.Assert(err, checker.IsNil)
+
+ err = try.Retry(func() error {
+ return s.tool.Dig("whoami.whoami.traefik.mesh")
+ }, 30*time.Second)
+ c.Assert(err, checker.IsNil)
}
func (s *CoreDNSSuite) setCoreDNSVersion(version string) error {
diff --git a/integration/helm_test.go b/integration/helm_test.go
index ecc0b5500..cb56b57dc 100644
--- a/integration/helm_test.go
+++ b/integration/helm_test.go
@@ -6,9 +6,9 @@ import (
"strings"
"time"
- "github.com/containous/maesh/integration/k3d"
"github.com/go-check/check"
"github.com/sirupsen/logrus"
+ "github.com/traefik/mesh/integration/k3d"
checker "github.com/vdemeester/shakers"
)
@@ -22,7 +22,7 @@ func (s *HelmSuite) SetUpSuite(c *check.C) {
var err error
requiredImages := []k3d.DockerImage{
- {Name: "containous/maesh:latest", Local: true},
+ {Name: "traefik/mesh:latest", Local: true},
{Name: "traefik:v2.3"},
}
@@ -33,7 +33,7 @@ func (s *HelmSuite) SetUpSuite(c *check.C) {
)
c.Assert(err, checker.IsNil)
- c.Assert(s.cluster.CreateNamespace(s.logger, maeshNamespace), checker.IsNil)
+ c.Assert(s.cluster.CreateNamespace(s.logger, traefikMeshNamespace), checker.IsNil)
}
func (s *HelmSuite) TearDownSuite(c *check.C) {
@@ -43,36 +43,36 @@ func (s *HelmSuite) TearDownSuite(c *check.C) {
}
func (s *HelmSuite) TestACLDisabled(c *check.C) {
- s.installHelmMaesh(c, false, false)
- defer s.uninstallHelmMaesh(c)
+ s.installHelmTraefikMesh(c, false, false)
+ defer s.uninstallHelmTraefikMesh(c)
- c.Assert(s.cluster.WaitReadyDeployment("maesh-controller", maeshNamespace, 60*time.Second), checker.IsNil)
- c.Assert(s.cluster.WaitReadyDaemonSet("maesh-mesh", maeshNamespace, 60*time.Second), checker.IsNil)
+ c.Assert(s.cluster.WaitReadyDeployment("traefik-mesh-controller", traefikMeshNamespace, 60*time.Second), checker.IsNil)
+ c.Assert(s.cluster.WaitReadyDaemonSet("traefik-mesh-proxy", traefikMeshNamespace, 60*time.Second), checker.IsNil)
}
func (s *HelmSuite) TestACLEnabled(c *check.C) {
- s.installHelmMaesh(c, true, false)
- defer s.uninstallHelmMaesh(c)
+ s.installHelmTraefikMesh(c, true, false)
+ defer s.uninstallHelmTraefikMesh(c)
- c.Assert(s.cluster.WaitReadyDeployment("maesh-controller", maeshNamespace, 60*time.Second), checker.IsNil)
- c.Assert(s.cluster.WaitReadyDaemonSet("maesh-mesh", maeshNamespace, 60*time.Second), checker.IsNil)
+ c.Assert(s.cluster.WaitReadyDeployment("traefik-mesh-controller", traefikMeshNamespace, 60*time.Second), checker.IsNil)
+ c.Assert(s.cluster.WaitReadyDaemonSet("traefik-mesh-proxy", traefikMeshNamespace, 60*time.Second), checker.IsNil)
}
func (s *HelmSuite) TestKubeDNSEnabled(c *check.C) {
- s.installHelmMaesh(c, false, true)
- defer s.uninstallHelmMaesh(c)
+ s.installHelmTraefikMesh(c, false, true)
+ defer s.uninstallHelmTraefikMesh(c)
- c.Assert(s.cluster.WaitReadyDeployment("maesh-controller", maeshNamespace, 60*time.Second), checker.IsNil)
- c.Assert(s.cluster.WaitReadyDaemonSet("maesh-mesh", maeshNamespace, 60*time.Second), checker.IsNil)
+ c.Assert(s.cluster.WaitReadyDeployment("traefik-mesh-controller", traefikMeshNamespace, 60*time.Second), checker.IsNil)
+ c.Assert(s.cluster.WaitReadyDaemonSet("traefik-mesh-proxy", traefikMeshNamespace, 60*time.Second), checker.IsNil)
}
-func (s *HelmSuite) installHelmMaesh(c *check.C, acl bool, kubeDNS bool) {
- s.logger.Info("Installing Maesh via helm...")
+func (s *HelmSuite) installHelmTraefikMesh(c *check.C, acl bool, kubeDNS bool) {
+ s.logger.Info("Installing Traefik Mesh via helm...")
args := []string{
- "install", "powpow", "../helm/chart/maesh",
- "--values", "testdata/maesh/values.yaml",
- "--namespace", maeshNamespace,
+ "install", "powpow", "../helm/chart/mesh",
+ "--values", "testdata/traefik-mesh/values.yaml",
+ "--namespace", traefikMeshNamespace,
}
if kubeDNS {
@@ -93,12 +93,12 @@ func (s *HelmSuite) installHelmMaesh(c *check.C, acl bool, kubeDNS bool) {
}
}
-func (s *HelmSuite) uninstallHelmMaesh(c *check.C) {
- s.logger.Info("Uninstalling Maesh via helm...")
+func (s *HelmSuite) uninstallHelmTraefikMesh(c *check.C) {
+ s.logger.Info("Uninstalling Traefik Mesh via helm...")
args := []string{
"uninstall", "powpow",
- "--namespace", maeshNamespace,
+ "--namespace", traefikMeshNamespace,
}
cmd := exec.Command("helm", args...)
diff --git a/integration/integration_test.go b/integration/integration_test.go
index e3149d9aa..4e09aabd4 100644
--- a/integration/integration_test.go
+++ b/integration/integration_test.go
@@ -13,14 +13,14 @@ import (
)
var (
- integration = flag.Bool("integration", false, "run integration tests")
- debug = flag.Bool("debug", false, "debug log level")
- masterURL = "https://localhost:8443"
- k3dClusterName = "maesh-integration"
- maeshNamespace = "maesh"
- maeshBinary = "../dist/maesh"
- smiCRDs = "../helm/chart/maesh/crds/"
- testNamespace = "test"
+ integration = flag.Bool("integration", false, "run integration tests")
+ debug = flag.Bool("debug", false, "debug log level")
+ masterURL = "https://localhost:8443"
+ k3dClusterName = "traefik-mesh-integration"
+ traefikMeshNamespace = "traefik-mesh"
+ traefikMeshBinary = "../dist/traefik-mesh"
+ smiCRDs = "../helm/chart/mesh/crds/"
+ testNamespace = "test"
)
func Test(t *testing.T) {
@@ -42,22 +42,22 @@ func Test(t *testing.T) {
check.TestingT(t)
}
-func maeshPrepare() error {
+func traefikMeshPrepare() error {
args := []string{
"prepare",
"--masterurl=" + masterURL,
"--kubeconfig=" + os.Getenv("KUBECONFIG"),
"--loglevel=debug",
"--clusterdomain=cluster.local",
- "--namespace=" + maeshNamespace,
+ "--namespace=" + traefikMeshNamespace,
}
- cmd := exec.Command(maeshBinary, args...)
+ cmd := exec.Command(traefikMeshBinary, args...)
cmd.Env = os.Environ()
output, err := cmd.CombinedOutput()
if err != nil {
- return fmt.Errorf("maesh prepare has failed - %s: %w", string(output), err)
+ return fmt.Errorf("traefik mesh prepare has failed - %s: %w", string(output), err)
}
return nil
diff --git a/integration/k3d/k3d.go b/integration/k3d/k3d.go
index 50bc40fc0..f76192ac8 100644
--- a/integration/k3d/k3d.go
+++ b/integration/k3d/k3d.go
@@ -10,9 +10,9 @@ import (
"strings"
"time"
- "github.com/containous/maesh/integration/try"
- "github.com/containous/maesh/pkg/k8s"
"github.com/sirupsen/logrus"
+ "github.com/traefik/mesh/integration/try"
+ "github.com/traefik/mesh/pkg/k8s"
corev1 "k8s.io/api/core/v1"
kubeerror "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
diff --git a/integration/kubedns_test.go b/integration/kubedns_test.go
index 482d7ba60..58731f6fb 100644
--- a/integration/kubedns_test.go
+++ b/integration/kubedns_test.go
@@ -3,11 +3,11 @@ package integration
import (
"time"
- "github.com/containous/maesh/integration/k3d"
- "github.com/containous/maesh/integration/tool"
- "github.com/containous/maesh/integration/try"
"github.com/go-check/check"
"github.com/sirupsen/logrus"
+ "github.com/traefik/mesh/integration/k3d"
+ "github.com/traefik/mesh/integration/tool"
+ "github.com/traefik/mesh/integration/try"
checker "github.com/vdemeester/shakers"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
@@ -23,7 +23,7 @@ func (s *KubeDNSSuite) SetUpSuite(c *check.C) {
var err error
requiredImages := []k3d.DockerImage{
- {Name: "containous/whoami:v1.0.1"},
+ {Name: "traefik/whoami:latest"},
{Name: "coredns/coredns:1.6.3"},
{Name: "giantswarm/tiny-tools:3.9"},
{Name: "gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.7"},
@@ -39,7 +39,7 @@ func (s *KubeDNSSuite) SetUpSuite(c *check.C) {
)
c.Assert(err, checker.IsNil)
- c.Assert(s.cluster.CreateNamespace(s.logger, maeshNamespace), checker.IsNil)
+ c.Assert(s.cluster.CreateNamespace(s.logger, traefikMeshNamespace), checker.IsNil)
c.Assert(s.cluster.CreateNamespace(s.logger, testNamespace), checker.IsNil)
c.Assert(s.cluster.Apply(s.logger, smiCRDs), checker.IsNil)
@@ -49,7 +49,7 @@ func (s *KubeDNSSuite) SetUpSuite(c *check.C) {
c.Assert(s.cluster.WaitReadyPod("tool", testNamespace, 60*time.Second), checker.IsNil)
c.Assert(s.cluster.WaitReadyDeployment("kube-dns", metav1.NamespaceSystem, 60*time.Second), checker.IsNil)
- c.Assert(s.cluster.WaitReadyDeployment("coredns", maeshNamespace, 60*time.Second), checker.IsNil)
+ c.Assert(s.cluster.WaitReadyDeployment("coredns", traefikMeshNamespace, 60*time.Second), checker.IsNil)
s.tool = tool.New(s.logger, "tool", testNamespace)
}
@@ -63,7 +63,7 @@ func (s *KubeDNSSuite) TearDownSuite(c *check.C) {
func (s *KubeDNSSuite) TestKubeDNSDig(c *check.C) {
s.logger.Info("Asserting KubeDNS has been patched successfully and can be dug")
- c.Assert(maeshPrepare(), checker.IsNil)
+ c.Assert(traefikMeshPrepare(), checker.IsNil)
// Wait for kubeDNS, as the pods will be restarted by prepare.
c.Assert(s.cluster.WaitReadyDeployment("kube-dns", metav1.NamespaceSystem, 60*time.Second), checker.IsNil)
@@ -72,4 +72,9 @@ func (s *KubeDNSSuite) TestKubeDNSDig(c *check.C) {
return s.tool.Dig("whoami.whoami.maesh")
}, 60*time.Second)
c.Assert(err, checker.IsNil)
+
+ err = try.Retry(func() error {
+ return s.tool.Dig("whoami.whoami.traefik.mesh")
+ }, 60*time.Second)
+ c.Assert(err, checker.IsNil)
}
diff --git a/integration/testdata/acl_disabled/http/1.server.yaml b/integration/testdata/acl_disabled/http/1.server.yaml
index 4f1a98378..612f59097 100644
--- a/integration/testdata/acl_disabled/http/1.server.yaml
+++ b/integration/testdata/acl_disabled/http/1.server.yaml
@@ -9,7 +9,7 @@ metadata:
spec:
containers:
- name: server-http
- image: containous/whoami:v1.0.1
+ image: traefik/whoami:latest
imagePullPolicy: IfNotPresent
readinessProbe:
httpGet:
@@ -32,4 +32,4 @@ spec:
name: server-http
targetPort: 80
selector:
- app: server-http
\ No newline at end of file
+ app: server-http
diff --git a/integration/testdata/acl_disabled/tcp/1.server.yaml b/integration/testdata/acl_disabled/tcp/1.server.yaml
index d167494a9..62ff5c21c 100644
--- a/integration/testdata/acl_disabled/tcp/1.server.yaml
+++ b/integration/testdata/acl_disabled/tcp/1.server.yaml
@@ -9,7 +9,7 @@ metadata:
spec:
containers:
- name: server-tcp
- image: containous/whoamitcp:v0.0.2
+ image: traefik/whoamitcp:latest
imagePullPolicy: IfNotPresent
readinessProbe:
tcpSocket:
@@ -26,7 +26,7 @@ metadata:
app: server-tcp
plop: cool
annotations:
- maesh.containo.us/traffic-type: tcp
+ mesh.traefik.io/traffic-type: tcp
spec:
type: ClusterIP
ports:
diff --git a/integration/testdata/acl_disabled/traffic-split/2.server-v1.yaml b/integration/testdata/acl_disabled/traffic-split/2.server-v1.yaml
index c097646ca..cecdcea5e 100644
--- a/integration/testdata/acl_disabled/traffic-split/2.server-v1.yaml
+++ b/integration/testdata/acl_disabled/traffic-split/2.server-v1.yaml
@@ -9,7 +9,7 @@ metadata:
spec:
containers:
- name: server-v1
- image: containous/whoami:v1.0.1
+ image: traefik/whoami:latest
imagePullPolicy: IfNotPresent
readinessProbe:
httpGet:
diff --git a/integration/testdata/acl_disabled/traffic-split/3.server-v2.yaml b/integration/testdata/acl_disabled/traffic-split/3.server-v2.yaml
index f4c1b5f30..1f2ab4ecc 100644
--- a/integration/testdata/acl_disabled/traffic-split/3.server-v2.yaml
+++ b/integration/testdata/acl_disabled/traffic-split/3.server-v2.yaml
@@ -9,7 +9,7 @@ metadata:
spec:
containers:
- name: server-v2
- image: containous/whoami:v1.0.1
+ image: traefik/whoami:latest
imagePullPolicy: IfNotPresent
readinessProbe:
httpGet:
diff --git a/integration/testdata/acl_disabled/udp/1.server.yaml b/integration/testdata/acl_disabled/udp/1.server.yaml
index fbdce4e40..869ea1ded 100644
--- a/integration/testdata/acl_disabled/udp/1.server.yaml
+++ b/integration/testdata/acl_disabled/udp/1.server.yaml
@@ -9,7 +9,7 @@ metadata:
spec:
containers:
- name: server-udp
- image: containous/whoamiudp:v0.0.1
+ image: traefik/whoamiudp:latest
imagePullPolicy: IfNotPresent
ports:
- name: udp
@@ -25,7 +25,7 @@ metadata:
app: server-udp
plop: cool
annotations:
- maesh.containo.us/traffic-type: udp
+ mesh.traefik.io/traffic-type: udp
spec:
type: ClusterIP
ports:
diff --git a/integration/testdata/acl_enabled/http/1.server.yaml b/integration/testdata/acl_enabled/http/1.server.yaml
index c45906241..33fdb7079 100644
--- a/integration/testdata/acl_enabled/http/1.server.yaml
+++ b/integration/testdata/acl_enabled/http/1.server.yaml
@@ -10,7 +10,7 @@ spec:
serviceAccountName: server
containers:
- name: server-http
- image: containous/whoami:v1.0.1
+ image: traefik/whoami:latest
imagePullPolicy: IfNotPresent
readinessProbe:
httpGet:
@@ -33,4 +33,4 @@ spec:
name: server-http
targetPort: 80
selector:
- app: server-http
\ No newline at end of file
+ app: server-http
diff --git a/integration/testdata/acl_enabled/http/3.server-api.yaml b/integration/testdata/acl_enabled/http/3.server-api.yaml
index b5a9a54ad..c6e2b5e63 100644
--- a/integration/testdata/acl_enabled/http/3.server-api.yaml
+++ b/integration/testdata/acl_enabled/http/3.server-api.yaml
@@ -10,7 +10,7 @@ spec:
serviceAccountName: server-api
containers:
- name: server-http-api
- image: containous/whoami:v1.0.1
+ image: traefik/whoami:latest
imagePullPolicy: IfNotPresent
readinessProbe:
httpGet:
@@ -33,4 +33,4 @@ spec:
name: server-http-api
targetPort: 80
selector:
- app: server-http-api
\ No newline at end of file
+ app: server-http-api
diff --git a/integration/testdata/acl_enabled/http/4.server-header.yaml b/integration/testdata/acl_enabled/http/4.server-header.yaml
index 53272e8b4..8294560ea 100644
--- a/integration/testdata/acl_enabled/http/4.server-header.yaml
+++ b/integration/testdata/acl_enabled/http/4.server-header.yaml
@@ -10,7 +10,7 @@ spec:
serviceAccountName: server-header
containers:
- name: server-http-header
- image: containous/whoami:v1.0.1
+ image: traefik/whoami:latest
imagePullPolicy: IfNotPresent
readinessProbe:
httpGet:
@@ -33,4 +33,4 @@ spec:
name: server-http-header
targetPort: 80
selector:
- app: server-http-header
\ No newline at end of file
+ app: server-http-header
diff --git a/integration/testdata/acl_enabled/traffic-split/1.server-split.yaml b/integration/testdata/acl_enabled/traffic-split/1.server-split.yaml
index 03189dc29..b412fe7da 100644
--- a/integration/testdata/acl_enabled/traffic-split/1.server-split.yaml
+++ b/integration/testdata/acl_enabled/traffic-split/1.server-split.yaml
@@ -26,7 +26,7 @@ spec:
serviceAccountName: server-split
containers:
- name: server-http-split-v1
- image: containous/whoami:v1.0.1
+ image: traefik/whoami:latest
imagePullPolicy: IfNotPresent
readinessProbe:
httpGet:
@@ -63,7 +63,7 @@ spec:
serviceAccountName: server-split
containers:
- name: server-http-split-v2
- image: containous/whoami:v1.0.1
+ image: traefik/whoami:latest
imagePullPolicy: IfNotPresent
readinessProbe:
httpGet:
@@ -116,4 +116,4 @@ spec:
sources:
- kind: ServiceAccount
name: tool-authorized
- namespace: test
\ No newline at end of file
+ namespace: test
diff --git a/integration/testdata/coredns/whoami-shadow-service.yaml b/integration/testdata/coredns/whoami-shadow-service.yaml
index 3451259d6..9544f39ed 100644
--- a/integration/testdata/coredns/whoami-shadow-service.yaml
+++ b/integration/testdata/coredns/whoami-shadow-service.yaml
@@ -2,8 +2,8 @@
apiVersion: v1
kind: Service
metadata:
- name: maesh-whoami-6d61657368-whoami
- namespace: maesh
+ name: traefik-mesh-whoami-6d61657368-whoami
+ namespace: traefik-mesh
labels:
app: maesh
type: shadow
@@ -14,4 +14,4 @@ spec:
name: whoami
targetPort: 80
selector:
- app: maesh-mesh
\ No newline at end of file
+ app: traefik-mesh-proxy
diff --git a/integration/testdata/kubedns/coredns.yaml b/integration/testdata/kubedns/coredns.yaml
index ecc1bbd05..d54b15cc7 100644
--- a/integration/testdata/kubedns/coredns.yaml
+++ b/integration/testdata/kubedns/coredns.yaml
@@ -3,7 +3,7 @@ apiVersion: v1
kind: ServiceAccount
metadata:
name: coredns
- namespace: maesh
+ namespace: traefik-mesh
---
apiVersion: rbac.authorization.k8s.io/v1beta1
@@ -46,13 +46,13 @@ roleRef:
subjects:
- kind: ServiceAccount
name: coredns
- namespace: maesh
+ namespace: traefik-mesh
---
apiVersion: v1
kind: ConfigMap
metadata:
name: coredns
- namespace: maesh
+ namespace: traefik-mesh
data:
Corefile: |
.:53 {
@@ -76,7 +76,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
name: coredns
- namespace: maesh
+ namespace: traefik-mesh
labels:
k8s-app: coredns
kubernetes.io/name: "CoreDNS"
@@ -167,7 +167,7 @@ apiVersion: v1
kind: Service
metadata:
name: coredns
- namespace: maesh
+ namespace: traefik-mesh
annotations:
prometheus.io/port: "9153"
prometheus.io/scrape: "true"
diff --git a/integration/testdata/maesh/controller-acl-disabled.yaml b/integration/testdata/traefik-mesh/controller-acl-disabled.yaml
similarity index 76%
rename from integration/testdata/maesh/controller-acl-disabled.yaml
rename to integration/testdata/traefik-mesh/controller-acl-disabled.yaml
index 8fb5fd9cd..5bddab682 100644
--- a/integration/testdata/maesh/controller-acl-disabled.yaml
+++ b/integration/testdata/traefik-mesh/controller-acl-disabled.yaml
@@ -2,8 +2,8 @@
apiVersion: v1
kind: ServiceAccount
metadata:
- name: maesh-controller
- namespace: maesh
+ name: traefik-mesh-controller
+ namespace: traefik-mesh
labels:
app: maesh
component: controller
@@ -12,8 +12,8 @@ metadata:
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
- name: maesh-controller-role
- namespace: maesh
+ name: traefik-mesh-controller-role
+ namespace: traefik-mesh
labels:
app: maesh
component: controller
@@ -26,13 +26,6 @@ rules:
verbs:
- list
- watch
- - apiGroups:
- - ""
- resources:
- - namespaces
- verbs:
- - get
- - create
- apiGroups:
- ""
resources:
@@ -41,8 +34,6 @@ rules:
- get
- create
- update
- - list
- - watch
- apiGroups:
- ""
resources:
@@ -61,7 +52,6 @@ rules:
verbs:
- get
- update
- - create
- apiGroups:
- access.smi-spec.io
- specs.smi-spec.io
@@ -80,26 +70,26 @@ rules:
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
- name: maesh-controller
- namespace: maesh
+ name: traefik-mesh-controller
+ namespace: traefik-mesh
labels:
app: maesh
component: controller
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
- name: maesh-controller-role
+ name: traefik-mesh-controller-role
subjects:
- kind: ServiceAccount
- name: maesh-controller
- namespace: maesh
+ name: traefik-mesh-controller
+ namespace: traefik-mesh
---
apiVersion: apps/v1
kind: Deployment
metadata:
- name: maesh-controller
- namespace: maesh
+ name: traefik-mesh-controller
+ namespace: traefik-mesh
labels:
app: maesh
component: controller
@@ -115,16 +105,15 @@ spec:
app: maesh
component: controller
spec:
- serviceAccountName: maesh-controller
- automountServiceAccountToken: true
+ serviceAccountName: traefik-mesh-controller
containers:
- - name: maesh-controller
- image: "containous/maesh:latest"
+ - name: traefik-mesh-controller
+ image: "traefik/mesh:latest"
imagePullPolicy: IfNotPresent
args:
- "--logLevel=DEBUG"
- "--defaultMode=http"
- - "--namespace=maesh"
+ - "--namespace=traefik-mesh"
- "--limitHTTPPort=5"
- "--limitTCPPort=5"
- "--limitUDPPort=5"
@@ -138,21 +127,21 @@ spec:
initialDelaySeconds: 3
periodSeconds: 1
initContainers:
- - name: maesh-prepare
- image: "containous/maesh:latest"
+ - name: traefik-mesh-prepare
+ image: "traefik/mesh:latest"
imagePullPolicy: IfNotPresent
args:
- "prepare"
- "--logLevel=DEBUG"
- "--clusterdomain=cluster.local"
- - "--namespace=maesh"
+ - "--namespace=traefik-mesh"
---
apiVersion: v1
kind: Service
metadata:
- name: maesh-controller
- namespace: maesh
+ name: traefik-mesh-controller
+ namespace: traefik-mesh
labels:
app: maesh
component: controller
diff --git a/integration/testdata/maesh/controller-acl-enabled.yaml b/integration/testdata/traefik-mesh/controller-acl-enabled.yaml
similarity index 78%
rename from integration/testdata/maesh/controller-acl-enabled.yaml
rename to integration/testdata/traefik-mesh/controller-acl-enabled.yaml
index e3271b429..8ad41d7d7 100644
--- a/integration/testdata/maesh/controller-acl-enabled.yaml
+++ b/integration/testdata/traefik-mesh/controller-acl-enabled.yaml
@@ -2,8 +2,8 @@
apiVersion: v1
kind: ServiceAccount
metadata:
- name: maesh-controller
- namespace: maesh
+ name: traefik-mesh-controller
+ namespace: traefik-mesh
labels:
app: maesh
component: controller
@@ -12,8 +12,8 @@ metadata:
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
- name: maesh-controller-role
- namespace: maesh
+ name: traefik-mesh-controller-role
+ namespace: traefik-mesh
labels:
app: maesh
component: controller
@@ -26,13 +26,6 @@ rules:
verbs:
- list
- watch
- - apiGroups:
- - ""
- resources:
- - namespaces
- verbs:
- - get
- - create
- apiGroups:
- ""
resources:
@@ -41,8 +34,6 @@ rules:
- get
- create
- update
- - list
- - watch
- apiGroups:
- ""
resources:
@@ -61,7 +52,6 @@ rules:
verbs:
- get
- update
- - create
- apiGroups:
- access.smi-spec.io
- specs.smi-spec.io
@@ -80,26 +70,26 @@ rules:
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
- name: maesh-controller
- namespace: maesh
+ name: traefik-mesh-controller
+ namespace: traefik-mesh
labels:
app: maesh
component: controller
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
- name: maesh-controller-role
+ name: traefik-mesh-controller-role
subjects:
- kind: ServiceAccount
- name: maesh-controller
- namespace: maesh
+ name: traefik-mesh-controller
+ namespace: traefik-mesh
---
apiVersion: apps/v1
kind: Deployment
metadata:
- name: maesh-controller
- namespace: maesh
+ name: traefik-mesh-controller
+ namespace: traefik-mesh
labels:
app: maesh
component: controller
@@ -115,16 +105,16 @@ spec:
app: maesh
component: controller
spec:
- serviceAccountName: maesh-controller
+ serviceAccountName: traefik-mesh-controller
automountServiceAccountToken: true
containers:
- - name: maesh-controller
- image: "containous/maesh:latest"
+ - name: traefik-mesh-controller
+ image: "traefik/mesh:latest"
imagePullPolicy: IfNotPresent
args:
- "--logLevel=DEBUG"
- "--defaultMode=http"
- - "--namespace=maesh"
+ - "--namespace=traefik-mesh"
- "--acl"
- "--limitHTTPPort=5"
- "--limitTCPPort=5"
@@ -139,22 +129,22 @@ spec:
initialDelaySeconds: 3
periodSeconds: 1
initContainers:
- - name: maesh-prepare
- image: "containous/maesh:latest"
+ - name: traefik-mesh-prepare
+ image: "traefik/mesh:latest"
imagePullPolicy: IfNotPresent
args:
- "prepare"
- "--logLevel=DEBUG"
- "--clusterdomain=cluster.local"
- - "--namespace=maesh"
+ - "--namespace=traefik-mesh"
- "--acl"
---
apiVersion: v1
kind: Service
metadata:
- name: maesh-controller
- namespace: maesh
+ name: traefik-mesh-controller
+ namespace: traefik-mesh
labels:
app: maesh
component: controller
diff --git a/integration/testdata/maesh/proxy.yaml b/integration/testdata/traefik-mesh/proxy.yaml
similarity index 85%
rename from integration/testdata/maesh/proxy.yaml
rename to integration/testdata/traefik-mesh/proxy.yaml
index 27983e271..f76001b11 100644
--- a/integration/testdata/maesh/proxy.yaml
+++ b/integration/testdata/traefik-mesh/proxy.yaml
@@ -2,18 +2,19 @@
apiVersion: v1
kind: ServiceAccount
metadata:
- name: maesh-mesh
- namespace: maesh
+ name: traefik-mesh-proxy
+ namespace: traefik-mesh
labels:
app: maesh
component: maesh-mesh
+automountServiceAccountToken: false
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
- name: maesh-mesh-role
- namespace: maesh
+ name: traefik-mesh-proxy-role
+ namespace: traefik-mesh
labels:
app: maesh
component: maesh-mesh
@@ -29,26 +30,26 @@ rules:
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
- name: maesh-mesh
- namespace: maesh
+ name: traefik-mesh-proxy
+ namespace: traefik-mesh
labels:
app: maesh
component: maesh-mesh
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
- name: maesh-mesh-role
+ name: traefik-mesh-proxy-role
subjects:
- kind: ServiceAccount
- name: maesh-mesh
- namespace: maesh
+ name: traefik-mesh-proxy
+ namespace: traefik-mesh
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
- name: maesh-mesh
- namespace: maesh
+ name: traefik-mesh-proxy
+ namespace: traefik-mesh
labels:
app: maesh
component: maesh-mesh
@@ -63,11 +64,10 @@ spec:
app: maesh
component: maesh-mesh
spec:
- serviceAccountName: maesh-mesh
- automountServiceAccountToken: true
+ serviceAccountName: traefik-mesh-proxy
terminationGracePeriodSeconds: 30
containers:
- - name: maesh-mesh
+ - name: traefik-mesh-proxy
image: "traefik:v2.3"
imagePullPolicy: IfNotPresent
args:
@@ -98,7 +98,7 @@ spec:
- "--entryPoints.udp-15002.address=:15002/udp"
- "--entryPoints.udp-15003.address=:15003/udp"
- "--entryPoints.udp-15004.address=:15004/udp"
- - "--providers.http.endpoint=http://maesh-controller.maesh.svc.cluster.local:9000/api/configuration/current"
+ - "--providers.http.endpoint=http://traefik-mesh-controller.traefik-mesh.svc.cluster.local:9000/api/configuration/current"
- "--providers.http.pollInterval=100ms"
- "--providers.http.pollTimeout=100ms"
- "--api.dashboard=false"
diff --git a/integration/testdata/maesh/values.yaml b/integration/testdata/traefik-mesh/values.yaml
similarity index 82%
rename from integration/testdata/maesh/values.yaml
rename to integration/testdata/traefik-mesh/values.yaml
index 0b977ccf0..b55343aeb 100644
--- a/integration/testdata/maesh/values.yaml
+++ b/integration/testdata/traefik-mesh/values.yaml
@@ -1,15 +1,13 @@
#
-# Maesh configuration.
+# Traefik Mesh configuration.
#
controller:
image:
- name: containous/maesh
pullPolicy: IfNotPresent
tag: latest
-mesh:
+proxy:
image:
- name: traefik
pullPolicy: IfNotPresent
tag: v2.3
diff --git a/integration/tool/tool.go b/integration/tool/tool.go
index a26ac279a..df691c480 100644
--- a/integration/tool/tool.go
+++ b/integration/tool/tool.go
@@ -11,8 +11,8 @@ import (
"strings"
"time"
- "github.com/containous/maesh/integration/try"
"github.com/sirupsen/logrus"
+ "github.com/traefik/mesh/integration/try"
)
// Tool is pod capable of running operations from within the cluster.
diff --git a/integration/try/try.go b/integration/try/try.go
index 4cfbbed41..19a6efe40 100644
--- a/integration/try/try.go
+++ b/integration/try/try.go
@@ -7,7 +7,7 @@ import (
"time"
"github.com/cenkalti/backoff/v4"
- "github.com/containous/maesh/pkg/safe"
+ "github.com/traefik/mesh/pkg/safe"
)
// CITimeoutMultiplier is the multiplier for all timeout in the CI.
diff --git a/netlify.toml b/netlify.toml
index d5e939fc0..e09b352f1 100644
--- a/netlify.toml
+++ b/netlify.toml
@@ -1,6 +1,6 @@
[build]
# Path relative to the root of the repository
-publish = "docs/site"
+publish = "site"
base = "docs"
# Path relative to the "base" directory
diff --git a/pkg/annotations/annotations.go b/pkg/annotations/annotations.go
index 10a38bfca..69013daf1 100644
--- a/pkg/annotations/annotations.go
+++ b/pkg/annotations/annotations.go
@@ -23,13 +23,12 @@ const (
)
const (
- baseAnnotation = "maesh.containo.us/"
- annotationServiceType = baseAnnotation + "traffic-type"
- annotationScheme = baseAnnotation + "scheme"
- annotationRetryAttempts = baseAnnotation + "retry-attempts"
- annotationCircuitBreakerExpression = baseAnnotation + "circuit-breaker-expression"
- annotationRateLimitAverage = baseAnnotation + "ratelimit-average"
- annotationRateLimitBurst = baseAnnotation + "ratelimit-burst"
+ annotationServiceType = "traffic-type"
+ annotationScheme = "scheme"
+ annotationRetryAttempts = "retry-attempts"
+ annotationCircuitBreakerExpression = "circuit-breaker-expression"
+ annotationRateLimitAverage = "ratelimit-average"
+ annotationRateLimitBurst = "ratelimit-burst"
)
// ErrNotFound indicates that the annotation hasn't been found.
@@ -37,8 +36,8 @@ var ErrNotFound = errors.New("annotation not found")
// GetTrafficType returns the value of the traffic-type annotation.
func GetTrafficType(defaultTrafficType string, annotations map[string]string) (string, error) {
- trafficType, ok := annotations[annotationServiceType]
- if !ok {
+ trafficType, exists := getAnnotation(annotations, annotationServiceType)
+ if !exists {
return defaultTrafficType, nil
}
@@ -55,8 +54,8 @@ func GetTrafficType(defaultTrafficType string, annotations map[string]string) (s
// GetScheme returns the value of the scheme annotation.
func GetScheme(annotations map[string]string) (string, error) {
- scheme, ok := annotations[annotationScheme]
- if !ok {
+ scheme, exists := getAnnotation(annotations, annotationScheme)
+ if !exists {
return SchemeHTTP, nil
}
@@ -73,8 +72,8 @@ func GetScheme(annotations map[string]string) (string, error) {
// GetRetryAttempts returns the value of the retry-attempts annotation.
func GetRetryAttempts(annotations map[string]string) (int, error) {
- retryAttempts, ok := annotations[annotationRetryAttempts]
- if !ok {
+ retryAttempts, exists := getAnnotation(annotations, annotationRetryAttempts)
+ if !exists {
return 0, ErrNotFound
}
@@ -88,8 +87,8 @@ func GetRetryAttempts(annotations map[string]string) (int, error) {
// GetCircuitBreakerExpression returns the value of the circuit-breaker-expression annotation.
func GetCircuitBreakerExpression(annotations map[string]string) (string, error) {
- circuitBreakerExpression, ok := annotations[annotationCircuitBreakerExpression]
- if !ok {
+ circuitBreakerExpression, exists := getAnnotation(annotations, annotationCircuitBreakerExpression)
+ if !exists {
return "", ErrNotFound
}
@@ -98,8 +97,8 @@ func GetCircuitBreakerExpression(annotations map[string]string) (string, error)
// GetRateLimitBurst returns the value of the rate-limit-burst annotation.
func GetRateLimitBurst(annotations map[string]string) (int, error) {
- rateLimitBurst, ok := annotations[annotationRateLimitBurst]
- if !ok {
+ rateLimitBurst, exists := getAnnotation(annotations, annotationRateLimitBurst)
+ if !exists {
return 0, ErrNotFound
}
@@ -113,7 +112,7 @@ func GetRateLimitBurst(annotations map[string]string) (int, error) {
// GetRateLimitAverage returns the value of the rate-limit-average annotation.
func GetRateLimitAverage(annotations map[string]string) (int, error) {
- rateLimitAverage, ok := annotations[annotationRateLimitAverage]
+ rateLimitAverage, ok := getAnnotation(annotations, annotationRateLimitAverage)
if !ok {
return 0, ErrNotFound
}
@@ -125,3 +124,15 @@ func GetRateLimitAverage(annotations map[string]string) (int, error) {
return average, nil
}
+
+// getAnnotation returns the value of the annotation with the given name and a boolean evaluating to true if the
+// annotation has been found, false otherwise. This function will try to resolve the annotation with the traefik mesh
+// domain prefix and fallback to the deprecated maesh domain prefix if not found.
+func getAnnotation(annotations map[string]string, name string) (string, bool) {
+ value, exists := annotations["mesh.traefik.io/"+name]
+ if !exists {
+ value, exists = annotations["maesh.containo.us/"+name]
+ }
+
+ return value, exists
+}
diff --git a/pkg/annotations/annotations_test.go b/pkg/annotations/annotations_test.go
index 1076f68d2..bc90500cf 100644
--- a/pkg/annotations/annotations_test.go
+++ b/pkg/annotations/annotations_test.go
@@ -17,7 +17,7 @@ func TestGetTrafficType(t *testing.T) {
{
desc: "unknown service type",
annotations: map[string]string{
- "maesh.containo.us/traffic-type": "hello",
+ "mesh.traefik.io/traffic-type": "hello",
},
err: true,
},
@@ -29,21 +29,21 @@ func TestGetTrafficType(t *testing.T) {
{
desc: "http",
annotations: map[string]string{
- "maesh.containo.us/traffic-type": "http",
+ "mesh.traefik.io/traffic-type": "http",
},
want: ServiceTypeHTTP,
},
{
desc: "tcp",
annotations: map[string]string{
- "maesh.containo.us/traffic-type": "tcp",
+ "mesh.traefik.io/traffic-type": "tcp",
},
want: ServiceTypeTCP,
},
{
desc: "udp",
annotations: map[string]string{
- "maesh.containo.us/traffic-type": "udp",
+ "mesh.traefik.io/traffic-type": "udp",
},
want: ServiceTypeUDP,
},
@@ -53,11 +53,12 @@ func TestGetTrafficType(t *testing.T) {
t.Run(test.desc, func(t *testing.T) {
tt, err := GetTrafficType(ServiceTypeHTTP, test.annotations)
if test.err {
- assert.Error(t, err)
- } else {
- assert.NoError(t, err)
- assert.Equal(t, test.want, tt)
+ require.Error(t, err)
+ return
}
+
+ require.NoError(t, err)
+ assert.Equal(t, test.want, tt)
})
}
}
@@ -70,9 +71,9 @@ func TestGetScheme(t *testing.T) {
err bool
}{
{
- desc: "unknown service type",
+ desc: "unknown scheme",
annotations: map[string]string{
- "maesh.containo.us/scheme": "hello",
+ "mesh.traefik.io/scheme": "hello",
},
err: true,
},
@@ -84,21 +85,21 @@ func TestGetScheme(t *testing.T) {
{
desc: "http",
annotations: map[string]string{
- "maesh.containo.us/scheme": "http",
+ "mesh.traefik.io/scheme": "http",
},
want: SchemeHTTP,
},
{
desc: "https",
annotations: map[string]string{
- "maesh.containo.us/scheme": "https",
+ "mesh.traefik.io/scheme": "https",
},
want: SchemeHTTPS,
},
{
desc: "h2c",
annotations: map[string]string{
- "maesh.containo.us/scheme": "h2c",
+ "mesh.traefik.io/scheme": "h2c",
},
want: SchemeH2C,
},
@@ -106,97 +107,244 @@ func TestGetScheme(t *testing.T) {
for _, test := range tests {
t.Run(test.desc, func(t *testing.T) {
- tt, err := GetScheme(test.annotations)
+ scheme, err := GetScheme(test.annotations)
if test.err {
- assert.Error(t, err)
- } else {
- assert.NoError(t, err)
- assert.Equal(t, test.want, tt)
+ require.Error(t, err)
+ return
}
+
+ require.NoError(t, err)
+ assert.Equal(t, test.want, scheme)
})
}
}
-func TestGetRetryAttempts_Valid(t *testing.T) {
- attempts, err := GetRetryAttempts(map[string]string{
- "maesh.containo.us/retry-attempts": "2",
- })
-
- require.NoError(t, err)
- assert.Equal(t, 2, attempts)
-}
-
-func TestGetRetryAttempts_NotSet(t *testing.T) {
- _, err := GetRetryAttempts(map[string]string{})
-
- assert.Equal(t, ErrNotFound, err)
-}
+func TestGetRetryAttempts(t *testing.T) {
+ tests := []struct {
+ desc string
+ annotations map[string]string
+ want int
+ err bool
+ wantNotFound bool
+ }{
+ {
+ desc: "invalid",
+ annotations: map[string]string{
+ "mesh.traefik.io/retry-attempts": "hello",
+ },
+ err: true,
+ },
+ {
+ desc: "valid",
+ annotations: map[string]string{
+ "mesh.traefik.io/retry-attempts": "2",
+ },
+ want: 2,
+ },
+ {
+ desc: "not set",
+ annotations: map[string]string{},
+ err: true,
+ wantNotFound: true,
+ },
+ }
-func TestGetRetryAttempts_Invalid(t *testing.T) {
- _, err := GetRetryAttempts(map[string]string{
- "maesh.containo.us/retry-attempts": "hello",
- })
+ for _, test := range tests {
+ t.Run(test.desc, func(t *testing.T) {
+ attempts, err := GetRetryAttempts(test.annotations)
+ if test.err {
+ require.Error(t, err)
+ assert.Equal(t, test.wantNotFound, err == ErrNotFound)
+ return
+ }
- assert.Error(t, err)
+ require.NoError(t, err)
+ assert.Equal(t, test.want, attempts)
+ })
+ }
}
-func TestGetCircuitBreakerExpression_Valid(t *testing.T) {
- expression, err := GetCircuitBreakerExpression(map[string]string{
- "maesh.containo.us/circuit-breaker-expression": "LatencyAtQuantileMS(50.0) > 100",
- })
-
- require.NoError(t, err)
- assert.Equal(t, "LatencyAtQuantileMS(50.0) > 100", expression)
-}
+func TestGetCircuitBreakerExpression(t *testing.T) {
+ tests := []struct {
+ desc string
+ annotations map[string]string
+ want string
+ err bool
+ wantNotFound bool
+ }{
+ {
+ desc: "valid",
+ annotations: map[string]string{
+ "mesh.traefik.io/circuit-breaker-expression": "LatencyAtQuantileMS(50.0) > 100",
+ },
+ want: "LatencyAtQuantileMS(50.0) > 100",
+ },
+ {
+ desc: "not set",
+ annotations: map[string]string{},
+ err: true,
+ wantNotFound: true,
+ },
+ }
-func TestGetCircuitBreakerExpression_NotSet(t *testing.T) {
- _, err := GetCircuitBreakerExpression(map[string]string{})
+ for _, test := range tests {
+ t.Run(test.desc, func(t *testing.T) {
+ value, err := GetCircuitBreakerExpression(test.annotations)
+ if test.err {
+ require.Error(t, err)
+ assert.Equal(t, test.wantNotFound, err == ErrNotFound)
+ return
+ }
- assert.Equal(t, ErrNotFound, err)
+ require.NoError(t, err)
+ assert.Equal(t, test.want, value)
+ })
+ }
}
-func TestGetRateLimitBurst_Valid(t *testing.T) {
- attempts, err := GetRateLimitBurst(map[string]string{
- "maesh.containo.us/ratelimit-burst": "200",
- })
-
- require.NoError(t, err)
- assert.Equal(t, 200, attempts)
-}
+func TestGetRateLimitBurst(t *testing.T) {
+ tests := []struct {
+ desc string
+ annotations map[string]string
+ want int
+ err bool
+ wantNotFound bool
+ }{
+ {
+ desc: "invalid",
+ annotations: map[string]string{
+ "mesh.traefik.io/ratelimit-burst": "hello",
+ },
+ err: true,
+ },
+ {
+ desc: "valid",
+ annotations: map[string]string{
+ "mesh.traefik.io/ratelimit-burst": "200",
+ },
+ want: 200,
+ },
+ {
+ desc: "not set",
+ annotations: map[string]string{},
+ err: true,
+ wantNotFound: true,
+ },
+ }
-func TestGetRateLimitBurst_NotSet(t *testing.T) {
- _, err := GetRateLimitBurst(map[string]string{})
+ for _, test := range tests {
+ t.Run(test.desc, func(t *testing.T) {
+ value, err := GetRateLimitBurst(test.annotations)
+ if test.err {
+ require.Error(t, err)
+ assert.Equal(t, test.wantNotFound, err == ErrNotFound)
+ return
+ }
- assert.Equal(t, ErrNotFound, err)
+ require.NoError(t, err)
+ assert.Equal(t, test.want, value)
+ })
+ }
}
-func TestGetRateLimitBurst_Invalid(t *testing.T) {
- _, err := GetRateLimitBurst(map[string]string{
- "maesh.containo.us/ratelimit-burst": "hello",
- })
-
- assert.Error(t, err)
-}
+func TestGetRateLimitAverage(t *testing.T) {
+ tests := []struct {
+ desc string
+ annotations map[string]string
+ want int
+ err bool
+ wantNotFound bool
+ }{
+ {
+ desc: "invalid",
+ annotations: map[string]string{
+ "mesh.traefik.io/ratelimit-average": "hello",
+ },
+ err: true,
+ },
+ {
+ desc: "valid",
+ annotations: map[string]string{
+ "mesh.traefik.io/ratelimit-average": "100",
+ },
+ want: 100,
+ },
+ {
+ desc: "not set",
+ annotations: map[string]string{},
+ err: true,
+ wantNotFound: true,
+ },
+ }
-func TestGetRateLimitAverage_Valid(t *testing.T) {
- attempts, err := GetRateLimitAverage(map[string]string{
- "maesh.containo.us/ratelimit-average": "100",
- })
+ for _, test := range tests {
+ t.Run(test.desc, func(t *testing.T) {
+ value, err := GetRateLimitAverage(test.annotations)
+ if test.err {
+ require.Error(t, err)
+ assert.Equal(t, test.wantNotFound, err == ErrNotFound)
+ return
+ }
- require.NoError(t, err)
- assert.Equal(t, 100, attempts)
+ require.NoError(t, err)
+ assert.Equal(t, test.want, value)
+ })
+ }
}
-func TestGetRateLimitAverage_NotSet(t *testing.T) {
- _, err := GetRateLimitAverage(map[string]string{})
-
- assert.Equal(t, ErrNotFound, err)
-}
+func Test_getAnnotation(t *testing.T) {
+ tests := []struct {
+ desc string
+ annotations map[string]string
+ name string
+ want string
+ exists bool
+ }{
+ {
+ desc: "should return the traefik mesh annotation value",
+ annotations: map[string]string{
+ "mesh.traefik.io/foo": "bar",
+ },
+ name: "foo",
+ want: "bar",
+ exists: true,
+ },
+ {
+ desc: "should return the deprecated maesh annotation value",
+ annotations: map[string]string{
+ "maesh.containo.us/foo": "bar",
+ },
+ name: "foo",
+ want: "bar",
+ exists: true,
+ },
+ {
+ desc: "should return the traefik mesh annotation value",
+ annotations: map[string]string{
+ "mesh.traefik.io/foo": "bar",
+ "maesh.containo.us/foo": "fuzzy",
+ },
+ name: "foo",
+ want: "bar",
+ exists: true,
+ },
+ {
+ desc: "should return not found",
+ annotations: map[string]string{
+ "mesh.traefik.io/foo": "bar",
+ "maesh.containo.us/foo": "fuzzy",
+ },
+ name: "bar",
+ want: "",
+ },
+ }
-func TestGetRateLimitAverage_Invalid(t *testing.T) {
- _, err := GetRateLimitAverage(map[string]string{
- "maesh.containo.us/ratelimit-average": "hello",
- })
+ for _, test := range tests {
+ t.Run(test.desc, func(t *testing.T) {
+ value, exists := getAnnotation(test.annotations, test.name)
- assert.Error(t, err)
+ assert.Equal(t, test.want, value)
+ assert.Equal(t, test.exists, exists)
+ })
+ }
}
diff --git a/pkg/annotations/middleware.go b/pkg/annotations/middleware.go
index ba5e387ad..d5e4b8e33 100644
--- a/pkg/annotations/middleware.go
+++ b/pkg/annotations/middleware.go
@@ -4,7 +4,7 @@ import (
"errors"
"fmt"
- "github.com/containous/traefik/v2/pkg/config/dynamic"
+ "github.com/traefik/traefik/v2/pkg/config/dynamic"
)
type middlewareBuilder func(annotations map[string]string) (middleware *dynamic.Middleware, name string, err error)
diff --git a/pkg/annotations/middleware_test.go b/pkg/annotations/middleware_test.go
index 1cdabe53d..9375d0494 100644
--- a/pkg/annotations/middleware_test.go
+++ b/pkg/annotations/middleware_test.go
@@ -3,8 +3,8 @@ package annotations
import (
"testing"
- "github.com/containous/traefik/v2/pkg/config/dynamic"
"github.com/stretchr/testify/assert"
+ "github.com/traefik/traefik/v2/pkg/config/dynamic"
)
func TestBuildMiddleware(t *testing.T) {
@@ -22,7 +22,7 @@ func TestBuildMiddleware(t *testing.T) {
{
desc: "retry-attempts annotation is valid",
annotations: map[string]string{
- "maesh.containo.us/retry-attempts": "5",
+ "mesh.traefik.io/retry-attempts": "5",
},
want: map[string]*dynamic.Middleware{
"retry": {
@@ -35,14 +35,14 @@ func TestBuildMiddleware(t *testing.T) {
{
desc: "retry-attempts annotation is invalid",
annotations: map[string]string{
- "maesh.containo.us/retry-attempts": "hello",
+ "mesh.traefik.io/retry-attempts": "hello",
},
err: true,
},
{
desc: "circuit-breaker-expression",
annotations: map[string]string{
- "maesh.containo.us/circuit-breaker-expression": "LatencyAtQuantileMS(50.0) > 100",
+ "mesh.traefik.io/circuit-breaker-expression": "LatencyAtQuantileMS(50.0) > 100",
},
want: map[string]*dynamic.Middleware{
"circuit-breaker": {
@@ -55,8 +55,8 @@ func TestBuildMiddleware(t *testing.T) {
{
desc: "ratelimit-average and ratelimit-burst are both valid",
annotations: map[string]string{
- "maesh.containo.us/ratelimit-average": "200",
- "maesh.containo.us/ratelimit-burst": "100",
+ "mesh.traefik.io/ratelimit-average": "200",
+ "mesh.traefik.io/ratelimit-burst": "100",
},
want: map[string]*dynamic.Middleware{
"rate-limit": {
@@ -70,40 +70,40 @@ func TestBuildMiddleware(t *testing.T) {
{
desc: "ratelimit-average is valid but ratelimit-burst is invalid",
annotations: map[string]string{
- "maesh.containo.us/ratelimit-average": "200",
- "maesh.containo.us/ratelimit-burst": "hello",
+ "mesh.traefik.io/ratelimit-average": "200",
+ "mesh.traefik.io/ratelimit-burst": "hello",
},
err: true,
},
{
desc: "ratelimit-burst is valid but ratelimit-average is invalid",
annotations: map[string]string{
- "maesh.containo.us/ratelimit-burst": "200",
- "maesh.containo.us/ratelimit-average": "hello",
+ "mesh.traefik.io/ratelimit-burst": "200",
+ "mesh.traefik.io/ratelimit-average": "hello",
},
err: true,
},
{
desc: "ratelimit-average is set but ratelimit-burst is not",
annotations: map[string]string{
- "maesh.containo.us/ratelimit-average": "200",
+ "mesh.traefik.io/ratelimit-average": "200",
},
want: map[string]*dynamic.Middleware{},
},
{
desc: "ratelimit-burst is set but ratelimit-average is not",
annotations: map[string]string{
- "maesh.containo.us/ratelimit-burst": "200",
+ "mesh.traefik.io/ratelimit-burst": "200",
},
want: map[string]*dynamic.Middleware{},
},
{
desc: "multiple middlewares",
annotations: map[string]string{
- "maesh.containo.us/retry-attempts": "5",
- "maesh.containo.us/ratelimit-average": "200",
- "maesh.containo.us/ratelimit-burst": "100",
- "maesh.containo.us/circuit-breaker-expression": "LatencyAtQuantileMS(50.0) > 100",
+ "mesh.traefik.io/retry-attempts": "5",
+ "mesh.traefik.io/ratelimit-average": "200",
+ "mesh.traefik.io/ratelimit-burst": "100",
+ "mesh.traefik.io/circuit-breaker-expression": "LatencyAtQuantileMS(50.0) > 100",
},
want: map[string]*dynamic.Middleware{
"retry": {
diff --git a/pkg/api/api.go b/pkg/api/api.go
index 4d3083bff..a1b979666 100644
--- a/pkg/api/api.go
+++ b/pkg/api/api.go
@@ -8,13 +8,13 @@ import (
"net/http"
"time"
- "github.com/containous/maesh/pkg/k8s"
- "github.com/containous/maesh/pkg/provider"
- "github.com/containous/maesh/pkg/safe"
- "github.com/containous/maesh/pkg/topology"
- "github.com/containous/traefik/v2/pkg/config/dynamic"
"github.com/gorilla/mux"
"github.com/sirupsen/logrus"
+ "github.com/traefik/mesh/pkg/k8s"
+ "github.com/traefik/mesh/pkg/provider"
+ "github.com/traefik/mesh/pkg/safe"
+ "github.com/traefik/mesh/pkg/topology"
+ "github.com/traefik/traefik/v2/pkg/config/dynamic"
kubeerror "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels"
diff --git a/pkg/api/api_test.go b/pkg/api/api_test.go
index fda172132..5b51868b4 100644
--- a/pkg/api/api_test.go
+++ b/pkg/api/api_test.go
@@ -7,11 +7,11 @@ import (
"os"
"testing"
- "github.com/containous/maesh/pkg/k8s"
"github.com/gorilla/mux"
"github.com/sirupsen/logrus"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
+ "github.com/traefik/mesh/pkg/k8s"
"k8s.io/client-go/kubernetes/fake"
)
diff --git a/pkg/cleanup/cleanup.go b/pkg/cleanup/cleanup.go
index 8f6f798d2..78b30258e 100644
--- a/pkg/cleanup/cleanup.go
+++ b/pkg/cleanup/cleanup.go
@@ -4,8 +4,8 @@ import (
"context"
"fmt"
- "github.com/containous/maesh/pkg/dns"
"github.com/sirupsen/logrus"
+ "github.com/traefik/mesh/pkg/dns"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
)
diff --git a/pkg/cleanup/cleanup_test.go b/pkg/cleanup/cleanup_test.go
index 774024569..6e239dfe3 100644
--- a/pkg/cleanup/cleanup_test.go
+++ b/pkg/cleanup/cleanup_test.go
@@ -5,10 +5,10 @@ import (
"os"
"testing"
- "github.com/containous/maesh/pkg/k8s"
"github.com/sirupsen/logrus"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
+ "github.com/traefik/mesh/pkg/k8s"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
@@ -30,7 +30,7 @@ func TestCleanup_CleanShadowServices(t *testing.T) {
logger.SetOutput(os.Stdout)
logger.SetLevel(logrus.DebugLevel)
- cleanup := NewCleanup(logger, clientMock.KubernetesClient(), "maesh")
+ cleanup := NewCleanup(logger, clientMock.KubernetesClient(), "traefik-mesh")
require.NotNil(t, cleanup)
err := cleanup.CleanShadowServices(context.Background())
diff --git a/pkg/cleanup/testdata/mock.yaml b/pkg/cleanup/testdata/mock.yaml
index 721e3390c..994a5df5f 100644
--- a/pkg/cleanup/testdata/mock.yaml
+++ b/pkg/cleanup/testdata/mock.yaml
@@ -3,7 +3,7 @@ apiVersion: v1
kind: Service
metadata:
name: test1
- namespace: maesh
+ namespace: traefik-mesh
labels:
app: maesh
type: shadow
@@ -20,7 +20,7 @@ apiVersion: v1
kind: Service
metadata:
name: test2
- namespace: maesh
+ namespace: traefik-mesh
labels:
app: maesh
type: shadow
@@ -37,7 +37,7 @@ apiVersion: v1
kind: Service
metadata:
name: test3
- namespace: maesh
+ namespace: traefik-mesh
spec:
selector:
app: test
diff --git a/pkg/controller/controller.go b/pkg/controller/controller.go
index 6c64769d1..de56b8be9 100644
--- a/pkg/controller/controller.go
+++ b/pkg/controller/controller.go
@@ -6,12 +6,6 @@ import (
"sync"
"time"
- "github.com/containous/maesh/cmd"
- "github.com/containous/maesh/pkg/annotations"
- "github.com/containous/maesh/pkg/k8s"
- "github.com/containous/maesh/pkg/provider"
- "github.com/containous/maesh/pkg/topology"
- "github.com/containous/traefik/v2/pkg/config/dynamic"
accessinformer "github.com/servicemeshinterface/smi-sdk-go/pkg/gen/client/access/informers/externalversions"
accesslister "github.com/servicemeshinterface/smi-sdk-go/pkg/gen/client/access/listers/access/v1alpha2"
specsinformer "github.com/servicemeshinterface/smi-sdk-go/pkg/gen/client/specs/informers/externalversions"
@@ -19,6 +13,12 @@ import (
splitinformer "github.com/servicemeshinterface/smi-sdk-go/pkg/gen/client/split/informers/externalversions"
splitlister "github.com/servicemeshinterface/smi-sdk-go/pkg/gen/client/split/listers/split/v1alpha3"
"github.com/sirupsen/logrus"
+ "github.com/traefik/mesh/cmd"
+ "github.com/traefik/mesh/pkg/annotations"
+ "github.com/traefik/mesh/pkg/k8s"
+ "github.com/traefik/mesh/pkg/provider"
+ "github.com/traefik/mesh/pkg/topology"
+ "github.com/traefik/traefik/v2/pkg/config/dynamic"
"k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
diff --git a/pkg/controller/controller_test.go b/pkg/controller/controller_test.go
index e664c6f17..2b179e8f7 100644
--- a/pkg/controller/controller_test.go
+++ b/pkg/controller/controller_test.go
@@ -4,21 +4,21 @@ import (
"os"
"testing"
- "github.com/containous/maesh/pkg/k8s"
- "github.com/containous/maesh/pkg/topology"
- "github.com/containous/traefik/v2/pkg/config/dynamic"
"github.com/sirupsen/logrus"
"github.com/stretchr/testify/assert"
+ "github.com/traefik/mesh/pkg/k8s"
+ "github.com/traefik/mesh/pkg/topology"
+ "github.com/traefik/traefik/v2/pkg/config/dynamic"
)
const (
- meshNamespace string = "maesh"
- minHTTPPort = int32(5000)
- maxHTTPPort = int32(5005)
- minTCPPort = int32(10000)
- maxTCPPort = int32(10005)
- minUDPPort = int32(15000)
- maxUDPPort = int32(15005)
+ traefikMeshNamespace string = "traefik-mesh"
+ minHTTPPort = int32(5000)
+ maxHTTPPort = int32(5005)
+ minTCPPort = int32(10000)
+ maxTCPPort = int32(10005)
+ minUDPPort = int32(15000)
+ maxUDPPort = int32(15005)
)
type storeMock struct{}
@@ -39,7 +39,7 @@ func TestController_NewMeshController(t *testing.T) {
controller := NewMeshController(clientMock, Config{
ACLEnabled: false,
DefaultMode: "http",
- Namespace: meshNamespace,
+ Namespace: traefikMeshNamespace,
IgnoreNamespaces: []string{},
MinHTTPPort: minHTTPPort,
MaxHTTPPort: maxHTTPPort,
@@ -64,7 +64,7 @@ func TestController_NewMeshControllerWithSMI(t *testing.T) {
controller := NewMeshController(clientMock, Config{
ACLEnabled: true,
DefaultMode: "http",
- Namespace: meshNamespace,
+ Namespace: traefikMeshNamespace,
IgnoreNamespaces: []string{},
MinHTTPPort: minHTTPPort,
MaxHTTPPort: maxHTTPPort,
diff --git a/pkg/controller/portmapping_test.go b/pkg/controller/portmapping_test.go
index 5943be2cb..70af465e7 100644
--- a/pkg/controller/portmapping_test.go
+++ b/pkg/controller/portmapping_test.go
@@ -7,10 +7,10 @@ import (
"testing"
"time"
- "github.com/containous/maesh/pkg/k8s"
"github.com/sirupsen/logrus"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
+ "github.com/traefik/mesh/pkg/k8s"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
@@ -27,7 +27,7 @@ func TestPortMapping_AddEmptyState(t *testing.T) {
serviceLister, err := newFakeServiceLister()
require.NoError(t, err)
- p := NewPortMapping("maesh", serviceLister, logger, 10000, 10200)
+ p := NewPortMapping("traefik-mesh", serviceLister, logger, 10000, 10200)
wantSp := &servicePort{
Namespace: "my-ns",
@@ -50,7 +50,7 @@ func TestPortMapping_AddOverflow(t *testing.T) {
serviceLister, err := newFakeServiceLister()
require.NoError(t, err)
- p := NewPortMapping("maesh", serviceLister, logger, 10000, 10001)
+ p := NewPortMapping("traefik-mesh", serviceLister, logger, 10000, 10001)
wantSp := &servicePort{
Namespace: "my-ns",
@@ -88,7 +88,7 @@ func TestPortMapping_FindWithState(t *testing.T) {
serviceLister, err := newFakeServiceLister()
require.NoError(t, err)
- p := NewPortMapping("maesh", serviceLister, logger, 10000, 10200)
+ p := NewPortMapping("traefik-mesh", serviceLister, logger, 10000, 10200)
p.table[10000] = &servicePort{Namespace: "my-ns", Name: "my-app", Port: 9090}
p.table[10002] = &servicePort{Namespace: "my-ns", Name: "my-app2", Port: 9092}
@@ -108,7 +108,7 @@ func TestPortMapping_Remove(t *testing.T) {
serviceLister, err := newFakeServiceLister()
require.NoError(t, err)
- p := NewPortMapping("maesh", serviceLister, logger, 10000, 10200)
+ p := NewPortMapping("traefik-mesh", serviceLister, logger, 10000, 10200)
p.table[10000] = &servicePort{Namespace: "my-ns", Name: "my-app", Port: 9090}
@@ -143,7 +143,7 @@ func TestPortMapping_LoadState(t *testing.T) {
Port: 80,
TargetPort: intstr.FromInt(10000),
}),
- newShadowService("maesh-foo-6d61657368-maesh", corev1.ServicePort{
+ newShadowService("traefik-mesh-foo-6d61657368-traefik-mesh", corev1.ServicePort{
Port: 80,
TargetPort: intstr.FromInt(10001),
}),
@@ -153,7 +153,7 @@ func TestPortMapping_LoadState(t *testing.T) {
desc: "should ignore the shadow service ports with an out of range target port",
expPorts: []int32{10001},
services: []runtime.Object{
- newShadowService("maesh-foo-6d61657368-maesh",
+ newShadowService("traefik-mesh-foo-6d61657368-traefik-mesh",
corev1.ServicePort{
Port: 80,
TargetPort: intstr.FromInt(5000),
@@ -167,7 +167,7 @@ func TestPortMapping_LoadState(t *testing.T) {
desc: "should initialize the state with all the shadow service target ports",
expPorts: []int32{10000, 10001, 10002, 10003},
services: []runtime.Object{
- newShadowService("maesh-foo-6d61657368-maesh",
+ newShadowService("traefik-mesh-foo-6d61657368-traefik-mesh",
corev1.ServicePort{
Port: 80,
TargetPort: intstr.FromInt(10002),
@@ -175,7 +175,7 @@ func TestPortMapping_LoadState(t *testing.T) {
Port: 8080,
TargetPort: intstr.FromInt(10003),
}),
- newShadowService("maesh-bar-6d61657368-maesh",
+ newShadowService("traefik-mesh-bar-6d61657368-traefik-mesh",
corev1.ServicePort{
Port: 80,
TargetPort: intstr.FromInt(10000),
@@ -195,7 +195,7 @@ func TestPortMapping_LoadState(t *testing.T) {
serviceLister, err := newFakeServiceLister(test.services...)
require.NoError(t, err)
- portMapping := NewPortMapping("maesh", serviceLister, logger, 10000, 10005)
+ portMapping := NewPortMapping("traefik-mesh", serviceLister, logger, 10000, 10005)
err = portMapping.LoadState()
@@ -225,7 +225,7 @@ func TestPortMapping_parseServiceNamespaceAndName(t *testing.T) {
},
{
desc: "should return the parsed service namespace and name from the shadow service name",
- shadowSvcName: "maesh-foo-6d61657368-default",
+ shadowSvcName: "traefik-mesh-foo-6d61657368-default",
expNamespace: "default",
expName: "foo",
},
@@ -239,7 +239,7 @@ func TestPortMapping_parseServiceNamespaceAndName(t *testing.T) {
serviceLister, err := newFakeServiceLister()
require.NoError(t, err)
- portMapping := NewPortMapping("maesh", serviceLister, logger, 10000, 10005)
+ portMapping := NewPortMapping("traefik-mesh", serviceLister, logger, 10000, 10005)
namespace, name, err := portMapping.parseServiceNamespaceAndName(test.shadowSvcName)
if test.expErr {
@@ -280,7 +280,7 @@ func newShadowService(name string, ports ...corev1.ServicePort) *corev1.Service
APIVersion: "v1",
},
ObjectMeta: metav1.ObjectMeta{
- Namespace: "maesh",
+ Namespace: "traefik-mesh",
Name: name,
Labels: map[string]string{
"app": "maesh",
diff --git a/pkg/controller/service.go b/pkg/controller/service.go
index 553b15864..32b5b63a4 100644
--- a/pkg/controller/service.go
+++ b/pkg/controller/service.go
@@ -5,9 +5,9 @@ import (
"errors"
"fmt"
- "github.com/containous/maesh/pkg/annotations"
"github.com/hashicorp/go-version"
"github.com/sirupsen/logrus"
+ "github.com/traefik/mesh/pkg/annotations"
corev1 "k8s.io/api/core/v1"
kerrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
diff --git a/pkg/controller/service_test.go b/pkg/controller/service_test.go
index 5db811732..156009d7c 100644
--- a/pkg/controller/service_test.go
+++ b/pkg/controller/service_test.go
@@ -79,8 +79,8 @@ func TestShadowServiceManager_CreateOrUpdate(t *testing.T) {
},
expectedShadowSvc: &corev1.Service{
ObjectMeta: v1.ObjectMeta{
- Name: "maesh-foo-6d61657368-bar",
- Namespace: "maesh",
+ Name: "traefik-mesh-foo-6d61657368-bar",
+ Namespace: "traefik-mesh",
},
Spec: corev1.ServiceSpec{
Ports: []corev1.ServicePort{
@@ -113,8 +113,8 @@ func TestShadowServiceManager_CreateOrUpdate(t *testing.T) {
},
expectedShadowSvc: &corev1.Service{
ObjectMeta: v1.ObjectMeta{
- Name: "maesh-foo-6d61657368-bar",
- Namespace: "maesh",
+ Name: "traefik-mesh-foo-6d61657368-bar",
+ Namespace: "traefik-mesh",
},
Spec: corev1.ServiceSpec{
Ports: []corev1.ServicePort{
@@ -143,8 +143,8 @@ func TestShadowServiceManager_CreateOrUpdate(t *testing.T) {
},
currentShadowSvc: &corev1.Service{
ObjectMeta: v1.ObjectMeta{
- Name: "maesh-foo-6d61657368-bar",
- Namespace: "maesh",
+ Name: "traefik-mesh-foo-6d61657368-bar",
+ Namespace: "traefik-mesh",
},
Spec: corev1.ServiceSpec{
Ports: []corev1.ServicePort{
@@ -163,8 +163,8 @@ func TestShadowServiceManager_CreateOrUpdate(t *testing.T) {
},
expectedShadowSvc: &corev1.Service{
ObjectMeta: v1.ObjectMeta{
- Name: "maesh-foo-6d61657368-bar",
- Namespace: "maesh",
+ Name: "traefik-mesh-foo-6d61657368-bar",
+ Namespace: "traefik-mesh",
},
Spec: corev1.ServiceSpec{
Ports: []corev1.ServicePort{
@@ -193,8 +193,8 @@ func TestShadowServiceManager_CreateOrUpdate(t *testing.T) {
},
currentShadowSvc: &corev1.Service{
ObjectMeta: v1.ObjectMeta{
- Name: "maesh-foo-6d61657368-bar",
- Namespace: "maesh",
+ Name: "traefik-mesh-foo-6d61657368-bar",
+ Namespace: "traefik-mesh",
},
Spec: corev1.ServiceSpec{
Ports: []corev1.ServicePort{
@@ -208,8 +208,8 @@ func TestShadowServiceManager_CreateOrUpdate(t *testing.T) {
},
expectedShadowSvc: &corev1.Service{
ObjectMeta: v1.ObjectMeta{
- Name: "maesh-foo-6d61657368-bar",
- Namespace: "maesh",
+ Name: "traefik-mesh-foo-6d61657368-bar",
+ Namespace: "traefik-mesh",
},
Spec: corev1.ServiceSpec{
Ports: []corev1.ServicePort{
@@ -260,7 +260,7 @@ func TestShadowServiceManager_CreateOrUpdate(t *testing.T) {
shadowServiceManager := NewShadowServiceManager(
log,
lister,
- "maesh",
+ "traefik-mesh",
tcpPortMapperMock,
portMapperMock{},
test.defaultMode,
@@ -307,8 +307,8 @@ func TestShadowServiceManager_Delete(t *testing.T) {
namespace: "bar",
currentShadowSvc: &corev1.Service{
ObjectMeta: v1.ObjectMeta{
- Name: "maesh-foo-6d61657368-bar",
- Namespace: "maesh",
+ Name: "traefik-mesh-foo-6d61657368-bar",
+ Namespace: "traefik-mesh",
},
Spec: corev1.ServiceSpec{
Ports: []corev1.ServicePort{
@@ -327,8 +327,8 @@ func TestShadowServiceManager_Delete(t *testing.T) {
namespace: "bar",
currentShadowSvc: &corev1.Service{
ObjectMeta: v1.ObjectMeta{
- Name: "maesh-foo-6d61657368-bar",
- Namespace: "maesh",
+ Name: "traefik-mesh-foo-6d61657368-bar",
+ Namespace: "traefik-mesh",
},
Spec: corev1.ServiceSpec{
Ports: []corev1.ServicePort{
@@ -347,8 +347,8 @@ func TestShadowServiceManager_Delete(t *testing.T) {
namespace: "bar",
currentShadowSvc: &corev1.Service{
ObjectMeta: v1.ObjectMeta{
- Name: "maesh-foo-6d61657368-bar",
- Namespace: "maesh",
+ Name: "traefik-mesh-foo-6d61657368-bar",
+ Namespace: "traefik-mesh",
},
Spec: corev1.ServiceSpec{
Ports: []corev1.ServicePort{
@@ -403,7 +403,7 @@ func TestShadowServiceManager_Delete(t *testing.T) {
shadowServiceManager := NewShadowServiceManager(
log,
lister,
- "maesh",
+ "traefik-mesh",
tcpPortMapperMock,
udpPortMapperMock,
"http",
@@ -457,7 +457,7 @@ func TestShadowServiceManager_getShadowServiceName(t *testing.T) {
shadowServiceManager := NewShadowServiceManager(
log,
lister,
- "maesh",
+ "traefik-mesh",
portMapperMock{},
portMapperMock{},
"http",
@@ -468,7 +468,7 @@ func TestShadowServiceManager_getShadowServiceName(t *testing.T) {
shadowSvcName := shadowServiceManager.getShadowServiceName(namespace, name)
- assert.Equal(t, shadowSvcName, "maesh-foo-6d61657368-bar")
+ assert.Equal(t, shadowSvcName, "traefik-mesh-foo-6d61657368-bar")
}
func TestShadowServiceManager_getHTTPPort(t *testing.T) {
@@ -504,7 +504,7 @@ func TestShadowServiceManager_getHTTPPort(t *testing.T) {
shadowServiceManager := NewShadowServiceManager(
log,
lister,
- "maesh",
+ "traefik-mesh",
portMapperMock{},
portMapperMock{},
"http",
diff --git a/pkg/controller/testdata/mock.yaml b/pkg/controller/testdata/mock.yaml
index 7f0d4a86e..95189b82a 100644
--- a/pkg/controller/testdata/mock.yaml
+++ b/pkg/controller/testdata/mock.yaml
@@ -31,19 +31,3 @@ subsets:
- ip: 10.0.0.2
ports:
- port: 80
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: tcp-state-table
- namespace: maesh
-data:
- key: value
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: udp-state-table
- namespace: maesh
-data:
- key: value
diff --git a/pkg/dns/dns.go b/pkg/dns/dns.go
index 35f8dc495..1948ed026 100644
--- a/pkg/dns/dns.go
+++ b/pkg/dns/dns.go
@@ -9,10 +9,10 @@ import (
"time"
"github.com/cenkalti/backoff/v4"
- "github.com/containous/maesh/pkg/safe"
"github.com/google/uuid"
goversion "github.com/hashicorp/go-version"
"github.com/sirupsen/logrus"
+ "github.com/traefik/mesh/pkg/safe"
appsv1 "k8s.io/api/apps/v1"
corev1 "k8s.io/api/core/v1"
kerrors "k8s.io/apimachinery/pkg/api/errors"
@@ -29,9 +29,14 @@ const (
CoreDNS
KubeDNS
+ // Maesh config is deprecated and will be removed in the next major release.
+ maeshDomain = "maesh"
maeshBlockHeader = "#### Begin Maesh Block"
maeshBlockTrailer = "#### End Maesh Block"
- maeshDomain = "maesh"
+
+ traefikMeshDomain = "traefik.mesh"
+ traefikMeshBlockHeader = "#### Begin Traefik Mesh Block"
+ traefikMeshBlockTrailer = "#### End Traefik Mesh Block"
)
var versionCoreDNS17 = goversion.Must(goversion.NewVersion("1.7"))
@@ -72,7 +77,7 @@ func (c *Client) CheckDNSProvider(ctx context.Context) (Provider, error) {
return KubeDNS, nil
}
- return UnknownDNS, errors.New("no supported DNS service available for installing maesh")
+ return UnknownDNS, errors.New("no supported DNS service available for installing traefik mesh")
}
func (c *Client) coreDNSMatch(ctx context.Context) (bool, error) {
@@ -127,8 +132,8 @@ func (c *Client) kubeDNSMatch(ctx context.Context) (bool, error) {
return true, nil
}
-// ConfigureCoreDNS patches the CoreDNS configuration for Maesh.
-func (c *Client) ConfigureCoreDNS(ctx context.Context, coreDNSNamespace, clusterDomain, maeshNamespace string) error {
+// ConfigureCoreDNS patches the CoreDNS configuration for Traefik Mesh.
+func (c *Client) ConfigureCoreDNS(ctx context.Context, coreDNSNamespace, clusterDomain, traefikMeshNamespace string) error {
c.logger.Debugf("Patching ConfigMap %q in namespace %q...", "coredns", coreDNSNamespace)
coreDNSDeployment, err := c.kubeClient.AppsV1().Deployments(coreDNSNamespace).Get(ctx, "coredns", metav1.GetOptions{})
@@ -136,7 +141,7 @@ func (c *Client) ConfigureCoreDNS(ctx context.Context, coreDNSNamespace, cluster
return err
}
- patchedConfigMap, changed, err := c.patchCoreDNSConfig(ctx, coreDNSDeployment, clusterDomain, maeshNamespace)
+ patchedConfigMap, changed, err := c.patchCoreDNSConfig(ctx, coreDNSDeployment, clusterDomain, traefikMeshNamespace)
if err != nil {
return fmt.Errorf("unable to patch coredns config: %w", err)
}
@@ -160,7 +165,7 @@ func (c *Client) ConfigureCoreDNS(ctx context.Context, coreDNSNamespace, cluster
return nil
}
-func (c *Client) patchCoreDNSConfig(ctx context.Context, deployment *appsv1.Deployment, clusterDomain, maeshNamespace string) (*corev1.ConfigMap, bool, error) {
+func (c *Client) patchCoreDNSConfig(ctx context.Context, deployment *appsv1.Deployment, clusterDomain, traefikMeshNamespace string) (*corev1.ConfigMap, bool, error) {
coreDNSVersion, err := c.getCoreDNSVersion(deployment)
if err != nil {
return nil, false, err
@@ -171,18 +176,30 @@ func (c *Client) patchCoreDNSConfig(ctx context.Context, deployment *appsv1.Depl
// For AKS the CoreDNS config have to be added to the coredns-custom ConfigMap.
// See https://docs.microsoft.com/en-us/azure/aks/coredns-custom
if err == nil {
- corefile, changed := addStubDomain(
+ // deprecated, will be removed in the next major release.
+ corefile, mChanged := addStubDomain(
customConfigMap.Data["maesh.server"],
maeshBlockHeader,
maeshBlockTrailer,
maeshDomain,
clusterDomain,
- maeshNamespace,
+ traefikMeshNamespace,
coreDNSVersion,
)
customConfigMap.Data["maesh.server"] = corefile
- return customConfigMap, changed, nil
+ corefile, tChanged := addStubDomain(
+ customConfigMap.Data["traefik.mesh.server"],
+ traefikMeshBlockHeader,
+ traefikMeshBlockTrailer,
+ traefikMeshDomain,
+ clusterDomain,
+ traefikMeshNamespace,
+ coreDNSVersion,
+ )
+ customConfigMap.Data["traefik.mesh.server"] = corefile
+
+ return customConfigMap, mChanged || tChanged, nil
}
coreDNSConfigMap, err := c.getConfigMap(ctx, deployment, "coredns")
@@ -190,19 +207,29 @@ func (c *Client) patchCoreDNSConfig(ctx context.Context, deployment *appsv1.Depl
return nil, false, err
}
- corefile, changed := addStubDomain(
+ corefile, mChanged := addStubDomain(
coreDNSConfigMap.Data["Corefile"],
maeshBlockHeader,
maeshBlockTrailer,
maeshDomain,
clusterDomain,
- maeshNamespace,
+ traefikMeshNamespace,
+ coreDNSVersion,
+ )
+
+ corefile, tChanged := addStubDomain(
+ corefile,
+ traefikMeshBlockHeader,
+ traefikMeshBlockTrailer,
+ traefikMeshDomain,
+ clusterDomain,
+ traefikMeshNamespace,
coreDNSVersion,
)
coreDNSConfigMap.Data["Corefile"] = corefile
- return coreDNSConfigMap, changed, nil
+ return coreDNSConfigMap, mChanged || tChanged, nil
}
func (c *Client) getCoreDNSVersion(deployment *appsv1.Deployment) (*goversion.Version, error) {
@@ -219,9 +246,9 @@ func (c *Client) getCoreDNSVersion(deployment *appsv1.Deployment) (*goversion.Ve
return nil, fmt.Errorf("unable to get CoreDNS container in deployment %q in namespace %q", deployment.Name, deployment.Namespace)
}
-// ConfigureKubeDNS patches the KubeDNS configuration for Maesh.
-func (c *Client) ConfigureKubeDNS(ctx context.Context, clusterDomain, maeshNamespace string) error {
- c.logger.Debugf("Patching ConfigMap %q in namespace %q...", "kube-dns", maeshNamespace)
+// ConfigureKubeDNS patches the KubeDNS configuration for Traefik Mesh.
+func (c *Client) ConfigureKubeDNS(ctx context.Context, clusterDomain, traefikMeshNamespace string) error {
+ c.logger.Debugf("Patching ConfigMap %q in namespace %q...", "kube-dns", traefikMeshNamespace)
kubeDNSDeployment, err := c.kubeClient.AppsV1().Deployments(metav1.NamespaceSystem).Get(ctx, "kube-dns", metav1.GetOptions{})
if err != nil {
@@ -230,16 +257,16 @@ func (c *Client) ConfigureKubeDNS(ctx context.Context, clusterDomain, maeshNames
var coreDNSServiceIP string
- c.logger.Debugf("Getting ClusterIP for Service %q in namespace %q", "coredns", maeshNamespace)
+ c.logger.Debugf("Getting ClusterIP for Service %q in namespace %q", "coredns", traefikMeshNamespace)
operation := func() error {
- svc, svcErr := c.kubeClient.CoreV1().Services(maeshNamespace).Get(ctx, "coredns", metav1.GetOptions{})
+ svc, svcErr := c.kubeClient.CoreV1().Services(traefikMeshNamespace).Get(ctx, "coredns", metav1.GetOptions{})
if svcErr != nil {
- return fmt.Errorf("unable to get CoreDNS service in namespace %q: %w", maeshNamespace, err)
+ return fmt.Errorf("unable to get CoreDNS service in namespace %q: %w", traefikMeshNamespace, err)
}
if svc.Spec.ClusterIP == "" {
- return fmt.Errorf("coredns service in namespace %q has no ClusterIP", maeshNamespace)
+ return fmt.Errorf("coredns service in namespace %q has no ClusterIP", traefikMeshNamespace)
}
coreDNSServiceIP = svc.Spec.ClusterIP
@@ -251,13 +278,13 @@ func (c *Client) ConfigureKubeDNS(ctx context.Context, clusterDomain, maeshNames
return err
}
- c.logger.Debugf("ClusterIP for Service %q in namespace %q is %q", "coredns", maeshNamespace, coreDNSServiceIP)
+ c.logger.Debugf("ClusterIP for Service %q in namespace %q is %q", "coredns", traefikMeshNamespace, coreDNSServiceIP)
if err := c.patchKubeDNSConfig(ctx, kubeDNSDeployment, coreDNSServiceIP); err != nil {
return err
}
- if err := c.ConfigureCoreDNS(ctx, maeshNamespace, clusterDomain, maeshNamespace); err != nil {
+ if err := c.ConfigureCoreDNS(ctx, traefikMeshNamespace, clusterDomain, traefikMeshNamespace); err != nil {
return err
}
@@ -282,7 +309,10 @@ func (c *Client) patchKubeDNSConfig(ctx context.Context, deployment *appsv1.Depl
}
}
+ // Add our stubDomains.
+ // maesh stubDomain is deprecated and will be removed in the next major release.
stubDomains["maesh"] = []string{coreDNSServiceIP}
+ stubDomains["traefik.mesh"] = []string{coreDNSServiceIP}
configMapData, err := json.Marshal(stubDomains)
if err != nil {
@@ -307,7 +337,7 @@ func (c *Client) restartPods(ctx context.Context, deployment *appsv1.Deployment)
annotations = make(map[string]string)
}
- annotations["maesh-hash"] = uuid.New().String()
+ annotations["traefik-mesh-hash"] = uuid.New().String()
deployment.Spec.Template.Annotations = annotations
_, err := c.kubeClient.AppsV1().Deployments(deployment.Namespace).Update(ctx, deployment, metav1.UpdateOptions{})
@@ -345,6 +375,7 @@ func (c *Client) unpatchCoreDNSConfig(ctx context.Context, deployment *appsv1.De
// See https://docs.microsoft.com/en-us/azure/aks/coredns-custom
if err == nil {
delete(coreDNSConfigMap.Data, "maesh.server")
+ delete(coreDNSConfigMap.Data, "traefik.mesh.server")
return coreDNSConfigMap, nil
}
@@ -354,12 +385,20 @@ func (c *Client) unpatchCoreDNSConfig(ctx context.Context, deployment *appsv1.De
return nil, err
}
- coreDNSConfigMap.Data["Corefile"] = removeStubDomain(
+ corefile := removeStubDomain(
coreDNSConfigMap.Data["Corefile"],
maeshBlockHeader,
maeshBlockTrailer,
)
+ corefile = removeStubDomain(
+ corefile,
+ traefikMeshBlockHeader,
+ traefikMeshBlockTrailer,
+ )
+
+ coreDNSConfigMap.Data["Corefile"] = corefile
+
return coreDNSConfigMap, nil
}
@@ -387,8 +426,10 @@ func (c *Client) RestoreKubeDNS(ctx context.Context) error {
return fmt.Errorf("unable to unmarshal stubdomains: %w", err)
}
- // Delete our stubDomain.
+ // Delete our stubDomains.
+ // maesh stubDomain is deprecated and will be removed in the next major release.
delete(stubDomains, "maesh")
+ delete(stubDomains, "traefik.mesh")
configMapData, err := json.Marshal(stubDomains)
if err != nil {
@@ -513,6 +554,7 @@ func addStubDomain(config, blockHeader, blockTrailer, domain, clusterDomain, tra
loadbalance
}
%[5]s`
+
upstream := ""
if coreDNSVersion.LessThan(versionCoreDNS17) {
diff --git a/pkg/dns/dns_test.go b/pkg/dns/dns_test.go
index 567e43993..e75aeaba2 100644
--- a/pkg/dns/dns_test.go
+++ b/pkg/dns/dns_test.go
@@ -5,44 +5,44 @@ import (
"os"
"testing"
- "github.com/containous/maesh/pkg/k8s"
"github.com/sirupsen/logrus"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
+ "github.com/traefik/mesh/pkg/k8s"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
func TestCheckDNSProvider(t *testing.T) {
tests := []struct {
- desc string
- mockFile string
- expectedProvider Provider
- expectedErr bool
+ desc string
+ mockFile string
+ expProvider Provider
+ expErr bool
}{
{
- desc: "CoreDNS supported version",
- mockFile: "checkdnsprovider_supported_version.yaml",
- expectedProvider: CoreDNS,
- expectedErr: false,
+ desc: "CoreDNS supported version",
+ mockFile: "checkdnsprovider_supported_version.yaml",
+ expProvider: CoreDNS,
+ expErr: false,
},
{
- desc: "KubeDNS",
- mockFile: "checkdnsprovider_kubedns.yaml",
- expectedProvider: KubeDNS,
- expectedErr: false,
+ desc: "KubeDNS",
+ mockFile: "checkdnsprovider_kubedns.yaml",
+ expProvider: KubeDNS,
+ expErr: false,
},
{
- desc: "CoreDNS unsupported version",
- mockFile: "checkdnsprovider_unsupported_version.yaml",
- expectedProvider: UnknownDNS,
- expectedErr: true,
+ desc: "CoreDNS unsupported version",
+ mockFile: "checkdnsprovider_unsupported_version.yaml",
+ expProvider: UnknownDNS,
+ expErr: true,
},
{
- desc: "No known DNS provider",
- mockFile: "checkdnsprovider_no_provider.yaml",
- expectedProvider: UnknownDNS,
- expectedErr: true,
+ desc: "No known DNS provider",
+ mockFile: "checkdnsprovider_no_provider.yaml",
+ expProvider: UnknownDNS,
+ expErr: true,
},
}
@@ -61,89 +61,98 @@ func TestCheckDNSProvider(t *testing.T) {
client := NewClient(log, k8sClient.KubernetesClient())
provider, err := client.CheckDNSProvider(ctx)
- if test.expectedErr {
+ if test.expErr {
require.Error(t, err)
return
}
require.NoError(t, err)
- assert.Equal(t, test.expectedProvider, provider)
+ assert.Equal(t, test.expProvider, provider)
})
}
}
func TestConfigureCoreDNS(t *testing.T) {
tests := []struct {
- desc string
- mockFile string
- expectedCorefile string
- expectedCustom string
- expectedErr bool
- expectedRestart bool
+ desc string
+ mockFile string
+ expCorefile string
+ expCustoms map[string]string
+ expErr bool
+ expRestart bool
}{
{
- desc: "First time config of CoreDNS",
- mockFile: "configurecoredns_not_patched.yaml",
- expectedErr: false,
- expectedCorefile: ".:53 {\n errors\n health {\n lameduck 5s\n }\n ready\n kubernetes {{ pillar['dns_domain'] }} in-addr.arpa ip6.arpa {\n pods insecure\n fallthrough in-addr.arpa ip6.arpa\n ttl 30\n }\n prometheus :9153\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n\n#### Begin Maesh Block\nmaesh:53 {\n errors\n rewrite continue {\n name regex ([a-zA-Z0-9-_]*)\\.([a-zv0-9-_]*)\\.maesh toto-{1}-6d61657368-{2}.toto.svc.titi\n answer name toto-([a-zA-Z0-9-_]*)-6d61657368-([a-zA-Z0-9-_]*)\\.toto\\.svc\\.titi {1}.{2}.maesh\n }\n kubernetes titi in-addr.arpa ip6.arpa {\n pods insecure\n upstream\n fallthrough in-addr.arpa ip6.arpa\n }\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n#### End Maesh Block\n",
- expectedRestart: true,
+ desc: "First time config of CoreDNS",
+ mockFile: "configurecoredns_not_patched.yaml",
+ expErr: false,
+ expCorefile: ".:53 {\n errors\n health {\n lameduck 5s\n }\n ready\n kubernetes {{ pillar['dns_domain'] }} in-addr.arpa ip6.arpa {\n pods insecure\n fallthrough in-addr.arpa ip6.arpa\n ttl 30\n }\n prometheus :9153\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n\n#### Begin Maesh Block\nmaesh:53 {\n errors\n rewrite continue {\n name regex ([a-zA-Z0-9-_]*)\\.([a-zv0-9-_]*)\\.maesh toto-{1}-6d61657368-{2}.toto.svc.titi\n answer name toto-([a-zA-Z0-9-_]*)-6d61657368-([a-zA-Z0-9-_]*)\\.toto\\.svc\\.titi {1}.{2}.maesh\n }\n kubernetes titi in-addr.arpa ip6.arpa {\n pods insecure\n upstream\n fallthrough in-addr.arpa ip6.arpa\n }\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n#### End Maesh Block\n\n#### Begin Traefik Mesh Block\ntraefik.mesh:53 {\n errors\n rewrite continue {\n name regex ([a-zA-Z0-9-_]*)\\.([a-zv0-9-_]*)\\.traefik.mesh toto-{1}-6d61657368-{2}.toto.svc.titi\n answer name toto-([a-zA-Z0-9-_]*)-6d61657368-([a-zA-Z0-9-_]*)\\.toto\\.svc\\.titi {1}.{2}.traefik.mesh\n }\n kubernetes titi in-addr.arpa ip6.arpa {\n pods insecure\n upstream\n fallthrough in-addr.arpa ip6.arpa\n }\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n#### End Traefik Mesh Block\n",
+ expRestart: true,
},
{
- desc: "Already patched CoreDNS config",
- mockFile: "configurecoredns_already_patched.yaml",
- expectedErr: false,
- expectedCorefile: ".:53 {\n errors\n health {\n lameduck 5s\n }\n ready\n kubernetes {{ pillar['dns_domain'] }} in-addr.arpa ip6.arpa {\n pods insecure\n fallthrough in-addr.arpa ip6.arpa\n ttl 30\n }\n prometheus :9153\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n }\n#### Begin Maesh Block\nmaesh:53 {\n errors\n rewrite continue {\n name regex ([a-zA-Z0-9-_]*)\\.([a-zv0-9-_]*)\\.maesh toto-{1}-6d61657368-{2}.toto.svc.titi\n answer name toto-([a-zA-Z0-9-_]*)-6d61657368-([a-zA-Z0-9-_]*)\\.toto\\.svc\\.titi {1}.{2}.maesh\n }\n kubernetes titi in-addr.arpa ip6.arpa {\n pods insecure\n upstream\n fallthrough in-addr.arpa ip6.arpa\n }\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n#### End Maesh Block\n",
- expectedRestart: false,
+ desc: "Already patched CoreDNS config",
+ mockFile: "configurecoredns_already_patched.yaml",
+ expErr: false,
+ expCorefile: ".:53 {\n errors\n health {\n lameduck 5s\n }\n ready\n kubernetes {{ pillar['dns_domain'] }} in-addr.arpa ip6.arpa {\n pods insecure\n fallthrough in-addr.arpa ip6.arpa\n ttl 30\n }\n prometheus :9153\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n }\n\n#### Begin Maesh Block\nmaesh:53 {\n errors\n rewrite continue {\n name regex ([a-zA-Z0-9-_]*)\\.([a-zv0-9-_]*)\\.maesh toto-{1}-6d61657368-{2}.toto.svc.titi\n answer name toto-([a-zA-Z0-9-_]*)-6d61657368-([a-zA-Z0-9-_]*)\\.toto\\.svc\\.titi {1}.{2}.maesh\n }\n kubernetes titi in-addr.arpa ip6.arpa {\n pods insecure\n upstream\n fallthrough in-addr.arpa ip6.arpa\n }\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n#### End Maesh Block\n\n#### Begin Traefik Mesh Block\ntraefik.mesh:53 {\n errors\n rewrite continue {\n name regex ([a-zA-Z0-9-_]*)\\.([a-zv0-9-_]*)\\.traefik.mesh toto-{1}-6d61657368-{2}.toto.svc.titi\n answer name toto-([a-zA-Z0-9-_]*)-6d61657368-([a-zA-Z0-9-_]*)\\.toto\\.svc\\.titi {1}.{2}.traefik.mesh\n }\n kubernetes titi in-addr.arpa ip6.arpa {\n pods insecure\n upstream\n fallthrough in-addr.arpa ip6.arpa\n }\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n#### End Traefik Mesh Block\n",
+ expRestart: false,
},
{
- desc: "Missing Corefile configmap",
- mockFile: "configurecoredns_missing_configmap.yaml",
- expectedErr: true,
- expectedRestart: false,
+ desc: "Missing Corefile configmap",
+ mockFile: "configurecoredns_missing_configmap.yaml",
+ expErr: true,
+ expRestart: false,
},
{
- desc: "First time config of CoreDNS custom",
- mockFile: "configurecoredns_custom_not_patched.yaml",
- expectedErr: false,
- expectedCorefile: ".:53 {\n errors\n health {\n lameduck 5s\n }\n ready\n kubernetes {{ pillar['dns_domain'] }} in-addr.arpa ip6.arpa {\n pods insecure\n fallthrough in-addr.arpa ip6.arpa\n ttl 30\n }\n prometheus :9153\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n",
- expectedCustom: "\n#### Begin Maesh Block\nmaesh:53 {\n errors\n rewrite continue {\n name regex ([a-zA-Z0-9-_]*)\\.([a-zv0-9-_]*)\\.maesh toto-{1}-6d61657368-{2}.toto.svc.titi\n answer name toto-([a-zA-Z0-9-_]*)-6d61657368-([a-zA-Z0-9-_]*)\\.toto\\.svc\\.titi {1}.{2}.maesh\n }\n kubernetes titi in-addr.arpa ip6.arpa {\n pods insecure\n upstream\n fallthrough in-addr.arpa ip6.arpa\n }\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n#### End Maesh Block\n",
- expectedRestart: true,
+ desc: "First time config of CoreDNS custom",
+ mockFile: "configurecoredns_custom_not_patched.yaml",
+ expErr: false,
+ expCorefile: ".:53 {\n errors\n health {\n lameduck 5s\n }\n ready\n kubernetes {{ pillar['dns_domain'] }} in-addr.arpa ip6.arpa {\n pods insecure\n fallthrough in-addr.arpa ip6.arpa\n ttl 30\n }\n prometheus :9153\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n",
+ expCustoms: map[string]string{
+ "maesh.server": "\n#### Begin Maesh Block\nmaesh:53 {\n errors\n rewrite continue {\n name regex ([a-zA-Z0-9-_]*)\\.([a-zv0-9-_]*)\\.maesh toto-{1}-6d61657368-{2}.toto.svc.titi\n answer name toto-([a-zA-Z0-9-_]*)-6d61657368-([a-zA-Z0-9-_]*)\\.toto\\.svc\\.titi {1}.{2}.maesh\n }\n kubernetes titi in-addr.arpa ip6.arpa {\n pods insecure\n upstream\n fallthrough in-addr.arpa ip6.arpa\n }\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n#### End Maesh Block\n",
+ "traefik.mesh.server": "\n#### Begin Traefik Mesh Block\ntraefik.mesh:53 {\n errors\n rewrite continue {\n name regex ([a-zA-Z0-9-_]*)\\.([a-zv0-9-_]*)\\.traefik.mesh toto-{1}-6d61657368-{2}.toto.svc.titi\n answer name toto-([a-zA-Z0-9-_]*)-6d61657368-([a-zA-Z0-9-_]*)\\.toto\\.svc\\.titi {1}.{2}.traefik.mesh\n }\n kubernetes titi in-addr.arpa ip6.arpa {\n pods insecure\n upstream\n fallthrough in-addr.arpa ip6.arpa\n }\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n#### End Traefik Mesh Block\n",
+ },
+ expRestart: true,
},
{
- desc: "Already patched CoreDNS custom config",
- mockFile: "configurecoredns_custom_already_patched.yaml",
- expectedErr: false,
- expectedCorefile: ".:53 {\n errors\n health {\n lameduck 5s\n }\n ready\n kubernetes {{ pillar['dns_domain'] }} in-addr.arpa ip6.arpa {\n pods insecure\n fallthrough in-addr.arpa ip6.arpa\n ttl 30\n }\n prometheus :9153\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n",
- expectedCustom: "#### Begin Maesh Block\nmaesh:53 {\n errors\n rewrite continue {\n name regex ([a-zA-Z0-9-_]*)\\.([a-zv0-9-_]*)\\.maesh toto-{1}-6d61657368-{2}.toto.svc.titi\n answer name toto-([a-zA-Z0-9-_]*)-6d61657368-([a-zA-Z0-9-_]*)\\.toto\\.svc\\.titi {1}.{2}.maesh\n }\n kubernetes titi in-addr.arpa ip6.arpa {\n pods insecure\n upstream\n fallthrough in-addr.arpa ip6.arpa\n }\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n#### End Maesh Block\n",
- expectedRestart: false,
+ desc: "Already patched CoreDNS custom config",
+ mockFile: "configurecoredns_custom_already_patched.yaml",
+ expErr: false,
+ expCorefile: ".:53 {\n errors\n health {\n lameduck 5s\n }\n ready\n kubernetes {{ pillar['dns_domain'] }} in-addr.arpa ip6.arpa {\n pods insecure\n fallthrough in-addr.arpa ip6.arpa\n ttl 30\n }\n prometheus :9153\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n",
+ expCustoms: map[string]string{
+ "maesh.server": "#### Begin Maesh Block\nmaesh:53 {\n errors\n rewrite continue {\n name regex ([a-zA-Z0-9-_]*)\\.([a-zv0-9-_]*)\\.maesh toto-{1}-6d61657368-{2}.toto.svc.titi\n answer name toto-([a-zA-Z0-9-_]*)-6d61657368-([a-zA-Z0-9-_]*)\\.toto\\.svc\\.titi {1}.{2}.maesh\n }\n kubernetes titi in-addr.arpa ip6.arpa {\n pods insecure\n upstream\n fallthrough in-addr.arpa ip6.arpa\n }\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n#### End Maesh Block\n",
+ "traefik.mesh.server": "#### Begin Traefik Mesh Block\ntraefik.mesh:53 {\n errors\n rewrite continue {\n name regex ([a-zA-Z0-9-_]*)\\.([a-zv0-9-_]*)\\.traefik.mesh toto-{1}-6d61657368-{2}.toto.svc.titi\n answer name toto-([a-zA-Z0-9-_]*)-6d61657368-([a-zA-Z0-9-_]*)\\.toto\\.svc\\.titi {1}.{2}.traefik.mesh\n }\n kubernetes titi in-addr.arpa ip6.arpa {\n pods insecure\n upstream\n fallthrough in-addr.arpa ip6.arpa\n }\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n#### End Traefik Mesh Block\n",
+ },
+ expRestart: false,
},
{
- desc: "Config of CoreDNS 1.7",
- mockFile: "configurecoredns_17.yaml",
- expectedErr: false,
- expectedCorefile: ".:53 {\n errors\n health {\n lameduck 5s\n }\n ready\n kubernetes {{ pillar['dns_domain'] }} in-addr.arpa ip6.arpa {\n pods insecure\n fallthrough in-addr.arpa ip6.arpa\n ttl 30\n }\n prometheus :9153\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n\n#### Begin Maesh Block\nmaesh:53 {\n errors\n rewrite continue {\n name regex ([a-zA-Z0-9-_]*)\\.([a-zv0-9-_]*)\\.maesh toto-{1}-6d61657368-{2}.toto.svc.titi\n answer name toto-([a-zA-Z0-9-_]*)-6d61657368-([a-zA-Z0-9-_]*)\\.toto\\.svc\\.titi {1}.{2}.maesh\n }\n kubernetes titi in-addr.arpa ip6.arpa {\n pods insecure\n \n fallthrough in-addr.arpa ip6.arpa\n }\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n#### End Maesh Block\n",
- expectedRestart: true,
+ desc: "Config of CoreDNS 1.7",
+ mockFile: "configurecoredns_17.yaml",
+ expErr: false,
+ expCorefile: ".:53 {\n errors\n health {\n lameduck 5s\n }\n ready\n kubernetes {{ pillar['dns_domain'] }} in-addr.arpa ip6.arpa {\n pods insecure\n fallthrough in-addr.arpa ip6.arpa\n ttl 30\n }\n prometheus :9153\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n\n#### Begin Maesh Block\nmaesh:53 {\n errors\n rewrite continue {\n name regex ([a-zA-Z0-9-_]*)\\.([a-zv0-9-_]*)\\.maesh toto-{1}-6d61657368-{2}.toto.svc.titi\n answer name toto-([a-zA-Z0-9-_]*)-6d61657368-([a-zA-Z0-9-_]*)\\.toto\\.svc\\.titi {1}.{2}.maesh\n }\n kubernetes titi in-addr.arpa ip6.arpa {\n pods insecure\n \n fallthrough in-addr.arpa ip6.arpa\n }\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n#### End Maesh Block\n\n#### Begin Traefik Mesh Block\ntraefik.mesh:53 {\n errors\n rewrite continue {\n name regex ([a-zA-Z0-9-_]*)\\.([a-zv0-9-_]*)\\.traefik.mesh toto-{1}-6d61657368-{2}.toto.svc.titi\n answer name toto-([a-zA-Z0-9-_]*)-6d61657368-([a-zA-Z0-9-_]*)\\.toto\\.svc\\.titi {1}.{2}.traefik.mesh\n }\n kubernetes titi in-addr.arpa ip6.arpa {\n pods insecure\n \n fallthrough in-addr.arpa ip6.arpa\n }\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n#### End Traefik Mesh Block\n",
+ expRestart: true,
},
{
- desc: "CoreDNS 1.7 already patched for an older version of CoreDNS",
- mockFile: "configurecoredns_17_already_patched.yaml",
- expectedErr: false,
- expectedCorefile: ".:53 {\n errors\n health {\n lameduck 5s\n }\n ready\n kubernetes {{ pillar['dns_domain'] }} in-addr.arpa ip6.arpa {\n pods insecure\n fallthrough in-addr.arpa ip6.arpa\n ttl 30\n }\n prometheus :9153\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n\n#### Begin Maesh Block\nmaesh:53 {\n errors\n rewrite continue {\n name regex ([a-zA-Z0-9-_]*)\\.([a-zv0-9-_]*)\\.maesh toto-{1}-6d61657368-{2}.toto.svc.titi\n answer name toto-([a-zA-Z0-9-_]*)-6d61657368-([a-zA-Z0-9-_]*)\\.toto\\.svc\\.titi {1}.{2}.maesh\n }\n kubernetes titi in-addr.arpa ip6.arpa {\n pods insecure\n \n fallthrough in-addr.arpa ip6.arpa\n }\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n#### End Maesh Block\n",
- expectedRestart: true,
+ desc: "CoreDNS 1.7 already patched for an older version of CoreDNS",
+ mockFile: "configurecoredns_17_already_patched.yaml",
+ expErr: false,
+ expCorefile: ".:53 {\n errors\n health {\n lameduck 5s\n }\n ready\n kubernetes {{ pillar['dns_domain'] }} in-addr.arpa ip6.arpa {\n pods insecure\n fallthrough in-addr.arpa ip6.arpa\n ttl 30\n }\n prometheus :9153\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n\n#### Begin Maesh Block\nmaesh:53 {\n errors\n rewrite continue {\n name regex ([a-zA-Z0-9-_]*)\\.([a-zv0-9-_]*)\\.maesh toto-{1}-6d61657368-{2}.toto.svc.titi\n answer name toto-([a-zA-Z0-9-_]*)-6d61657368-([a-zA-Z0-9-_]*)\\.toto\\.svc\\.titi {1}.{2}.maesh\n }\n kubernetes titi in-addr.arpa ip6.arpa {\n pods insecure\n \n fallthrough in-addr.arpa ip6.arpa\n }\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n#### End Maesh Block\n\n#### Begin Traefik Mesh Block\ntraefik.mesh:53 {\n errors\n rewrite continue {\n name regex ([a-zA-Z0-9-_]*)\\.([a-zv0-9-_]*)\\.traefik.mesh toto-{1}-6d61657368-{2}.toto.svc.titi\n answer name toto-([a-zA-Z0-9-_]*)-6d61657368-([a-zA-Z0-9-_]*)\\.toto\\.svc\\.titi {1}.{2}.traefik.mesh\n }\n kubernetes titi in-addr.arpa ip6.arpa {\n pods insecure\n \n fallthrough in-addr.arpa ip6.arpa\n }\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n#### End Traefik Mesh Block\n",
+ expRestart: true,
},
{
- desc: "CoreDNS 1.7 custom config already patched for an older version of CoreDNS",
- mockFile: "configurecoredns_17_custom_already_patched.yaml",
- expectedErr: false,
- expectedCorefile: ".:53 {\n errors\n health {\n lameduck 5s\n }\n ready\n kubernetes {{ pillar['dns_domain'] }} in-addr.arpa ip6.arpa {\n pods insecure\n fallthrough in-addr.arpa ip6.arpa\n ttl 30\n }\n prometheus :9153\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n",
- expectedCustom: "\n#### Begin Maesh Block\nmaesh:53 {\n errors\n rewrite continue {\n name regex ([a-zA-Z0-9-_]*)\\.([a-zv0-9-_]*)\\.maesh toto-{1}-6d61657368-{2}.toto.svc.titi\n answer name toto-([a-zA-Z0-9-_]*)-6d61657368-([a-zA-Z0-9-_]*)\\.toto\\.svc\\.titi {1}.{2}.maesh\n }\n kubernetes titi in-addr.arpa ip6.arpa {\n pods insecure\n \n fallthrough in-addr.arpa ip6.arpa\n }\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n#### End Maesh Block\n",
- expectedRestart: true,
+ desc: "CoreDNS 1.7 custom config already patched for an older version of CoreDNS",
+ mockFile: "configurecoredns_17_custom_already_patched.yaml",
+ expErr: false,
+ expCorefile: ".:53 {\n errors\n health {\n lameduck 5s\n }\n ready\n kubernetes {{ pillar['dns_domain'] }} in-addr.arpa ip6.arpa {\n pods insecure\n fallthrough in-addr.arpa ip6.arpa\n ttl 30\n }\n prometheus :9153\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n",
+ expCustoms: map[string]string{
+ "maesh.server": "\n#### Begin Maesh Block\nmaesh:53 {\n errors\n rewrite continue {\n name regex ([a-zA-Z0-9-_]*)\\.([a-zv0-9-_]*)\\.maesh toto-{1}-6d61657368-{2}.toto.svc.titi\n answer name toto-([a-zA-Z0-9-_]*)-6d61657368-([a-zA-Z0-9-_]*)\\.toto\\.svc\\.titi {1}.{2}.maesh\n }\n kubernetes titi in-addr.arpa ip6.arpa {\n pods insecure\n \n fallthrough in-addr.arpa ip6.arpa\n }\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n#### End Maesh Block\n",
+ "traefik.mesh.server": "\n#### Begin Traefik Mesh Block\ntraefik.mesh:53 {\n errors\n rewrite continue {\n name regex ([a-zA-Z0-9-_]*)\\.([a-zv0-9-_]*)\\.traefik.mesh toto-{1}-6d61657368-{2}.toto.svc.titi\n answer name toto-([a-zA-Z0-9-_]*)-6d61657368-([a-zA-Z0-9-_]*)\\.toto\\.svc\\.titi {1}.{2}.traefik.mesh\n }\n kubernetes titi in-addr.arpa ip6.arpa {\n pods insecure\n \n fallthrough in-addr.arpa ip6.arpa\n }\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n#### End Traefik Mesh Block\n",
+ },
+ expRestart: true,
},
{
- desc: "Missing CoreDNS deployment",
- mockFile: "configurecoredns_missing_deployment.yaml",
- expectedErr: true,
- expectedRestart: false,
+ desc: "Missing CoreDNS deployment",
+ mockFile: "configurecoredns_missing_deployment.yaml",
+ expErr: true,
+ expRestart: false,
},
}
@@ -162,7 +171,7 @@ func TestConfigureCoreDNS(t *testing.T) {
client := NewClient(log, k8sClient.KubernetesClient())
err := client.ConfigureCoreDNS(ctx, "kube-system", "titi", "toto")
- if test.expectedErr {
+ if test.expErr {
require.Error(t, err)
return
}
@@ -172,52 +181,54 @@ func TestConfigureCoreDNS(t *testing.T) {
cfgMap, err := k8sClient.KubernetesClient().CoreV1().ConfigMaps("kube-system").Get(ctx, "coredns", metav1.GetOptions{})
require.NoError(t, err)
- assert.Equal(t, test.expectedCorefile, cfgMap.Data["Corefile"])
+ assert.Equal(t, test.expCorefile, cfgMap.Data["Corefile"])
- if len(test.expectedCustom) > 0 {
+ if len(test.expCustoms) > 0 {
var customCfgMap *corev1.ConfigMap
customCfgMap, err = k8sClient.KubernetesClient().CoreV1().ConfigMaps("kube-system").Get(ctx, "coredns-custom", metav1.GetOptions{})
require.NoError(t, err)
- assert.Equal(t, test.expectedCustom, customCfgMap.Data["maesh.server"])
+ for key, value := range test.expCustoms {
+ assert.Equal(t, value, customCfgMap.Data[key])
+ }
}
coreDNSDeployment, err := k8sClient.KubernetesClient().AppsV1().Deployments("kube-system").Get(ctx, "coredns", metav1.GetOptions{})
require.NoError(t, err)
- restarted := coreDNSDeployment.Spec.Template.Annotations["maesh-hash"] != ""
- assert.Equal(t, test.expectedRestart, restarted)
+ restarted := coreDNSDeployment.Spec.Template.Annotations["traefik-mesh-hash"] != ""
+ assert.Equal(t, test.expRestart, restarted)
})
}
}
func TestConfigureKubeDNS(t *testing.T) {
tests := []struct {
- desc string
- mockFile string
- expectedStubDomains string
- expectedErr bool
+ desc string
+ mockFile string
+ expStubDomains string
+ expErr bool
}{
{
- desc: "should return an error if kube-dns deployment does not exist",
- mockFile: "configurekubedns_missing_deployment.yaml",
- expectedErr: true,
+ desc: "should return an error if kube-dns deployment does not exist",
+ mockFile: "configurekubedns_missing_deployment.yaml",
+ expErr: true,
},
{
- desc: "should add maesh stubdomain config in kube-dns configmap",
- mockFile: "configurekubedns_not_patched.yaml",
- expectedStubDomains: `{"maesh":["1.2.3.4"]}`,
+ desc: "should add stubdomains config in kube-dns configmap",
+ mockFile: "configurekubedns_not_patched.yaml",
+ expStubDomains: `{"maesh":["1.2.3.4"],"traefik.mesh":["1.2.3.4"]}`,
},
{
- desc: "should replace maesh stubdomain config in kube-dns configmap",
- mockFile: "configurekubedns_already_patched.yaml",
- expectedStubDomains: `{"maesh":["1.2.3.4"]}`,
+ desc: "should replace stubdomains config in kube-dns configmap",
+ mockFile: "configurekubedns_already_patched.yaml",
+ expStubDomains: `{"maesh":["1.2.3.4"],"traefik.mesh":["1.2.3.4"]}`,
},
{
- desc: "should create optional kube-dns configmap and add maesh stubdomain config",
- mockFile: "configurekubedns_optional_configmap.yaml",
- expectedStubDomains: `{"maesh":["1.2.3.4"]}`,
+ desc: "should create optional kube-dns configmap and add stubdomains config",
+ mockFile: "configurekubedns_optional_configmap.yaml",
+ expStubDomains: `{"maesh":["1.2.3.4"],"traefik.mesh":["1.2.3.4"]}`,
},
}
@@ -235,8 +246,8 @@ func TestConfigureKubeDNS(t *testing.T) {
client := NewClient(log, k8sClient.KubernetesClient())
- err := client.ConfigureKubeDNS(ctx, "cluster.local", "maesh")
- if test.expectedErr {
+ err := client.ConfigureKubeDNS(ctx, "cluster.local", "traefik-mesh")
+ if test.expErr {
require.Error(t, err)
return
}
@@ -246,39 +257,39 @@ func TestConfigureKubeDNS(t *testing.T) {
cfgMap, err := k8sClient.KubernetesClient().CoreV1().ConfigMaps("kube-system").Get(ctx, "kube-dns", metav1.GetOptions{})
require.NoError(t, err)
- assert.Equal(t, test.expectedStubDomains, cfgMap.Data["stubDomains"])
+ assert.Equal(t, test.expStubDomains, cfgMap.Data["stubDomains"])
})
}
}
func TestRestoreCoreDNS(t *testing.T) {
tests := []struct {
- desc string
- mockFile string
- hasCustom bool
- expectedCorefile string
+ desc string
+ mockFile string
+ hasCustom bool
+ expCorefile string
}{
{
- desc: "CoreDNS config patched",
- mockFile: "restorecoredns_patched.yaml",
- expectedCorefile: ".:53 {\n errors\n health {\n lameduck 5s\n }\n ready\n kubernetes {{ pillar['dns_domain'] }} in-addr.arpa ip6.arpa {\n pods insecure\n fallthrough in-addr.arpa ip6.arpa\n ttl 30\n }\n prometheus :9153\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n }\n\n# This is test data that must be present\n",
+ desc: "CoreDNS config patched",
+ mockFile: "restorecoredns_patched.yaml",
+ expCorefile: ".:53 {\n errors\n health {\n lameduck 5s\n }\n ready\n kubernetes {{ pillar['dns_domain'] }} in-addr.arpa ip6.arpa {\n pods insecure\n fallthrough in-addr.arpa ip6.arpa\n ttl 30\n }\n prometheus :9153\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n }\n\n# This is test data that must be present\n",
},
{
- desc: "CoreDNS config not patched",
- mockFile: "restorecoredns_not_patched.yaml",
- expectedCorefile: ".:53 {\n errors\n health {\n lameduck 5s\n }\n ready\n kubernetes {{ pillar['dns_domain'] }} in-addr.arpa ip6.arpa {\n pods insecure\n fallthrough in-addr.arpa ip6.arpa\n ttl 30\n }\n prometheus :9153\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n",
+ desc: "CoreDNS config not patched",
+ mockFile: "restorecoredns_not_patched.yaml",
+ expCorefile: ".:53 {\n errors\n health {\n lameduck 5s\n }\n ready\n kubernetes {{ pillar['dns_domain'] }} in-addr.arpa ip6.arpa {\n pods insecure\n fallthrough in-addr.arpa ip6.arpa\n ttl 30\n }\n prometheus :9153\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n}\n",
},
{
- desc: "CoreDNS custom config patched",
- mockFile: "restorecoredns_custom_patched.yaml",
- hasCustom: true,
- expectedCorefile: ".:53 {\n errors\n health {\n lameduck 5s\n }\n ready\n kubernetes {{ pillar['dns_domain'] }} in-addr.arpa ip6.arpa {\n pods insecure\n fallthrough in-addr.arpa ip6.arpa\n ttl 30\n }\n prometheus :9153\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n }\n",
+ desc: "CoreDNS custom config patched",
+ mockFile: "restorecoredns_custom_patched.yaml",
+ hasCustom: true,
+ expCorefile: ".:53 {\n errors\n health {\n lameduck 5s\n }\n ready\n kubernetes {{ pillar['dns_domain'] }} in-addr.arpa ip6.arpa {\n pods insecure\n fallthrough in-addr.arpa ip6.arpa\n ttl 30\n }\n prometheus :9153\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n }\n",
},
{
- desc: "CoreDNS custom config not patched",
- mockFile: "restorecoredns_custom_not_patched.yaml",
- hasCustom: true,
- expectedCorefile: ".:53 {\n errors\n health {\n lameduck 5s\n }\n ready\n kubernetes {{ pillar['dns_domain'] }} in-addr.arpa ip6.arpa {\n pods insecure\n fallthrough in-addr.arpa ip6.arpa\n ttl 30\n }\n prometheus :9153\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n }\n",
+ desc: "CoreDNS custom config not patched",
+ mockFile: "restorecoredns_custom_not_patched.yaml",
+ hasCustom: true,
+ expCorefile: ".:53 {\n errors\n health {\n lameduck 5s\n }\n ready\n kubernetes {{ pillar['dns_domain'] }} in-addr.arpa ip6.arpa {\n pods insecure\n fallthrough in-addr.arpa ip6.arpa\n ttl 30\n }\n prometheus :9153\n forward . /etc/resolv.conf\n cache 30\n loop\n reload\n loadbalance\n }\n",
},
}
@@ -302,7 +313,7 @@ func TestRestoreCoreDNS(t *testing.T) {
cfgMap, err := k8sClient.KubernetesClient().CoreV1().ConfigMaps("kube-system").Get(ctx, "coredns", metav1.GetOptions{})
require.NoError(t, err)
- assert.Equal(t, test.expectedCorefile, cfgMap.Data["Corefile"])
+ assert.Equal(t, test.expCorefile, cfgMap.Data["Corefile"])
if test.hasCustom {
customCfgMap, err := k8sClient.KubernetesClient().CoreV1().ConfigMaps("kube-system").Get(ctx, "coredns-custom", metav1.GetOptions{})
@@ -320,19 +331,19 @@ func TestRestoreCoreDNS(t *testing.T) {
func TestRestoreKubeDNS(t *testing.T) {
tests := []struct {
- desc string
- mockFile string
- expectedStubDomains string
+ desc string
+ mockFile string
+ expStubDomains string
}{
{
- desc: "Not patched",
- mockFile: "restorekubedns_not_patched.yaml",
- expectedStubDomains: "",
+ desc: "Not patched",
+ mockFile: "restorekubedns_not_patched.yaml",
+ expStubDomains: "",
},
{
- desc: "Already patched",
- mockFile: "restorekubedns_already_patched.yaml",
- expectedStubDomains: `{"test":["5.6.7.8"]}`,
+ desc: "Already patched",
+ mockFile: "restorekubedns_already_patched.yaml",
+ expStubDomains: `{"test":["5.6.7.8"]}`,
},
}
@@ -356,7 +367,7 @@ func TestRestoreKubeDNS(t *testing.T) {
cfgMap, err := k8sClient.KubernetesClient().CoreV1().ConfigMaps("kube-system").Get(ctx, "kube-dns", metav1.GetOptions{})
require.NoError(t, err)
- assert.Equal(t, test.expectedStubDomains, cfgMap.Data["stubDomains"])
+ assert.Equal(t, test.expStubDomains, cfgMap.Data["stubDomains"])
})
}
}
diff --git a/pkg/dns/testdata/configurecoredns_already_patched.yaml b/pkg/dns/testdata/configurecoredns_already_patched.yaml
index 8a98c6471..00b930fb7 100644
--- a/pkg/dns/testdata/configurecoredns_already_patched.yaml
+++ b/pkg/dns/testdata/configurecoredns_already_patched.yaml
@@ -46,6 +46,7 @@ data:
reload
loadbalance
}
+
#### Begin Maesh Block
maesh:53 {
errors
@@ -65,3 +66,23 @@ data:
loadbalance
}
#### End Maesh Block
+
+ #### Begin Traefik Mesh Block
+ traefik.mesh:53 {
+ errors
+ rewrite continue {
+ name regex ([a-zA-Z0-9-_]*)\.([a-zv0-9-_]*)\.traefik.mesh toto-{1}-6d61657368-{2}.toto.svc.titi
+ answer name toto-([a-zA-Z0-9-_]*)-6d61657368-([a-zA-Z0-9-_]*)\.toto\.svc\.titi {1}.{2}.traefik.mesh
+ }
+ kubernetes titi in-addr.arpa ip6.arpa {
+ pods insecure
+ upstream
+ fallthrough in-addr.arpa ip6.arpa
+ }
+ forward . /etc/resolv.conf
+ cache 30
+ loop
+ reload
+ loadbalance
+ }
+ #### End Traefik Mesh Block
diff --git a/pkg/dns/testdata/configurecoredns_custom_already_patched.yaml b/pkg/dns/testdata/configurecoredns_custom_already_patched.yaml
index f4cce8c94..f34f6d239 100644
--- a/pkg/dns/testdata/configurecoredns_custom_already_patched.yaml
+++ b/pkg/dns/testdata/configurecoredns_custom_already_patched.yaml
@@ -41,6 +41,28 @@ data:
loadbalance
}
#### End Maesh Block
+
+ traefik.mesh.server: |
+ #### Begin Traefik Mesh Block
+ traefik.mesh:53 {
+ errors
+ rewrite continue {
+ name regex ([a-zA-Z0-9-_]*)\.([a-zv0-9-_]*)\.traefik.mesh toto-{1}-6d61657368-{2}.toto.svc.titi
+ answer name toto-([a-zA-Z0-9-_]*)-6d61657368-([a-zA-Z0-9-_]*)\.toto\.svc\.titi {1}.{2}.traefik.mesh
+ }
+ kubernetes titi in-addr.arpa ip6.arpa {
+ pods insecure
+ upstream
+ fallthrough in-addr.arpa ip6.arpa
+ }
+ forward . /etc/resolv.conf
+ cache 30
+ loop
+ reload
+ loadbalance
+ }
+ #### End Traefik Mesh Block
+
---
apiVersion: v1
kind: ConfigMap
diff --git a/pkg/dns/testdata/configurekubedns_already_patched.yaml b/pkg/dns/testdata/configurekubedns_already_patched.yaml
index f620f7b1c..73b2cf03b 100644
--- a/pkg/dns/testdata/configurekubedns_already_patched.yaml
+++ b/pkg/dns/testdata/configurekubedns_already_patched.yaml
@@ -20,7 +20,7 @@ apiVersion: v1
kind: Service
metadata:
name: coredns
- namespace: maesh
+ namespace: traefik-mesh
spec:
clusterIP: "1.2.3.4"
---
@@ -28,7 +28,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
name: coredns
- namespace: maesh
+ namespace: traefik-mesh
spec:
template:
spec:
@@ -45,13 +45,13 @@ apiVersion: v1
kind: ConfigMap
metadata:
name: other-cfgmap
- namespace: maesh
+ namespace: traefik-mesh
---
apiVersion: v1
kind: ConfigMap
metadata:
name: coredns
- namespace: maesh
+ namespace: traefik-mesh
data:
Corefile: |
.:53 {
diff --git a/pkg/dns/testdata/configurekubedns_not_patched.yaml b/pkg/dns/testdata/configurekubedns_not_patched.yaml
index f620f7b1c..73b2cf03b 100644
--- a/pkg/dns/testdata/configurekubedns_not_patched.yaml
+++ b/pkg/dns/testdata/configurekubedns_not_patched.yaml
@@ -20,7 +20,7 @@ apiVersion: v1
kind: Service
metadata:
name: coredns
- namespace: maesh
+ namespace: traefik-mesh
spec:
clusterIP: "1.2.3.4"
---
@@ -28,7 +28,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
name: coredns
- namespace: maesh
+ namespace: traefik-mesh
spec:
template:
spec:
@@ -45,13 +45,13 @@ apiVersion: v1
kind: ConfigMap
metadata:
name: other-cfgmap
- namespace: maesh
+ namespace: traefik-mesh
---
apiVersion: v1
kind: ConfigMap
metadata:
name: coredns
- namespace: maesh
+ namespace: traefik-mesh
data:
Corefile: |
.:53 {
diff --git a/pkg/dns/testdata/configurekubedns_optional_configmap.yaml b/pkg/dns/testdata/configurekubedns_optional_configmap.yaml
index 76cee2c54..e49f6dcfc 100644
--- a/pkg/dns/testdata/configurekubedns_optional_configmap.yaml
+++ b/pkg/dns/testdata/configurekubedns_optional_configmap.yaml
@@ -15,7 +15,7 @@ apiVersion: v1
kind: Service
metadata:
name: coredns
- namespace: maesh
+ namespace: traefik-mesh
spec:
clusterIP: "1.2.3.4"
---
@@ -23,7 +23,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
name: coredns
- namespace: maesh
+ namespace: traefik-mesh
spec:
template:
spec:
@@ -40,13 +40,13 @@ apiVersion: v1
kind: ConfigMap
metadata:
name: other-cfgmap
- namespace: maesh
+ namespace: traefik-mesh
---
apiVersion: v1
kind: ConfigMap
metadata:
name: coredns
- namespace: maesh
+ namespace: traefik-mesh
data:
Corefile: |
.:53 {
diff --git a/pkg/dns/testdata/restorekubedns_already_patched.yaml b/pkg/dns/testdata/restorekubedns_already_patched.yaml
index d7c151a34..13469a24a 100644
--- a/pkg/dns/testdata/restorekubedns_already_patched.yaml
+++ b/pkg/dns/testdata/restorekubedns_already_patched.yaml
@@ -17,12 +17,12 @@ metadata:
namespace: kube-system
data:
stubDomains: |
- {"maesh":["1.2.3.4"], "test":["5.6.7.8"]}
+ {"maesh":["1.2.3.4"], "traefik.mesh":["1.2.3.4"], "test":["5.6.7.8"]}
---
apiVersion: v1
kind: Service
metadata:
name: coredns
- namespace: maesh
+ namespace: traefik-mesh
spec:
clusterIP: "1.2.3.4"
diff --git a/pkg/dns/testdata/restorekubedns_not_patched.yaml b/pkg/dns/testdata/restorekubedns_not_patched.yaml
index d2023de22..f62349070 100644
--- a/pkg/dns/testdata/restorekubedns_not_patched.yaml
+++ b/pkg/dns/testdata/restorekubedns_not_patched.yaml
@@ -20,6 +20,6 @@ apiVersion: v1
kind: Service
metadata:
name: coredns
- namespace: maesh
+ namespace: traefik-mesh
spec:
clusterIP: "1.2.3.4"
diff --git a/pkg/provider/key.go b/pkg/provider/key.go
index c64473978..e533e7d66 100644
--- a/pkg/provider/key.go
+++ b/pkg/provider/key.go
@@ -3,7 +3,7 @@ package provider
import (
"fmt"
- "github.com/containous/maesh/pkg/topology"
+ "github.com/traefik/mesh/pkg/topology"
)
const (
diff --git a/pkg/provider/provider.go b/pkg/provider/provider.go
index 8c76254d4..d30a27c0f 100644
--- a/pkg/provider/provider.go
+++ b/pkg/provider/provider.go
@@ -6,10 +6,10 @@ import (
"net"
"strconv"
- "github.com/containous/maesh/pkg/annotations"
- "github.com/containous/maesh/pkg/topology"
- "github.com/containous/traefik/v2/pkg/config/dynamic"
"github.com/sirupsen/logrus"
+ "github.com/traefik/mesh/pkg/annotations"
+ "github.com/traefik/mesh/pkg/topology"
+ "github.com/traefik/traefik/v2/pkg/config/dynamic"
corev1 "k8s.io/api/core/v1"
)
@@ -533,7 +533,7 @@ func (p *Provider) buildServicesForTrafficSplitBackends(t *topology.Topology, cf
if len(backendSvc.TrafficSplits) > 0 {
tsKey := topology.Key{Name: ts.Name, Namespace: ts.Namespace}
- p.logger.Warnf("Nested TrafficSplits detected in TrafficSplit %q: Maesh doesn't support nested TrafficSplits", tsKey)
+ p.logger.Warnf("Nested TrafficSplits detected in TrafficSplit %q: Traefik Mesh doesn't support nested TrafficSplits", tsKey)
}
backendSvcKey := getServiceKeyFromTrafficSplitBackend(ts, svcPort.Port, backend)
@@ -854,7 +854,7 @@ func buildUDPServiceFromTrafficSplit(backendSvc []dynamic.UDPWRRService) *dynami
func buildHTTPSplitTrafficBackendService(backend topology.TrafficSplitBackend, scheme string, port int32) *dynamic.Service {
server := dynamic.Server{
- URL: fmt.Sprintf("%s://%s.%s.maesh:%d", scheme, backend.Service.Name, backend.Service.Namespace, port),
+ URL: fmt.Sprintf("%s://%s.%s.traefik.mesh:%d", scheme, backend.Service.Name, backend.Service.Namespace, port),
}
return &dynamic.Service{
@@ -867,7 +867,7 @@ func buildHTTPSplitTrafficBackendService(backend topology.TrafficSplitBackend, s
func buildTCPSplitTrafficBackendService(backend topology.TrafficSplitBackend, port int32) *dynamic.TCPService {
server := dynamic.TCPServer{
- Address: fmt.Sprintf("%s.%s.maesh:%d", backend.Service.Name, backend.Service.Namespace, port),
+ Address: fmt.Sprintf("%s.%s.traefik.mesh:%d", backend.Service.Name, backend.Service.Namespace, port),
}
return &dynamic.TCPService{
@@ -879,7 +879,7 @@ func buildTCPSplitTrafficBackendService(backend topology.TrafficSplitBackend, po
func buildUDPSplitTrafficBackendService(backend topology.TrafficSplitBackend, port int32) *dynamic.UDPService {
server := dynamic.UDPServer{
- Address: fmt.Sprintf("%s.%s.maesh:%d", backend.Service.Name, backend.Service.Namespace, port),
+ Address: fmt.Sprintf("%s.%s.traefik.mesh:%d", backend.Service.Name, backend.Service.Namespace, port),
}
return &dynamic.UDPService{
diff --git a/pkg/provider/provider_test.go b/pkg/provider/provider_test.go
index daa0525f3..6973f074d 100644
--- a/pkg/provider/provider_test.go
+++ b/pkg/provider/provider_test.go
@@ -5,11 +5,11 @@ import (
"io/ioutil"
"testing"
- "github.com/containous/maesh/pkg/topology"
- "github.com/containous/traefik/v2/pkg/config/dynamic"
"github.com/sirupsen/logrus"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
+ "github.com/traefik/mesh/pkg/topology"
+ "github.com/traefik/traefik/v2/pkg/config/dynamic"
)
type stateTableMock func(namespace, name string, port int32) (int32, bool)
diff --git a/pkg/provider/rule.go b/pkg/provider/rule.go
index c16c6b064..6a08f07bd 100644
--- a/pkg/provider/rule.go
+++ b/pkg/provider/rule.go
@@ -4,8 +4,8 @@ import (
"fmt"
"strings"
- "github.com/containous/maesh/pkg/topology"
specs "github.com/servicemeshinterface/smi-sdk-go/pkg/apis/specs/v1alpha3"
+ "github.com/traefik/mesh/pkg/topology"
)
func buildHTTPRuleFromTrafficSpecs(specs []topology.TrafficSpec) string {
@@ -90,7 +90,7 @@ func appendHeaderFilter(matchParts []string, match *specs.HTTPMatch) []string {
}
func buildHTTPRuleFromService(svc *topology.Service) string {
- return fmt.Sprintf("Host(`%s.%s.maesh`) || Host(`%s`)", svc.Name, svc.Namespace, svc.ClusterIP)
+ return fmt.Sprintf("Host(`%[1]s.%[2]s.traefik.mesh`) || Host(`%[1]s.%[2]s.maesh`) || Host(`%s`)", svc.Name, svc.Namespace, svc.ClusterIP)
}
func buildHTTPRuleFromTrafficTarget(tt *topology.ServiceTrafficTarget, ttSvc *topology.Service) string {
diff --git a/pkg/provider/testdata/acl-disabled-http-basic-config.json b/pkg/provider/testdata/acl-disabled-http-basic-config.json
index 4bdac813f..911997c48 100644
--- a/pkg/provider/testdata/acl-disabled-http-basic-config.json
+++ b/pkg/provider/testdata/acl-disabled-http-basic-config.json
@@ -6,16 +6,16 @@
"http-10000"
],
"service": "my-ns-svc-a-8080",
- "rule": "Host(`svc-a.my-ns.maesh`) || Host(`10.10.14.1`)",
- "priority": 1001
+ "rule": "Host(`svc-a.my-ns.traefik.mesh`) || Host(`svc-a.my-ns.maesh`) || Host(`10.10.14.1`)",
+ "priority": 1002
},
"my-ns-svc-a-8081": {
"entryPoints": [
"http-10001"
],
"service": "my-ns-svc-a-8081",
- "rule": "Host(`svc-a.my-ns.maesh`) || Host(`10.10.14.1`)",
- "priority": 1001
+ "rule": "Host(`svc-a.my-ns.traefik.mesh`) || Host(`svc-a.my-ns.maesh`) || Host(`10.10.14.1`)",
+ "priority": 1002
},
"readiness": {
"entryPoints": [
diff --git a/pkg/provider/testdata/acl-disabled-http-traffic-split-config.json b/pkg/provider/testdata/acl-disabled-http-traffic-split-config.json
index c039f9ee9..d5d3cecad 100644
--- a/pkg/provider/testdata/acl-disabled-http-traffic-split-config.json
+++ b/pkg/provider/testdata/acl-disabled-http-traffic-split-config.json
@@ -6,32 +6,32 @@
"http-10000"
],
"service": "my-ns-svc-a-8080",
- "rule": "Host(`svc-a.my-ns.maesh`) || Host(`10.10.14.1`)",
- "priority": 1001
+ "rule": "Host(`svc-a.my-ns.traefik.mesh`) || Host(`svc-a.my-ns.maesh`) || Host(`10.10.14.1`)",
+ "priority": 1002
},
"my-ns-svc-b-8080": {
"entryPoints": [
"http-10000"
],
"service": "my-ns-svc-b-8080",
- "rule": "Host(`svc-b.my-ns.maesh`) || Host(`10.10.15.1`)",
- "priority": 1001
+ "rule": "Host(`svc-b.my-ns.traefik.mesh`) || Host(`svc-b.my-ns.maesh`) || Host(`10.10.15.1`)",
+ "priority": 1002
},
"my-ns-svc-c-8080": {
"entryPoints": [
"http-10000"
],
"service": "my-ns-svc-c-8080",
- "rule": "Host(`svc-c.my-ns.maesh`) || Host(`10.10.16.1`)",
- "priority": 1001
+ "rule": "Host(`svc-c.my-ns.traefik.mesh`) || Host(`svc-c.my-ns.maesh`) || Host(`10.10.16.1`)",
+ "priority": 1002
},
"my-ns-svc-a-split-8080-traffic-split-direct": {
"entryPoints": [
"http-10000"
],
"service": "my-ns-svc-a-split-8080-traffic-split",
- "rule": "Host(`svc-a.my-ns.maesh`) || Host(`10.10.14.1`)",
- "priority": 4001
+ "rule": "Host(`svc-a.my-ns.traefik.mesh`) || Host(`svc-a.my-ns.maesh`) || Host(`10.10.14.1`)",
+ "priority": 4002
},
"readiness": {
"entryPoints": [
@@ -70,7 +70,7 @@
"loadBalancer": {
"servers": [
{
- "url": "http://svc-b.my-ns.maesh:8080"
+ "url": "http://svc-b.my-ns.traefik.mesh:8080"
}
],
"passHostHeader": false
@@ -80,7 +80,7 @@
"loadBalancer": {
"servers": [
{
- "url": "http://svc-c.my-ns.maesh:8080"
+ "url": "http://svc-c.my-ns.traefik.mesh:8080"
}
],
"passHostHeader": false
diff --git a/pkg/provider/testdata/acl-enabled-http-basic-config.json b/pkg/provider/testdata/acl-enabled-http-basic-config.json
index bb389aa22..349d37b31 100644
--- a/pkg/provider/testdata/acl-enabled-http-basic-config.json
+++ b/pkg/provider/testdata/acl-enabled-http-basic-config.json
@@ -9,7 +9,7 @@
"block-all-middleware"
],
"service": "block-all-service",
- "rule": "Host(`svc-b.my-ns.maesh`) || Host(`10.10.14.1`)",
+ "rule": "Host(`svc-b.my-ns.traefik.mesh`) || Host(`svc-b.my-ns.maesh`) || Host(`10.10.14.1`)",
"priority": 1
},
"my-ns-svc-b-8081": {
@@ -20,7 +20,7 @@
"block-all-middleware"
],
"service": "block-all-service",
- "rule": "Host(`svc-b.my-ns.maesh`) || Host(`10.10.14.1`)",
+ "rule": "Host(`svc-b.my-ns.traefik.mesh`) || Host(`svc-b.my-ns.maesh`) || Host(`10.10.14.1`)",
"priority": 1
},
"my-ns-svc-b-tt-8080-traffic-target-direct": {
@@ -31,8 +31,8 @@
"my-ns-svc-b-tt-whitelist-traffic-target-direct"
],
"service": "my-ns-svc-b-tt-8080-traffic-target",
- "rule": "Host(`svc-b.my-ns.maesh`) || Host(`10.10.14.1`)",
- "priority": 2001
+ "rule": "Host(`svc-b.my-ns.traefik.mesh`) || Host(`svc-b.my-ns.maesh`) || Host(`10.10.14.1`)",
+ "priority": 2002
},
"my-ns-svc-b-tt-8081-traffic-target-direct": {
"entryPoints": [
@@ -42,8 +42,8 @@
"my-ns-svc-b-tt-whitelist-traffic-target-direct"
],
"service": "my-ns-svc-b-tt-8081-traffic-target",
- "rule": "Host(`svc-b.my-ns.maesh`) || Host(`10.10.14.1`)",
- "priority": 2001
+ "rule": "Host(`svc-b.my-ns.traefik.mesh`) || Host(`svc-b.my-ns.maesh`) || Host(`10.10.14.1`)",
+ "priority": 2002
},
"readiness": {
"entryPoints": [
diff --git a/pkg/provider/testdata/acl-enabled-http-route-group-config.json b/pkg/provider/testdata/acl-enabled-http-route-group-config.json
index 5f86c21d8..6ce8c18ae 100644
--- a/pkg/provider/testdata/acl-enabled-http-route-group-config.json
+++ b/pkg/provider/testdata/acl-enabled-http-route-group-config.json
@@ -9,7 +9,7 @@
"block-all-middleware"
],
"service": "block-all-service",
- "rule": "Host(`svc-b.my-ns.maesh`) || Host(`10.10.14.1`)",
+ "rule": "Host(`svc-b.my-ns.traefik.mesh`) || Host(`svc-b.my-ns.maesh`) || Host(`10.10.14.1`)",
"priority": 1
},
"my-ns-svc-b-tt-8080-traffic-target-direct": {
@@ -20,8 +20,8 @@
"my-ns-svc-b-tt-whitelist-traffic-target-direct"
],
"service": "my-ns-svc-b-tt-8080-traffic-target",
- "rule": "(Host(`svc-b.my-ns.maesh`) || Host(`10.10.14.1`)) && (PathPrefix(`/{path:app}`) || (PathPrefix(`/{path:api/notifications}`) && Method(`GET`)) || HeadersRegexp(`User-Agent`, `Mozilla/.*`))",
- "priority": 2005
+ "rule": "(Host(`svc-b.my-ns.traefik.mesh`) || Host(`svc-b.my-ns.maesh`) || Host(`10.10.14.1`)) && (PathPrefix(`/{path:app}`) || (PathPrefix(`/{path:api/notifications}`) && Method(`GET`)) || HeadersRegexp(`User-Agent`, `Mozilla/.*`))",
+ "priority": 2006
},
"readiness": {
"entryPoints": [
diff --git a/pkg/provider/testdata/acl-enabled-http-traffic-split-config.json b/pkg/provider/testdata/acl-enabled-http-traffic-split-config.json
index 5c60ab349..d26428a09 100644
--- a/pkg/provider/testdata/acl-enabled-http-traffic-split-config.json
+++ b/pkg/provider/testdata/acl-enabled-http-traffic-split-config.json
@@ -9,7 +9,7 @@
"block-all-middleware"
],
"service": "block-all-service",
- "rule": "Host(`svc-a.my-ns.maesh`) || Host(`10.10.14.1`)",
+ "rule": "Host(`svc-a.my-ns.traefik.mesh`) || Host(`svc-a.my-ns.maesh`) || Host(`10.10.14.1`)",
"priority": 1
},
"my-ns-svc-a-split-8080-traffic-split-direct": {
@@ -20,8 +20,8 @@
"my-ns-svc-a-split-whitelist-traffic-split-direct"
],
"service": "my-ns-svc-a-split-8080-traffic-split",
- "rule": "Host(`svc-a.my-ns.maesh`) || Host(`10.10.14.1`)",
- "priority": 4001
+ "rule": "Host(`svc-a.my-ns.traefik.mesh`) || Host(`svc-a.my-ns.maesh`) || Host(`10.10.14.1`)",
+ "priority": 4002
},
"my-ns-svc-b-8080": {
@@ -32,7 +32,7 @@
"block-all-middleware"
],
"service": "block-all-service",
- "rule": "Host(`svc-b.my-ns.maesh`) || Host(`10.10.15.1`)",
+ "rule": "Host(`svc-b.my-ns.traefik.mesh`) || Host(`svc-b.my-ns.maesh`) || Host(`10.10.15.1`)",
"priority": 1
},
"my-ns-svc-b-tt-8080-traffic-target-direct": {
@@ -43,8 +43,8 @@
"my-ns-svc-b-tt-whitelist-traffic-target-direct"
],
"service": "my-ns-svc-b-tt-8080-traffic-target",
- "rule": "Host(`svc-b.my-ns.maesh`) || Host(`10.10.15.1`)",
- "priority": 2001
+ "rule": "Host(`svc-b.my-ns.traefik.mesh`) || Host(`svc-b.my-ns.maesh`) || Host(`10.10.15.1`)",
+ "priority": 2002
},
"my-ns-svc-b-tt-8080-traffic-target-indirect": {
"entryPoints": [
@@ -54,8 +54,8 @@
"my-ns-svc-b-tt-whitelist-traffic-target-indirect"
],
"service": "my-ns-svc-b-tt-8080-traffic-target",
- "rule": "(Host(`svc-b.my-ns.maesh`) || Host(`10.10.15.1`)) && HeadersRegexp(`X-Forwarded-For`, `.+`)",
- "priority": 3002
+ "rule": "(Host(`svc-b.my-ns.traefik.mesh`) || Host(`svc-b.my-ns.maesh`) || Host(`10.10.15.1`)) && HeadersRegexp(`X-Forwarded-For`, `.+`)",
+ "priority": 3003
},
"my-ns-svc-c-8080": {
@@ -66,7 +66,7 @@
"block-all-middleware"
],
"service": "block-all-service",
- "rule": "Host(`svc-c.my-ns.maesh`) || Host(`10.10.16.1`)",
+ "rule": "Host(`svc-c.my-ns.traefik.mesh`) || Host(`svc-c.my-ns.maesh`) || Host(`10.10.16.1`)",
"priority": 1
},
"my-ns-svc-c-tt-8080-traffic-target-direct": {
@@ -77,8 +77,8 @@
"my-ns-svc-c-tt-whitelist-traffic-target-direct"
],
"service": "my-ns-svc-c-tt-8080-traffic-target",
- "rule": "Host(`svc-c.my-ns.maesh`) || Host(`10.10.16.1`)",
- "priority": 2001
+ "rule": "Host(`svc-c.my-ns.traefik.mesh`) || Host(`svc-c.my-ns.maesh`) || Host(`10.10.16.1`)",
+ "priority": 2002
},
"my-ns-svc-c-tt-8080-traffic-target-indirect": {
"entryPoints": [
@@ -88,8 +88,8 @@
"my-ns-svc-c-tt-whitelist-traffic-target-indirect"
],
"service": "my-ns-svc-c-tt-8080-traffic-target",
- "rule": "(Host(`svc-c.my-ns.maesh`) || Host(`10.10.16.1`)) && HeadersRegexp(`X-Forwarded-For`, `.+`)",
- "priority": 3002
+ "rule": "(Host(`svc-c.my-ns.traefik.mesh`) || Host(`svc-c.my-ns.maesh`) || Host(`10.10.16.1`)) && HeadersRegexp(`X-Forwarded-For`, `.+`)",
+ "priority": 3003
},
"readiness": {
@@ -124,7 +124,7 @@
"loadBalancer": {
"servers": [
{
- "url": "http://svc-b.my-ns.maesh:8080"
+ "url": "http://svc-b.my-ns.traefik.mesh:8080"
}
],
"passHostHeader": false
@@ -134,7 +134,7 @@
"loadBalancer": {
"servers": [
{
- "url": "http://svc-c.my-ns.maesh:8080"
+ "url": "http://svc-c.my-ns.traefik.mesh:8080"
}
],
"passHostHeader": false
diff --git a/pkg/provider/testdata/acl-enabled-http-traffic-split-http-route-group-config.json b/pkg/provider/testdata/acl-enabled-http-traffic-split-http-route-group-config.json
index 5c81e49d9..7f2a3d716 100644
--- a/pkg/provider/testdata/acl-enabled-http-traffic-split-http-route-group-config.json
+++ b/pkg/provider/testdata/acl-enabled-http-traffic-split-http-route-group-config.json
@@ -9,7 +9,7 @@
"block-all-middleware"
],
"service": "block-all-service",
- "rule": "Host(`svc-a.my-ns.maesh`) || Host(`10.10.14.1`)",
+ "rule": "Host(`svc-a.my-ns.traefik.mesh`) || Host(`svc-a.my-ns.maesh`) || Host(`10.10.14.1`)",
"priority": 1
},
"my-ns-svc-a-split-8080-traffic-split-direct": {
@@ -20,8 +20,8 @@
"my-ns-svc-a-split-whitelist-traffic-split-direct"
],
"service": "my-ns-svc-a-split-8080-traffic-split",
- "rule": "(Host(`svc-a.my-ns.maesh`) || Host(`10.10.14.1`)) && (PathPrefix(`/{path:app}`))",
- "priority": 4002
+ "rule": "(Host(`svc-a.my-ns.traefik.mesh`) || Host(`svc-a.my-ns.maesh`) || Host(`10.10.14.1`)) && (PathPrefix(`/{path:app}`))",
+ "priority": 4003
},
"my-ns-svc-b-8080": {
@@ -32,7 +32,7 @@
"block-all-middleware"
],
"service": "block-all-service",
- "rule": "Host(`svc-b.my-ns.maesh`) || Host(`10.10.15.1`)",
+ "rule": "Host(`svc-b.my-ns.traefik.mesh`) || Host(`svc-b.my-ns.maesh`) || Host(`10.10.15.1`)",
"priority": 1
},
"my-ns-svc-b-tt-8080-traffic-target-direct": {
@@ -43,8 +43,8 @@
"my-ns-svc-b-tt-whitelist-traffic-target-direct"
],
"service": "my-ns-svc-b-tt-8080-traffic-target",
- "rule": "Host(`svc-b.my-ns.maesh`) || Host(`10.10.15.1`)",
- "priority": 2001
+ "rule": "Host(`svc-b.my-ns.traefik.mesh`) || Host(`svc-b.my-ns.maesh`) || Host(`10.10.15.1`)",
+ "priority": 2002
},
"my-ns-svc-b-tt-8080-traffic-target-indirect": {
"entryPoints": [
@@ -54,8 +54,8 @@
"my-ns-svc-b-tt-whitelist-traffic-target-indirect"
],
"service": "my-ns-svc-b-tt-8080-traffic-target",
- "rule": "(Host(`svc-b.my-ns.maesh`) || Host(`10.10.15.1`)) && HeadersRegexp(`X-Forwarded-For`, `.+`)",
- "priority": 3002
+ "rule": "(Host(`svc-b.my-ns.traefik.mesh`) || Host(`svc-b.my-ns.maesh`) || Host(`10.10.15.1`)) && HeadersRegexp(`X-Forwarded-For`, `.+`)",
+ "priority": 3003
},
"my-ns-svc-c-8080": {
@@ -66,7 +66,7 @@
"block-all-middleware"
],
"service": "block-all-service",
- "rule": "Host(`svc-c.my-ns.maesh`) || Host(`10.10.16.1`)",
+ "rule": "Host(`svc-c.my-ns.traefik.mesh`) || Host(`svc-c.my-ns.maesh`) || Host(`10.10.16.1`)",
"priority": 1
},
"my-ns-svc-c-tt-8080-traffic-target-direct": {
@@ -77,8 +77,8 @@
"my-ns-svc-c-tt-whitelist-traffic-target-direct"
],
"service": "my-ns-svc-c-tt-8080-traffic-target",
- "rule": "Host(`svc-c.my-ns.maesh`) || Host(`10.10.16.1`)",
- "priority": 2001
+ "rule": "Host(`svc-c.my-ns.traefik.mesh`) || Host(`svc-c.my-ns.maesh`) || Host(`10.10.16.1`)",
+ "priority": 2002
},
"my-ns-svc-c-tt-8080-traffic-target-indirect": {
"entryPoints": [
@@ -88,8 +88,8 @@
"my-ns-svc-c-tt-whitelist-traffic-target-indirect"
],
"service": "my-ns-svc-c-tt-8080-traffic-target",
- "rule": "(Host(`svc-c.my-ns.maesh`) || Host(`10.10.16.1`)) && HeadersRegexp(`X-Forwarded-For`, `.+`)",
- "priority": 3002
+ "rule": "(Host(`svc-c.my-ns.traefik.mesh`) || Host(`svc-c.my-ns.maesh`) || Host(`10.10.16.1`)) && HeadersRegexp(`X-Forwarded-For`, `.+`)",
+ "priority": 3003
},
"readiness": {
@@ -124,7 +124,7 @@
"loadBalancer": {
"servers": [
{
- "url": "http://svc-b.my-ns.maesh:8080"
+ "url": "http://svc-b.my-ns.traefik.mesh:8080"
}
],
"passHostHeader": false
@@ -134,7 +134,7 @@
"loadBalancer": {
"servers": [
{
- "url": "http://svc-c.my-ns.maesh:8080"
+ "url": "http://svc-c.my-ns.traefik.mesh:8080"
}
],
"passHostHeader": false
diff --git a/pkg/provider/testdata/annotations-scheme-config.json b/pkg/provider/testdata/annotations-scheme-config.json
index 7af5e42ef..a8692c18f 100644
--- a/pkg/provider/testdata/annotations-scheme-config.json
+++ b/pkg/provider/testdata/annotations-scheme-config.json
@@ -6,8 +6,8 @@
"http-10000"
],
"service": "my-ns-svc-a-8080",
- "rule": "Host(`svc-a.my-ns.maesh`) || Host(`10.10.14.1`)",
- "priority": 1001
+ "rule": "Host(`svc-a.my-ns.traefik.mesh`) || Host(`svc-a.my-ns.maesh`) || Host(`10.10.14.1`)",
+ "priority": 1002
},
"readiness": {
"entryPoints": [
diff --git a/pkg/provider/testdata/annotations-scheme-topology.json b/pkg/provider/testdata/annotations-scheme-topology.json
index 27e45bb38..28634d706 100644
--- a/pkg/provider/testdata/annotations-scheme-topology.json
+++ b/pkg/provider/testdata/annotations-scheme-topology.json
@@ -5,7 +5,7 @@
"namespace": "my-ns",
"selector": {},
"annotations": {
- "maesh.containo.us/scheme": "https"
+ "mesh.traefik.io/scheme": "https"
},
"ports": [
{
@@ -38,4 +38,4 @@
},
"serviceTrafficTargets": {},
"trafficSplits": {}
-}
\ No newline at end of file
+}
diff --git a/pkg/provider/testdata/annotations-traffic-type-topology.json b/pkg/provider/testdata/annotations-traffic-type-topology.json
index fa58e5d1c..a9c70b0cb 100644
--- a/pkg/provider/testdata/annotations-traffic-type-topology.json
+++ b/pkg/provider/testdata/annotations-traffic-type-topology.json
@@ -5,7 +5,7 @@
"namespace": "my-ns",
"selector": {},
"annotations": {
- "maesh.containo.us/traffic-type": "tcp"
+ "mesh.traefik.io/traffic-type": "tcp"
},
"ports": [
{
@@ -26,7 +26,7 @@
"namespace": "my-ns",
"selector": {},
"annotations": {
- "maesh.containo.us/traffic-type": "udp"
+ "mesh.traefik.io/traffic-type": "udp"
},
"ports": [
{
diff --git a/pkg/topology/builder.go b/pkg/topology/builder.go
index 37cb58467..0f406e276 100644
--- a/pkg/topology/builder.go
+++ b/pkg/topology/builder.go
@@ -3,7 +3,6 @@ package topology
import (
"fmt"
- mk8s "github.com/containous/maesh/pkg/k8s"
access "github.com/servicemeshinterface/smi-sdk-go/pkg/apis/access/v1alpha2"
specs "github.com/servicemeshinterface/smi-sdk-go/pkg/apis/specs/v1alpha3"
split "github.com/servicemeshinterface/smi-sdk-go/pkg/apis/split/v1alpha3"
@@ -11,6 +10,7 @@ import (
speclister "github.com/servicemeshinterface/smi-sdk-go/pkg/gen/client/specs/listers/specs/v1alpha3"
splitlister "github.com/servicemeshinterface/smi-sdk-go/pkg/gen/client/split/listers/split/v1alpha3"
"github.com/sirupsen/logrus"
+ mk8s "github.com/traefik/mesh/pkg/k8s"
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/labels"
listers "k8s.io/client-go/listers/core/v1"
diff --git a/pkg/topology/builder_test.go b/pkg/topology/builder_test.go
index 8a4a379b1..7809cb9f5 100644
--- a/pkg/topology/builder_test.go
+++ b/pkg/topology/builder_test.go
@@ -10,7 +10,6 @@ import (
"testing"
"time"
- mk8s "github.com/containous/maesh/pkg/k8s"
access "github.com/servicemeshinterface/smi-sdk-go/pkg/apis/access/v1alpha2"
specs "github.com/servicemeshinterface/smi-sdk-go/pkg/apis/specs/v1alpha3"
split "github.com/servicemeshinterface/smi-sdk-go/pkg/apis/split/v1alpha3"
@@ -26,6 +25,7 @@ import (
"github.com/sirupsen/logrus"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
+ mk8s "github.com/traefik/mesh/pkg/k8s"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/intstr"
@@ -39,9 +39,9 @@ func TestTopologyBuilder_BuildIgnoresNamespaces(t *testing.T) {
selectorAppA := map[string]string{"app": "app-a"}
selectorAppB := map[string]string{"app": "app-b"}
annotations := map[string]string{
- "maesh.containo.us/traffic-type": "http",
- "maesh.containo.us/ratelimit-average": "100",
- "maesh.containo.us/ratelimit-burst": "200",
+ "mesh.traefik.io/traffic-type": "http",
+ "mesh.traefik.io/ratelimit-average": "100",
+ "mesh.traefik.io/ratelimit-burst": "200",
}
svcbPorts := []corev1.ServicePort{svcPort("port-8080", 8080, 8080)}
svccPorts := []corev1.ServicePort{svcPort("port-9091", 9091, 9091)}
@@ -159,9 +159,9 @@ func TestTopologyBuilder_TrafficTargetSourcesForbiddenTrafficSplit(t *testing.T)
selectorAppC := map[string]string{"app": "app-c"}
selectorAppD := map[string]string{"app": "app-d"}
annotations := map[string]string{
- "maesh.containo.us/traffic-type": "http",
- "maesh.containo.us/ratelimit-average": "100",
- "maesh.containo.us/ratelimit-burst": "200",
+ "mesh.traefik.io/traffic-type": "http",
+ "mesh.traefik.io/ratelimit-average": "100",
+ "mesh.traefik.io/ratelimit-burst": "200",
}
svcPorts := []corev1.ServicePort{svcPort("port-8080", 8080, 8080)}
@@ -427,9 +427,9 @@ func TestTopologyBuilder_BuildWithTrafficTargetEmptyDestinationPort(t *testing.T
selectorAppA := map[string]string{"app": "app-a"}
selectorAppB := map[string]string{"app": "app-b"}
annotations := map[string]string{
- "maesh.containo.us/traffic-type": "http",
- "maesh.containo.us/ratelimit-average": "100",
- "maesh.containo.us/ratelimit-burst": "200",
+ "mesh.traefik.io/traffic-type": "http",
+ "mesh.traefik.io/ratelimit-average": "100",
+ "mesh.traefik.io/ratelimit-burst": "200",
}
svcbPorts := []corev1.ServicePort{
svcPort("port-8080", 8080, 8080),
diff --git a/pkg/topology/testdata/topology-empty-destination-port.json b/pkg/topology/testdata/topology-empty-destination-port.json
index bd2bf2c70..bb759405c 100644
--- a/pkg/topology/testdata/topology-empty-destination-port.json
+++ b/pkg/topology/testdata/topology-empty-destination-port.json
@@ -7,9 +7,9 @@
"app": "app-b"
},
"annotations": {
- "maesh.containo.us/ratelimit-average": "100",
- "maesh.containo.us/ratelimit-burst": "200",
- "maesh.containo.us/traffic-type": "http"
+ "mesh.traefik.io/ratelimit-average": "100",
+ "mesh.traefik.io/ratelimit-burst": "200",
+ "mesh.traefik.io/traffic-type": "http"
},
"ports": [
{
@@ -92,4 +92,4 @@
}
},
"trafficSplits": {}
-}
\ No newline at end of file
+}
diff --git a/pkg/topology/testdata/topology-traffic-split-traffic-target.json b/pkg/topology/testdata/topology-traffic-split-traffic-target.json
index cf238f1f4..e75c41e95 100644
--- a/pkg/topology/testdata/topology-traffic-split-traffic-target.json
+++ b/pkg/topology/testdata/topology-traffic-split-traffic-target.json
@@ -507,4 +507,4 @@
"errors": null
}
}
-}
\ No newline at end of file
+}
diff --git a/tmpl.Dockerfile b/tmpl.Dockerfile
index 8f2ac29e1..964825162 100644
--- a/tmpl.Dockerfile
+++ b/tmpl.Dockerfile
@@ -15,7 +15,7 @@ RUN apk --no-cache --no-progress add \
&& update-ca-certificates \
&& rm -rf /var/cache/apk/*
-WORKDIR /go/src/github.com/containous/maesh
+WORKDIR /go/src/github.com/traefik/mesh
# Download goreleaser binary to bin folder in $GOPATH
RUN curl -sfL https://install.goreleaser.com/github.com/goreleaser/goreleaser.sh | sh
@@ -34,6 +34,6 @@ RUN addgroup -g 1000 -S app && \
adduser -u 1000 -S app -G app
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
-COPY --from=builder /go/src/github.com/containous/maesh/dist/maesh /app/
+COPY --from=builder /go/src/github.com/traefik/mesh/dist/traefik-mesh /app/
-ENTRYPOINT ["/app/maesh"]
+ENTRYPOINT ["/app/traefik-mesh"]