traefik/docs/content/providers/zookeeper.md
Kevin Pollet b39d226fb8
fix: use host's root CA set if ClientTLS ca is not defined
Co-authored-by: Tom Moulard <tom.moulard@traefik.io>
2021-11-03 17:38:07 +01:00

4 KiB

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.

Provider Configuration

endpoints

Required, Default="127.0.0.1:2181"

Defines how to access to ZooKeeper.

providers:
  zooKeeper:
    endpoints:
      - "127.0.0.1:2181"
[providers.zooKeeper]
  endpoints = ["127.0.0.1:2181"]
--providers.zookeeper.endpoints=127.0.0.1:2181

rootKey

Required, Default="traefik"

Defines the root key of the configuration.

providers:
  zooKeeper:
    rootKey: "traefik"
[providers.zooKeeper]
  rootKey = "traefik"
--providers.zookeeper.rootkey=traefik

username

Optional, Default=""

Defines a username to connect with ZooKeeper.

providers:
  zooKeeper:
    # ...
    username: "foo"
[providers.zooKeeper]
  # ...
  username = "foo"
--providers.zookeeper.username=foo

password

Optional, Default=""

Defines a password to connect with ZooKeeper.

providers:
  zooKeeper:
    # ...
    password: "bar"
[providers.zooKeeper]
  # ...
  password = "bar"
--providers.zookeeper.password=foo

tls

Optional

tls.ca

Certificate Authority used for the secure connection to ZooKeeper, defaults to the system bundle.

providers:
  zooKeeper:
    tls:
      ca: path/to/ca.crt
[providers.zooKeeper.tls]
  ca = "path/to/ca.crt"
--providers.zookeeper.tls.ca=path/to/ca.crt

tls.caOptional

The value of tls.caOptional defines which policy should be used for the secure connection with TLS Client Authentication to Zookeeper.

!!! warning ""

If `tls.ca` is undefined, this option will be ignored, and no client certificate will be requested during the handshake. Any provided certificate will thus never be verified.

When this option is set to true, a client certificate is requested during the handshake but is not required. If a certificate is sent, it is required to be valid.

When this option is set to false, a client certificate is requested during the handshake, and at least one valid certificate should be sent by the client.

providers:
  zooKeeper:
    tls:
      caOptional: true
[providers.zooKeeper.tls]
  caOptional = true
--providers.zookeeper.tls.caOptional=true

tls.cert

Public certificate used for the secure connection to ZooKeeper.

providers:
  zooKeeper:
    tls:
      cert: path/to/foo.cert
      key: path/to/foo.key
[providers.zooKeeper.tls]
  cert = "path/to/foo.cert"
  key = "path/to/foo.key"
--providers.zookeeper.tls.cert=path/to/foo.cert
--providers.zookeeper.tls.key=path/to/foo.key

tls.key

Private certificate used for the secure connection to ZooKeeper.

providers:
  zooKeeper:
    tls:
      cert: path/to/foo.cert
      key: path/to/foo.key
[providers.zooKeeper.tls]
  cert = "path/to/foo.cert"
  key = "path/to/foo.key"
--providers.zookeeper.tls.cert=path/to/foo.cert
--providers.zookeeper.tls.key=path/to/foo.key

tls.insecureSkipVerify

If insecureSkipVerify is true, the TLS connection to Zookeeper accepts any certificate presented by the server regardless of the hostnames it covers.

providers:
  zooKeeper:
    tls:
      insecureSkipVerify: true
[providers.zooKeeper.tls]
  insecureSkipVerify = true
--providers.zookeeper.tls.insecureSkipVerify=true