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_total
etcd_debugging_mvcc_put_total
etcd_debugging_mvcc_delete_total
etcd_debugging_mvcc_txn_total
etcd_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.CloseNotify
docker 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_total
etcd_grpc_requests_failed_total
etcd_grpc_active_streams
etcd_grpc_unary_requests_duration_seconds
TLSConfig.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.