diff --git a/docs/content/providers/consul.md b/docs/content/providers/consul.md index e11d48e39..ea7121149 100644 --- a/docs/content/providers/consul.md +++ b/docs/content/providers/consul.md @@ -54,6 +54,34 @@ providers: --providers.consul.rootkey=traefik ``` +### `namespace` + +_Optional, Default=""_ + +The `namespace` option defines the namespace to query. + +!!! warning + + The namespace option only works with [Consul Enterprise](https://www.consul.io/docs/enterprise), + which provides the [Namespaces](https://www.consul.io/docs/enterprise/namespaces) feature. + +```yaml tab="File (YAML)" +providers: + consul: + # ... + namespace: "production" +``` + +```toml tab="File (TOML)" +[providers.consul] + # ... + namespace = "production" +``` + +```bash tab="CLI" +--providers.consul.namespace=production +``` + ### `username` _Optional, Default=""_ diff --git a/docs/content/reference/static-configuration/cli-ref.md b/docs/content/reference/static-configuration/cli-ref.md index 70d78c0e8..210cfc798 100644 --- a/docs/content/reference/static-configuration/cli-ref.md +++ b/docs/content/reference/static-configuration/cli-ref.md @@ -351,6 +351,9 @@ Enable Consul backend with default settings. (Default: ```false```) `--providers.consul.endpoints`: KV store endpoints (Default: ```127.0.0.1:8500```) +`--providers.consul.namespace`: +KV Namespace + `--providers.consul.password`: KV Password @@ -534,6 +537,9 @@ Enable Etcd backend with default settings. (Default: ```false```) `--providers.etcd.endpoints`: KV store endpoints (Default: ```127.0.0.1:2379```) +`--providers.etcd.namespace`: +KV Namespace + `--providers.etcd.password`: KV Password @@ -789,6 +795,9 @@ Enable Redis backend with default settings. (Default: ```false```) `--providers.redis.endpoints`: KV store endpoints (Default: ```127.0.0.1:6379```) +`--providers.redis.namespace`: +KV Namespace + `--providers.redis.password`: KV Password @@ -825,6 +834,9 @@ Enable ZooKeeper backend with default settings. (Default: ```false```) `--providers.zookeeper.endpoints`: KV store endpoints (Default: ```127.0.0.1:2181```) +`--providers.zookeeper.namespace`: +KV Namespace + `--providers.zookeeper.password`: KV Password diff --git a/docs/content/reference/static-configuration/env-ref.md b/docs/content/reference/static-configuration/env-ref.md index f19173582..48fea49c5 100644 --- a/docs/content/reference/static-configuration/env-ref.md +++ b/docs/content/reference/static-configuration/env-ref.md @@ -426,6 +426,9 @@ Use stale consistency for catalog reads. (Default: ```false```) `TRAEFIK_PROVIDERS_CONSUL_ENDPOINTS`: KV store endpoints (Default: ```127.0.0.1:8500```) +`TRAEFIK_PROVIDERS_CONSUL_NAMESPACE`: +KV Namespace + `TRAEFIK_PROVIDERS_CONSUL_PASSWORD`: KV Password @@ -534,6 +537,9 @@ Enable Etcd backend with default settings. (Default: ```false```) `TRAEFIK_PROVIDERS_ETCD_ENDPOINTS`: KV store endpoints (Default: ```127.0.0.1:2379```) +`TRAEFIK_PROVIDERS_ETCD_NAMESPACE`: +KV Namespace + `TRAEFIK_PROVIDERS_ETCD_PASSWORD`: KV Password @@ -789,6 +795,9 @@ Enable Redis backend with default settings. (Default: ```false```) `TRAEFIK_PROVIDERS_REDIS_ENDPOINTS`: KV store endpoints (Default: ```127.0.0.1:6379```) +`TRAEFIK_PROVIDERS_REDIS_NAMESPACE`: +KV Namespace + `TRAEFIK_PROVIDERS_REDIS_PASSWORD`: KV Password @@ -825,6 +834,9 @@ Enable ZooKeeper backend with default settings. (Default: ```false```) `TRAEFIK_PROVIDERS_ZOOKEEPER_ENDPOINTS`: KV store endpoints (Default: ```127.0.0.1:2181```) +`TRAEFIK_PROVIDERS_ZOOKEEPER_NAMESPACE`: +KV Namespace + `TRAEFIK_PROVIDERS_ZOOKEEPER_PASSWORD`: KV Password diff --git a/docs/content/reference/static-configuration/file.toml b/docs/content/reference/static-configuration/file.toml index 815871b5f..b0f8b1c15 100644 --- a/docs/content/reference/static-configuration/file.toml +++ b/docs/content/reference/static-configuration/file.toml @@ -179,6 +179,7 @@ endpoints = ["foobar", "foobar"] username = "foobar" password = "foobar" + namespace = "foobar" [providers.consul.tls] ca = "foobar" caOptional = true @@ -190,6 +191,7 @@ endpoints = ["foobar", "foobar"] username = "foobar" password = "foobar" + namespace = "foobar" [providers.etcd.tls] ca = "foobar" caOptional = true @@ -201,6 +203,7 @@ endpoints = ["foobar", "foobar"] username = "foobar" password = "foobar" + namespace = "foobar" [providers.zooKeeper.tls] ca = "foobar" caOptional = true @@ -212,6 +215,7 @@ endpoints = ["foobar", "foobar"] username = "foobar" password = "foobar" + namespace = "foobar" [providers.redis.tls] ca = "foobar" caOptional = true diff --git a/docs/content/reference/static-configuration/file.yaml b/docs/content/reference/static-configuration/file.yaml index 618a9a071..740dd2049 100644 --- a/docs/content/reference/static-configuration/file.yaml +++ b/docs/content/reference/static-configuration/file.yaml @@ -195,6 +195,7 @@ providers: - foobar username: foobar password: foobar + namespace: foobar tls: ca: foobar caOptional: true @@ -208,6 +209,7 @@ providers: - foobar username: foobar password: foobar + namespace: foobar tls: ca: foobar caOptional: true @@ -221,6 +223,7 @@ providers: - foobar username: foobar password: foobar + namespace: foobar tls: ca: foobar caOptional: true @@ -234,6 +237,7 @@ providers: - foobar username: foobar password: foobar + namespace: foobar tls: ca: foobar caOptional: true diff --git a/go.mod b/go.mod index 0aad9adb6..11b76199a 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,6 @@ require ( github.com/Masterminds/sprig/v3 v3.2.2 github.com/Shopify/sarama v1.23.1 // indirect github.com/abbot/go-http-auth v0.0.0-00010101000000-000000000000 - github.com/abronan/valkeyrie v0.2.0 github.com/aws/aws-sdk-go v1.39.0 github.com/cenkalti/backoff/v4 v4.1.1 github.com/compose-spec/compose-go v1.0.3 @@ -33,16 +32,17 @@ require ( github.com/gorilla/mux v1.8.0 github.com/gorilla/websocket v1.4.2 github.com/hashicorp/consul v1.10.3 - github.com/hashicorp/consul/api v1.10.0 + github.com/hashicorp/consul/api v1.12.0 github.com/hashicorp/go-hclog v0.16.1 github.com/hashicorp/go-multierror v1.1.1 github.com/hashicorp/go-version v1.3.0 github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d github.com/instana/go-sensor v1.38.3 github.com/klauspost/compress v1.13.0 + github.com/kvtools/valkeyrie v0.4.0 github.com/lucas-clemente/quic-go v0.23.0 github.com/mailgun/ttlmap v0.0.0-20170619185759-c1c17f74874f - github.com/miekg/dns v1.1.43 + github.com/miekg/dns v1.1.45 github.com/mitchellh/copystructure v1.0.0 github.com/mitchellh/hashstructure v1.0.0 github.com/mitchellh/mapstructure v1.4.2 @@ -75,7 +75,7 @@ require ( golang.org/x/net v0.0.0-20211209124913-491a49abca63 golang.org/x/sys v0.0.0-20210817190340-bfb29a6856f2 // indirect golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac - golang.org/x/tools v0.1.5 + golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2 google.golang.org/grpc v1.38.0 gopkg.in/DataDog/dd-trace-go.v1 v1.19.0 gopkg.in/fsnotify.v1 v1.4.7 diff --git a/go.sum b/go.sum index af9f2cf20..d6a3b549f 100644 --- a/go.sum +++ b/go.sum @@ -178,8 +178,6 @@ github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d/go.mod h1:3eOhrU github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrdtl/UvroE= github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= github.com/abdullin/seq v0.0.0-20160510034733-d5467c17e7af/go.mod h1:5Jv4cbFiHJMsVxt52+i0Ha45fjshj6wxYr1r19tB9bw= -github.com/abronan/valkeyrie v0.2.0 h1:jkig3zG67iCRcglnUFZeH1f/J0alJFnIxY8102jSejE= -github.com/abronan/valkeyrie v0.2.0/go.mod h1:U0C/aC7N9PzFdftYQuflxuuRGsK/48JeYiSzgWuehsQ= github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= github.com/agext/levenshtein v1.2.1/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412 h1:w1UutsfOrms1J05zt7ISrnJIXKzwaspym5BTKGx93EI= @@ -681,6 +679,8 @@ github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg78 github.com/go-test/deep v1.0.2-0.20181118220953-042da051cf31/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= github.com/go-test/deep v1.0.2/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= github.com/go-test/deep v1.0.3/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= +github.com/go-zookeeper/zk v1.0.2 h1:4mx0EYENAdX/B/rbunjlt5+4RTA/a9SMHBRuSKdGxPM= +github.com/go-zookeeper/zk v1.0.2/go.mod h1:nOB03cncLtlp4t+UAkGSV+9beXP/akpekBwL+UX1Qcw= github.com/gobs/pretty v0.0.0-20180724170744-09732c25a95b h1:/vQ+oYKu+JoyaMPDsv5FzwuL2wwWBgBbtj/YLCi4LuA= github.com/gobs/pretty v0.0.0-20180724170744-09732c25a95b/go.mod h1:Xo4aNUOrJnVruqWQJBtW6+bTBDTniY8yZum5rF3b5jw= github.com/gobuffalo/flect v0.2.3/go.mod h1:vmkQwuZYhN5Pc4ljYQZzP+1sq+NEkK+lh20jmEmX3jc= @@ -871,8 +871,9 @@ github.com/hashicorp/consul v1.10.3 h1:I6CWR8+GCmwGXR0m2eRZasVdVUBwDiDoIjEjSxBCn github.com/hashicorp/consul v1.10.3/go.mod h1:EJMYpT39ZL2BnxjGRNTjfTH3s9893yd/DCX60PUnGUY= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE= -github.com/hashicorp/consul/api v1.10.0 h1:r4nkRKOem378GREHlWdLDROSlDkQFf1VeLX+Ee02EdI= github.com/hashicorp/consul/api v1.10.0/go.mod h1:sDjTOq0yUyv5G4h+BqSea7Fn6BU+XbolEz1952UB+mk= +github.com/hashicorp/consul/api v1.12.0 h1:k3y1FYv6nuKyNTqj6w9gXOx5r5CfLj/k/euUeBXj1OY= +github.com/hashicorp/consul/api v1.12.0/go.mod h1:6pVBMo0ebnYdt2S3H87XhekM/HHrUoTD2XXb/VrZVy0= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/consul/sdk v0.7.0/go.mod h1:fY08Y9z5SvJqevyZNy6WWPXiG3KwBPAvlcdx16zZ0fM= @@ -948,10 +949,10 @@ github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0m github.com/hashicorp/mdns v1.0.1/go.mod h1:4gW7WsVCke5TE7EPeYliwHlRUyBtfCwuFwuMg2DmyNY= github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= -github.com/hashicorp/memberlist v0.1.4/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/memberlist v0.2.2/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= -github.com/hashicorp/memberlist v0.2.4 h1:OOhYzSvFnkFQXm1ysE8RjXTHsqSRDyP4emusC9K7DYg= github.com/hashicorp/memberlist v0.2.4/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= +github.com/hashicorp/memberlist v0.3.0 h1:8+567mCcFDnS5ADl7lrpxPMWiFCElyUEeW0gtj34fMA= +github.com/hashicorp/memberlist v0.3.0/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= github.com/hashicorp/net-rpc-msgpackrpc v0.0.0-20151116020338-a14192a58a69/go.mod h1:/z+jUGRBlwVpUZfjute9jWaF6/HuhjuFQuL1YXzVD1Q= github.com/hashicorp/raft v1.1.1/go.mod h1:vPAJM8Asw6u8LxC3eJCUZmRP/E4QmUGE1R7g7k8sG/8= github.com/hashicorp/raft v1.2.0/go.mod h1:vPAJM8Asw6u8LxC3eJCUZmRP/E4QmUGE1R7g7k8sG/8= @@ -961,8 +962,9 @@ github.com/hashicorp/raft-autopilot v0.1.5 h1:onEfMH5uHVdXQqtas36zXUHEZxLdsJVu/n github.com/hashicorp/raft-autopilot v0.1.5/go.mod h1:Af4jZBwaNOI+tXfIqIdbcAnh/UyyqIMj/pOISIfhArw= github.com/hashicorp/raft-boltdb v0.0.0-20171010151810-6e5ba93211ea/go.mod h1:pNv7Wc3ycL6F5oOWn+tPGo2gWD4a5X+yp/ntwdKLjRk= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= -github.com/hashicorp/serf v0.9.5 h1:EBWvyu9tcRszt3Bxp3KNssBMP1KuHWyO51lz9+786iM= github.com/hashicorp/serf v0.9.5/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk= +github.com/hashicorp/serf v0.9.6 h1:uuEX1kLR6aoda1TBttmJQKDLZE1Ob7KN0NPdE7EtCDc= +github.com/hashicorp/serf v0.9.6/go.mod h1:TXZNMjZQijwlDvp+r0b63xZ45H7JmCmgg4gpTwn9UV4= github.com/hashicorp/uuid v0.0.0-20160311170451-ebb0a03e909c/go.mod h1:fHzc09UnyJyqyW+bFuq864eh+wC7dj65aXmXLRe5to0= github.com/hashicorp/vault/api v1.0.5-0.20200717191844-f687267c8086/go.mod h1:R3Umvhlxi2TN7Ex2hzOowyeNb+SfbVWI973N+ctaFMk= github.com/hashicorp/vault/sdk v0.1.14-0.20200519221838-e0cfd64bc267/go.mod h1:WX57W2PwkrOPQ6rVQk+dy5/htHIaB4aBM70EwKThu10= @@ -1091,6 +1093,8 @@ github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/kvtools/valkeyrie v0.4.0 h1:0lfG8XpxL28YCOUmSiFsyvgTSDxEQzQOtgvZrJ3sIm8= +github.com/kvtools/valkeyrie v0.4.0/go.mod h1:rNvw3wTLExfPgqcn+y6bpBZP8MYULZ4X1SAa2zEDg2o= github.com/kylelemons/go-gypsy v0.0.0-20160905020020-08cad365cd28/go.mod h1:T/T7jsxVqf9k/zYOqbgNAsANsjxTd1Yq3htjDhQ1H0c= github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= github.com/labbsr0x/bindman-dns-webhook v1.0.2 h1:I7ITbmQPAVwrDdhd6dHKi+MYJTJqPCK0jE6YNBAevnk= @@ -1181,8 +1185,9 @@ github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00v github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= -github.com/miekg/dns v1.1.43 h1:JKfpVSCB84vrAmHzyrsxB5NAr5kLoMXZArPSw7Qlgyg= github.com/miekg/dns v1.1.43/go.mod h1:+evo5L0630/F6ca/Z9+GAqzhjGyn8/c+TBaOyfEl0V4= +github.com/miekg/dns v1.1.45 h1:g5fRIhm9nx7g8osrAvgb16QJfmyMsyOCb+J7LSv+Qzk= +github.com/miekg/dns v1.1.45/go.mod h1:e3IlAVfNqAllflbibAZEWOXOQ+Ynzk/dDozDxY7XnME= github.com/miekg/pkcs11 v1.0.3 h1:iMwmD7I5225wv84WxIG/bmxz9AXjWvTWIbM/TYHvWtw= github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= @@ -1491,8 +1496,6 @@ github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIH github.com/sacloud/libsacloud v1.36.2 h1:aosI7clbQ9IU0Hj+3rpk3SKJop5nLPpLThnWCivPqjI= github.com/sacloud/libsacloud v1.36.2/go.mod h1:P7YAOVmnIn3DKHqCZcUKYUXmSwGBm3yS7IBEjKVSrjg= github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= -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 h1:p3Vo3i64TCLY7gIfzeQaUJ+kppEO5WQG3cL8iE8tGHU= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/sanathkr/go-yaml v0.0.0-20170819195128-ed9d249f429b h1:jUK33OXuZP/l6babJtnLo1qsGvq6G9so9KMflGAm4YA= github.com/sanathkr/go-yaml v0.0.0-20170819195128-ed9d249f429b/go.mod h1:8458kAagoME2+LN5//WxE71ysZ3B7r22fdgb7qVmXSY= @@ -1940,6 +1943,7 @@ golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT golang.org/x/net v0.0.0-20210510120150-4163338589ed/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211209124913-491a49abca63 h1:iocB37TsdFuN6IBRZ+ry36wrkoV51/tl5vOWqkcPGvY= golang.org/x/net v0.0.0-20211209124913-491a49abca63/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/oauth2 v0.0.0-20180724155351-3d292e4d0cdc/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -2195,8 +2199,9 @@ golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.5 h1:ouewzE6p+/VEB31YYnTbEJdi8pFqKp4P4n85vwo3DHA= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2 h1:BonxutuHCTL0rBDnZlKjpGIQFTjyUVTexFOdWkB6Fg0= +golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/integration/consul_test.go b/integration/consul_test.go index 779b0504a..59c661a57 100644 --- a/integration/consul_test.go +++ b/integration/consul_test.go @@ -10,10 +10,10 @@ import ( "path/filepath" "time" - "github.com/abronan/valkeyrie" - "github.com/abronan/valkeyrie/store" - "github.com/abronan/valkeyrie/store/consul" "github.com/go-check/check" + "github.com/kvtools/valkeyrie" + "github.com/kvtools/valkeyrie/store" + "github.com/kvtools/valkeyrie/store/consul" "github.com/pmezard/go-difflib/difflib" "github.com/traefik/traefik/v2/integration/try" "github.com/traefik/traefik/v2/pkg/api" diff --git a/integration/etcd_test.go b/integration/etcd_test.go index 0459e9ebd..3b7b2bca2 100644 --- a/integration/etcd_test.go +++ b/integration/etcd_test.go @@ -9,10 +9,10 @@ import ( "path/filepath" "time" - "github.com/abronan/valkeyrie" - "github.com/abronan/valkeyrie/store" - etcdv3 "github.com/abronan/valkeyrie/store/etcd/v3" "github.com/go-check/check" + "github.com/kvtools/valkeyrie" + "github.com/kvtools/valkeyrie/store" + etcdv3 "github.com/kvtools/valkeyrie/store/etcd/v3" "github.com/pmezard/go-difflib/difflib" "github.com/traefik/traefik/v2/integration/try" "github.com/traefik/traefik/v2/pkg/api" diff --git a/integration/redis_test.go b/integration/redis_test.go index 3b572cab3..520fefdf3 100644 --- a/integration/redis_test.go +++ b/integration/redis_test.go @@ -9,10 +9,10 @@ import ( "path/filepath" "time" - "github.com/abronan/valkeyrie" - "github.com/abronan/valkeyrie/store" - "github.com/abronan/valkeyrie/store/redis" "github.com/go-check/check" + "github.com/kvtools/valkeyrie" + "github.com/kvtools/valkeyrie/store" + "github.com/kvtools/valkeyrie/store/redis" "github.com/pmezard/go-difflib/difflib" "github.com/traefik/traefik/v2/integration/try" "github.com/traefik/traefik/v2/pkg/api" diff --git a/integration/try/condition.go b/integration/try/condition.go index c10d20a9a..7325360a9 100644 --- a/integration/try/condition.go +++ b/integration/try/condition.go @@ -8,7 +8,7 @@ import ( "reflect" "strings" - "github.com/abronan/valkeyrie/store" + "github.com/kvtools/valkeyrie/store" ) // ResponseCondition is a retry condition function. diff --git a/integration/zk_test.go b/integration/zk_test.go index 89a6bcc2b..77f904e2e 100644 --- a/integration/zk_test.go +++ b/integration/zk_test.go @@ -9,10 +9,10 @@ import ( "path/filepath" "time" - "github.com/abronan/valkeyrie" - "github.com/abronan/valkeyrie/store" - "github.com/abronan/valkeyrie/store/zookeeper" "github.com/go-check/check" + "github.com/kvtools/valkeyrie" + "github.com/kvtools/valkeyrie/store" + "github.com/kvtools/valkeyrie/store/zookeeper" "github.com/pmezard/go-difflib/difflib" "github.com/traefik/traefik/v2/integration/try" "github.com/traefik/traefik/v2/pkg/api" diff --git a/pkg/config/kv/kv.go b/pkg/config/kv/kv.go index 9ca265a21..7f6a943fa 100644 --- a/pkg/config/kv/kv.go +++ b/pkg/config/kv/kv.go @@ -4,7 +4,7 @@ import ( "path" "reflect" - "github.com/abronan/valkeyrie/store" + "github.com/kvtools/valkeyrie/store" "github.com/traefik/paerser/parser" ) diff --git a/pkg/config/kv/kv_node.go b/pkg/config/kv/kv_node.go index 229525ef6..4f67ff1e2 100644 --- a/pkg/config/kv/kv_node.go +++ b/pkg/config/kv/kv_node.go @@ -6,7 +6,7 @@ import ( "sort" "strings" - "github.com/abronan/valkeyrie/store" + "github.com/kvtools/valkeyrie/store" "github.com/traefik/paerser/parser" ) diff --git a/pkg/config/kv/kv_node_test.go b/pkg/config/kv/kv_node_test.go index 7f3d547ec..c4a76b843 100644 --- a/pkg/config/kv/kv_node_test.go +++ b/pkg/config/kv/kv_node_test.go @@ -5,7 +5,7 @@ import ( "fmt" "testing" - "github.com/abronan/valkeyrie/store" + "github.com/kvtools/valkeyrie/store" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/traefik/paerser/parser" diff --git a/pkg/provider/kv/consul/consul.go b/pkg/provider/kv/consul/consul.go index 80a9f3273..6f3860955 100644 --- a/pkg/provider/kv/consul/consul.go +++ b/pkg/provider/kv/consul/consul.go @@ -1,7 +1,9 @@ package consul import ( - "github.com/abronan/valkeyrie/store" + "errors" + + "github.com/kvtools/valkeyrie/store" "github.com/traefik/traefik/v2/pkg/provider" "github.com/traefik/traefik/v2/pkg/provider/kv" ) @@ -21,5 +23,11 @@ func (p *Provider) SetDefaults() { // Init the provider. func (p *Provider) Init() error { + // Wildcard namespace allows fetching KV values from any namespace for recursive requests (see https://www.consul.io/api/kv#ns). + // As we are not supporting multiple namespaces at the same time, wildcard namespace is not allowed. + if p.Namespace == "*" { + return errors.New("wildcard namespace is not supported") + } + return p.Provider.Init(store.CONSUL, "consul") } diff --git a/pkg/provider/kv/etcd/etcd.go b/pkg/provider/kv/etcd/etcd.go index 314ea2be9..a06f1b1a1 100644 --- a/pkg/provider/kv/etcd/etcd.go +++ b/pkg/provider/kv/etcd/etcd.go @@ -1,7 +1,7 @@ package etcd import ( - "github.com/abronan/valkeyrie/store" + "github.com/kvtools/valkeyrie/store" "github.com/traefik/traefik/v2/pkg/provider" "github.com/traefik/traefik/v2/pkg/provider/kv" ) diff --git a/pkg/provider/kv/kv.go b/pkg/provider/kv/kv.go index 4eee4ab63..ba5344aa3 100644 --- a/pkg/provider/kv/kv.go +++ b/pkg/provider/kv/kv.go @@ -7,13 +7,13 @@ import ( "path" "time" - "github.com/abronan/valkeyrie" - "github.com/abronan/valkeyrie/store" - "github.com/abronan/valkeyrie/store/consul" - etcdv3 "github.com/abronan/valkeyrie/store/etcd/v3" - "github.com/abronan/valkeyrie/store/redis" - "github.com/abronan/valkeyrie/store/zookeeper" "github.com/cenkalti/backoff/v4" + "github.com/kvtools/valkeyrie" + "github.com/kvtools/valkeyrie/store" + "github.com/kvtools/valkeyrie/store/consul" + etcdv3 "github.com/kvtools/valkeyrie/store/etcd/v3" + "github.com/kvtools/valkeyrie/store/redis" + "github.com/kvtools/valkeyrie/store/zookeeper" "github.com/traefik/traefik/v2/pkg/config/dynamic" "github.com/traefik/traefik/v2/pkg/config/kv" "github.com/traefik/traefik/v2/pkg/job" @@ -29,6 +29,7 @@ type Provider struct { Endpoints []string `description:"KV store endpoints" json:"endpoints,omitempty" toml:"endpoints,omitempty" yaml:"endpoints,omitempty"` Username string `description:"KV Username" json:"username,omitempty" toml:"username,omitempty" yaml:"username,omitempty"` Password string `description:"KV Password" json:"password,omitempty" toml:"password,omitempty" yaml:"password,omitempty"` + Namespace string `description:"KV Namespace" json:"namespace,omitempty" toml:"namespace,omitempty" yaml:"namespace,omitempty"` TLS *types.ClientTLS `description:"Enable TLS support" export:"true" json:"tls,omitempty" toml:"tls,omitempty" yaml:"tls,omitempty"` storeType store.Backend @@ -164,6 +165,7 @@ func (p *Provider) createKVClient(ctx context.Context) (store.Store, error) { Bucket: "traefik", Username: p.Username, Password: p.Password, + Namespace: p.Namespace, } if p.TLS != nil { diff --git a/pkg/provider/kv/kv_mock_test.go b/pkg/provider/kv/kv_mock_test.go index c33cee3d2..aa74f7c6f 100644 --- a/pkg/provider/kv/kv_mock_test.go +++ b/pkg/provider/kv/kv_mock_test.go @@ -4,7 +4,7 @@ import ( "errors" "strings" - "github.com/abronan/valkeyrie/store" + "github.com/kvtools/valkeyrie/store" ) func newProviderMock(kvPairs []*store.KVPair) *Provider { diff --git a/pkg/provider/kv/kv_test.go b/pkg/provider/kv/kv_test.go index 76f1c8e95..ba623f4a3 100644 --- a/pkg/provider/kv/kv_test.go +++ b/pkg/provider/kv/kv_test.go @@ -6,7 +6,7 @@ import ( "testing" "time" - "github.com/abronan/valkeyrie/store" + "github.com/kvtools/valkeyrie/store" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ptypes "github.com/traefik/paerser/types" diff --git a/pkg/provider/kv/redis/redis.go b/pkg/provider/kv/redis/redis.go index 07ce7bf78..f24b94e8e 100644 --- a/pkg/provider/kv/redis/redis.go +++ b/pkg/provider/kv/redis/redis.go @@ -1,7 +1,7 @@ package redis import ( - "github.com/abronan/valkeyrie/store" + "github.com/kvtools/valkeyrie/store" "github.com/traefik/traefik/v2/pkg/provider" "github.com/traefik/traefik/v2/pkg/provider/kv" ) diff --git a/pkg/provider/kv/storewrapper.go b/pkg/provider/kv/storewrapper.go index 3015f5ded..7f46c878c 100644 --- a/pkg/provider/kv/storewrapper.go +++ b/pkg/provider/kv/storewrapper.go @@ -1,7 +1,7 @@ package kv import ( - "github.com/abronan/valkeyrie/store" + "github.com/kvtools/valkeyrie/store" "github.com/traefik/traefik/v2/pkg/log" ) diff --git a/pkg/provider/kv/zk/zk.go b/pkg/provider/kv/zk/zk.go index 665dcc00a..7f21219ef 100644 --- a/pkg/provider/kv/zk/zk.go +++ b/pkg/provider/kv/zk/zk.go @@ -1,7 +1,7 @@ package zk import ( - "github.com/abronan/valkeyrie/store" + "github.com/kvtools/valkeyrie/store" "github.com/traefik/traefik/v2/pkg/provider" "github.com/traefik/traefik/v2/pkg/provider/kv" )