From 3f3425ab8b85aa1b0f69132e4c43939efecae683 Mon Sep 17 00:00:00 2001 From: Gyuho Lee Date: Fri, 2 Mar 2018 10:24:15 -0800 Subject: [PATCH] CHANGELOG: clean up, add auth/flag changes Signed-off-by: Gyuho Lee --- CHANGELOG-3.2.md | 8 ++++---- CHANGELOG-3.3.md | 30 +++++++++++++++--------------- CHANGELOG-3.4.md | 42 +++++++++++++++++++++++++----------------- 3 files changed, 44 insertions(+), 36 deletions(-) diff --git a/CHANGELOG-3.2.md b/CHANGELOG-3.2.md index f2d2a51708f..34fe42f0c47 100644 --- a/CHANGELOG-3.2.md +++ b/CHANGELOG-3.2.md @@ -4,11 +4,11 @@ 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. -### Fixed(v2) +### Fixed: v2 - Fix [v2 proxy leaky HTTP requests](https://github.com/coreos/etcd/pull/9336). -### Fixed(v3) +### Fixed: v3 - 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. @@ -24,7 +24,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. -### Fixed(v3) +### Fixed: v3 - 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. @@ -74,7 +74,7 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.2.11...v3.2.12) and - Fix [error message of `Revision` compactor](https://github.com/coreos/etcd/pull/8999) in server-side. -### Added(`etcd/clientv3`) +### Added: `clientv3` - 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). diff --git a/CHANGELOG-3.3.md b/CHANGELOG-3.3.md index dd839bd0747..914c38bd2d6 100644 --- a/CHANGELOG-3.3.md +++ b/CHANGELOG-3.3.md @@ -4,11 +4,11 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.3.1...v3.3.2) and [v3.3 upgrade guide](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_3.md) for any breaking changes. -### Fixed(v2) +### Fixed: v2 - Fix [v2 proxy leaky HTTP requests](https://github.com/coreos/etcd/pull/9336). -### Fixed(v3) +### Fixed: v3 - 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. @@ -28,7 +28,7 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.3.0...v3.3.1) and [ - Add [warnings on requests taking too long](https://github.com/coreos/etcd/pull/9288). - e.g. `etcdserver: read-only range request "key:\"\\000\" range_end:\"\\000\" " took too long [3.389041388s] to execute` -### Fixed(v3) +### Fixed: v3 - Fix [`mvcc` "unsynced" watcher restore operation](https://github.com/coreos/etcd/pull/9281). - "unsynced" watcher is watcher that needs to be in sync with events that have happened. @@ -80,7 +80,7 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.2.0...v3.3.0-rc.0) - v3.2 error: `--initial-cluster must include s1=https://s1.test:2380 given --initial-advertise-peer-urls=https://s1.test:2380`. - v3.3 error: `failed to resolve https://s1.test:2380 to match --initial-cluster=s1=https://s1.test:2380 (failed to resolve "https://s1.test:2380" (error ...))`. -### Changed(Breaking Changes) +### Breaking Changes - Require [Go 1.9+](https://github.com/coreos/etcd/issues/6174). - Compile with *Go 1.9.3*. @@ -97,7 +97,7 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.2.0...v3.3.0-rc.0) - v3 `etcdctl` [`lease timetolive LEASE_ID`](https://github.com/coreos/etcd/issues/9028) on expired lease now prints [`"lease LEASE_ID already expired"`](https://github.com/coreos/etcd/pull/9047). - <=3.2 prints `"lease LEASE_ID granted with TTL(0s), remaining(-1s)"`. -### Added(`etcd`) +### Added: `etcd` - Add [`--experimental-enable-v2v3`](https://github.com/coreos/etcd/pull/8407) flag to [emulate v2 API with v3](https://github.com/coreos/etcd/issues/6925). - Add [`--experimental-corrupt-check-time`](https://github.com/coreos/etcd/pull/8420) flag to [raise corrupt alarm monitoring](https://github.com/coreos/etcd/issues/7125). @@ -132,7 +132,7 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.2.0...v3.3.0-rc.0) - Address [error on shadowed environment variables](https://github.com/coreos/etcd/issues/8380). - etcd `v3.4` will exit on this error. -### Added(API) +### Added: API - Support [ranges in transaction comparisons](https://github.com/coreos/etcd/pull/8025) for [disconnected linearized reads](https://github.com/coreos/etcd/issues/7924). - Add [nested transactions](https://github.com/coreos/etcd/pull/8102) to extend [proxy use cases](https://github.com/coreos/etcd/issues/7857). @@ -140,7 +140,7 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.2.0...v3.3.0-rc.0) - Add [lease list](https://github.com/coreos/etcd/pull/8358). - Add [hash by revision](https://github.com/coreos/etcd/pull/8263) for [better corruption checking against boltdb](https://github.com/coreos/etcd/issues/8016). -### Added(`etcd/clientv3`) +### Added: `clientv3` - Add [health balancer](https://github.com/coreos/etcd/pull/8545) to fix [watch API hangs](https://github.com/coreos/etcd/issues/7247), improve [endpoint switch under network faults](https://github.com/coreos/etcd/issues/7941). - [Refactor balancer](https://github.com/coreos/etcd/pull/8840) and add [client-side keepalive pings](https://github.com/coreos/etcd/pull/8199) to handle [network partitions](https://github.com/coreos/etcd/issues/8711). @@ -157,11 +157,11 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.2.0...v3.3.0-rc.0) - Add [`Leases`](https://github.com/coreos/etcd/pull/8358) to `Lease`. - Add [`clientv3/ordering`](https://github.com/coreos/etcd/pull/8092) for enforce [ordering in serialized requests](https://github.com/coreos/etcd/issues/7623). -### Added(v2 `etcdctl`) +### Added: v2 `etcdctl` - Add [`backup --with-v3`](https://github.com/coreos/etcd/pull/8479) flag. -### Added(v3 `etcdctl`) +### Added: v3 `etcdctl` - Add [`--discovery-srv`](https://github.com/coreos/etcd/pull/8462) flag. - Add [`--keepalive-time`, `--keepalive-timeout`](https://github.com/coreos/etcd/pull/8663) flags. @@ -183,7 +183,7 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.2.0...v3.3.0-rc.0) - Print [`"del"` instead of `"delete"`](https://github.com/coreos/etcd/pull/8297) in `txn` interactive mode. - Print [`ETCD_INITIAL_ADVERTISE_PEER_URLS` in `member add`](https://github.com/coreos/etcd/pull/8332). -### Added(metrics) +### Added: metrics - Add [`etcd --listen-metrics-urls`](https://github.com/coreos/etcd/pull/8242) flag for additional `/metrics` endpoints. - Useful for [bypassing critical APIs when monitoring etcd](https://github.com/coreos/etcd/issues/8060). @@ -195,7 +195,7 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.2.0...v3.3.0-rc.0) - Document [Prometheus 2.0 rules](https://github.com/coreos/etcd/pull/8879). - Initialize gRPC server [metrics with zero values](https://github.com/coreos/etcd/pull/8878). -### Added(`grpc-proxy`) +### Added: `grpc-proxy` - Add [`grpc-proxy start --experimental-leasing-prefix`](https://github.com/coreos/etcd/pull/8341) flag. - For disconnected linearized reads. @@ -210,7 +210,7 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.2.0...v3.3.0-rc.0) - Add [`grpc-proxy start --max-send-bytes`](https://github.com/coreos/etcd/pull/9250) flag to [configure maximum client request size](https://github.com/coreos/etcd/issues/7923). - Add [`grpc-proxy start --max-recv-bytes`](https://github.com/coreos/etcd/pull/9250) flag to [configure maximum client request size](https://github.com/coreos/etcd/issues/7923). -### Added(gRPC gateway) +### Added: gRPC gateway (HTTP endpoints for v3) - Replace [gRPC gateway](https://github.com/grpc-ecosystem/grpc-gateway) endpoint with [`/v3beta`](https://github.com/coreos/etcd/pull/8880). - To deprecate [`/v3alpha`](https://github.com/coreos/etcd/issues/8125) in `v3.4`. @@ -225,7 +225,7 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.2.0...v3.3.0-rc.0) - To implement [Raft thesis 4.2.1 Catching up new servers](https://github.com/coreos/etcd/issues/8568). - `Learner` node does not vote or promote itself. -### Added/Fixed(Security/Auth) +### Security, Authentication - Add [CRL based connection rejection](https://github.com/coreos/etcd/pull/8124) to manage [revoked certs](https://github.com/coreos/etcd/issues/4034). - Document [TLS authentication changes](https://github.com/coreos/etcd/pull/8895). @@ -240,12 +240,12 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.2.0...v3.3.0-rc.0) - Fix [auth store panic with disabled token](https://github.com/coreos/etcd/pull/8695). - Update `golang.org/x/crypto/bcrypt` (see [golang/crypto@6c586e1](https://github.com/golang/crypto/commit/6c586e17d90a7d08bbbc4069984180dce3b04117)). -### Fixed(v2) +### Fixed: v2 - [Fail-over v2 client](https://github.com/coreos/etcd/pull/8519) to next endpoint on [oneshot failure](https://github.com/coreos/etcd/issues/8515). - [Put back `/v2/machines`](https://github.com/coreos/etcd/pull/8062) endpoint for python-etcd wrapper. -### Fixed(v3) +### Fixed: v3 - Fix [range/put/delete operation metrics](https://github.com/coreos/etcd/pull/8054) with transaction. - `etcd_debugging_mvcc_range_total` diff --git a/CHANGELOG-3.4.md b/CHANGELOG-3.4.md index 7b6bd061914..ff03154f075 100644 --- a/CHANGELOG-3.4.md +++ b/CHANGELOG-3.4.md @@ -20,7 +20,7 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.3.0...v3.4.0) and [ - For instance, a flaky(or rejoining) member may drop in and out, and start campaign. This member will end up with a higher term, and ignore all incoming messages with lower term. In this case, a new leader eventually need to get elected, thus disruptive to cluster availability. Raft implements Pre-Vote phase to prevent this kind of disruptions. If enabled, Raft runs an additional phase of election to check if pre-candidate can get enough votes to win an election. - Make [Lease `Lookup` non-blocking with concurrent `Grant`/`Revoke`](https://github.com/coreos/etcd/pull/9229). -### Changed(Breaking Changes) +### Breaking Changes - Drop [ACIs from official release](https://github.com/coreos/etcd/pull/9059). - [AppC was officially suspended](https://github.com/appc/spec#-disclaimer-), as of late 2016. @@ -30,14 +30,11 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.3.0...v3.4.0) and [ - Address [advertise client URLs accepts empty hosts](https://github.com/coreos/etcd/issues/8379). - e.g. exit with error on `--advertise-client-urls=http://:2379`. - e.g. exit with error on `--initial-advertise-peer-urls=http://:2380`. -- Exit on [shadowed environment variables](TODO). +- Exit on [shadowed environment variables](https://github.com/coreos/etcd/pull/9382). - Address [error on shadowed environment variables](https://github.com/coreos/etcd/issues/8380). + - e.g. exit with error on `ETCD_NAME=abc etcd --name=def`. - e.g. exit with error on `ETCD_INITIAL_CLUSTER_TOKEN=abc etcd --initial-cluster-token=def`. -- Migrate dependency management tool from `glide` to [`golang/dep`](https://github.com/coreos/etcd/pull/9155). - - <= 3.3 puts `vendor` directory under `cmd/vendor` directory to [prevent conflicting transitive dependencies](https://github.com/coreos/etcd/issues/4913). - - 3.4 moves `cmd/vendor` directory to `vendor` at repository root. - - Remove recursive symlinks in `cmd` directory. - - Now `go get/install/build` on `etcd` packages (e.g. `clientv3`, `tools/benchmark`) enforce builds with etcd `vendor` directory. + - e.g. exit with error on `ETCDCTL_ENDPOINTS=abc.com ETCDCTL_API=3 etcdctl endpoint health --endpoints=def.com`. - Move `"github.com/coreos/etcd/snap"` to [`"github.com/coreos/etcd/raftsnap"`](https://github.com/coreos/etcd/pull/9211). - Move `"github.com/coreos/etcd/etcdserver/auth"` to [`"github.com/coreos/etcd/etcdserver/v2auth"`](https://github.com/coreos/etcd/pull/9275). - Move `"github.com/coreos/etcd/error"` to [`"github.com/coreos/etcd/etcdserver/v2error"`](https://github.com/coreos/etcd/pull/9274). @@ -45,13 +42,23 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.3.0...v3.4.0) and [ - Change v3 `etcdctl snapshot` exit codes with [`snapshot` package](https://github.com/coreos/etcd/pull/9118/commits/df689f4280e1cce4b9d61300be13ca604d41670a). - Exit on error with exit code 1 (no more exit code 5 or 6 on `snapshot save/restore` commands). - Require Go 1.10+. +- Migrate dependency management tool from `glide` to [`golang/dep`](https://github.com/coreos/etcd/pull/9155). + - <= 3.3 puts `vendor` directory under `cmd/vendor` directory to [prevent conflicting transitive dependencies](https://github.com/coreos/etcd/issues/4913). + - 3.4 moves `cmd/vendor` directory to `vendor` at repository root. + - Remove recursive symlinks in `cmd` directory. + - Now `go get/install/build` on `etcd` packages (e.g. `clientv3`, `tools/benchmark`) enforce builds with etcd `vendor` directory. -### Added(`etcd`) +### Added: `etcd` - Add [`--discovery-srv-name`](https://github.com/coreos/etcd/pull/8690) flag to support custom DNS SRV name with discovery. - If not given, etcd queries `_etcd-server-ssl._tcp.[YOUR_HOST]` and `_etcd-server._tcp.[YOUR_HOST]`. - If `--discovery-srv-name="foo"`, then query `_etcd-server-ssl-foo._tcp.[YOUR_HOST]` and `_etcd-server-foo._tcp.[YOUR_HOST]`. - Useful for operating multiple etcd clusters under the same domain. +- Define [`embed.CompactorModePeriodic`](https://godoc.org/github.com/coreos/etcd/embed#pkg-variables) for `compactor.ModePeriodic`. +- Define [`embed.CompactorModeRevision`](https://godoc.org/github.com/coreos/etcd/embed#pkg-variables) for `compactor.ModeRevision`. + +### Security, Authentication + - Add [`--host-whitelist`](https://github.com/coreos/etcd/pull/9372) flag, [`etcdserver.Config.HostWhitelist`](https://github.com/coreos/etcd/pull/9372), and [`embed.Config.HostWhitelist`](https://github.com/coreos/etcd/pull/9372), to prevent ["DNS Rebinding"](https://en.wikipedia.org/wiki/DNS_rebinding) attack. - Any website can simply create an authorized DNS name, and direct DNS to `"localhost"` (or any other address). Then, all HTTP endpoints of etcd server listening on `"localhost"` becomes accessible, thus vulnerable to [DNS rebinding attacks (CVE-2018-5702)](https://bugs.chromium.org/p/project-zero/issues/detail?id=1447#c2). - Client origin enforce policy works as follow: @@ -61,10 +68,11 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.3.0...v3.4.0) and [ - Note that the client origin policy is enforced whether authentication is enabled or not, for tighter controls. - When specifying hostnames, loopback addresses are not added automatically. To allow loopback interfaces, add them to whitelist manually (e.g. `"localhost"`, `"127.0.0.1"`, etc.). - e.g. `etcd --host-whitelist example.com`, then the server will reject all HTTP requests whose Host field is not `example.com` (also rejects requests to `"localhost"`). -- Define `embed.CompactorModePeriodic` for `compactor.ModePeriodic`. -- Define `embed.CompactorModeRevision` for `compactor.ModeRevision`. +- Support `ttl` field for `etcd` Authentication JWT token. + - e.g. `etcd --auth-token jwt,pub-key=,priv-key=,sign-method=,ttl=5m`. +- Allow empty token provider in [`etcdserver.ServerConfig.AuthToken`](https://github.com/coreos/etcd/pull/9369). -### Added(API) +### Added: API - Add [`snapshot`](https://github.com/coreos/etcd/pull/9118) package for snapshot restore/save operations. - Add [`watch_id` field to `etcdserverpb.WatchCreateRequest`](https://github.com/coreos/etcd/pull/9065), allow user-provided watch ID to `mvcc`. @@ -74,7 +82,7 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.3.0...v3.4.0) and [ - e.g. `"etcdserver: no leader", "NOSPACE", "CORRUPT"` - Add [`dbSizeInUse` field to `etcdserverpb.StatusResponse`](https://github.com/coreos/etcd/pull/9256) for actual DB size after compaction. -### Added(v3 `etcdctl`) +### Added: v3 `etcdctl` - Add [`check datascale`](https://github.com/coreos/etcd/pull/9185) command. - Add [`check datascale --auto-compact, --auto-defrag`](https://github.com/coreos/etcd/pull/9351) flags. @@ -82,11 +90,11 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.3.0...v3.4.0) and [ - Add ["raft applied index" field to `endpoint status`](https://github.com/coreos/etcd/pull/9176). - Add ["errors" field to `endpoint status`](https://github.com/coreos/etcd/pull/9206). -### Added(metrics) +### Added: metrics - Add [`etcd_debugging_mvcc_db_total_size_in_use_in_bytes`](https://github.com/coreos/etcd/pull/9256) Prometheus metric. -### Added(gRPC gateway) +### Added: gRPC gateway - Replace [gRPC gateway](https://github.com/grpc-ecosystem/grpc-gateway) endpoint with [`/v3`](https://github.com/coreos/etcd/pull/9298). - To deprecate [`/v3beta`] in `v3.5`. @@ -101,7 +109,7 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.3.0...v3.4.0) and [ - Previously record `pendingConf` boolean field scanning the entire tail of the log, which can delay hearbeat send. - Fix [missing learner nodes on `(n *node) ApplyConfChange`](https://github.com/coreos/etcd/pull/9116). -### Fixed(v3) +### Fixed: v3 - Fix [`mvcc` "unsynced" watcher restore operation](https://github.com/coreos/etcd/pull/9281). - "unsynced" watcher is watcher that needs to be in sync with events that have happened. @@ -112,6 +120,6 @@ See [code changes](https://github.com/coreos/etcd/compare/v3.3.0...v3.4.0) and [ - Previously, wrong-formatted HTTP requests to Election API could trigger panic in etcd server. - e.g. `curl -L http://localhost:2379/v3/election/proclaim -X POST -d '{"value":""}'`, `curl -L http://localhost:2379/v3/election/resign -X POST -d '{"value":""}'`. - Fix [revision-based compaction retention parsing](https://github.com/coreos/etcd/pull/9339). - - Previously, `--auto-compaction-mode revision --auto-compaction-retention 1` was [translated to revision retention 3600000000000](https://github.com/coreos/etcd/issues/9337). - - Now, `--auto-compaction-mode revision --auto-compaction-retention 1` is correctly parsed as revision retention 1. + - Previously, `etcd --auto-compaction-mode revision --auto-compaction-retention 1` was [translated to revision retention 3600000000000](https://github.com/coreos/etcd/issues/9337). + - Now, `etcd --auto-compaction-mode revision --auto-compaction-retention 1` is correctly parsed as revision retention 1. - Enable etcd server [`raft.Config.CheckQuorum` when starting with `ForceNewCluster`](https://github.com/coreos/etcd/pull/9347).