mirror of
https://github.com/etcd-io/etcd.git
synced 2026-02-05 15:46:51 +01:00
15 KiB
15 KiB
Previous change logs can be found at CHANGELOG-3.5.
v3.6.8 (TBC)
etcd server
- Postpone removal of the --max-snapshots flag from v3.7 to v3.8
- Revoke the deprecation of the
--snapshot-countflag
Package clientv3
Dependencies
- Bump golang.org/x/crypto to 0.45.0 to address CVE-2025-47914, and CVE-2025-58181.
- Compile binaries using go 1.24.12.
v3.6.7 (2025-12-17)
etcd server
Dependencies
- Compile binaries using go 1.24.11.
v3.6.6 (2025-11-11)
etcd server
- Reject watch request with -1 revision to prevent invalid resync behavior on uncompacted etcd
- Change the TLS handshake 'EOF' errors to DEBUG not to spam logs
- Fix endpoint status not retuning the correct storage quota
- Fix
--force-new-cluster can't clean up learners after creating snapshot - Fix duplicate metrics collector registration that caused warning messages
Dependencies
- Compile binaries using go 1.24.10.
v3.6.5 (2025-09-19)
etcd server
- Remove the flag
--experimental-snapshot-catch-up-entriesfrometcd --helpoutput - Fix etcd repeatedly log the error "cannot detect storage schema version: missing confstate information"
- Fix etcd may return success for leaseRenew request even when the lease is revoked
- Fix potential data corruption when applySnapshot and defragment happen concurrently
Dependencies
- Compile binaries using go 1.24.7.
- Bump bbolt to v1.4.3.
v3.6.4 (2025-07-25)
etcd server
- Fix etcdserver bootstrap failure when replaying learner promotion operation due to not exist in v3store
v3.6.3 (2025-07-22)
etcd server
- Fix v2store check (IsMetaStoreOnly) returns wrong result even there is no any auth data
- Improve help message for --quota-backend-bytes
v3.6.2 (2025-07-09)
etcd server
Dependencies
- Bump bbolt to v1.4.2
- Compile binaries using go 1.23.11.
v3.6.1 (2025-06-06)
etcd server
- Replaced the deprecated/removed
UnaryServerInterceptorandStreamServerInterceptorin otelgrpc withNewServerHandler - Add protection on
PromoteMemberandUpdateRaftAttributesto prevent panicking - Fix the issue that
--force-new-clustercan't remove all other members in a corner case - Fix mvcc: avoid double decrement of watcher gauge on close/cancel race
- Add validation to ensure there is no empty v3discovery endpoint
etcdctl
Dependencies
- Compile binaries using go 1.23.10.
v3.6.0 (2025-05-15)
There isn't any production code change since v3.6.0-rc.5.
v3.6.0-rc.5 (2025-05-08)
etcd server
Package clientv3
- Replace
resolver.State.Addresseswithresolver.State.Endpoint.Addresses. - Deprecated the Metadata field in the Endpoint struct from the client/v3/naming/endpoints package.
Dependencies
- Compile binaries using go 1.23.9.
v3.6.0-rc.4 (2025-04-15)
etcd server
Dependencies
- Compile binaries using go 1.23.8
v3.6.0-rc.3 (2025-03-27)
etcd server
- Auto sync members in v3store for the issues which have already been affected by #19557.
- Move
client/internal/v2intoserver/internel/clientv2. - Replace ExperimentalMaxLearners with a Feature Gate.
etcd grpc-proxy
Dependencies
- Bump github.com/golang-jwt/jwt/v5 from 5.2.1 to 5.2.2 to address CVE-2025-30204.
- Bump bump golang.org/x/net from v0.37.0 to v0.38.0 to address CVE-2025-22872.
v3.6.0-rc.2 (2025-03-05)
etcd server
Dependencies
- Compile binaries using go 1.23.7.
- Bump golang.org/x/net to v0.36.0 to address CVE-2025-22870.
- Bump github.com/grpc-ecosystem/grpc-gateway/v2 to v2.26.3 to fix the issue of etcdserver crashing on receiving REST watch stream requests.
v3.6.0-rc.1 (2025-02-25)
etcdctl v3
etcd server
Dependencies
v3.6.0-rc.0 (2025-02-13)
See code changes.
Breaking Changes
etcdwill no longer start on data dir created by newer versions (for example etcd v3.6 will not run on v3.7+ data dir). To downgrade data dir please check outetcdutl migratecommand.etcddoesn't support serving client requests on the peer listen endpoints (--listen-peer-urls). See pull/13565.etcdctlwill sleep(2s) in case of range delete without--rangeflag. See pull/13747- Applications which depend on etcd v3.6 packages must be built with go version >= v1.18.
Flags Removed
-
The following flags have been removed:
--enable-v2--experimental-enable-v2v3--proxy--proxy-failure-wait--proxy-refresh-interval--proxy-dial-timeout--proxy-write-timeout--proxy-read-timeout
Deprecations
- Deprecated V2 discovery.
- Deprecated SetKeepAlive and SetKeepAlivePeriod in limitListenerConn.
- Removed etcdctl defrag --data-dir.
- Removed etcdctl snapshot status.
- Removed etcdctl snapshot restore.
- Removed NewZapCoreLoggerBuilder in server/embed
etcdctl v3
- Add command to generate shell completion.
- When print endpoint status, show db size in use
- Always print the raft_term in decimal when displaying member list in json.
- Add one more field
storageVersioninto the response of commandetcdctl endpoint status. - Add
--max-txn-opsflag to make-mirror command. - Add
--consistencyflag to member list command. - Display field
hash_revisionforetcdctl endpoint hashcommand. - Add
--max-request-bytesand--max-recv-bytesglobal flags.
etcdutl v3
- Add command to generate shell completion.
- Add
migratecommand for downgrading/upgrading etcd data dir files. - Add optional --bump-revision and --mark-compacted flag to etcdutl snapshot restore operation.
- Add hashkv command to print hash of keys and values up to given revision
- Removed legacy etcdutl backup
- Count the number of keys from users perspective
Package clientv3
Package server
- Package
mvccwas moved tostorage/mvcc - Package
mvcc/backendwas moved tostorage/backend - Package
mvcc/bucketswas moved tostorage/schema - Package
walwas moved tostorage/wal - Package
datadirwas moved tostorage/datadir
Package raft
- Decouple raft from etcd. Migrated raft to a separate repository, and renamed raft module to
go.etcd.io/raft/v3.
etcd server
- Add
etcd --log-formatflag to support log format. - Add
etcd --experimental-max-learnersflag to allow configuration of learner max membership. - Add
etcd --experimental-enable-lease-checkpoint-persistflag to handle upgrade from v3.5.2 clusters with this feature enabled. - Add
etcdctl make-mirror --revflag to support incremental mirror. - Add v3 discovery to bootstrap a new etcd cluster.
- Add field
storageinto the response body of endpoint/version. - Add
etcd --max-concurrent-streamsflag to configure the max concurrent streams each client can open at a time, and defaults to math.MaxUint32. - Add
etcd grpc-proxy --experimental-enable-grpc-loggingflag to logging all grpc requests and responses. - Add
etcd --experimental-compact-hash-check-enabled --experimental-compact-hash-check-timeflags to support enabling reliable corruption detection on compacted revisions. - Add Protection on maintenance request when auth is enabled.
- Graduated
--experimental-warning-unary-request-durationto--warning-unary-request-duration. Note the experimental flag is deprecated and will be decommissioned in v3.7. - Add field
hash_revisionintoHashKVResponse. - Add
etcd --experimental-snapshot-catch-up-entriesflag to configure number of entries for a slow follower to catch up after compacting the raft storage entries and defaults to 5k. - Decreased
--snapshot-countdefault value from 100,000 to 10,000 - Add
etcd --tls-min-version --tls-max-versionto enable support for TLS 1.3. - Add quota to endpoint status response
- Add feature gate
SetMemberLocalAddrto enable using the first specified and non-loopback local address from initial-advertise-peer-urls as the local address when communicating with a peer - Add Support multiple values for allowed client and peer TLS identities
- Add
embed.Config.GRPCAdditionalServerOptionsto support updating the default internal gRPC configuration for embedded use cases.
etcd grpc-proxy
- Add
etcd grpc-proxy start --endpoints-auto-sync-intervalflag to enable and configure interval of auto sync of endpoints with server. - Add
etcd grpc-proxy start --listen-cipher-suitesflag to support adding configurable cipher list. - Add
tls min/max version to grpc proxyto support setting TLS min and max version.
tools/benchmark
Metrics, Monitoring
See List of metrics for all metrics per release.
- Add
etcd_disk_defrag_inflight. - Add
etcd_debugging_server_alarms. - Add
etcd_server_range_duration_seconds.
Go
- Require Go 1.23+.
- Compile with Go 1.23+. Please refer to gc-guide to configure
GOGCandGOMEMLIMITproperly.
Other
- Use Distroless as base image to make the image less vulnerable and reduce image size.
- Upgrade grpc-gateway from v1 to v2.
- Switch from grpc-ecosystem/go-grpc-prometheus to grpc-ecosystem/go-grpc-middleware/providers/prometheus.