|
|
|
@ -7,6 +7,7 @@ import (
|
|
|
|
|
"io"
|
|
|
|
|
"net"
|
|
|
|
|
"os"
|
|
|
|
|
"time"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
const (
|
|
|
|
@ -54,6 +55,12 @@ type Config struct {
|
|
|
|
|
// SerfWANConfig is the configuration for the cross-dc serf
|
|
|
|
|
SerfWANConfig *serf.Config
|
|
|
|
|
|
|
|
|
|
// ReconcileInterval controls how often we reconcile the strongly
|
|
|
|
|
// consistent store with the Serf info. This is used to handle nodes
|
|
|
|
|
// that are force removed, as well as intermittent unavailability during
|
|
|
|
|
// leader election.
|
|
|
|
|
ReconcileInterval time.Duration
|
|
|
|
|
|
|
|
|
|
// LogOutput is the location to write logs to. If this is not set,
|
|
|
|
|
// logs will go to stderr.
|
|
|
|
|
LogOutput io.Writer
|
|
|
|
@ -67,12 +74,13 @@ func DefaultConfig() *Config {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
conf := &Config{
|
|
|
|
|
Datacenter: DefaultDC,
|
|
|
|
|
NodeName: hostname,
|
|
|
|
|
RPCAddr: DefaultRPCAddr,
|
|
|
|
|
RaftConfig: raft.DefaultConfig(),
|
|
|
|
|
SerfLANConfig: serf.DefaultConfig(),
|
|
|
|
|
SerfWANConfig: serf.DefaultConfig(),
|
|
|
|
|
Datacenter: DefaultDC,
|
|
|
|
|
NodeName: hostname,
|
|
|
|
|
RPCAddr: DefaultRPCAddr,
|
|
|
|
|
RaftConfig: raft.DefaultConfig(),
|
|
|
|
|
SerfLANConfig: serf.DefaultConfig(),
|
|
|
|
|
SerfWANConfig: serf.DefaultConfig(),
|
|
|
|
|
ReconcileInterval: 60 * time.Second,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// WAN Serf should use the WAN timing, since we are using it
|
|
|
|
|