2019-11-28 20:56:04 +00:00
|
|
|
package zk
|
|
|
|
|
|
|
|
import (
|
2022-09-12 15:40:09 +00:00
|
|
|
"time"
|
|
|
|
|
|
|
|
"github.com/kvtools/zookeeper"
|
2023-02-03 14:24:05 +00:00
|
|
|
"github.com/traefik/traefik/v3/pkg/provider"
|
|
|
|
"github.com/traefik/traefik/v3/pkg/provider/kv"
|
2019-11-28 20:56:04 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
var _ provider.Provider = (*Provider)(nil)
|
|
|
|
|
|
|
|
// Provider holds configurations of the provider.
|
|
|
|
type Provider struct {
|
2022-09-12 15:40:09 +00:00
|
|
|
kv.Provider `yaml:",inline" export:"true"`
|
|
|
|
|
|
|
|
Username string `description:"Username for authentication." json:"username,omitempty" toml:"username,omitempty" yaml:"username,omitempty" loggable:"false"`
|
|
|
|
Password string `description:"Password for authentication." json:"password,omitempty" toml:"password,omitempty" yaml:"password,omitempty" loggable:"false"`
|
2019-11-28 20:56:04 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// SetDefaults sets the default values.
|
|
|
|
func (p *Provider) SetDefaults() {
|
|
|
|
p.Provider.SetDefaults()
|
|
|
|
p.Endpoints = []string{"127.0.0.1:2181"}
|
|
|
|
}
|
|
|
|
|
2020-05-11 10:06:07 +00:00
|
|
|
// Init the provider.
|
2019-11-28 20:56:04 +00:00
|
|
|
func (p *Provider) Init() error {
|
2022-09-12 15:40:09 +00:00
|
|
|
config := &zookeeper.Config{
|
|
|
|
ConnectionTimeout: 3 * time.Second,
|
|
|
|
Username: p.Username,
|
|
|
|
Password: p.Password,
|
|
|
|
}
|
|
|
|
|
|
|
|
return p.Provider.Init(zookeeper.StoreName, "zookeeper", config)
|
2019-11-28 20:56:04 +00:00
|
|
|
}
|