package config
import "go.etcd.io/etcd/server/v3/config"
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) MaxRequestBytesWithOverhead() uint
- 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 ¶
const ( // V2Depr0NotYet means v2store isn't deprecated yet. // Default in v3.5, and no longer supported in v3.6. V2Depr0NotYet = V2DeprecationEnum("not-yet") // Deprecated: to be decommissioned in 3.7. Please use V2Depr0NotYet. // TODO: remove in 3.7 //revive:disable-next-line:var-naming V2_DEPR_0_NOT_YET = V2Depr0NotYet // V2Depr1WriteOnly means only writing v2store is allowed. // Default in v3.6. Meaningful v2 state is not allowed. // The V2 files are maintained for v3.5 rollback. V2Depr1WriteOnly = V2DeprecationEnum("write-only") // Deprecated: to be decommissioned in 3.7. Please use V2Depr1WriteOnly. // TODO: remove in 3.7 //revive:disable-next-line:var-naming V2_DEPR_1_WRITE_ONLY = V2Depr1WriteOnly // V2Depr1WriteOnlyDrop means v2store is WIPED if found !!! // Will be default in 3.7. V2Depr1WriteOnlyDrop = V2DeprecationEnum("write-only-drop-data") // Deprecated: to be decommissioned in 3.7. Pleae use V2Depr1WriteOnlyDrop. // TODO: remove in 3.7 //revive:disable-next-line:var-naming V2_DEPR_1_WRITE_ONLY_DROP = V2Depr1WriteOnlyDrop // V2Depr2Gone means v2store is completely gone. The v2store is // neither written nor read. Anything related to v2store will be // cleaned up in v3.8. Usage of this configuration is blocking // ability to rollback to etcd v3.5. V2Depr2Gone = V2DeprecationEnum("gone") // Deprecated: to be decommissioned in 3.7. Please use V2Depr2Gone. // TODO: remove in 3.7 //revive:disable-next-line:var-naming V2_DEPR_2_GONE = V2Depr2Gone // V2DeprDefault is the default deprecation level. V2DeprDefault = V2Depr1WriteOnly // Deprecated: to be decommissioned in 3.7. Please use V2DeprDefault. // TODO: remove in 3.7 //revive:disable-next-line:var-naming V2_DEPR_DEFAULT = V2DeprDefault )
Functions ¶
func CheckDuplicateURL ¶
Types ¶
type ServerConfig ¶
type ServerConfig struct {
Name string
DiscoveryURL string
DiscoveryProxy string
DiscoveryCfg v3discovery.DiscoveryConfig
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.
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
WarningUnaryRequestDuration 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
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
// LeaseCheckpointInterval time.Duration is the wait duration between lease checkpoints.
LeaseCheckpointInterval time.Duration
EnableGRPCGateway bool
// EnableDistributedTracing enables distributed tracing using OpenTelemetry protocol.
EnableDistributedTracing bool
// TracerOptions are options for OpenTelemetry gRPC interceptor.
TracerOptions []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
// MemoryMlock 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.
MemoryMlock bool `json:"memory-mlock"`
// ExperimentalTxnModeWriteWithSharedBuffer enable write transaction to use
// a shared buffer in its readonly check operations.
// TODO: Delete in v3.7
// Deprecated: Use TxnModeWriteWithSharedBuffer Feature Gate instead. Will be decommissioned in v3.7.
bool `json:"experimental-txn-mode-write-with-shared-buffer"`
// BootstrapDefragThresholdMegabytes 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.
BootstrapDefragThresholdMegabytes uint `json:"bootstrap-defrag-threshold-megabytes"`
// MaxLearners sets a limit to the number of learner members that can exist in the cluster membership.
MaxLearners int `json:"max-learners"`
// V2Deprecation defines a phase of v2store deprecation process.
V2Deprecation V2DeprecationEnum `json:"v2-deprecation"`
// ExperimentalLocalAddress is the local IP address to use when communicating with a peer.
ExperimentalLocalAddress string `json:"experimental-local-address"`
// ServerFeatureGate is a server level feature gate
ServerFeatureGate featuregate.FeatureGate
// Metrics types of metrics - should be either 'basic' or 'extensive'
Metrics string
}
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) MaxRequestBytesWithOverhead ¶
func (c *ServerConfig) MaxRequestBytesWithOverhead() uint
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
Source Files ¶
config.go v2_deprecation.go
- Version
- v3.6.10 (latest)
- Published
- Apr 1, 2026
- Platform
- linux/amd64
- Imports
- 15 packages
- Last checked
- 2 weeks ago –
Tools for package owners.