See code changes and v3.3 upgrade guide for any breaking changes.
coreos/bbolt to replace boltdb/bolt.
clientv3 balancer failover under network faults/partitions.--initial-cluster flag.golang.org/x/net/context.google.golang.org/grpc v1.7.4 or v1.7.5+:
metadata.Incoming/OutgoingContext.grpclog.Logger, upgrade to grpclog.LoggerV2.grpc.ErrClientConnTimeout errors in clientv3.MaxRecvMsgSize and MaxSendMsgSize to limit message size, in etcd server.github.com/grpc-ecosystem/grpc-gateway v1.2.2 to v1.3.0.Snapshot API.github.com/ugorji/go/codec for v2 client.
client source code with latest ugorji/go/codec./health endpoint JSON output.etcdctl lease timetolive LEASE_ID on expired lease now prints lease LEASE_ID already expired.
lease LEASE_ID granted with TTL(0s), remaining(-1s).etcd)--experimental-enable-v2v3 flag to emulate v2 API with v3.--experimental-corrupt-check-time flag to raise corrupt alarm monitoring.--experimental-initial-corrupt-check flag to check database hash before serving client/peer traffic.--max-txn-ops flag to configure maximum number operations in transaction.--max-request-bytes flag to configure maximum client request size.
--client-crl-file, --peer-crl-file flags for Certificate revocation list.--peer-require-cn flag to support CN-based auth for inter-peer connection.--listen-metrics-urls flag for additional /metrics endpoints.
/metrics endpoints for a TLS-enabled cluster.--listen-metrics-urls=https://localhost:2378,http://localhost:9379 to serve /metrics in secure port 2378 and insecure port 9379.--auto-compaction-mode flag to support revision-based compaction.--auto-compaction-retention flag to accept string values with finer granularity.--grpc-keepalive-min-time, --grpc-keepalive-interval, --grpc-keepalive-timeout flags to configure server-side keepalive policies./health endpoint as unhealthy when alarm is raised./health.
{"health":false,"errors":["NOSPACE"]}.lease package.v3.4 will exit on this error.--advertise-client-urls=http://:2379.v3.4 will exit on this error.etcd/clientv3)MaxCallSendMsgSize and MaxCallRecvMsgSize fields to clientv3.Config.
MaxCallSendMsgSize default value is 2 MiB, if not configured.MaxCallRecvMsgSize default value is math.MaxInt32, if not configured.Compare_LEASE in clientv3.Compare.LeaseValue helper to Cmp LeaseID values in Txn.MoveLeader to Maintenance.HashKV to Maintenance.Leases to Lease.clientv3/ordering for enforce ordering in serialized requests.etcdctl)backup --with-v3 flag.etcdctl)--discovery-srv flag.--keepalive-time, --keepalive-timeout flags.lease list command.lease keep-alive --once flag.lease timetolive LEASE_ID on expired lease print lease LEASE_ID already expired.
lease LEASE_ID granted with TTL(0s), remaining(-1s).defrag --data-dir flag.move-leader command.endpoint hashkv command.endpoint --cluster flag, equivalent to v2 etcdctl cluster-health.endpoint health command terminate with non-zero exit code on unhealthy status.lock --ttl flag.watch [key] [range_end] -- [exec-command…], equivalent to v2 etcdctl exec-watch.clientv3.WithRequireLeader(context.Context) for watch command."del" instead of "delete" in txn interactive mode.ETCD_INITIAL_ADVERTISE_PEER_URLS in member add.etcd --listen-metrics-urls flag for additional /metrics endpoints.
etcd_server_version Prometheus metric.
etcd-version-monitor.etcd_debugging_mvcc_db_compaction_keys_total Prometheus metric.etcd_debugging_server_lease_expired_total Prometheus metric.
grpc-proxy)grpc-proxy start --experimental-leasing-prefix flag:
grpc-proxy start --experimental-serializable-ordering flag.
grpc-proxy start --metrics-addr flag for an additional /metrics endpoint.
--metrics-addr=http://[HOST]:9379 to serve /metrics in insecure port 9379./health endpoint in grpc-proxy.grpc-proxy start --debug flag./v3beta.
/v3alpha in v3.4.etcd/raft)Learner node does not vote or promote itself.SAN. For instance, if peer cert contains only DNS names (no IP addresses) in Subject Alternative Name (SAN) field, server first reverse-lookups the remote IP address to get a list of names mapping to that address (e.g. nslookup IPADDR). Then accepts the connection if those names have a matching name with peer cert's DNS names (either by exact or wildcard match). If none is matched, server forward-lookups each DNS entry in peer cert (e.g. look up example.default.svc when the entry is *.example.default.svc), and accepts connection only when the host's resolved addresses have the matching IP address with the peer's remote IP address.etcd --peer-require-cn flag.
golang.org/x/crypto/bcrypt (see golang/crypto@6c586e1)./v2/machines endpoint for python-etcd wrapper.etcd_debugging_mvcc_range_totaletcd_debugging_mvcc_put_totaletcd_debugging_mvcc_delete_totaletcd_debugging_mvcc_txn_totaletcd_debugging_mvcc_keys_total on restore.etcd_debugging_mvcc_db_total_size_in_bytes on restore.
prometheus.NewGaugeFunc.clientv3.etcdctl.clientv3.WatchResponse.Canceled on compacted watch request.grpc.Server panic on GracefulStop with TLS-enabled server.concurrency/stm Put with serializable snapshot.
grpc-proxy Snapshot API error handling.grpc-proxy KV API PrevKv flag handling.grpc-proxy KV API KeysOnly flag handling.coreos/go-systemd to v15 (see https://github.com/coreos/go-systemd/releases/tag/v15).v3.3.x is the last release cycle that supports ACI:
acbuild is not maintained anymore.*.aci files won't be available from etcd v3.4 release.gcr.io/etcd-development/etcd.
See code changes and v3.2 upgrade guide for any breaking changes.
Revision compactor in server-side.etcd/clientv3,etcdctl/v3)MaxCallSendMsgSize and MaxCallRecvMsgSize fields to clientv3.Config.
MaxCallSendMsgSize default value is 2 MiB, if not configured.MaxCallRecvMsgSize default value is math.MaxInt32, if not configured.See code changes and v3.2 upgrade guide for any breaking changes.
WriteStatus call to prevent TLS-enabled etcd server crash:
google.golang.org/grpc v1.7.3 to v1.7.4.--listen-metrics-urls flag in monitoring document (non-released in v3.2.x, planned for v3.3.x).See code changes and v3.2 upgrade guide for any breaking changes.
See code changes and v3.2 upgrade guide for any breaking changes.
boltdb/bolt with coreos/bbolt to address backend database size issue.clientv3 balancer to handle network partitions:
google.golang.org/grpc v1.2.1 to v1.7.3.github.com/grpc-ecosystem/grpc-gateway v1.2 to v1.3.ServerName with *.{ROOT_DOMAIN} to support non-wildcard subject alternative names in the certs (see issue #8445 for more contexts).
etcd --discovery-srv=etcd.local will only authenticate peers/clients when the provided certs have root domain etcd.local (not *.etcd.local) as an entry in Subject Alternative Name (SAN) field.See code changes and v3.2 upgrade guide for any breaking changes.
golang.org/x/crypto/bcrypt (see golang/crypto@6c586e1).ServerName with *.{ROOT_DOMAIN}, in order to support sub-domain wildcard matching (see issue #8445 for more contexts).
etcd --discovery-srv=etcd.local will only authenticate peers/clients when the provided certs have root domain *.etcd.local as an entry in Subject Alternative Name (SAN) field.See code changes and v3.2 upgrade guide for any breaking changes.
KeysOnly flag.See code changes and v3.2 upgrade guide for any breaking changes.
See code changes.
etcd_debugging_mvcc_keys_total inconsistency.--listen-peer-urls flag.--enable-pprof flag to etcd configuration file format.See code changes and v3.2 upgrade guide for any breaking changes.
endpoint health.--enable-v2=false.PrevKv flag.gcr.io/etcd-development/etcd.See code changes and v3.2 upgrade guide for any breaking changes.
See code changes and v3.2 upgrade guide for any breaking changes.
docker pull quay.io/coreos/etcd:v3.2 to fetch latest v3.2 versionsSee code changes and v3.1 upgrade guide for any breaking changes.
net/http.CloseNotifydocker pull quay.io/coreos/etcd:v3.1 to fetch latest v3.1 versions.See code changes and v3.2 upgrade guide for any breaking changes.
net.Listener rewrites IPv4 0.0.0.0 to IPv6 [::], breaking IPv6 disabled hosts.See code changes and v3.2 upgrade guide for any breaking changes.
See code changes and v3.2 upgrade guide for any breaking changes.
Etcd.Peers field is now []*peerListener.ErrOldCluster with server version checking.WithPrefix() into WithFromKey() for empty key.check perf command.--from-key flag to role grant-permission command.lock command takes an optional command to execute.--enable-v2 flag to configure v2 backend (enabled by default).--auth-token flag.etcd gateway
etcd_debugging_server_lease_expired_total metrics.DNSNames when SAN checking.nsswitch.conf to Docker container image.Go 1.8.3.LeaseTimeToLive returns TTL=-1 resp on lease not found.clientv3.NewFromConfigFile is moved to clientv3/yaml.NewConfig.google.golang.org/grpc to v1.2.1.github.com/grpc-ecosystem/grpc-gateway to v1.2.0.See code changes and v3.1 upgrade guide for any breaking changes.
See code changes and v3.1 upgrade guide for any breaking changes.
See code changes and v3.1 upgrade guide for any breaking changes.
See code changes and v3.1 upgrade guide for any breaking changes.
See code changes and v3.1 upgrade guide for any breaking changes.
/etc/nsswitch.conf file to alpine-based Docker image.See code changes and v3.1 upgrade guide for any breaking changes.
See code changes and v3.1 upgrade guide for any breaking changes.
localhost:2379,2380) AND if listen URL is 0.0.0.0.etcd gateway schema handling in DNS discovery.gateway, grpc-proxy.See code changes and v3.1 upgrade guide for any breaking changes.
etcd gateway with multiple endpoints.See code changes and v3.1 upgrade guide for any breaking changes.
Go 1.7.5.See code changes.
Go 1.7.5.See code changes and v3.1 upgrade guide for any breaking changes.
--strict-reconfig-check flag is set by default.--log-output flag.--metrics flag.SetEndpoints method; update endpoints at runtime.Sync method; auto-update endpoints at runtime.Lease TimeToLive API; fetch lease information.lease timetolive command.--print-value-only flag to get command.--dest-prefix flag to make-mirror command.get command responses are sorted in ascending order by default.recipes now conform to sessions defined in clientv3/concurrency./usr/local/bin/etcd*.etcd_grpc_requests_totaletcd_grpc_requests_failed_totaletcd_grpc_active_streamsetcd_grpc_unary_requests_duration_secondsTLSConfig.ServerName is ignored with user-provided certificates for backwards compatibility; to be deprecated.etcd --discovery-srv=example.com will only authenticate peers/clients when the provided certs have root domain example.com as an entry in Subject Alternative Name (SAN) field.See code changes and v3.0 upgrade guide for any breaking changes.
See code changes and v3.0 upgrade guide for any breaking changes.
See code changes and v3.0 upgrade guide for any breaking changes.
etcdctl migrate command now supports --no-ttl flag to discard keys on transform.See code changes and v3.0 upgrade guide for any breaking changes.
See code changes and v3.0 upgrade guide for any breaking changes.
See code changes and v3.0 upgrade guide for any breaking changes.
clientv3.WithPrevKV optionput,watch,del --prev-kv flagSee code changes and v3.0 upgrade guide for any breaking changes.
See code changes and v3.0 upgrade guide for any breaking changes.
See code changes and v3.0 upgrade guide for any breaking changes.
See code changes and v3.0 upgrade guide for any breaking changes.
See code changes and v3.0 upgrade guide for any breaking changes.
See code changes and v3.0 upgrade guide for any breaking changes.
See code changes and v3.0 upgrade guide for any breaking changes.
--client-cert-auth is enabled.etcdctl ls command now supports --output=json.See code changes and v3.0 upgrade guide for any breaking changes.
CMD, instead of ENTRYPOINT, to support etcdctl run.
127.0.0.1:2379.See code changes and v3.0 upgrade guide for any breaking changes.
ENTRYPOINT, instead of CMD, to run etcd without binary path specified.See code changes and v3.0 upgrade guide for any breaking changes.
See code changes and v3.0 upgrade guide for any breaking changes.