2018-01-22 20:14:22 +03:00
|
|
|
|
|
|
|
|
|
|
|
## v3.4.0 (TBD)
|
|
|
|
|
|
|
|
**v3.4.0 is not yet released.**
|
|
|
|
|
|
|
|
### Changed(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.
|
|
|
|
- [`acbuild`](https://github.com/containers/build#this-project-is-currently-unmaintained) is not maintained anymore.
|
|
|
|
- `*.aci` files are not available from `v3.4` release.
|
2018-01-26 01:45:37 +03:00
|
|
|
- Exit on [empty hosts in advertise URLs](https://github.com/coreos/etcd/pull/8786).
|
2018-01-23 22:37:06 +03:00
|
|
|
- Address [advertise client URLs accepts empty hosts](https://github.com/coreos/etcd/issues/8379).
|
2018-01-26 21:54:29 +03:00
|
|
|
- e.g. exit with error on `--advertise-client-urls=http://:2379`.
|
|
|
|
- e.g. exit with error on `--initial-advertise-peer-urls=http://:2380`.
|
2018-01-23 22:37:06 +03:00
|
|
|
- Exit on [shadowed environment variables](TODO).
|
|
|
|
- Address [error on shadowed environment variables](https://github.com/coreos/etcd/issues/8380).
|
2018-01-26 21:54:29 +03:00
|
|
|
- e.g. exit with error on `ETCD_INITIAL_CLUSTER_TOKEN=abc etcd --initial-cluster-token=def`.
|
2018-01-23 20:51:58 +03:00
|
|
|
- Migrate dependency management tool from `glide` to [`golang/dep`](https://github.com/coreos/etcd/pull/9155).
|
2018-01-25 04:51:23 +03:00
|
|
|
- <= 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.
|
2018-01-23 20:51:58 +03:00
|
|
|
- Remove recursive symlinks in `cmd` directory.
|
2018-01-23 22:37:06 +03:00
|
|
|
- Now `go get/install/build` on `etcd` packages (e.g. `clientv3`, `tools/benchmark`) enforce builds with etcd `vendor` directory.
|
2018-01-26 01:45:37 +03:00
|
|
|
- Reorganize [internal packages](https://github.com/coreos/etcd/issues/9220).
|
2018-01-26 01:57:00 +03:00
|
|
|
- Move `"github.com/coreos/etcd/alarm"` to [`"github.com/coreos/etcd/internal/alarm"`](https://github.com/coreos/etcd/pull/9234).
|
|
|
|
- Move `"github.com/coreos/etcd/compactor"` to [`"github.com/coreos/etcd/internal/compactor"`](https://github.com/coreos/etcd/pull/9234).
|
|
|
|
- Move `"github.com/coreos/etcd/discovery"` to [`"github.com/coreos/etcd/internal/discovery"`](https://github.com/coreos/etcd/pull/9233).
|
2018-01-26 22:23:31 +03:00
|
|
|
- Move `"github.com/coreos/etcd/lease"` to [`"github.com/coreos/etcd/internal/lease"`](https://github.com/coreos/etcd/pull/9238).
|
|
|
|
- Move `"github.com/coreos/etcd/mvcc"` to [`"github.com/coreos/etcd/internal/mvcc"`](https://github.com/coreos/etcd/pull/9238).
|
2018-01-26 01:57:00 +03:00
|
|
|
- Move `"github.com/coreos/etcd/snap"` to [`"github.com/coreos/etcd/internal/raftsnap"`](https://github.com/coreos/etcd/pull/9211).
|
2018-01-26 22:23:31 +03:00
|
|
|
- Move `"github.com/coreos/etcd/store"` to [`"github.com/coreos/etcd/internal/store"`](https://github.com/coreos/etcd/pull/9238).
|
2018-01-22 20:14:22 +03:00
|
|
|
|
2018-01-26 21:54:29 +03:00
|
|
|
### 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.
|
|
|
|
|
2018-01-23 20:51:58 +03:00
|
|
|
### Added(API)
|
2018-01-22 20:14:22 +03:00
|
|
|
|
2018-01-23 20:51:58 +03:00
|
|
|
- Add [`snapshot`](https://github.com/coreos/etcd/pull/9118) package for snapshot restore/save operations.
|
2018-01-22 20:14:22 +03:00
|
|
|
- Add [`watch_id` field to `etcdserverpb.WatchCreateRequest`](https://github.com/coreos/etcd/pull/9065), allow user-provided watch ID to `mvcc`.
|
|
|
|
- Corresponding `watch_id` is returned via `etcdserverpb.WatchResponse`, if any.
|
2018-01-23 20:51:58 +03:00
|
|
|
- Add [`raftAppliedIndex` field to `etcdserverpb.StatusResponse`](https://github.com/coreos/etcd/pull/9176) for current Raft applied index.
|
2018-01-26 01:45:37 +03:00
|
|
|
- Add [`errors` field to `etcdserverpb.StatusResponse`](https://github.com/coreos/etcd/pull/9206) for server-side error.
|
|
|
|
- e.g. `"etcdserver: no leader", "NOSPACE", "CORRUPT"`
|
2018-01-22 20:14:22 +03:00
|
|
|
|
2018-01-23 20:51:58 +03:00
|
|
|
### Added(v3 `etcdctl`)
|
2018-01-22 20:14:22 +03:00
|
|
|
|
2018-01-23 20:51:58 +03:00
|
|
|
- Add [`check datascale`](https://github.com/coreos/etcd/pull/9185) command.
|
|
|
|
- Add ["raft applied index" to `endpoint status`](https://github.com/coreos/etcd/pull/9176).
|
2018-01-26 01:45:37 +03:00
|
|
|
- Add ["errors" to `endpoint status`](https://github.com/coreos/etcd/pull/9206).
|
2018-01-22 20:14:22 +03:00
|
|
|
|
|
|
|
### Package `raft`
|
|
|
|
|
|
|
|
- Improve [Raft `becomeLeader` and `stepLeader`](https://github.com/coreos/etcd/pull/9073) by keeping track of latest `pb.EntryConfChange` index.
|
|
|
|
- Previously record `pendingConf` boolean field scanning the entire tail of the log, which can delay hearbeat send.
|
|
|
|
- Add [`raft.ErrProposalDropped`](https://github.com/coreos/etcd/pull/9067).
|
|
|
|
- Now `(r *raft) Step` returns `raft.ErrProposalDropped` if a proposal has been ignored.
|
|
|
|
- e.g. a node is removed from cluster, [ongoing leadership transfer](https://github.com/coreos/etcd/issues/8975), etc.
|
|
|
|
- Fix [missing learner nodes on `(n *node) ApplyConfChange`](https://github.com/coreos/etcd/pull/9116).
|
|
|
|
|