Documentation ¶
Index ¶
- Constants
- func CheckDuplicateURL(urlsmap types.URLsMap) bool
- type ServerConfig
- func (c *ServerConfig) BackendPath() string
- func (c *ServerConfig) BootstrapTimeoutEffective() time.Duration
- func (c *ServerConfig) ElectionTimeout() time.Duration
- func (c *ServerConfig) MemberDir() string
- func (c *ServerConfig) PeerDialTimeout() time.Duration
- func (c *ServerConfig) ReqTimeout() time.Duration
- func (c *ServerConfig) ShouldDiscover() bool
- func (c *ServerConfig) SnapDir() string
- func (c *ServerConfig) VerifyBootstrap() error
- func (c *ServerConfig) VerifyJoinExisting() error
- func (c *ServerConfig) WALDir() string
- type V2DeprecationEnum
Constants ¶
View Source
const ( // Default in v3.5. Issues a warning if v2store have meaningful content. V2_DEPR_0_NOT_YET = V2DeprecationEnum("not-yet") // Default in v3.6. Meaningful v2 state is not allowed. // The V2 files are maintained for v3.5 rollback. V2_DEPR_1_WRITE_ONLY = V2DeprecationEnum("write-only") // V2store is WIPED if found !!! V2_DEPR_1_WRITE_ONLY_DROP = V2DeprecationEnum("write-only-drop-data") // V2store is neither written nor read. Usage of this configuration is blocking // ability to rollback to etcd v3.5. V2_DEPR_2_GONE = V2DeprecationEnum("gone") V2_DEPR_DEFAULT = V2_DEPR_0_NOT_YET )
Variables ¶
This section is empty.
Functions ¶
func CheckDuplicateURL ¶
Types ¶
type ServerConfig ¶
type ServerConfig struct { Name string DiscoveryURL string DiscoveryProxy string ClientURLs types.URLs PeerURLs types.URLs DataDir string // DedicatedWALDir config will make the etcd to write the WAL to the WALDir // rather than the dataDir/member/wal. DedicatedWALDir string SnapshotCount uint64 // SnapshotCatchUpEntries is the number of entries for a slow follower // to catch-up after compacting the raft storage entries. // We expect the follower has a millisecond level latency with the leader. // The max throughput is around 10K. Keep a 5K entries is enough for helping // follower to catch up. // WARNING: only change this for tests. Always use "DefaultSnapshotCatchUpEntries" SnapshotCatchUpEntries uint64 MaxSnapFiles uint MaxWALFiles uint // BackendBatchInterval is the maximum time before commit the backend transaction. BackendBatchInterval time.Duration // BackendBatchLimit is the maximum operations before commit the backend transaction. BackendBatchLimit int // BackendFreelistType is the type of the backend boltdb freelist. BackendFreelistType bolt.FreelistType InitialPeerURLsMap types.URLsMap InitialClusterToken string NewCluster bool PeerTLSInfo transport.TLSInfo CORS map[string]struct{} // HostWhitelist lists acceptable hostnames from client requests. // If server is insecure (no TLS), server only accepts requests // whose Host header value exists in this white list. HostWhitelist map[string]struct{} TickMs uint ElectionTicks int // InitialElectionTickAdvance is true, then local member fast-forwards // election ticks to speed up "initial" leader election trigger. This // benefits the case of larger election ticks. For instance, cross // datacenter deployment may require longer election timeout of 10-second. // If true, local node does not need wait up to 10-second. Instead, // forwards its election ticks to 8-second, and have only 2-second left // before leader election. // // Major assumptions are that: // - cluster has no active leader thus advancing ticks enables faster // leader election, or // - cluster already has an established leader, and rejoining follower // is likely to receive heartbeats from the leader after tick advance // and before election timeout. // // However, when network from leader to rejoining follower is congested, // and the follower does not receive leader heartbeat within left election // ticks, disruptive election has to happen thus affecting cluster // availabilities. // // Disabling this would slow down initial bootstrap process for cross // datacenter deployments. Make your own tradeoffs by configuring // --initial-election-tick-advance at the cost of slow initial bootstrap. // // If single-node, it advances ticks regardless. // // See https://github.com/etcd-io/etcd/issues/9333 for more detail. InitialElectionTickAdvance bool BootstrapTimeout time.Duration AutoCompactionRetention time.Duration AutoCompactionMode string CompactionBatchLimit int CompactionSleepInterval time.Duration QuotaBackendBytes int64 MaxTxnOps uint // MaxRequestBytes is the maximum request size to send over raft. MaxRequestBytes uint // MaxConcurrentStreams specifies the maximum number of concurrent // streams that each client can open at a time. MaxConcurrentStreams uint32 WarningApplyDuration time.Duration StrictReconfigCheck bool // ClientCertAuthEnabled is true when cert has been signed by the client CA. ClientCertAuthEnabled bool AuthToken string BcryptCost uint TokenTTL uint // InitialCorruptCheck is true to check data corruption on boot // before serving any peer/client traffic. InitialCorruptCheck bool CorruptCheckTime time.Duration CompactHashCheckEnabled bool CompactHashCheckTime time.Duration // PreVote is true to enable Raft Pre-Vote. PreVote bool // SocketOpts are socket options passed to listener config. SocketOpts transport.SocketOpts // Logger logs server-side operations. Logger *zap.Logger ForceNewCluster bool // EnableLeaseCheckpoint enables leader to send regular checkpoints to other members to prevent reset of remaining TTL on leader change. EnableLeaseCheckpoint bool // LeaseCheckpointInterval time.Duration is the wait duration between lease checkpoints. LeaseCheckpointInterval time.Duration // LeaseCheckpointPersist enables persisting remainingTTL to prevent indefinite auto-renewal of long lived leases. Always enabled in v3.6. Should be used to ensure smooth upgrade from v3.5 clusters with this feature enabled. LeaseCheckpointPersist bool EnableGRPCGateway bool // ExperimentalEnableDistributedTracing enables distributed tracing using OpenTelemetry protocol. ExperimentalEnableDistributedTracing bool // ExperimentalTracerOptions are options for OpenTelemetry gRPC interceptor. ExperimentalTracerOptions []otelgrpc.Option WatchProgressNotifyInterval time.Duration // UnsafeNoFsync disables all uses of fsync. // Setting this is unsafe and will cause data loss. UnsafeNoFsync bool `json:"unsafe-no-fsync"` DowngradeCheckTime time.Duration // ExperimentalMemoryMlock enables mlocking of etcd owned memory pages. // The setting improves etcd tail latency in environments were: // - memory pressure might lead to swapping pages to disk // - disk latency might be unstable // Currently all etcd memory gets mlocked, but in future the flag can // be refined to mlock in-use area of bbolt only. ExperimentalMemoryMlock bool `json:"experimental-memory-mlock"` // a shared buffer in its readonly check operations. ExperimentalTxnModeWriteWithSharedBuffer bool `json:"experimental-txn-mode-write-with-shared-buffer"` // ExperimentalStopGRPCServiceOnDefrag enables etcd gRPC service to stop serving client requests on defragmentation. ExperimentalStopGRPCServiceOnDefrag bool `json:"experimental-stop-grpc-service-on-defrag"` // ExperimentalBootstrapDefragThresholdMegabytes is the minimum number of megabytes needed to be freed for etcd server to // consider running defrag during bootstrap. Needs to be set to non-zero value to take effect. ExperimentalBootstrapDefragThresholdMegabytes uint `json:"experimental-bootstrap-defrag-threshold-megabytes"` // V2Deprecation defines a phase of v2store deprecation process. V2Deprecation V2DeprecationEnum `json:"v2-deprecation"` }
ServerConfig holds the configuration of etcd as taken from the command line or discovery.
func (*ServerConfig) BackendPath ¶
func (c *ServerConfig) BackendPath() string
func (*ServerConfig) BootstrapTimeoutEffective ¶
func (c *ServerConfig) BootstrapTimeoutEffective() time.Duration
func (*ServerConfig) ElectionTimeout ¶
func (c *ServerConfig) ElectionTimeout() time.Duration
func (*ServerConfig) MemberDir ¶
func (c *ServerConfig) MemberDir() string
func (*ServerConfig) PeerDialTimeout ¶
func (c *ServerConfig) PeerDialTimeout() time.Duration
func (*ServerConfig) ReqTimeout ¶
func (c *ServerConfig) ReqTimeout() time.Duration
ReqTimeout returns timeout for request to finish.
func (*ServerConfig) ShouldDiscover ¶
func (c *ServerConfig) ShouldDiscover() bool
func (*ServerConfig) SnapDir ¶
func (c *ServerConfig) SnapDir() string
func (*ServerConfig) VerifyBootstrap ¶
func (c *ServerConfig) VerifyBootstrap() error
VerifyBootstrap sanity-checks the initial config for bootstrap case and returns an error for things that should never happen.
func (*ServerConfig) VerifyJoinExisting ¶
func (c *ServerConfig) VerifyJoinExisting() error
VerifyJoinExisting sanity-checks the initial config for join existing cluster case and returns an error for things that should never happen.
func (*ServerConfig) WALDir ¶
func (c *ServerConfig) WALDir() string
type V2DeprecationEnum ¶
type V2DeprecationEnum string
func (V2DeprecationEnum) IsAtLeast ¶
func (e V2DeprecationEnum) IsAtLeast(v2d V2DeprecationEnum) bool
Click to show internal directories.
Click to hide internal directories.