6.8 KiB
6.8 KiB
Previous change logs can be found at CHANGELOG-3.5.
v3.6.0 (TBD)
See code changes.
Breaking Changes
etcd
will 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 migrate
command.etcd
doesn't support serving client requests on the peer listen endpoints (--listen-peer-urls). See pull/13565.etcdctl
will sleep(2s) in case of range delete without--range
flag. See pull/13747- Applications which depend on etcd v3.6 packages must be built with go version >= v1.18.
Deprecations
- Deprecated V2 discovery.
- Deprecated SetKeepAlive and SetKeepAlivePeriod in limitListenerConn.
- Removed etcdctl defrag --data-dir.
- Removed etcdctl snapshot status.
- Removed etcdctl snapshot restore.
- Removed etcdutl snapshot save.
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
storageVersion
into the response of commandetcdctl endpoint status
. - Add
--max-txn-ops
flag to make-mirror command. - Add
--consistency
flag to member list command. - Display field
hash_revision
foretcdctl endpoint hash
command.
etcdutl v3
- Add command to generate shell completion.
- Add
migrate
command for downgrading/upgrading etcd data dir files. - Add optional --bump-revision and --mark-compacted flag to etcdutl snapshot restore operation.
- Removed legacy etcdutl backup
Package clientv3
Package server
- Package
mvcc
was moved tostorage/mvcc
- Package
mvcc/backend
was moved tostorage/backend
- Package
mvcc/buckets
was moved tostorage/schema
- Package
wal
was moved tostorage/wal
- Package
datadir
was moved tostorage/datadir
Package raft
- Send empty
MsgApp
when entry in-flight limits are exceeded. See pull/14633. - Add MaxInflightBytes setting in
raft.Config
for better flow control of entries. - 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-format
flag to support log format. - Add
etcd --experimental-max-learners
flag to allow configuration of learner max membership. - Add
etcd --experimental-enable-lease-checkpoint-persist
flag to handle upgrade from v3.5.2 clusters with this feature enabled. - Add
etcdctl make-mirror --rev
flag to support incremental mirror. - Add v3 discovery to bootstrap a new etcd cluster.
- Add field
storage
into the response body of endpoint/version
. - Add
etcd --max-concurrent-streams
flag 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-logging
flag to logging all grpc requests and responses. - Add
etcd --experimental-compact-hash-check-enabled --experimental-compact-hash-check-time
flags to support enabling reliable corruption detection on compacted revisions. - Add Protection on maintenance request when auth is enabled.
- Graduated
--experimental-warning-unary-request-duration
to--warning-unary-request-duration
. Note the experimental flag is deprecated and will be decommissioned in v3.7. - Add field
hash_revision
intoHashKVResponse
. - Add
etcd --experimental-snapshot-catch-up-entries
flag to configure number of entries for a slow follower to catch up after compacting the raft storage entries and defaults to 5k. - Decreased
--snapshot-count
default value from 100,000 to 10,000 - Add
etcd --tls-min-version --tls-max-version
to enable support for TLS 1.3. - Add
etcd --experimental-stop-grpc-service-on-defrag
to enable client failover on defrag.
etcd grpc-proxy
- Add
etcd grpc-proxy start --endpoints-auto-sync-interval
flag to enable and configure interval of auto sync of endpoints with server. - Add
etcd grpc-proxy start --listen-cipher-suites
flag to support adding configurable cipher list.
tools/benchmark
Metrics, Monitoring
See List of metrics for all metrics per release.
Go
- Require Go 1.21+.
- Compile with Go 1.21+. Please refer to gc-guide to configure
GOGC
andGOMEMLIMIT
properly.
Other
- Use Distroless as base image to make the image less vulnerable and reduce image size.
- Upgrade grpc-gateway from v1 to v2.