Previous change logs can be found at CHANGELOG-3.4.
The minimum recommended etcd versions to run in production are 3.1.11+, 3.2.26+, and 3.3.11+.
See code changes and v3.5 upgrade guide for any breaking changes.
- v3.5.0 (2020 TBD), see code changes.
- v3.5.0-rc.1 (2020 TBD), see code changes.
- v3.5.0-rc.0 (2020 TBD), see code changes.
Again, before running upgrades from any previous release, please make sure to read change logs below and v3.5 upgrade guide.
- gRPC gateway only supports
/v3endpoint.- Deprecated
/v3beta. curl -L http://localhost:2379/v3beta/kv/put -X POST -d '{"key": "Zm9v", "value": "YmFy"}'does work in v3.5. Usecurl -L http://localhost:2379/v3/kv/put -X POST -d '{"key": "Zm9v", "value": "YmFy"}'instead.
- Deprecated
etcd --experimental-enable-v2v3flag has been deprecated. Useetcd --enable-v2v3instead.- Change
etcd --experimental-enable-v2v3flag toetcd --enable-v2v3; v2 storage emulation is now stable.
- Change
etcd --debugflag has been deprecated. Useetcd --log-level=debuginstead.- Remove
embed.Config.Debug. etcd --log-outputflag has been deprecated. Useetcd --log-outputsinstead.etcd --logger=zap --log-outputs=stderris now the default.etcd --logger=capnslogflag value has been deprecated.etcd --logger=zap --log-outputs=defaultflag value is not supported..- Use
etcd --logger=zap --log-outputs=stderr. - Or, use
etcd --logger=zap --log-outputs=systemd/journalto send logs to the local systemd journal. - Previously, if etcd parent process ID (PPID) is 1 (e.g. run with systemd),
etcd --logger=capnslog --log-outputs=defaultredirects server logs to local systemd journal. And if write to journald fails, it writes toos.Stderras a fallback. - However, even with PPID 1, it can fail to dial systemd journal (e.g. run embedded etcd with Docker container). Then, every single log write will fail and fall back to
os.Stderr, which is inefficient. - To avoid this problem, systemd journal logging must be configured manually.
- Use
etcd --log-outputs=stderris now the default.etcd --log-package-levelsflag forcapnsloghas been deprecated. Now,etcd --logger=zap --log-outputs=stderris the default.[CLIENT-URL]/config/local/logendpoint has been deprecated, as isetcd --log-package-levelsflag.curl http://127.0.0.1:2379/config/local/log -XPUT -d '{"Level":"DEBUG"}'won't work.- Please use
etcd --logger=zap --log-outputs=stderrinstead.
- Deprecated
etcd_debugging_mvcc_db_total_size_in_bytesPrometheus metric. Useetcd_mvcc_db_total_size_in_bytesinstead. - Deprecated
etcd_debugging_mvcc_put_totalPrometheus metric. Useetcd_mvcc_put_totalinstead. - Deprecated
etcd_debugging_mvcc_delete_totalPrometheus metric. Useetcd_mvcc_delete_totalinstead. - Deprecated
etcd_debugging_mvcc_txn_totalPrometheus metric. Useetcd_mvcc_txn_totalinstead. - Deprecated
etcd_debugging_mvcc_range_totalPrometheus metric. Useetcd_mvcc_range_totalinstead. - Master branch
/versionoutputs3.5.0-pre, instead of3.4.0+git.
See List of metrics for all metrics per release.
Note that any etcd_debugging_* metrics are experimental and subject to change.
- Deprecated
etcd_debugging_mvcc_db_total_size_in_bytesPrometheus metric. Useetcd_mvcc_db_total_size_in_bytesinstead. - Deprecated
etcd_debugging_mvcc_put_totalPrometheus metric. Useetcd_mvcc_put_totalinstead. - Deprecated
etcd_debugging_mvcc_delete_totalPrometheus metric. Useetcd_mvcc_delete_totalinstead. - Deprecated
etcd_debugging_mvcc_txn_totalPrometheus metric. Useetcd_mvcc_txn_totalinstead. - Deprecated
etcd_debugging_mvcc_range_totalPrometheus metric. Useetcd_mvcc_range_totalinstead. - Add
etcd_debugging_mvcc_current_revisionPrometheus metric. - Add
etcd_debugging_mvcc_compact_revisionPrometheus metric.
etcd --enable-v2v3flag is now stable.etcd --experimental-enable-v2v3has been deprecated.- Added more v2v3 integration tests.
etcd --enable-v2=true --enable-v2v3=''by default, to enable v2 API server that is backed by v2 store.etcd --enable-v2=true --enable-v2v3=/aaato enable v2 API server that is backed by v3 storage.etcd --enable-v2=false --enable-v2v3=''to disable v2 API server.etcd --enable-v2=false --enable-v2v3=/aaato disable v2 API server. TODO: error?- Automatically create parent directory if it does not exist (fix issue#9609).
- v4.0 will configure
etcd --enable-v2=true --enable-v2v3=/aaato enable v2 API server that is backed by v3 storage.
- Support rollback/downgrade.
- Remove
embed.Config.Debug.- Use
embed.Config.LogLevelinstead.
- Use
- Add
embed.Config.ZapLoggerBuilderto allow creating a custom zap logger.
- Add TryLock method to
clientv3/concurrency/Mutex. A non-blocking method onMutexwhich does not wait to get lock on the Mutex, returns immediately if Mutex is locked by another session.
- Fix
etcdctl member addcommand to prevent potential timeout.
- gRPC gateway only supports
/v3endpoint.- Deprecated
/v3beta. curl -L http://localhost:2379/v3beta/kv/put -X POST -d '{"key": "Zm9v", "value": "YmFy"}'does work in v3.5. Usecurl -L http://localhost:2379/v3/kv/put -X POST -d '{"key": "Zm9v", "value": "YmFy"}'instead.
- Deprecated
- Upgrade
google.golang.org/grpcfromv1.23.0tov1.23.1.
- The etcd team has added, a well defined and openly discussed, project governance.