## [v3.2.8](https://github.com/coreos/etcd/releases/tag/v3.2.8) (2017-09-29)

See [code changes](https://github.com/coreos/etcd/compare/v3.2.7...v3.2.8).

### Fixed

- Fix v2 client failover to next endpoint on mutable operation
- Fix grpc-proxy to respect `KeysOnly` flag


## [v3.2.7](https://github.com/coreos/etcd/releases/tag/v3.2.7) (2017-09-01)

See [code changes](https://github.com/coreos/etcd/compare/v3.2.6...v3.2.7).

### Fixed

- Fix server-side auth so concurrent auth operations do not return old revision error
- Fix concurrency/stm Put with serializable snapshot
  - Use store revision from first fetch to resolve write conflicts instead of modified revision


## [v3.2.6](https://github.com/coreos/etcd/releases/tag/v3.2.6) (2017-08-21)

See [code changes](https://github.com/coreos/etcd/compare/v3.2.5...v3.2.6).

### Fixed

- Fix watch restore from snapshot
- Fix `etcd_debugging_mvcc_keys_total` inconsistency
- Fix multiple URLs for `--listen-peer-urls` flag
- Add `enable-pprof` to etcd configuration file format


## [v3.2.5](https://github.com/coreos/etcd/releases/tag/v3.2.5) (2017-08-04)

See [code changes](https://github.com/coreos/etcd/compare/v3.2.4...v3.2.5).

### Changed

- Use reverse lookup to match wildcard DNS SAN
- Return non-zero exit code on unhealthy `endpoint health`

### Fixed

- Fix unreachable /metrics endpoint when `--enable-v2=false`
- Fix grpc-proxy to respect `PrevKv` flag

### Added

- Add container registry `gcr.io/etcd-development/etcd`


## [v3.2.4](https://github.com/coreos/etcd/releases/tag/v3.2.4) (2017-07-19)

See [code changes](https://github.com/coreos/etcd/compare/v3.2.3...v3.2.4).

### Fixed

- Do not block on active client stream when stopping server
- Fix gRPC proxy Snapshot RPC error handling


## [v3.2.3](https://github.com/coreos/etcd/releases/tag/v3.2.3) (2017-07-14)

See [code changes](https://github.com/coreos/etcd/compare/v3.2.2...v3.2.3).

### Fixed

- Let clients establish unlimited streams

### Added

- Tag docker images with minor versions
  e.g. `docker pull quay.io/coreos/etcd:v3.2` to fetch latest v3.2 versions


## [v3.1.10](https://github.com/coreos/etcd/releases/tag/v3.1.10) (2017-07-14)

See [code changes](https://github.com/coreos/etcd/compare/v3.1.9...v3.1.10).

### Changed

- Compile with Go 1.8.3 to fix panic on `net/http.CloseNotify`

### Added

- Tag docker images with minor versions
  e.g. `docker pull quay.io/coreos/etcd:v3.1` to fetch latest v3.1 versions


## [v3.2.2](https://github.com/coreos/etcd/releases/tag/v3.2.2) (2017-07-07)

See [code changes](https://github.com/coreos/etcd/compare/v3.2.1...v3.2.2).

### Improved

- rate-limit lease revoke on expiration
- extend leases on promote to avoid queueing effect on lease expiration

### Fixed

- Use user-provided listen address to connect to gRPC gateway
  - `net.Listener` rewrites IPv4 0.0.0.0 to IPv6 [::], breaking IPv6 disabled hosts
  - Only v3.2.0, v3.2.1 are affected
- Accept connection with matched IP SAN but no DNS match
  - Don't check DNS entries in certs if there's a matching IP
- Fix 'tools/benchmark' watch command


## [v3.2.1](https://github.com/coreos/etcd/releases/tag/v3.2.1) (2017-06-23)

See [code changes](https://github.com/coreos/etcd/compare/v3.2.0...v3.2.1).

### Fixed

- Fix backend database in-memory index corruption issue on restore (only 3.2.0 is affected)
- Fix gRPC gateway Txn marshaling issue
- Fix backend database size debugging metrics


## [v3.2.0](https://github.com/coreos/etcd/releases/tag/v3.2.0) (2017-06-09)

See [code changes](https://github.com/coreos/etcd/compare/v3.1.10...v3.2.0).
See [upgrade 3.2](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_2.md).

### Improved

- Improve backend read concurrency

### Added

- Embedded etcd
  - `Etcd.Peers` field is now `[]*peerListener`
- RPCs
  - Add Election, Lock service
- Native client etcdserver/api/v3client
  - client "embedded" in the server
- gRPC proxy
  - Proxy endpoint discovery
  - Namespaces
  - Coalesce lease requests
- v3 client
  - STM prefetching
  - Add namespace feature
  - Add `ErrOldCluster` with server version checking
  - Translate WithPrefix() into WithFromKey() for empty key
- v3 etcdctl
  - Add `check perf` command
  - Add `--from-key` flag to role grant-permission command
  - `lock` command takes an optional command to execute
- etcd flags
  - Add `--enable-v2` flag to configure v2 backend (enabled by default)
  - Add `--auth-token` flag
- `etcd gateway`
  - Support DNS SRV priority
- Auth
  - Support Watch API
  - JWT tokens
- Logging, monitoring
  - Server warns large snapshot operations
  - Add `etcd_debugging_server_lease_expired_total` metrics
- Security
  - Deny incoming peer certs with wrong IP SAN
  - Resolve TLS DNSNames when SAN checking
  - Reload TLS certificates on every client connection
- Release
  - Annotate acbuild with supports-systemd-notify
  - Add `nsswitch.conf` to Docker container image
  - Add ppc64le, arm64(experimental) builds
  - Compile with Go 1.8.3

### Changed

- v3 client
  - `LeaseTimeToLive` returns TTL=-1 resp on lease not found
  - `clientv3.NewFromConfigFile` is moved to `clientv3/yaml.NewConfig`
  - concurrency package's elections updated to match RPC interfaces
  - let client dial endpoints not in the balancer
- Dependencies
  - Update gRPC to v1.2.1
  - Update grpc-gateway to v1.2.0

### Fixed

- Allow v2 snapshot over 512MB


## [v3.1.9](https://github.com/coreos/etcd/releases/tag/v3.1.9) (2017-06-09)

See [code changes](https://github.com/coreos/etcd/compare/v3.1.8...v3.1.9).

### Fixed

- Allow v2 snapshot over 512MB


## [v3.1.8](https://github.com/coreos/etcd/releases/tag/v3.1.8) (2017-05-19)

See [code changes](https://github.com/coreos/etcd/compare/v3.1.7...v3.1.8).


## [v3.1.7](https://github.com/coreos/etcd/releases/tag/v3.1.7) (2017-04-28)

See [code changes](https://github.com/coreos/etcd/compare/v3.1.6...v3.1.7).


## [v3.1.6](https://github.com/coreos/etcd/releases/tag/v3.1.6) (2017-04-19)

See [code changes](https://github.com/coreos/etcd/compare/v3.1.5...v3.1.6).

### Changed

- Remove auth check in Status API

### Fixed

- Fill in Auth API response header


## [v3.1.5](https://github.com/coreos/etcd/releases/tag/v3.1.5) (2017-03-27)

See [code changes](https://github.com/coreos/etcd/compare/v3.1.4...v3.1.5).

### Added

- Add '/etc/nsswitch.conf' file to alpine-based Docker image

### Fixed

- Fix raft memory leak issue
- Fix Windows file path issues


## [v3.1.4](https://github.com/coreos/etcd/releases/tag/v3.1.4) (2017-03-22)

See [code changes](https://github.com/coreos/etcd/compare/v3.1.3...v3.1.4).


## [v3.1.3](https://github.com/coreos/etcd/releases/tag/v3.1.3) (2017-03-10)

See [code changes](https://github.com/coreos/etcd/compare/v3.1.2...v3.1.3).

### Changed

- Use machine default host when advertise URLs are default values(localhost:2379,2380) AND if listen URL is 0.0.0.0

### Fixed

- Fix 'etcd gateway' schema handling in DNS discovery
- Fix sd_notify behaviors in gateway, grpc-proxy


## [v3.1.2](https://github.com/coreos/etcd/releases/tag/v3.1.2) (2017-02-24)

See [code changes](https://github.com/coreos/etcd/compare/v3.1.1...v3.1.2).

### Changed

- Use IPv4 default host, by default (when IPv4 and IPv6 are available)

### Fixed

- Fix 'etcd gateway' with multiple endpoints


## [v3.1.1](https://github.com/coreos/etcd/releases/tag/v3.1.1) (2017-02-17)

See [code changes](https://github.com/coreos/etcd/compare/v3.1.0...v3.1.1).

### Changed

- Compile with Go 1.7.5


## [v2.3.8](https://github.com/coreos/etcd/releases/tag/v2.3.8) (2017-02-17)

See [code changes](https://github.com/coreos/etcd/compare/v2.3.7...v2.3.8).

### Changed

- Compile with Go 1.7.5


## [v3.1.0](https://github.com/coreos/etcd/releases/tag/v3.1.0) (2017-01-20)

See [code changes](https://github.com/coreos/etcd/compare/v3.0.16...v3.1.0).
See [upgrade 3.1](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_1.md).

### Improved

- Faster linearizable reads (implements Raft read-index)
- v3 authentication API is now stable

### Added

- Automatic leadership transfer when leader steps down
- etcd flags
  - `--strict-reconfig-check` flag is set by default
  - Add `--log-output` flag
  - Add `--metrics` flag
- v3 client
  - Add SetEndpoints method; update endpoints at runtime
  - Add Sync method; auto-update endpoints at runtime
  - Add Lease TimeToLive API; fetch lease information
  - replace Config.Logger field with global logger
  - Get API responses are sorted in ascending order by default
- v3 etcdctl
  - Add lease timetolive command
  - Add `--print-value-only` flag to get command
  - Add `--dest-prefix` flag to make-mirror command
  - command get responses are sorted in ascending order by default
- `recipes` now conform to sessions defined in clientv3/concurrency
- ACI has symlinks to `/usr/local/bin/etcd*`
- experimental gRPC proxy feature

### Changed

- etcd uses default route IP if advertise URL is not given
- Cluster rejects removing members if quorum will be lost
- SRV records (e.g., infra1.example.com) must match the discovery domain (i.e., example.com) if no custom certificate authority is given
  - TLSConfig ServerName is ignored with user-provided certificates
    for backwards compatibility; to be deprecated in 3.2
- Discovery now has upper limit for waiting on retries
- Warn on binding listeners through domain names; to be deprecated in 3.2


## [v3.0.16](https://github.com/coreos/etcd/releases/tag/v3.0.16) (2016-11-13)

See [code changes](https://github.com/coreos/etcd/compare/v3.0.15...v3.0.16).


## [v3.0.15](https://github.com/coreos/etcd/releases/tag/v3.0.15) (2016-11-11)

See [code changes](https://github.com/coreos/etcd/compare/v3.0.14...v3.0.15).

### Fixed

- Fix cancel watch request with wrong range end


## [v3.0.14](https://github.com/coreos/etcd/releases/tag/v3.0.14) (2016-11-04)

See [code changes](https://github.com/coreos/etcd/compare/v3.0.13...v3.0.14).

### Added

- v3 etcdctl migrate command now supports `--no-ttl` flag to discard keys on transform


## [v3.0.13](https://github.com/coreos/etcd/releases/tag/v3.0.13) (2016-10-24)

See [code changes](https://github.com/coreos/etcd/compare/v3.0.12...v3.0.13).


## [v3.0.12](https://github.com/coreos/etcd/releases/tag/v3.0.12) (2016-10-07)

See [code changes](https://github.com/coreos/etcd/compare/v3.0.11...v3.0.12).


## [v3.0.11](https://github.com/coreos/etcd/releases/tag/v3.0.11) (2016-10-07)

See [code changes](https://github.com/coreos/etcd/compare/v3.0.10...v3.0.11).

### Added

- Server returns previous key-value (optional)
  - `clientv3.WithPrevKV` option
  - v3 etcdctl put,watch,del `--prev-kv` flag


## [v3.0.10](https://github.com/coreos/etcd/releases/tag/v3.0.10) (2016-09-23)

See [code changes](https://github.com/coreos/etcd/compare/v3.0.9...v3.0.10).


## [v3.0.9](https://github.com/coreos/etcd/releases/tag/v3.0.9) (2016-09-15)

See [code changes](https://github.com/coreos/etcd/compare/v3.0.8...v3.0.9).

### Added

- Warn on domain names on listen URLs (v3.2 will reject domain names)


## [v3.0.8](https://github.com/coreos/etcd/releases/tag/v3.0.8) (2016-09-09)

See [code changes](https://github.com/coreos/etcd/compare/v3.0.7...v3.0.8).

### Changed

- Allow only IP addresses in listen URLs (domain names are rejected)


## [v3.0.7](https://github.com/coreos/etcd/releases/tag/v3.0.7) (2016-08-31)

See [code changes](https://github.com/coreos/etcd/compare/v3.0.6...v3.0.7).

### Changed

- SRV records only allow A records (RFC 2052)


## [v3.0.6](https://github.com/coreos/etcd/releases/tag/v3.0.6) (2016-08-19)

See [code changes](https://github.com/coreos/etcd/compare/v3.0.5...v3.0.6).


## [v3.0.5](https://github.com/coreos/etcd/releases/tag/v3.0.5) (2016-08-19)

See [code changes](https://github.com/coreos/etcd/compare/v3.0.4...v3.0.5).

### Changed

- SRV records (e.g., infra1.example.com) must match the discovery domain (i.e., example.com) if no custom certificate authority is given


## [v3.0.4](https://github.com/coreos/etcd/releases/tag/v3.0.4) (2016-07-27)

See [code changes](https://github.com/coreos/etcd/compare/v3.0.3...v3.0.4).

### Changed

- v2 auth can now use common name from TLS certificate when `--client-cert-auth` is enabled

### Added

- v2 etcdctl ls command now supports `--output=json`
- Add /var/lib/etcd directory to etcd official Docker image


## [v3.0.3](https://github.com/coreos/etcd/releases/tag/v3.0.3) (2016-07-15)

See [code changes](https://github.com/coreos/etcd/compare/v3.0.2...v3.0.3).

### Changed

- Revert Dockerfile to use CMD, instead of ENTRYPOINT, to support etcdctl run
  - Docker commands for v3.0.2 won't work without specifying executable binary paths
- v3 etcdctl default endpoints are now 127.0.0.1:2379


## [v3.0.2](https://github.com/coreos/etcd/releases/tag/v3.0.2) (2016-07-08)

See [code changes](https://github.com/coreos/etcd/compare/v3.0.1...v3.0.2).

### Changed

- Dockerfile uses ENTRYPOINT, instead of CMD, to run etcd without binary path specified


## [v3.0.1](https://github.com/coreos/etcd/releases/tag/v3.0.1) (2016-07-01)

See [code changes](https://github.com/coreos/etcd/compare/v3.0.0...v3.0.1).


## [v3.0.0](https://github.com/coreos/etcd/releases/tag/v3.0.0) (2016-06-30)

See [code changes](https://github.com/coreos/etcd/compare/v2.3.8...v3.0.0).
See [upgrade 3.0](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_0.md).
