|
|
@@ -3,6 +3,21 @@
|
|
|
Previous change logs can be found at [CHANGELOG-3.1](https://github.com/coreos/etcd/blob/master/CHANGELOG-3.1.md).
|
|
|
|
|
|
|
|
|
+## [v3.2.20](https://github.com/coreos/etcd/releases/tag/v3.2.20) (TBD 2018-05)
|
|
|
+
|
|
|
+See [code changes](https://github.com/coreos/etcd/compare/v3.2.19...v3.2.20) and [v3.2 upgrade guide](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_2.md) for any breaking changes. **Again, before running upgrades from any previous release, please make sure to read change logs below and [v3.2 upgrade guide](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_2.md).**
|
|
|
+
|
|
|
+### etcd server
|
|
|
+
|
|
|
+- Purge old [`*.snap.db` snapshot files](https://github.com/coreos/etcd/pull/7967).
|
|
|
+ - Previously, etcd did not respect `--max-snapshots` flag to purge old `*.snap.db` files.
|
|
|
+ - Now, etcd purges old `*.snap.db` files to keep maximum `--max-snapshots` number of files on disk.
|
|
|
+
|
|
|
+### Go
|
|
|
+
|
|
|
+- Compile with [*Go 1.8.7*](https://golang.org/doc/devel/release.html#go1.8).
|
|
|
+
|
|
|
+
|
|
|
## [v3.2.19](https://github.com/coreos/etcd/releases/tag/v3.2.19) (2018-04-24)
|
|
|
|
|
|
See [code changes](https://github.com/coreos/etcd/compare/v3.2.18...v3.2.19) and [v3.2 upgrade guide](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_2.md) for any breaking changes. **Again, before running upgrades from any previous release, please make sure to read change logs below and [v3.2 upgrade guide](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_2.md).**
|
|
|
@@ -20,7 +35,7 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.2.18...v3.2.19) and
|
|
|
- However, a certificate whose SAN field does [not include any domain names but only IP addresses](https://github.com/coreos/etcd/issues/9541) would request `*tls.ClientHelloInfo` with an empty `ServerName` field, thus failing to trigger the TLS reload on initial TLS handshake; this becomes a problem when expired certificates need to be replaced online.
|
|
|
- Now, `(*tls.Config).Certificates` is created empty on initial TLS client handshake, first to trigger `(*tls.Config).GetCertificate`, and then to populate rest of the certificates on every new TLS connection, even when client SNI is empty (e.g. cert only includes IPs).
|
|
|
|
|
|
-### `etcd`
|
|
|
+### etcd server
|
|
|
|
|
|
- Add [`--initial-election-tick-advance`](https://github.com/coreos/etcd/pull/9591) flag to configure initial election tick fast-forward.
|
|
|
- By default, `--initial-election-tick-advance=true`, then local member fast-forwards election ticks to speed up "initial" leader election trigger.
|
|
|
@@ -60,11 +75,7 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.2.17...v3.2.18) and
|
|
|
|
|
|
See [code changes](https://github.com/coreos/etcd/compare/v3.2.16...v3.2.17) and [v3.2 upgrade guide](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_2.md) for any breaking changes. **Again, before running upgrades from any previous release, please make sure to read change logs below and [v3.2 upgrade guide](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_2.md).**
|
|
|
|
|
|
-### Fixed: v2
|
|
|
-
|
|
|
-- Fix [v2 proxy leaky HTTP requests](https://github.com/coreos/etcd/pull/9336).
|
|
|
-
|
|
|
-### Fixed: v3
|
|
|
+### etcd server
|
|
|
|
|
|
- Fix [server panic on invalid Election Proclaim/Resign HTTP(S) requests](https://github.com/coreos/etcd/pull/9379).
|
|
|
- Previously, wrong-formatted HTTP requests to Election API could trigger panic in etcd server.
|
|
|
@@ -76,6 +87,10 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.2.16...v3.2.17) and
|
|
|
- Again, etcd `Lease` is meant for short-periodic keepalives or sessions, in the range of seconds or minutes. Not for hours or days!
|
|
|
- Enable etcd server [`raft.Config.CheckQuorum` when starting with `ForceNewCluster`](https://github.com/coreos/etcd/pull/9347).
|
|
|
|
|
|
+### Proxy v2
|
|
|
+
|
|
|
+- Fix [v2 proxy leaky HTTP requests](https://github.com/coreos/etcd/pull/9336).
|
|
|
+
|
|
|
### Go
|
|
|
|
|
|
- Compile with [*Go 1.8.7*](https://golang.org/doc/devel/release.html#go1.8).
|
|
|
@@ -85,7 +100,7 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.2.16...v3.2.17) and
|
|
|
|
|
|
See [code changes](https://github.com/coreos/etcd/compare/v3.2.15...v3.2.16) and [v3.2 upgrade guide](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_2.md) for any breaking changes. **Again, before running upgrades from any previous release, please make sure to read change logs below and [v3.2 upgrade guide](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_2.md).**
|
|
|
|
|
|
-### Fixed: v3
|
|
|
+### etcd server
|
|
|
|
|
|
- Fix [`mvcc` "unsynced" watcher restore operation](https://github.com/coreos/etcd/pull/9297).
|
|
|
- "unsynced" watcher is watcher that needs to be in sync with events that have happened.
|
|
|
@@ -102,7 +117,7 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.2.15...v3.2.16) and
|
|
|
|
|
|
See [code changes](https://github.com/coreos/etcd/compare/v3.2.14...v3.2.15) and [v3.2 upgrade guide](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_2.md) for any breaking changes. **Again, before running upgrades from any previous release, please make sure to read change logs below and [v3.2 upgrade guide](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_2.md).**
|
|
|
|
|
|
-### Fixed: v3
|
|
|
+### etcd server
|
|
|
|
|
|
- Prevent [server panic from member update/add](https://github.com/coreos/etcd/pull/9174) with [wrong scheme URLs](https://github.com/coreos/etcd/issues/9173).
|
|
|
- Log [user context cancel errors on stream APIs in debug level with TLS](https://github.com/coreos/etcd/pull/9178).
|
|
|
@@ -120,7 +135,7 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.2.13...v3.2.14) and
|
|
|
|
|
|
- Log [user context cancel errors on stream APIs in debug level](https://github.com/coreos/etcd/pull/9105).
|
|
|
|
|
|
-### Fixed: v3
|
|
|
+### etcd server
|
|
|
|
|
|
- Fix [`mvcc/backend.defragdb` nil-pointer dereference on create bucket failure](https://github.com/coreos/etcd/pull/9119).
|
|
|
|
|
|
@@ -133,7 +148,7 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.2.13...v3.2.14) and
|
|
|
|
|
|
See [code changes](https://github.com/coreos/etcd/compare/v3.2.12...v3.2.13) and [v3.2 upgrade guide](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_2.md) for any breaking changes. **Again, before running upgrades from any previous release, please make sure to read change logs below and [v3.2 upgrade guide](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_2.md).**
|
|
|
|
|
|
-### Fixed: v3
|
|
|
+### etcd server
|
|
|
|
|
|
- Remove [verbose error messages on stream cancel and gRPC info-level logs](https://github.com/coreos/etcd/pull/9080) in server-side.
|
|
|
- Fix [gRPC server panic on `GracefulStop` TLS-enabled server](https://github.com/coreos/etcd/pull/8987).
|
|
|
@@ -152,11 +167,11 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.2.11...v3.2.12) and
|
|
|
- Upgrade [`google.golang.org/grpc`](https://github.com/grpc/grpc-go/releases/tag) from [**`v1.7.4`**](https://github.com/grpc/grpc-go/releases/tag/v1.7.4) to [**`v1.7.5`**](https://github.com/grpc/grpc-go/releases/tag/v1.7.5).
|
|
|
- Upgrade [`github.com/grpc-ecosystem/grpc-gateway`](https://github.com/grpc-ecosystem/grpc-gateway/releases) from [**`v1.3`**](https://github.com/grpc-ecosystem/grpc-gateway/releases/tag/v1.3) to [**`v1.3.0`**](https://github.com/grpc-ecosystem/grpc-gateway/releases/tag/v1.3.0).
|
|
|
|
|
|
-### Fixed: v3
|
|
|
+### etcd server
|
|
|
|
|
|
- Fix [error message of `Revision` compactor](https://github.com/coreos/etcd/pull/8999) in server-side.
|
|
|
|
|
|
-### `clientv3`
|
|
|
+### client v3
|
|
|
|
|
|
- Add [`MaxCallSendMsgSize` and `MaxCallRecvMsgSize`](https://github.com/coreos/etcd/pull/9047) fields to [`clientv3.Config`](https://godoc.org/github.com/coreos/etcd/clientv3#Config).
|
|
|
- Fix [exceeded response size limit error in client-side](https://github.com/coreos/etcd/issues/9043).
|
|
|
@@ -184,7 +199,7 @@ See [security doc](https://github.com/coreos/etcd/blob/master/Documentation/op-g
|
|
|
|
|
|
- Log [more details on TLS handshake failures](https://github.com/coreos/etcd/pull/8952/files).
|
|
|
|
|
|
-### Fixed: `clientv3`
|
|
|
+### client v3
|
|
|
|
|
|
- Fix racey grpc-go's server handler transport `WriteStatus` call to prevent [TLS-enabled etcd server crash](https://github.com/coreos/etcd/issues/8904).
|
|
|
- Add [gRPC RPC failure warnings](https://github.com/coreos/etcd/pull/8939) to help debug such issues in the future.
|
|
|
@@ -214,11 +229,11 @@ See [security doc](https://github.com/coreos/etcd/blob/master/Documentation/op-g
|
|
|
- Revert [discovery SRV auth `ServerName` with `*.{ROOT_DOMAIN}`](https://github.com/coreos/etcd/pull/8651) to support non-wildcard subject alternative names in the certs (see [issue #8445](https://github.com/coreos/etcd/issues/8445) for more contexts).
|
|
|
- For instance, `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.
|
|
|
|
|
|
-### Fixed: v3
|
|
|
+### etcd server
|
|
|
|
|
|
- Replace backend key-value database `boltdb/bolt` with [`coreos/bbolt`](https://github.com/coreos/bbolt/releases) to address [backend database size issue](https://github.com/coreos/etcd/issues/8009).
|
|
|
|
|
|
-### Fixed: `clientv3`
|
|
|
+### client v3
|
|
|
|
|
|
- Rewrite balancer to handle [network partitions](https://github.com/coreos/etcd/issues/8711).
|
|
|
|
|
|
@@ -248,11 +263,11 @@ See [security doc](https://github.com/coreos/etcd/blob/master/Documentation/op-g
|
|
|
|
|
|
See [code changes](https://github.com/coreos/etcd/compare/v3.2.7...v3.2.8) and [v3.2 upgrade guide](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_2.md) for any breaking changes. **Again, before running upgrades from any previous release, please make sure to read change logs below and [v3.2 upgrade guide](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_2.md).**
|
|
|
|
|
|
-### Fixed: v2 `client`
|
|
|
+### client v2
|
|
|
|
|
|
- Fix v2 client failover to next endpoint on mutable operation.
|
|
|
|
|
|
-### Fixed: `grpc-proxy`
|
|
|
+### gRPC Proxy
|
|
|
|
|
|
- Handle [`KeysOnly` flag](https://github.com/coreos/etcd/pull/8552).
|
|
|
|
|
|
@@ -269,7 +284,7 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.2.6...v3.2.7) and [
|
|
|
|
|
|
- Fix [server-side auth so concurrent auth operations do not return old revision error](https://github.com/coreos/etcd/pull/8306).
|
|
|
|
|
|
-### Fixed: `clientv3`
|
|
|
+### client v3
|
|
|
|
|
|
- Fix [`concurrency/stm` Put with serializable snapshot](https://github.com/coreos/etcd/pull/8439).
|
|
|
- Use store revision from first fetch to resolve write conflicts instead of modified revision.
|
|
|
@@ -283,7 +298,7 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.2.6...v3.2.7) and [
|
|
|
|
|
|
See [code changes](https://github.com/coreos/etcd/compare/v3.2.5...v3.2.6) and [v3.2 upgrade guide](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_2.md) for any breaking changes. **Again, before running upgrades from any previous release, please make sure to read change logs below and [v3.2 upgrade guide](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_2.md).**
|
|
|
|
|
|
-### Fixed: v3
|
|
|
+### etcd server
|
|
|
|
|
|
- Fix watch restore from snapshot.
|
|
|
- Fix multiple URLs for `--listen-peer-urls` flag.
|
|
|
@@ -302,7 +317,7 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.2.5...v3.2.6) and [
|
|
|
|
|
|
See [code changes](https://github.com/coreos/etcd/compare/v3.2.4...v3.2.5) and [v3.2 upgrade guide](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_2.md) for any breaking changes. **Again, before running upgrades from any previous release, please make sure to read change logs below and [v3.2 upgrade guide](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_2.md).**
|
|
|
|
|
|
-### v3 `etcdctl`
|
|
|
+### etcdctl v3
|
|
|
|
|
|
- Return non-zero exit code on unhealthy `endpoint health`.
|
|
|
|
|
|
@@ -316,7 +331,7 @@ See [security doc](https://github.com/coreos/etcd/blob/master/Documentation/op-g
|
|
|
|
|
|
- Fix unreachable `/metrics` endpoint when `--enable-v2=false`.
|
|
|
|
|
|
-### Fixed: `grpc-proxy`
|
|
|
+### gRPC Proxy
|
|
|
|
|
|
- Handle [`PrevKv` flag](https://github.com/coreos/etcd/pull/8366).
|
|
|
|
|
|
@@ -333,9 +348,12 @@ See [security doc](https://github.com/coreos/etcd/blob/master/Documentation/op-g
|
|
|
|
|
|
See [code changes](https://github.com/coreos/etcd/compare/v3.2.3...v3.2.4) and [v3.2 upgrade guide](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_2.md) for any breaking changes. **Again, before running upgrades from any previous release, please make sure to read change logs below and [v3.2 upgrade guide](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_2.md).**
|
|
|
|
|
|
-### Fixed
|
|
|
+### etcd server
|
|
|
|
|
|
- Do not block on active client stream when stopping server
|
|
|
+
|
|
|
+### gRPC proxy
|
|
|
+
|
|
|
- Fix gRPC proxy Snapshot RPC error handling
|
|
|
|
|
|
### Go
|
|
|
@@ -347,11 +365,11 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.2.3...v3.2.4) and [
|
|
|
|
|
|
See [code changes](https://github.com/coreos/etcd/compare/v3.2.2...v3.2.3) and [v3.2 upgrade guide](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_2.md) for any breaking changes. **Again, before running upgrades from any previous release, please make sure to read change logs below and [v3.2 upgrade guide](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_2.md).**
|
|
|
|
|
|
-### Fixed
|
|
|
+### client v3
|
|
|
|
|
|
- Let clients establish unlimited streams
|
|
|
|
|
|
-### Added
|
|
|
+### Other
|
|
|
|
|
|
- Tag docker images with minor versions
|
|
|
- e.g. `docker pull quay.io/coreos/etcd:v3.2` to fetch latest v3.2 versions
|
|
|
@@ -376,12 +394,12 @@ See [security doc](https://github.com/coreos/etcd/blob/master/Documentation/op-g
|
|
|
|
|
|
- [Server accepts connections if IP matches, without checking DNS entries](https://github.com/coreos/etcd/pull/8223). For instance, if peer cert contains IP addresses and DNS names in Subject Alternative Name (SAN) field, and the remote IP address matches one of those IP addresses, server just accepts connection without further checking the DNS names. For example, peer B's CSR (with `cfssl`) SAN field is `["invalid.domain", "10.138.0.2"]` when peer B's remote IP address is `10.138.0.2` and `invalid.domain` is a invalid host. When peer B tries to join the cluster, peer A successfully authenticates B, since Subject Alternative Name (SAN) field has a valid matching IP address. See [issue#8206](https://github.com/coreos/etcd/issues/8206) for more detail.
|
|
|
|
|
|
-### Fixed: v3
|
|
|
+### etcd server
|
|
|
|
|
|
- Accept connection with matched IP SAN but no DNS match.
|
|
|
- Don't check DNS entries in certs if there's a matching IP.
|
|
|
|
|
|
-### Fixed: gRPC gateway
|
|
|
+### gRPC gateway
|
|
|
|
|
|
- Use user-provided listen address to connect to gRPC gateway.
|
|
|
- `net.Listener` rewrites IPv4 0.0.0.0 to IPv6 [::], breaking IPv6 disabled hosts.
|
|
|
@@ -396,11 +414,11 @@ See [security doc](https://github.com/coreos/etcd/blob/master/Documentation/op-g
|
|
|
|
|
|
See [code changes](https://github.com/coreos/etcd/compare/v3.2.0...v3.2.1) and [v3.2 upgrade guide](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_2.md) for any breaking changes. **Again, before running upgrades from any previous release, please make sure to read change logs below and [v3.2 upgrade guide](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_2.md).**
|
|
|
|
|
|
-### Fixed: v3
|
|
|
+### etcd server
|
|
|
|
|
|
- Fix backend database in-memory index corruption issue on restore (only 3.2.0 is affected).
|
|
|
|
|
|
-### Fixed: gRPC gateway
|
|
|
+### gRPC gateway
|
|
|
|
|
|
- Fix Txn marshaling.
|
|
|
|
|
|
@@ -451,17 +469,14 @@ See [security doc](https://github.com/coreos/etcd/blob/master/Documentation/op-g
|
|
|
- [Server resolves TLS `DNSNames` when checking `SAN`](https://github.com/coreos/etcd/pull/7767). For instance, if peer cert contains only DNS names (no IP addresses) in Subject Alternative Name (SAN) field, server authenticates a peer only when forward-lookups (`dig b.com`) on those DNS names have matching IP with the remote IP address. For example, peer B's CSR (with `cfssl`) SAN field is `["b.com"]` when peer B's remote IP address is `10.138.0.2`. When peer B tries to join the cluster, peer A looks up the incoming host `b.com` to get the list of IP addresses (e.g. `dig b.com`). And rejects B if the list does not contain the IP `10.138.0.2`, with the error `tls: 10.138.0.2 does not match any of DNSNames ["b.com"]`.
|
|
|
- Auth support JWT token.
|
|
|
|
|
|
-### Added
|
|
|
+### etcd server
|
|
|
|
|
|
- RPCs
|
|
|
- Add Election, Lock service.
|
|
|
-- Native client etcdserver/api/v3client
|
|
|
+- Native client `etcdserver/api/v3client`
|
|
|
- client "embedded" in the server.
|
|
|
- Logging, monitoring
|
|
|
- Server warns large snapshot operations.
|
|
|
-
|
|
|
-### `etcd`
|
|
|
-
|
|
|
- Add `--enable-v2` flag to enable v2 API server.
|
|
|
- `--enable-v2=true` by default.
|
|
|
- Add `--auth-token` flag.
|
|
|
@@ -474,31 +489,28 @@ See [security doc](https://github.com/coreos/etcd/blob/master/Documentation/op-g
|
|
|
- For instance, when hourly writes are 100 and `--auto-compaction-retention=10`, v3.1 compacts revision 1000, 2000, and 3000 for every 10-hour, while v3.2 compacts revision 1000, 1100, and 1200 for every 1-hour.
|
|
|
- If compaction succeeds or requested revision has already been compacted, it resets period timer and removes used compacted revision from historical revision records (e.g. start next revision collect and compaction from previously collected revisions).
|
|
|
- If compaction fails, it retries in 5 minutes.
|
|
|
+- Allow snapshot over 512MB.
|
|
|
|
|
|
-### `clientv3`
|
|
|
+### client v3
|
|
|
|
|
|
- STM prefetching.
|
|
|
- Add namespace feature.
|
|
|
- Add `ErrOldCluster` with server version checking.
|
|
|
- Translate `WithPrefix()` into `WithFromKey()` for empty key.
|
|
|
|
|
|
-### v3 `etcdctl`
|
|
|
+### etcdctl v3
|
|
|
|
|
|
- Add `check perf` command.
|
|
|
- Add `--from-key` flag to role grant-permission command.
|
|
|
- `lock` command takes an optional command to execute.
|
|
|
|
|
|
-### Fixed: v2
|
|
|
-
|
|
|
-- Allow snapshot over 512MB.
|
|
|
-
|
|
|
-### `grpc-proxy`
|
|
|
+### gRPC Proxy
|
|
|
|
|
|
- Proxy endpoint discovery.
|
|
|
- Namespaces.
|
|
|
- Coalesce lease requests.
|
|
|
|
|
|
-### `gateway`
|
|
|
+### etcd gateway
|
|
|
|
|
|
- Support [DNS SRV priority](https://github.com/coreos/etcd/pull/7882) for [smart proxy routing](https://github.com/coreos/etcd/issues/4378).
|
|
|
|