# Traefik & ZooKeeper A Story of KV store & Containers {: .subtitle } Store your configuration in ZooKeeper and let Traefik do the rest! ## Routing Configuration See the dedicated section in [routing](../routing/providers/kv.md). ## Provider Configuration ### `endpoints` _Required, Default="127.0.0.1:2181"_ Defines how to access to ZooKeeper. ```toml tab="File (TOML)" [providers.zooKeeper] endpoints = ["127.0.0.1:2181"] ``` ```yaml tab="File (YAML)" providers: zooKeeper: endpoints: - "127.0.0.1:2181" ``` ```bash tab="CLI" --providers.zookeeper.endpoints=127.0.0.1:2181 ``` ### `rootKey` Defines the root key of the configuration. _Required, Default="traefik"_ ```toml tab="File (TOML)" [providers.zooKeeper] rootKey = "traefik" ``` ```yaml tab="File (YAML)" providers: zooKeeper: rootKey: "traefik" ``` ```bash tab="CLI" --providers.zookeeper.rootkey=traefik ``` ### `username` Defines a username to connect with ZooKeeper. _Optional, Default=""_ ```toml tab="File (TOML)" [providers.zooKeeper] # ... username = "foo" ``` ```yaml tab="File (YAML)" providers: zooKeeper: # ... usename: "foo" ``` ```bash tab="CLI" --providers.zookeeper.username=foo ``` ### `password` _Optional, Default=""_ Defines a password to connect with ZooKeeper. ```toml tab="File (TOML)" [providers.zooKeeper] # ... password = "bar" ``` ```yaml tab="File (YAML)" providers: zooKeeper: # ... password: "bar" ``` ```bash tab="CLI" --providers.zookeeper.password=foo ``` ### `tls` _Optional_ #### `tls.ca` Certificate Authority used for the secured connection to ZooKeeper. ```toml tab="File (TOML)" [providers.zooKeeper.tls] ca = "path/to/ca.crt" ``` ```yaml tab="File (YAML)" providers: zooKeeper: tls: ca: path/to/ca.crt ``` ```bash tab="CLI" --providers.zookeeper.tls.ca=path/to/ca.crt ``` #### `tls.caOptional` Policy followed for the secured connection with TLS Client Authentication to ZooKeeper. Requires `tls.ca` to be defined. - `true`: VerifyClientCertIfGiven - `false`: RequireAndVerifyClientCert - if `tls.ca` is undefined NoClientCert ```toml tab="File (TOML)" [providers.zooKeeper.tls] caOptional = true ``` ```yaml tab="File (YAML)" providers: zooKeeper: tls: caOptional: true ``` ```bash tab="CLI" --providers.zookeeper.tls.caOptional=true ``` #### `tls.cert` Public certificate used for the secured connection to ZooKeeper. ```toml tab="File (TOML)" [providers.zooKeeper.tls] cert = "path/to/foo.cert" key = "path/to/foo.key" ``` ```yaml tab="File (YAML)" providers: zooKeeper: tls: cert: path/to/foo.cert key: path/to/foo.key ``` ```bash tab="CLI" --providers.zookeeper.tls.cert=path/to/foo.cert --providers.zookeeper.tls.key=path/to/foo.key ``` #### `tls.key` Private certificate used for the secured connection to ZooKeeper. ```toml tab="File (TOML)" [providers.zooKeeper.tls] cert = "path/to/foo.cert" key = "path/to/foo.key" ``` ```yaml tab="File (YAML)" providers: zooKeeper: tls: cert: path/to/foo.cert key: path/to/foo.key ``` ```bash tab="CLI" --providers.zookeeper.tls.cert=path/to/foo.cert --providers.zookeeper.tls.key=path/to/foo.key ``` #### `tls.insecureSkipVerify` If `insecureSkipVerify` is `true`, TLS for the connection to ZooKeeper accepts any certificate presented by the server and any host name in that certificate. ```toml tab="File (TOML)" [providers.zooKeeper.tls] insecureSkipVerify = true ``` ```yaml tab="File (YAML)" providers: zooKeeper: tls: insecureSkipVerify: true ``` ```bash tab="CLI" --providers.zookeeper.tls.insecureSkipVerify=true ```