Previous change logs can be found at CHANGELOG-3.x.
The minimum recommended etcd versions to run in production are 3.2.28+, 3.3.18+, and 3.4.2+.
See code changes and v4.0 upgrade guide for any breaking changes.
Again, before running upgrades from any previous release, please make sure to read change logs below and v4.0 upgrade guide.
- Secure etcd by default?
- Change
/health
endpoint output.- Previously,
{"health":"true"}
. - Now,
{"health":true}
. - Breaks Kubernetes
kubectl get componentstatuses
command.
- Previously,
- Deprecate
etcd --proxy*
flags; no more v2 proxy. - Deprecate v2 storage backend; no more v2 store.
- v2 API is still supported via v2 emulation.
- Deprecate
etcdctl backup
command. clientv3.Client.KeepAlive(ctx context.Context, id LeaseID) (<-chan *LeaseKeepAliveResponse, error)
is nowclientv4.Client.KeepAlive(ctx context.Context, id LeaseID) <-chan *LeaseKeepAliveResponse
.- Similar to
Watch
,KeepAlive
does not return errors. - If there's an unknown server error, kill all open channels and create a new stream on the next
KeepAlive
call.
- Similar to
- Rename
github.com/coreos/client
togithub.com/coreos/clientv2
. etcd --experimental-initial-corrupt-check
has been deprecated.- Use
etcd --initial-corrupt-check
instead.
- Use
etcd --experimental-corrupt-check-time
has been deprecated.- Use
etcd --corrupt-check-time
instead.
- Use
- Enable TLS 1.13, deprecate TLS cipher suites.
etcd --initial-corrupt-check
flag is now stable (etcd --experimental-initial-corrupt-check
has been deprecated).etcd --initial-corrupt-check=true
by default, to check cluster database hashes before serving client/peer traffic.
etcd --corrupt-check-time
flag is now stable (etcd --experimental-corrupt-check-time
has been deprecated).etcd --corrupt-check-time=12h
by default, to check cluster database hashes for every 12-hour.
- Enable TLS 1.13, deprecate TLS cipher suites.
- Require Go 2.