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
/v3
endpoint.- 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-v2v3
flag has been deprecated. Useetcd --enable-v2v3
instead.- Change
etcd --experimental-enable-v2v3
flag toetcd --enable-v2v3
; v2 storage emulation is now stable.
- Change
etcd --experimental-backend-bbolt-freelist-type
flag has been deprecated. Useetcd --backend-bbolt-freelist-type
instead. The default type is hashmap and it is stable now.etcd --debug
flag has been deprecated. Useetcd --log-level=debug
instead.- Remove
embed.Config.Debug
. etcd --log-output
flag has been deprecated. Useetcd --log-outputs
instead.etcd --logger=zap --log-outputs=stderr
is now the default.etcd --logger=capnslog
flag value has been deprecated.etcd --logger=zap --log-outputs=default
flag value is not supported..- Use
etcd --logger=zap --log-outputs=stderr
. - Or, use
etcd --logger=zap --log-outputs=systemd/journal
to 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=default
redirects server logs to local systemd journal. And if write to journald fails, it writes toos.Stderr
as 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=stderr
is now the default.etcd --log-package-levels
flag forcapnslog
has been deprecated. Now,etcd --logger=zap --log-outputs=stderr
is the default.[CLIENT-URL]/config/local/log
endpoint has been deprecated, as isetcd --log-package-levels
flag.curl http://127.0.0.1:2379/config/local/log -XPUT -d '{"Level":"DEBUG"}'
won't work.- Please use
etcd --logger=zap --log-outputs=stderr
instead.
- Deprecated
etcd_debugging_mvcc_db_total_size_in_bytes
Prometheus metric. Useetcd_mvcc_db_total_size_in_bytes
instead. - Deprecated
etcd_debugging_mvcc_put_total
Prometheus metric. Useetcd_mvcc_put_total
instead. - Deprecated
etcd_debugging_mvcc_delete_total
Prometheus metric. Useetcd_mvcc_delete_total
instead. - Deprecated
etcd_debugging_mvcc_txn_total
Prometheus metric. Useetcd_mvcc_txn_total
instead. - Deprecated
etcd_debugging_mvcc_range_total
Prometheus metric. Useetcd_mvcc_range_total
instead. - Master branch
/version
outputs3.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_bytes
Prometheus metric. Useetcd_mvcc_db_total_size_in_bytes
instead. - Deprecated
etcd_debugging_mvcc_put_total
Prometheus metric. Useetcd_mvcc_put_total
instead. - Deprecated
etcd_debugging_mvcc_delete_total
Prometheus metric. Useetcd_mvcc_delete_total
instead. - Deprecated
etcd_debugging_mvcc_txn_total
Prometheus metric. Useetcd_mvcc_txn_total
instead. - Deprecated
etcd_debugging_mvcc_range_total
Prometheus metric. Useetcd_mvcc_range_total
instead. - Add
etcd_debugging_mvcc_current_revision
Prometheus metric. - Add
etcd_debugging_mvcc_compact_revision
Prometheus metric. - Change
etcd_cluster_version
Prometheus metrics to include only major and minor version. - Add
etcd_debugging_mvcc_total_put_size_in_bytes
Prometheus metric.
etcd --enable-v2v3
flag is now stable.etcd --experimental-enable-v2v3
has 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=/aaa
to 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=/aaa
to 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=/aaa
to enable v2 API server that is backed by v3 storage.
- [
etcd --backend-bbolt-freelist-type
] flag is now stable.etcd --experimental-backend-bbolt-freelist-type
has been deprecated.
- Support rollback/downgrade.
- Remove
embed.Config.Debug
.- Use
embed.Config.LogLevel
instead.
- Use
- Add
embed.Config.ZapLoggerBuilder
to allow creating a custom zap logger.
- Add TryLock method to
clientv3/concurrency/Mutex
. A non-blocking method onMutex
which does not wait to get lock on the Mutex, returns immediately if Mutex is locked by another session.
- Fix
etcdctl member add
command to prevent potential timeout.
- gRPC gateway only supports
/v3
endpoint.- 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/grpc
fromv1.23.0
tov1.23.1
.
- The etcd team has added, a well defined and openly discussed, project governance.