Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[release-3.6] Fix v3.6 deprecation notices #19402

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion api/v3rpc/rpctypes/error.go
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ var (
ErrInvalidAuthMgmt = Error(ErrGRPCInvalidAuthMgmt)
ErrClusterIDMismatch = Error(ErrGRPCClusterIDMismatch)
//revive:disable:var-naming
// Deprecated: Please use ErrGRPCClusterIDMismatch.
// Deprecated: Please use ErrClusterIDMismatch.
ErrClusterIdMismatch = ErrClusterIDMismatch
//revive:enable:var-naming

Expand Down
76 changes: 44 additions & 32 deletions server/embed/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -102,14 +102,14 @@ const (
DefaultLogRotationConfig = `{"maxsize": 100, "maxage": 0, "maxbackups": 0, "localtime": false, "compress": false}`

// ExperimentalDistributedTracingAddress is the default collector address.
// Deprecated in v3.6 and will be decommissioned in v3.7. Use DefaultDistributedTracingAddress instead.
// TODO: delete in v3.7
// Deprecated: Use DefaultDistributedTracingAddress instead. Will be decommissioned in v3.7.
ExperimentalDistributedTracingAddress = "localhost:4317"
// DefaultDistributedTracingAddress is the default collector address.
DefaultDistributedTracingAddress = "localhost:4317"
// ExperimentalDistributedTracingServiceName is the default etcd service name.
// Deprecated in v3.6 and will be decommissioned in v3.7. Use DefaultDistributedTracingServiceName instead.
// TODO: delete in v3.7
// Deprecated: Use DefaultDistributedTracingServiceName instead. Will be decommissioned in v3.7.
ExperimentalDistributedTracingServiceName = "etcd"
// DefaultDistributedTracingServiceName is the default etcd service name.
DefaultDistributedTracingServiceName = "etcd"
Expand Down Expand Up @@ -196,19 +196,20 @@ type Config struct {
//revive:disable-next-line:var-naming
WalDir string `json:"wal-dir"`

// SnapshotCount is deprecated in v3.6 and will be decommissioned in v3.7.
// SnapshotCount is the number of committed transactions that trigger a snapshot to disk.
// TODO: remove it in 3.7.
// Deprecated: Will be decommissioned in v3.7.
SnapshotCount uint64 `json:"snapshot-count"`

// ExperimentalSnapshotCatchUpEntries 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.
// Deprecated in v3.6 and will be removed in v3.7.
// TODO: remove in v3.7.
// Note we made a mistake in https://github.com/etcd-io/etcd/pull/15033. The json tag
// `*-catch-up-*` isn't consistent with the command line flag `*-catchup-*`.
// Deprecated: Use SnapshotCatchUpEntries instead. Will be removed in v3.7.
ExperimentalSnapshotCatchUpEntries uint64 `json:"experimental-snapshot-catch-up-entries"`

// SnapshotCatchUpEntries is the number of entires for a slow follower
Expand All @@ -218,8 +219,9 @@ type Config struct {
// follower to catch up.
SnapshotCatchUpEntries uint64 `json:"snapshot-catchup-entries"`

// MaxSnapFiles is deprecated in v3.6 and will be decommissioned in v3.7.
// MaxSnapFiles is the maximum number of snapshot files.
// TODO: remove it in 3.7.
// Deprecated: Will be removed in v3.7.
MaxSnapFiles uint `json:"max-snapshots"`
//revive:disable-next-line:var-naming
MaxWalFiles uint `json:"max-wals"`
Expand Down Expand Up @@ -407,65 +409,74 @@ type Config struct {

ExperimentalInitialCorruptCheck bool `json:"experimental-initial-corrupt-check"`
// ExperimentalCorruptCheckTime is the duration of time between cluster corruption check passes.
// Deprecated in v3.6 and will be decommissioned in v3.7.
// TODO: delete in v3.7
// Deprecated: Use CorruptCheckTime instead. Will be decommissioned in v3.7.
ExperimentalCorruptCheckTime time.Duration `json:"experimental-corrupt-check-time"`
CorruptCheckTime time.Duration `json:"corrupt-check-time"`
// CorruptCheckTime is the duration of time between cluster corruption check passes.
CorruptCheckTime time.Duration `json:"corrupt-check-time"`
// ExperimentalCompactHashCheckEnabled enables leader to periodically check followers compaction hashes.
// Deprecated in v3.6 and will be decommissioned in v3.7.
// TODO: delete in v3.7
// Deprecated: Use CompactHashCheck Feature Gate. Will be decommissioned in v3.7.
ExperimentalCompactHashCheckEnabled bool `json:"experimental-compact-hash-check-enabled"`
// ExperimentalCompactHashCheckTime is the duration of time between leader checks followers compaction hashes.
// Deprecated in v3.6 and will be decommissioned in v3.7.
// TODO: delete in v3.7
// Deprecated: Use CompactHashCheckTime instead. Will be decommissioned in v3.7.
ExperimentalCompactHashCheckTime time.Duration `json:"experimental-compact-hash-check-time"`
CompactHashCheckTime time.Duration `json:"compact-hash-check-time"`
// CompactHashCheckTime is the duration of time between leader checks followers compaction hashes.
CompactHashCheckTime time.Duration `json:"compact-hash-check-time"`

// ExperimentalEnableLeaseCheckpoint enables leader to send regular checkpoints to other members to prevent reset of remaining TTL on leader change.
ExperimentalEnableLeaseCheckpoint bool `json:"experimental-enable-lease-checkpoint"`
// ExperimentalEnableLeaseCheckpointPersist 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.
// Requires experimental-enable-lease-checkpoint to be enabled.
// Deprecated in v3.6.
// TODO: Delete in v3.7
// Deprecated: To be decommissioned in v3.7.
ExperimentalEnableLeaseCheckpointPersist bool `json:"experimental-enable-lease-checkpoint-persist"`
// ExperimentalCompactionBatchLimit Sets the maximum revisions deleted in each compaction batch.
// Deprecated in v3.6 and will be decommissioned in v3.7.
// TODO: Delete in v3.7
// Deprecated: Use CompactionBatchLimit instead. Will be decommissioned in v3.7.
ExperimentalCompactionBatchLimit int `json:"experimental-compaction-batch-limit"`
CompactionBatchLimit int `json:"compaction-batch-limit"`
// CompactionBatchLimit Sets the maximum revisions deleted in each compaction batch.
CompactionBatchLimit int `json:"compaction-batch-limit"`
// ExperimentalCompactionSleepInterval is the sleep interval between every etcd compaction loop.
// Deprecated in v3.6 and will be decommissioned in v3.7.
// TODO: Delete in v3.7
// Deprecated: Use CompactionSleepInterval instead. Will be decommissioned in v3.7.
ExperimentalCompactionSleepInterval time.Duration `json:"experimental-compaction-sleep-interval"`
// CompactionSleepInterval is the sleep interval between every etcd compaction loop.
CompactionSleepInterval time.Duration `json:"compaction-sleep-interval"`
// ExperimentalWatchProgressNotifyInterval is the time duration of periodic watch progress notifications.
// Deprecated in v3.6 and will be decommissioned in v3.7.
// TODO: Delete in v3.7
// Deprecated: Use WatchProgressNotifyInterval instead. Will be decommissioned in v3.7.
ExperimentalWatchProgressNotifyInterval time.Duration `json:"experimental-watch-progress-notify-interval"`
WatchProgressNotifyInterval time.Duration `json:"watch-progress-notify-interval"`
// WatchProgressNotifyInterval is the time duration of periodic watch progress notifications.
WatchProgressNotifyInterval time.Duration `json:"watch-progress-notify-interval"`
// ExperimentalWarningApplyDuration is the time duration after which a warning is generated if applying request
// takes more time than this value.
// Deprecated in v3.6 and will be decommissioned in v3.7.
// TODO: Delete in v3.7
// Deprecated: Use WarningApplyDuration instead. Will be decommissioned in v3.7.
ExperimentalWarningApplyDuration time.Duration `json:"experimental-warning-apply-duration"`
WarningApplyDuration time.Duration `json:"warning-apply-duration"`
// WarningApplyDuration is the time duration after which a warning is generated if applying request
WarningApplyDuration time.Duration `json:"warning-apply-duration"`
// 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.
// Deprecated in v3.6 and will be decommissioned in v3.7.
// TODO: Delete in v3.7
// Deprecated: Use BootstrapDefragThresholdMegabytes instead. Will be decommissioned in v3.7.
ExperimentalBootstrapDefragThresholdMegabytes uint `json:"experimental-bootstrap-defrag-threshold-megabytes"`
BootstrapDefragThresholdMegabytes uint `json:"bootstrap-defrag-threshold-megabytes"`
// BootstrapDefragThresholdMegabytes is the minimum number of megabytes needed to be freed for etcd server to
BootstrapDefragThresholdMegabytes uint `json:"bootstrap-defrag-threshold-megabytes"`
// WarningUnaryRequestDuration is the time duration after which a warning is generated if applying
// unary request takes more time than this value.
WarningUnaryRequestDuration time.Duration `json:"warning-unary-request-duration"`
// ExperimentalWarningUnaryRequestDuration is deprecated, please use WarningUnaryRequestDuration instead.
// ExperimentalWarningUnaryRequestDuration is the time duration after which a warning is generated if applying
// TODO: Delete in v3.7
// Deprecated: Use WarningUnaryRequestDuration. Will be decommissioned in v3.7.
ExperimentalWarningUnaryRequestDuration time.Duration `json:"experimental-warning-unary-request-duration"`
// ExperimentalMaxLearners sets a limit to the number of learner members that can exist in the cluster membership.
// Deprecated in v3.6 and will be decommissioned in v3.7.
// TODO: Delete in v3.7
// Deprecated: Use MaxLearners instead. Will be decommissioned in v3.7.
ExperimentalMaxLearners int `json:"experimental-max-learners"`
MaxLearners int `json:"max-learners"`
// MaxLearners sets a limit to the number of learner members that can exist in the cluster membership.
MaxLearners int `json:"max-learners"`

// ForceNewCluster starts a new cluster even if previously started; unsafe.
ForceNewCluster bool `json:"force-new-cluster"`
Expand All @@ -476,23 +487,23 @@ type Config struct {
ListenMetricsUrlsJSON string `json:"listen-metrics-urls"`

// ExperimentalEnableDistributedTracing indicates if experimental tracing using OpenTelemetry is enabled.
// Deprecated in v3.6 and will be decommissioned in v3.7. Use EnableDistributedTracing instead.
// TODO: delete in v3.7
// Deprecated: Use EnableDistributedTracing instead. Will be decommissioned in v3.7.
ExperimentalEnableDistributedTracing bool `json:"experimental-enable-distributed-tracing"`
// EnableDistributedTracing indicates if tracing using OpenTelemetry is enabled.
EnableDistributedTracing bool `json:"enable-distributed-tracing"`
// ExperimentalDistributedTracingAddress is the address of the OpenTelemetry Collector.
// Can only be set if ExperimentalEnableDistributedTracing is true.
// Deprecated in v3.6 and will be decommissioned in v3.7. Use DistributedTracingAddress instead.
// TODO: delete in v3.7
// Deprecated: Use DistributedTracingAddress instead. Will be decommissioned in v3.7.
ExperimentalDistributedTracingAddress string `json:"experimental-distributed-tracing-address"`
// DistributedTracingAddress is the address of the OpenTelemetry Collector.
// Can only be set if EnableDistributedTracing is true.
DistributedTracingAddress string `json:"distributed-tracing-address"`
// ExperimentalDistributedTracingServiceName is the name of the service.
// Can only be used if ExperimentalEnableDistributedTracing is true.
// Deprecated in v3.6 and will be decommissioned in v3.7. Use DistributedTracingServiceName instead.
// TODO: delete in v3.7
// Deprecated: Use DistributedTracingServiceName instead. Will be decommissioned in v3.7.
ExperimentalDistributedTracingServiceName string `json:"experimental-distributed-tracing-service-name"`
// DistributedTracingServiceName is the name of the service.
// Can only be used if EnableDistributedTracing is true.
Expand All @@ -501,8 +512,8 @@ type Config struct {
// This ID must be unique, as helps to distinguish instances of the same service
// that exist at the same time.
// Can only be used if ExperimentalEnableDistributedTracing is true.
// Deprecated in v3.6 and will be decommissioned in v3.7. Use DistributedTracingServiceInstanceID instead.
// TODO: delete in v3.7
// Deprecated: Use DistributedTracingServiceInstanceID instead. Will be decommissioned in v3.7.
ExperimentalDistributedTracingServiceInstanceID string `json:"experimental-distributed-tracing-instance-id"`
// DistributedTracingServiceInstanceID is the ID key of the service.
// This ID must be unique, as helps to distinguish instances of the same service
Expand All @@ -511,17 +522,17 @@ type Config struct {
DistributedTracingServiceInstanceID string `json:"distributed-tracing-instance-id"`
// ExperimentalDistributedTracingSamplingRatePerMillion is the number of samples to collect per million spans.
// Defaults to 0.
// Deprecated in v3.6 and will be decommissioned in v3.7. Use DistributedTracingSamplingRatePerMillion instead.
// TODO: delete in v3.7
// Deprecated: Use DistributedTracingSamplingRatePerMillion instead. Will be decommissioned in v3.7.
ExperimentalDistributedTracingSamplingRatePerMillion int `json:"experimental-distributed-tracing-sampling-rate"`
// DistributedTracingSamplingRatePerMillion is the number of samples to collect per million spans.
// Defaults to 0.
DistributedTracingSamplingRatePerMillion int `json:"distributed-tracing-sampling-rate"`

// ExperimentalPeerSkipClientSanVerification determines whether to skip verification of SAN field
// in client certificate for peer connections.
// Deprecated in v3.6 and will be decommissioned in v3.7.
// TODO: Delete in v3.7
// Deprecated: Use `peer-skip-client-san-verification` instead. Will be decommissioned in v3.7.
ExperimentalPeerSkipClientSanVerification bool `json:"experimental-peer-skip-client-san-verification"`

// Logger is logger options: currently only supports "zap".
Expand Down Expand Up @@ -559,8 +570,8 @@ type Config struct {
UnsafeNoFsync bool `json:"unsafe-no-fsync"`

// ExperimentalDowngradeCheckTime is the duration between two downgrade status checks (in seconds).
// Deprecated in v3.6 and scheduled to be removed in v3.7.
// TODO: Delete `ExperimentalDowngradeCheckTime` in v3.7.
// Deprecated: Use DowngradeCheckTime instead. Will be decommissioned in v3.7.
ExperimentalDowngradeCheckTime time.Duration `json:"experimental-downgrade-check-time"`
// DowngradeCheckTime is the duration between two downgrade status checks (in seconds).
DowngradeCheckTime time.Duration `json:"downgrade-check-time"`
Expand All @@ -574,8 +585,8 @@ type Config struct {
MemoryMlock bool `json:"memory-mlock"`

// ExperimentalMemoryMlock enables mlocking of etcd owned memory pages.
// Deprecated in v3.6 and will be decommissioned in v3.7. Use MemoryMlock instead.
// TODO: Delete in v3.7
// Deprecated: Use MemoryMlock instad. To be decommissioned in v3.7.
ExperimentalMemoryMlock bool `json:"experimental-memory-mlock"`

// ExperimentalTxnModeWriteWithSharedBuffer enables write transaction to use a shared buffer in its readonly check operations.
Expand All @@ -585,8 +596,9 @@ type Config struct {
ExperimentalStopGRPCServiceOnDefrag bool `json:"experimental-stop-grpc-service-on-defrag"`

// V2Deprecation describes phase of API & Storage V2 support.
// Deprecated and scheduled for removal in v3.8.
// Do not set this field for embedded use cases, as it has no effect. However, setting it will not cause any harm.
// TODO: Delete in v3.8
// Deprecated: The default value is enforced, to be removed in v3.8.
V2Deprecation config.V2DeprecationEnum `json:"v2-deprecation"`

// ServerFeatureGate is a server level feature gate
Expand Down
4 changes: 2 additions & 2 deletions server/features/etcd_features.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,11 +67,11 @@ const (
LeaseCheckpoint featuregate.Feature = "LeaseCheckpoint"
// 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.
// Requires EnableLeaseCheckpoint featuragate to be enabled.
// Deprecated in v3.6.
// TODO: Delete in v3.7
// owner: @serathius
// alpha: v3.6
// main PR: https://github.com/etcd-io/etcd/pull/13508
// Deprecated: Enabled by default in v3.6, to be removed in v3.7.
LeaseCheckpointPersist featuregate.Feature = "LeaseCheckpointPersist"
)

Expand All @@ -87,7 +87,7 @@ var (
}
// ExperimentalFlagToFeatureMap is the map from the cmd line flags of experimental features
// to their corresponding feature gates.
// Deprecated: only add existing experimental features here. DO NOT use for new features.
// Deprecated: Only add existing experimental features here. DO NOT use for new features.
ExperimentalFlagToFeatureMap = map[string]featuregate.Feature{
"experimental-stop-grpc-service-on-defrag": StopGRPCServiceOnDefrag,
"experimental-initial-corrupt-check": InitialCorruptCheck,
Expand Down