* Sat Mar 07 2020 Hans-Peter Jansen <hpj@urpla.net>
- rely on /etc/sysconfig/etcd to provide config
* Thu Feb 06 2020 Michal Jura <mjura@suse.com>
- Update to version 3.4.3:
* version: 3.4.3
* *: use Go 1.12.12
* rafthttp: add 3.4 stream type
* etcdserver: strip patch version in metrics
* etcdserver: strip patch version in cluster version
* etcdserver: unset old cluster version in metrics
* Add version, tag and branch checks to release script
* scripts: fix read failure prompt in release; use https for git clone.
* version: 3.4.2
* etcdserver: trace compaction request; add return parameter 'trace' to applierV3.Compaction() mvcc: trace compaction request; add input parameter 'trace' to KV.Compact()
* etcdserver: trace raft requests.
* etcdserver: add put request steps. mvcc: add put request steps; add trace to KV.Write() as input parameter.
* pkg: use zap logger to format the structure log output.
* pkg: add field to record additional detail of trace; add stepThreshold to reduce log volume.
* pkg: create package traceutil for tracing. mvcc: add tracing steps:range from the in-memory index tree; range from boltdb. etcdserver: add tracing steps: agreement among raft nodes before linerized reading; authentication; filter and sort kv pairs; assemble the response.
* clientv3: Replace endpoint.ParseHostPort with net.SplitHostPort to fix IPv6 client endpoints
* clientv3: Set authority used in cert checks to host of endpoint
* tests/e2e: fix metrics tests
* etcdctl: fix member add command
* scripts/build-binary: fix darwin tar commands
* scripts/release: fix SHA256SUMS command
* version: 3.4.1
* scripts/release: fix docker push command
* integration: fix bug in for loop, make it break properly
* embed: expose ZapLoggerBuilder
* vendor: upgrade to gRPC v1.23.1
* Thu Oct 10 2019 rbrown@suse.com
- Update to version 3.3.15:
* version: 3.3.15
* vendor: regenerate
* go.mod: remove, change back to "glide"
* version: 3.3.14
* Documentation/upgrades: special upgrade guides for >= 3.3.14
* version: 3.3.14-rc.0
* vendor: regenerate
* go.mod: regenerate
* gitignore: track vendor directory
* *: test with Go 1.12.9
* version: 3.3.14-beta.0
* tests/e2e: add missing curl
* e2e: move
* test: do not run "v2store" tests
* test: bump up timeout for e2e tests
* travis: fix functional tests
* functional: add back, travis
* auth: fix tests
* travis: do not run functional for now
* travis: skip windows build
* test: fix repo path
* tests/e2e: fix
* build: remove tools
* integration: fix tests
* integration: fix "HashKVRequest"
* functional: update
* travis.yml: fix, run e2e
* integration: update
* etcdserver: detect leader change on reads
* clientv3: rewrite based on 3.4
* raft: fix compile error in "Panic"
* pkg/*: add
* etcdserver/api/v3rpc: support watch fragmentation
* tests: update
* *: regenerate proto
* etcdserver/etcdserverpb/rpc.proto: add watch progress/fragment
* vendor: regenerate, upgrade gRPC to 1.23.0
* go.mod: migrate to Go module
* scripts: update release, genproto, dep
* Makefile/build: sync with 3.4 branch
* *: use new adt.IntervalTree interface
* pkg/adt: remove TODO
* pkg/adt: fix interval tree black-height property based on rbtree
* pkg/adt: document textbook implementation with pseudo-code
* pkg/adt: mask test failure, add TODO
* pkg/adt: add "IntervalTree.Delete" failure case
* pkg/adt: test node "11" deletion
* pkg/adt: README "IntervalTree.Delete" test case images
* pkg/adt: README initial commit
* pkg/adt: add "visitLevel", make "IntervalTree" interface, more tests
* pkg: clean up code format
* travis: update
* etcdserver: add "etcd_server_snapshot_apply_inflights_total"
* etcdserver/api: add "etcd_network_snapshot_send_inflights_total", "etcd_network_snapshot_receive_inflights_total"
* Raft HTTP: fix pause/resume race condition
* ctlv3: add missing newline in EndpointHealth
* ctlv3: support "write-out" for "endpoint health" command
* etcd: Replace ghodss/yaml with sigs.k8s.io/yaml
* version: bump up 3.3.13
* clientv3: fix race condition in "Endpoints" methods
* etcdserver: improve heartbeat send failures logging
* Documentation metadata for 3.3 branch (#10692)
* vendor: add missing files
* vendor: Run scripts/updatedeps.sh to cleanup unused code
* client: Switch to case sensitive unmarshalling to be compatible with ugorji
* *: update bill-of-materials
* vendor: Add json-iterator and its dependencies
* scripts: Remove generated code and script
* client: Replace ugorji/codec with json-iterator/go
* mvcc: fix db_compaction_total_duration_milliseconds
* wal: Add test for Verify
* wal: add Verify function to perform corruption check on wal contents
* *: Change gRPC proxy to expose etcd server endpoint /metrics
* travis: fix tests by using proper code path
* etcdserver: Use panic instead of fatal on no space left error
* raft: cherry pick of #8334 to release-3.3
* travis.yml: update Go 1.10.8
* version: 3.3.12
* etcdctl: fix strings.HasPrefix args order
* version: 3.3.11+git
* Wed Jul 24 2019 matthias.gerstner@suse.com
- removal of SuSEfirewall2 service, since SuSEfirewall2 has been replaced by
firewalld, see [1].
[1]: https://lists.opensuse.org/opensuse-factory/2019-01/msg00490.html
* Thu Jun 13 2019 Guillaume GARDET <guillaume.gardet@opensuse.org>
- Fix aarch64 start
* Wed Jun 05 2019 <jsegitz@suse.com>
- Added README.security and wording in the configuration file to
ensure users are aware that they need to configure etcd to require
authentication
* Wed Jan 30 2019 Panagiotis Georgiadis pgeorgiadis@suse.com
- Update to version 3.3.11:
* version: 3.3.11
* auth: fix cherry-pick
* auth: disable CommonName auth for gRPC-gateway
* grpcproxy: fix memory leak
* bsc#1121850 CVE-2018-16886
* Wed Dec 19 2018 clee@suse.com
- Updated to a supported version of Go (due to security reasons)
* bsc#1118897 CVE-2018-16873
go#29230 cmd/go: remote command execution during "go get -u"
* bsc#1118898 CVE-2018-16874
go#29231 cmd/go: directory traversal in "go get" via curly braces in import paths
* bsc#1118899 CVE-2018-16875
go#29233 crypto/x509: CPU denial of service
* Wed Dec 12 2018 alvaro.saurin@suse.com
- Updated to a supported version of Go (due to security reasons)
* Mon Nov 12 2018 opensuse-packaging@opensuse.org
- Update to version 3.3.10:
* version: 3.3.10
* travis.yml: use Go 1.10.4
* etcdserver: add "etcd_server_read_indexes_failed_total"
* rafthttp: probe all raft transports
* etcdserver: add "etcd_server_health_success/failures"
* clientv3: concurrency.Mutex.Lock() - preserve invariant
* etcdserver/api/rafthttp: add v3 snapshot send/receive metrics
* etcdserver/api/snap: add v3 snapshot fsync metrics
* tests/Dockerfile: update, fix GOPATH
* etcdctl: cherry pick of #10109 to release-3.3
* etcdserver: remove duplicated imports
* etcdserver: add "etcd_server_id"
* etcdserver: clarify read index wait timeout warnings
* rafthttp: clarify "became inactive" warning
* Merge pull request #9861 from gyuho/race
* etcdserver: code clean up
* vendor: add go-grpc-middleware
* etcdserver: add grpc interceptor to log info on incoming requests to etcd server
* version: bump up to 3.3.9+git
* version: 3.3.9
* etcdserver: add "etcd_server_go_version" metric
* clientv3: fix keepalive send interval when response queue is full
* added "now := time.Now()"
* remove "github.com/gogo/protobuf/plugin/stringer"
* etcdserver: rename to "heartbeat_send_failures_total"
* mvcc: add "etcd_mvcc_hash_(rev)_duration_seconds"
* mvcc/backend: fix defrag duration scale
* mvcc/backend: add "etcd_disk_backend_defrag_duration_seconds"
* mvcc/backend: document metrics ExponentialBuckets
* mvcc/backend: clean up mutex, logging
* etcdserver: add "etcd_server_slow_apply_total"
* etcdserver: add "etcd_server_heartbeat_failures_total"
* e2e: log errors TestV3CurlCipherSuitesMismatch for now
* Makefile: use Go 1.10.3 by default
* *: use Go 1.10.3 for testing
* mvcc: avoid unnecessary metrics update
* mvcc: add "etcd_mvcc_db_total_size_in_use_in_bytes"
* mvcc: add "etcd_mvcc_db_total_size_in_bytes"
* etcdserver: add "etcd_server_quota_backend_bytes"
* etcdserver: add "etcd_server_slow_read_indexes_total"
* etcdserver: clarify read index warnings
* tests: update test scripts
* version: 3.3.8+git
* version: 3.3.8
* travis: use Go 1.9.7
* gitignore: ignore "docs" and "vendor"
* clientv3: backoff on reestablishing watches when Unavailable errors are encountered
* tests/semaphore.test.bash: update
* Makefile: update
* etcdserver: Fix txn request 'took too long' warnings to use loggable request stringer
* etcdserver: Add response byte size and range response count to took too long warning
* etcdserver: Replace value contents with value_size in request took too long warning
* version: bump up to 3.3.7+git
* version: 3.3.7
* e2e: test client-side cipher suites with curl
* etcdmain: add "--cipher-suites" flag
* embed: support custom cipher suites
* integration: test client-side TLS cipher suites
* pkg/transport: add "TLSInfo.CipherSuites" field
* pkg/tlsutil: add "GetCipherSuite"
* tests/e2e: test move-leader command with TLS
* ctlv3: support TLS endpoints for move-leader command
* scripts/release: Fix docker push for 3.1 releases, remove inaccurate warning at the end of release script
* version: bump up to 3.3.6+git
* version: 3.3.6
* mvcc: fix panic by allowing future revision watcher from restore operation
* auth: fix panic using WithRoot and improve JWT coverage
* auth: a new auth token provider nop
* scripts: Fix remote tag check, gcloud login and umask in release script
* version: 3.3.5+git
* version: 3.3.5
* tests/e2e: separate coverage tests for exec commands
* etcdctl/ctlv3: fix watch with exec commands
* tests: use Go 1.9.6
* functional/tester: handle retries in "caseUntilSnapshot"
* functional.yaml: use lower ports
* scripts: Fix a few etcd release script bugs and make it reenterant.
* etcdmain: document peer-cert-allowed-cn flag
* version: 3.3.4+git
* version: 3.3.4
* scripts: Add scripts/release that performs 'etcd-release-runbook' (https://goo.gl/Gxwysq) style release workflow
* etcdserver: log skipping initial election tick
* etcdmain: add "--initial-election-tick-advance"
* embed: add "InitialElectionTickAdvance"
* integration: set InitialElectionTickAdvance to true by default
* etcdserver: add "InitialElectionTickAdvance"
* etcdserver: add is_leader prometheus metric that is 1 on the leader.
* integration: re-overwrite "httptest.Server" TLS.Certificates
* pkg/transport: don't set certificates on tls config
* functional: create symlinks for build
* travis: run build tests for "functional"
* snapshot: remove tests
* functional: initial commit (copied from master)
* snapshot: initial commit (for functional tests)
* test: simplify
* etcdserver/stats: make all fields guarded by mutex.
* etcdserver/stats: fix stats data race.
* test: remove build flag "-a"
* cmd/vendor: add "go.uber.org/zap"
* pkg/proxy: move from "pkg/transport"
* tools: remove
* travis: update
* test/*: clean up semaphore scripts
* etcdserver: fix "lease_expired_total" metrics
* tests: move test scripts
* semaphore.sh: update Go version
* travis: use Go 1.9.5
* version: 3.3.3+git
* version: 3.3.3
* Documentation/upgrades: backport all upgrade guides
* compactor: simplify interval logic on periodic compactor
* compactor: adjust interval for period <1-hour
* compactor: clean up
* rafthttp: add missing "peer_sent_failures_total" metrics call
* etcdserver: adjust election ticks on restart
* etcdserver: make "advanceTicks" method
* rafthttp: add "ActivePeers" to "Transport"
* version: 3.3.2+git
* version: 3.3.2
* clientv3/integration: test "rpctypes.ErrLeaseTTLTooLarge"
* *: enforce max lease TTL with 9,000,000,000 seconds
* *: remove unused env vars
* hack/scripts-dev: fix indentation in run.sh
* hack/scripts-dev: sync with master branch
* travis: update Go version string
* e2e: fix missing "apiPrefix"
* embed: fix wrong compactor imports
* Documentation/op-guide: highlight defrag operation "--endpoints" flag
* etcdctl: highlight "defrag" command caveats
* e2e: add "Election" grpc-gateway test cases
* e2e: add "spawnWithExpectLines"
* api/v3election: error on missing "leader" field
* Documentation: make "Consul" section more objective
* etcdserver: enable "CheckQuorum" when starting with "ForceNewCluster"
* httpproxy: cancel requests when client closes a connection
* semaphore: release test version
* embed: fix revision-based compaction with default value
* embed: document/validate compaction mode
* version: 3.3.1+git
* Tue Jun 05 2018 dcassany@suse.com
- Make use of %license macro
* Wed May 30 2018 jmassaguerpla@suse.com
- Fix go 1.9.4 requirements. We had also "BuildRequires: go >= 1.9.4"
and this was pulling go 1.10, too.
(bsc#1095184)
* Wed Feb 28 2018 jmassaguerpla@suse.com
- Build require go 1.9.4 or newer, since etcd has been tested and
built on that. See previous changelog.
fix#go_requirement (bsc#1095184).
* Thu Feb 22 2018 opensuse-packaging@opensuse.org
- Update to version 3.3.1 (bsc#1095184):
* gitignore: add ".Dockerfile-functional-tester"
* Dockerfile-functional-tester: initial commit
* tools/functional-tester: update README for local docker testing
* hack: sync with etcd master
* mvcc: restore unsynced watchers
* etcdserver: improve request took too long warning
* semaphore: use Go 1.9.4, update release upgrade test version
* travis: use Go 1.9.4 with TARGET_GO_VERSION
* hack/scripts-dev: Makefile with Go 1.9.4, 1.8.7
* version: 3.3.1
Needed by feature#node_removal
* Thu Feb 01 2018 ro@suse.de
- do not build on s390, only on s390x (no go on s390)
* Thu Nov 23 2017 rbrown@suse.com
- Replace references to /var/adm/fillup-templates with new
%_fillupdir macro (boo#1069468)
* Wed Aug 30 2017 vrothberg@suse.com
- transform etcd.service file from dos to unix
* Fri Aug 11 2017 kiall@macinnes.ie
- Require golang 1.8, as using earlier versions will fail to build
* Thu Aug 03 2017 vrothberg@suse.com
- Fix bsc#1046717: set (io)nice value in service file
* Thu Jul 27 2017 opensuse-packaging@opensuse.org
- Update to version 3.2.4:
* improve example run commands in docker_guide
* improve documentation regarding docker cluster
* version: bump to v3.2.0+git
* etcdserver/api: add 3.2 in capability
* rafthttp: add 3.2.0 stream type
* *: 'ignore_value' to detach lease with PutRequest
* *: regenerate proto files with 'ignore_value'
* v3rpc: error for non-empty value with ignore_value
* etcdserver: use prev-value for ignore_value writes
* integration: test Put,Txn with ignore_value flag
* clientv3: add 'WithIgnoreValue' option
* ctlv3: add '--ignore-value' flag to 'put' command
* e2e: test put command with '--ignore-value' flag
* grpcproxy: handle 'IgnoreValue' field in PutRequest
* etcdserver: increase snapshot to 100,000
* auth, etcdserver: let maintenance services require root role
* e2e: add cases for defrag and snapshot with authentication
* etcd-tester: use 10K for '--snapshot-count'
* kv.go: Fixed []byte to string conversion syntax in comment
* pkg/transport: Obey the usual laws of ssl when using a private PKI
* ctlv3: print cluster info after adding new member
* clientv3: balancer uses one connection at a time
* pkg/report: add nil checking for getTimeSeries
* Documentation: document upgrading to v3.1
* etcdserver: use ReqTimeout for linearized read
* clientv3/txn.go : removed the TODO: add a Do for shortcut the txn without any condition
* test: passed the test script arguments as the test function parameters
* glide: update 'golang.org/x/net'
* vendor: update 'golang.org/x/net'
* grpcproxy, etcdmain, integration: add close channel to kv proxy
* Polish note about varying parameters for each member
* store: set Dir attribute, when node expired
* Documentation: update experimental_apis for v3.1 release
* Documentation: fix typo s/endpoint-health/endpoint health/
* NEWS: fix date for v3.1 release
* clientv3/concurrency: fix rev comparison on concurrent key deletion
* embed/etcd.go: make v2 endpoint optional. fixes #7100
* integration: test STM apply on concurrent deletion
* pkg/flags: fixed prefix checking of the env variables
* pkg/cpuutil: add cpuutil
* etcdctlv3: snapshot restore works with lease key
* pkg/netutil: use native byte ordering for route information
* documentation: update build documentation
* op-guide: change grpc-proxy from 'pre' to alpha'
* README: remove ACI, update Go version
* roadmap: update roadmap
* etcdmain: add gateway and grpc-proxy commands to etcd help
* etcdserverpb: rework documentation for range request
* concurrency: variadic stm options
* concurrency: extend STM interface to Get from any of a list of keys
* concurrency: STM WithPrefetch option
* concurrency: STM snapshot isolation level
* benchmark: update for new stm interface
* integration: fix STM tests to compile against new interface
* Documentation: Add upgrade gotchas/further info for better search visibility
* embed: support user defined grpc services.
* doc: mention HTTP JSON in doc link
* embed: add example for ServiceRegister.
* contrib/recipes/key.go : fixed method comment
* client: add GetVersion method
* tools: add rust-etcd to the list of libraries.
* vendor: update tablewritier
* ctlv3: right-align the table output
* *: 'ignore_lease' to detach value with PutRequest
* *: regenrate proto files with 'ignore_lease'
* v3rpc: error for non empty lease with 'ignore_lease'
* etcdserver: use prev-lease for 'ignore_lease' writes
* integration: put,txn with 'ignore_lease' flag
* clientv3: add WithIgnoreLease option
* ctlv3: add '--ignore-lease' flag to put command
* e2e: test put command with '--ignore-lease' flag
* grpcproxy: handle 'IgnoreLease' field in PutRequest
* .gitignore: Adding .idea to .gitignore
* Documentation: C library added
* Documentation: Deleted non-existing project from libraries-and-tools.md
* clientv3: test closing client cancels blocking dials
* clientv3: use DialContext
* auth: refactor test to use common setup
* test: bump e2e timeout to 15 minutes
* auth: Adding unit tests
* integration: test domain name URLs are rejected before binding
* embed: reject binding listeners to domain names
* clientv3: fix balancer update address bug
* test: fix failure message in TestEmbedEtcd
* integration: add test case in dial_test to ensure balancer.updateAddrs works properly
* e2e: do not remove the member we connect to
* contrib: add etcd cluster deploy on systemd docs
* etcdmain: ppc64le platform support
* clientv3: start a session with existing lease
* auth, etcdserver: authenticate clients based on certificate CommonName
* e2e: add a case for CommonName auth of v3 API
* netutil: add dualstack to linux_route
* auth: unit-test for authStore.AuthDisable()
* auth: test for AuthStore.IsAdminPermitted
* scripts: Add support to build ppc64le binary for release
* rafthttp: use http.Request.WithContext instead of Cancel
* clientv3: remove strict yaml dependency
* test: clientv3 integration tests with proxy
* *: Use http.Request.WithContext instead of Cancel
* grpcproxy: don't use WithRequireLeader for watch event stream
* pkg/netutil: name GetDefaultInterfaces consistent
* clientv3: add DialOptions to config
* clientv3: sends keepalive reqs immediately after lease keep alive stream reset
* pkg/report: add min/max latency per second
* auth: add a test case for recoverying from snapshot
* auth: correct initialization in NewAuthStore()
* clientv3: only start lease stream after first keepalive call
* clientv3: remove cancelWhenStop from lease implementation
* clientv3/integration: stop member before keepalive in TestLeaseKeepAliveInitTimeout
* clientv3: uses direct client calls in integration tests
* test: Fix gosimple errors
* travis: Update fmt check gotools
* Documentation: replace px typo with ps
* Revert "Merge pull request #7139 from heyitsanthony/proxy-rlock"
* grpcproxy: support CountOnly
* v3rpc: LeaseTimeToLive returns TTL=-1 resp on lease not found
* clientv3/integration: test lease not found on TimeToLive()
* integration: don't expect lease not found error for TestV3GetNonExistLease
* raft: add Ready.MustSync
* etcdserverpb, clientv3: clarify WithLimit documentation
* grpcproxy: respect CompactRevision in watcher
* auth: simplify merging range perm
* travis: disable email notifications
* op-guide: fix remove instructions in runtime-configuration and conform to style
* clientv3: KeepAliveOnce returns ErrLeaseNotFound if TTL <= 0
* grpcproxy: split out leadership detection code
* grpcproxy: don't wait for ctx.Done() to close kv donec
* integration: wait five elections before creating watch for require leader test
* e2e: modify e2e to run code coverage
* etcdmain: whitelist etcd binary flags
* grpcproxy: support forcing leader as available
* Documentation/libraries-and-tools: add vitess
* clientv3: fix lease keepalive duration
* grpcproxy: refactor chan stream out of watch_client_adapter
* grpcproxy: add lease coalescing support
* grpcproxy: incorporate lease proxy into existing proxy framework
* clientv3: fix lease keepalive duration
* raft: fix read index request for #7331
* clientv3: let user provide a client context through Config
* clientv3: add cluster version checking
* integration: test RejectOldCluster
* test: add e2e to coverage test
* *: add and expose StopSignal field in ExpectProcess
* e2e: unshadow err and remove bogus err checking in spawnWithExpects()
* pkg/transport: remove dependency on pkg/fileutils
* raft: revise test case and fix typo
* op-guide: use host volume in Docker command
* clientv3: fix typo in README
* grpcproxy: only return ctx error in chan stream if recvc is empty
* tcpproxy: don't use range variable in reactivate goroutine
* clientv3: do not set next keepalive time <= now+TTL
* integration: test keepalives for short TTLs
* auth: keep old revision in 'NewAuthStore'
* integration: add 'TestV3HashRestart'
* netutil: use ipv4 host by default
* integration: permit background watch streams in TestWatchCancelOnServer
* grpcproxy: add 'register' address
* MAINTAINERS: add Fanmin
* travis: use Go 1.8 in master branch
* NEWS: add v3.1.2 release notes
* *: remove trailing space, upgrade test on v3.1
* e2e: fix -tags cov builds
* clientv3: use any port for metrics example
* etcdmain: enable grpc tracing with --debug
* embed: enable debug endpoint if Debug is set and add net.trace events
* Documentation: add documentation for grpc lease stream coalescing
* script: Build docker image for ppc64le
* integration: ensure leader is up in waitLeader() and clusterMustProgress()
* etcdctl: modify etcdctl v2 and v3 for code coverage
* e2e: add etcdctl to e2e test
* test: build test binary for etcdctl
* etcdctl: show warning if ETCDCTL_API is not set in v2 --help
* clientv3: bump example requestTimeout for slow CI
* op-guide: add notes on mounting certs directory
* grpcproxy: return closing error when stream is canceled from conn close
* raft: make TestNodeTick reliable
* test: run unused and gosimple over all packages at once
* Documentation/op-guide: use exact certs dir for Container Linux
* Documentation: suggest ionice for disk tuning
* api: default to V3 capability
* integration: don't set v3 capability since now default
* etcdctl: correctly batch revisions in make-mirror
* libraries-and-tools: rename to integrations
* production-users: add Kubernetes
* etcd-tester: check expired lease with -1 TTL
* embed: use machine default host only for default value, 0.0.0.0
* etcdmain: log machine default host after update check
* clientv3: Add KeyExists and KeyNotExists Cmp helpers
* etcdctl: Fix migrate example in README.md
* contrib: suppress gosimple errors of raftexample
* test: eschew you
* clientv3: pass back dial error on dial timeout
* *: eschew you from documentation
* vendor: lock down some soft dependencies
* test: run 'staticcheck'
* *: remove never-unused vars, minor lint fix
* Documentation: add PD to production users
* vendor: import jwt-go for auth v3
* *: support jwt token in v3 auth API
* Documentation: add qingcloud to production user
* doc: add usecase of qiniu
* Documentation: add production user
* doc: update use case of qiniu
* Documentation: Add Tencent Games to production users
* Documentation: warn membership change while migration
* doc: Add hyper.sh to production users
* doc: Add use case in Meitu Inc.
* gateway: fix the dns discovery method
* lease: guard 'Lease.itemSet' from concurrent writes
* Documentation: sign source zip files
* clientv3: close balancer to avoid goroutine leak in balancer_test.go
* e2e: don't remove member used to connect to etcd cluster
* Documentation: add Grab etcd use case
* *: fix minor typos
* backend: readtx
* mvcc: txns and r/w views
* lease: support mvcc txn
* etcdserver: support mvcc txn
* benchmark: support mvcc txn
* etcdctl: support mvcc txn
* doc: Add daocloud.io to production users
* test: install packages when building coverage tests
* clientv3util: Add KeyExists and KeyMissing examples
* clientv3: define error type for closed watcher
* grpcproxy: configure register to Cluster API
* etcdmain: add register,resolver flags
* Documentation/op-guide: document grpcproxy sync
* etcdmain: SdNotify when gateway, grpc-proxy are ready
* clientv3: serialize updating notifych in balancer
* clientv3: send frst down() func after recieving first notified addr
* Documentation: add huawei product user
* doc: add Baidu Waimai
* doc: fix title size
* NEWS: update v3.1.3
* doc: add branch.io use case into production users
* auth: nil check AuthInfo when checking admin permissions
* testutil: add CheckAfterTest for calling AfterTest without a testing.T
* clientv3: use CheckAfterTest after terminating cluster
* op-guide: update gateway routing policy
* discovery: fix print format
* Documentation: add txaio-etcd to integrations
* doc/learning: complete the api guide
* adapter, integration: split out grpc adapters from grpcproxy package
* clientv3: permit creating client without grpc connection
* concurrency: support returning response header for mutex
* v3client: a bridge between an etcdserver and a clientv3
* v3lock: server-side api for locking
* scripts: generate lock service rpc stubs
* embed: serve lock api
* integration: test grpc lock service
* Update example_key_test.go
* auth: get rid of deadlocking channel passing scheme in simpleTokenTTL
* auth: test concurrent authentication
* test: add coverage for more packages
* v3client: add example and godoc New
* integration: add TestMutexWaitsOnCurrentHolder test
* test: mask go1.8 gosimple warnings
* etcdserver: candidate should wait for applying all configuration changes
* clientv3: close open watch channel if substream is closing on reconnect
* clientv3: synchronize on goroutines in TestBalancerDoNotBlockOnClose
* ctlv3: ensure synced member list before printing env vars on member add
* v3client: fix doc to use e.Server
* clientv3: update eps if pinAddr is not included in updateAddrs
* etcdserver: remove possibly compacted entry look-up
* wal: use path/filepath instead of path
* embed: Clear default initial cluster
* *: use filepath.Join for files
* embed: don't return error when closing on embed etcd
* *: base initial mmap size on quota size
* etcdserver, backend: only warn if exceeding max quota
* e2e: force endpoint for member removal
* ctlv3: have "protobuf" in output help string instead of "proto"
* *: fix gosimple warning for fmt.Sprintf("%s")
* *: use 'io.Seek*' for go1.7+
* etcdserver: remove legacy range/txn
* Dockerfile-release: add nsswitch.conf into image
* e2e, etcdserver: fix wrong usages of ordinal
* backend: add FillPercent option
* etcdmain: handle StopNotify when ErrStopped aborted publish
* integration: ensure 'StopNotify' on publish error
* travis: always 'go get -u' in 'before_install'
* clientv3: wait for Get goroutine in TestDialCancel
* client/integration: use only digits in unix port
* Documentation: add a doc of v3 auth
* clientv3: remove redundant error handling code
* integration: wait on leader before progress check in TestRestartMember
* clientv3: make ops and compares non-opaque and mutable
* namespace: a wrapper for clientv3 to namespace requests
* etcd-2-1-0-bench: Fix an absolute bare link to resource outside of Documentation dir
* clientv3/integration: simple namespace wrapper tests
* integration: test namespacing on proxy layer
* etcdmain: add prefixing support to grpc proxy
* Documentation, op-guide, clientv3: add documentation for namespacing
* clientv3: use waitgroup to wait for substream goroutine teardown
* adt: Visit() interval trees in sorted order and terminate early
* *: revoke a deleted role
* e2e: add a test case role delete and revoke
* auth, etcdserver: forbid invalid auth management
* e2e: add a test case for invalid management of root user and role
* Documentation: add Prometheus alerting rules
* mvcc/backend: hold 'readTx.Lock' until completing bolt.Tx reset
* integration: test inflight range requests while defragmenting
* tools/etcd-tester: add timeout for 'defrag'
* Documentation: add salesforce to prod users
* integration: retry TestNetworkPartition5MembersLeaderInMajority
* auth: store cached permission information in a form of interval tree
* test: add proxy to coverage tests
* etcdserver: fix a typo in bucket name var
* raft: use rs.req.Entries[0].Data as the key for deletion in advance()
* op-guide: Remove guest role from v3 auth doc
* integration: add serialized range to TestV3CompactCurrentRev
* grpcproxy/cache: only check compaction revision for historical revisions
* testutil: check for grpc resources in AfterTest
* auth: import design doc
* NEWS: add v3.1.4, v3.1.5
* proxy/grpcproxy: add chanStream helper
* doc: link auth design in doc
* etcdctl: add initial check perf command
* grpcproxy/adapter: add maintenance API support
* compactor: make TestPeriodic die early
* clientv3,v3client: maintenance to embedded client
* integration: use maintenance API adapter in tests
* Documentation: add disk latency leader loss question to FAQ
* Documentation: fix typos
* *: use protoc 3.2.0
* compactor: fix TestPeriodic
* embed: Delay setting initial cluster for YAML
* etcdmain: test config file clustering flags
* integration: test require leader for a lease stream
* v3rpc: return leader loss error if lease stream is canceled
* clientv3/integration: test lease WithRequireLeader
* clientv3: support WithRequireLeader in lease client
* Documentation: add encryption wrapper to integrations
* clientv3: respect dial timeout when authenticating
* clientv3: test dial timeout is respected when using auth
* etcdserver: use cancelable context for server initiated requests
* integration: test cluster terminates quickly
* idgen: correct comments for id generator
* Documentation: Adding new Ruby v3 client entry to integrations.md
* Documentation: add dims v3 gateway API for python
* clientv3: fix go1.8 go fmt warning in test
* *: support checking that an interval tree's keys cover an entire interval
* *: add pprof flag to grpc proxy
* etcdctl: add a new option --from-key for unlimited range permission
* e2e: add a test case for the --open-ended option
* grpcproxy/adapter: add Cluster API support
* clientv3,v3client: add cluster embedded client
* clientv3: remove unused fields from 'auth'
* pkg/transport: remove port in Certificate.IPAddresses
* integration: use cluster adapter in tests
* test: generate coverage report even if some tests fail
* auth: use atomic access to 'authStore.revision'
* Docs: replace absolute links with relative ones.
* lease: acquire BatchTx lock in fakeDeleter
* auth, adt: introduce a new type BytesAffineComparable
* *: fix a bug in handling unix socket urls
* clientv3/yaml: use TLS 1.2 in min version
* clientv3: register waitCancelSubstreams closingc goroutine with waitgroup
* ctlv3: add '--debug' flag (to enable grpclog)
* etcdmain: support SRV discovery for gRPC proxy
* clientv3/integration: fix minor typo in Fatalf
* test: fix fmt pass and shorten suppression warnings
* *: remove os.Kill from signal.Notify
* netutil: fix unused err staticcheck failure
* vendor: upgrade grpc to 1.2.1
* vendor: upgrade grpc-gateway to v1.2.0
* concurrency: expose leader revision and proclaim headers for election
* concurrency: return v3.GetResponse for Election.Leader()
* concurrency: only delete on election resignation if create revision matches
* concurrency: support resuming elections if leadership already held
* concurrency: don't skip leader updates in Observe()
* v3rpc: force RangeEnd=nil if length is 0
* scripts: update genproto.sh to include v3election
* v3election: Election RPC service
* integration: v3 election rpc tests
* embed: add Election service
* etcd-runner: update election command to use new Leader() interface
* Documentation: Adds AWS platform guide
* test: remove generated files from coverage statistics
* *: add swagger and grpc-gateway assets for v3lock and v3election
* embed: register grpc-gateway endpoints for v3lock and v3election
* test: ignore v3electionpb and v3lockpb for static checks
* rafthttp: move test-only functions to '_test.go'
* benchmark: add txn-put benchmark
* vendor: update 'golang.org/x/net'
* *: coreos/rkt -> rkt/rkt
* Documentation/learning: finish why.md
* Documentation: Add Hosted Graphite to prod users
* *: rename Snapshot STM isolation to SerializableSnapshot
* Documentation: add missing link
* integration: test requests with valid auth token but disabled auth
* auth: protect simpleToken with single mutex and check if enabled
* *: deny incoming peer certs with wrong IP SAN
* transport: use actual certs for listener tests
* tools/benchmark: fix misc gofmt warnings
* test: do not ignore 'tools/benchmark/cmd'
* Documentation: reshuffle op-guide to include platforms and upgrading
* *: return updated member list in v3 rpcs
* report: add test for Report interface
* discovery: remove dead token argument from SRVGetCluster
* clientv3: let client.Dial() dial endpoints not in the balancer
* integration: test client can dial endpoints not in balancer
* etcdserver: let Status() not require authentication
* Documentation: Adding a separate v2 and a v3 API binding for C++
* embed: remove ReadTimeout TODO
* pkg/transport: add 'IsClosedConnError'
* rafthttp: use 'transport.IsClosedConnError'
* clientv3/integration: use 'transport.IsClosedConnError'
* etcdserver: wait apply on conf change Raft entry
* etcdctl: show responses of auth RPCs if --write-output=fields is passed
* auth: fix race on stopping simple token keeper
* clientv3/namespace: fix incorrect watching prefix-end
* clientv3/integration: test fetching entire keyspace
* clientv3: translate WithPrefix() into WithFromKey() for empty key
* benchmark: a new flag --target-leader for targetting a leader endpoint
* op-guide: add command for checking if there's any v3 data
* etcdmain: trigger embed.Etcd.Close for OS interrupt
* embed: gracefully shut down gRPC server
* integration: test 'inflight' range requests
* Revert "mvcc: test inflight Hash to trigger Size on nil db"
* mvcc/backend: remove t.tx.DB()==nil checks with GracefulStop
* mvcc: remove stopc select case in Hash
* etcdserver: fill-in Auth API Header in apply layer
* integration: test auth API response header revision
* vendor: update gopkg.in/yaml.v2 to reflect current license
* *: add bill of materials
* clientv3/integration: add 'TestUserErrorAuth'
* travis: bump up to Go 1.8.1
* integration: use 'time.Until' in Go 1.8
* *: use '*tls.Config.Clone' in Go 1.8
* raft: Avoid holding unneeded memory in unstable log's entries array
* etcdserver: initialize raftNode with constructor
* NEWS: update v3.1.6
* pkg/debugutil: add 'mutex' profiler (Go 1.8+)
* embed: use '*url.URL.Hostname(),Port()' for Go 1.8
* transport: resolve DNSNames when SAN checking
* embed: signal 'grpcServerC' before cmux serve
* *: simply ignore ErrAuthNotEnabled in clientv3 if auth is not enabled
* clientv3/integration: sleep less in TestLeaseRenewLostQuorum
* etcdserver: remove 2.0 StatusNotFound version check
* ctlv3: keep lease as integer in fields printer
* scripts: move gateway stubs into gw/ packages
* *: put gateway stubs into their own packages
* test: ensure clientv3 has no grpc-gateway dependency
* ctlv3: use printer for lease command results
* vendor: update 'golang.org/x/time/rate' with context
* vendor: use 'x/net/trace' with std 'context'
* netutil: use "context" and ctx-ize TCP addr resolution
* build-binary: Add arm64
* build-aci: Add multi arch support
* build-docker: Updates for multi-arch release
* release: Add multi arch support
* release.md: Update for multi arch release
* *: clear redundant return statement warnings (S1027)
* integration: add pause/unpause to client bridge
* clientv3/integration: test watch resume with disconnect before first event
* clientv3: only update initReq.rev == 0 with creation watch revision
* v2http: remove deprecated /v2/machines path
* integration: permit dropping intermediate leader values on observe
* concurrency: clarify Observe semantics; only fetches subsequence
* clientv3: set current revision to create rev regardless of CreateNotify
* testutil: add assert functions
* store: replace testify asserts with testutil asserts
* scripts: remove testify hack in updatedep
* vendor: remove testify
* clientv3: don't halt lease client if there is a lease error
* concurrency: use new lease interface in session
* clientv3/integration: use new interfaces in lease tests
* etcdcdtl: use new lease interface
* grpcproxy: use new lease interface
* etcd-runner: update to use new lease interface
* benchmark: use new lease interface
* integration: close proxy's lease client
* etcd-runner: move root cmd into command package
* etcdserver: ensure waitForApply sync with applyAll
* etcdserver: do not block on raft stopping
* etcd-runner: add rate limiting in doRounds()
* etcd-runner: add barrier, observe !ok handling, and election name arg to election-runner.
* etcd-runner: add lease ttl as a flag and fatal when err in lease-runner.
* etcd-runner: pass in lock name as a command arg for lock_racer.
* etcd-runner: add --prefix flag, allows inf round, and minor vars refactoring in watch runner.
* etcd-runner: integrate etcd runner in to etcd tester
* v3client: wrap watch ctxs with blank ctx
* Documentation: require Go 1.8+ for build
* integration: test Observe can read leaders set prior to compaction
* concurrency: use current revisions for election
* integration/fixtures: add expired certs
* clientv3/integration: test client dial with expired certs
* test: bill of materials check pass
* vendor: revendor speakeasy to include unix license file
* travis: add bill-of-materials checking
* raft: Set the RecentActive flag for newly added nodes
* pkg/transport: reload TLS certificates for every client requests
* pkg/wait: add comment and make List private
* integration: test TLS reload
* Documentation: add upgrade to 3.2 doc
* integration: match more TLS errors for wrong certs
* version: bump up to 3.2.0-rc.0
* version: bump up to 3.2.0-rc.0+git
* Documentation/v2: pin docker guide to use latest 2.3.x
* Documentation: add documentation for single node docker etcd
* scripts: annotate with acbuild with supports-systemd-notify
* embed: fix blocking Close before gRPC server start
* Revert "Merge pull request #7732 from heyitsanthony/lease-err-ka"
* Documentation/upgrades: revert KeepAlive interface change
* add chain core to raft users list
* integration: ensure revoke completes before TimeToLive
* etcdserver: apply() sets consistIndex for any entry type
* clientv3: don't race on upc/downc/switch endpoints in balancer
* integration: close accepted connection on stopc path
* etcdserver: add a test to ensure config change also update ConsistIndex
* concurrency: provide old STM functions as deprecated
* integration: clean up TLS reload tests, fix no-file while renaming
* integration: close proxy's lease client
* clientv3/integration: drain keepalives before waiting for leader loss
* Documentation/v2: fix broken links
* Documentation/v3: fix broken links
* *: fix other broken links in markdown
* integration/fixtures-expired: do not force 'rm'
* scripts,travis: install 'marker' for CI tests
* test: run 'marker' to find broken links
* Documentation: remove '[]' from '[DEPRECATED]'
* compactor: Make periodic compactor runs every hour
* raft: Add unit test TestAddNodeCheckQuorum
* backend: print snapshotting duration warning every 30s
* pkg/srv: package for SRV utilities
* clientv3: check IsModify
* backend: add prometheus metric for large snapshot duration.
* README: use the same tagline from github
* embed: gracefully close peer handlers on shutdown
* etcdmain, tcpproxy: srv-priority policy
* clientv3: Do no stop keep alive loop by server side errors
* scripts: add 'BOM' update script
* v3rpc: remove duplicated error case for lease.ErrLeaseNotFound
* etcdserver: renaming db happens after snapshot persists to wal and snap files
* etcdserver: add a test to ensure renaming db happens before persisting wal and snap files
* etcd-runner: remove mutex on validate() and release() in global.go
* etcd-runner: fix race on nextc
* grpcproxy, etcdmain: add lock and election services to proxy
* adpater: adapters for lock and election services
* integration: add lock and election services to proxy tests
* pkg/srv: fix error checks from resolveTCPAddr
* clientv3: remove duplicate documentation for Do()
* snap, etcdserver: tighten up snapshot path handling
* backend: dynamically set snapshotWarningTimeout based on db size
* faq: explains "snapshotting is taking more..." warning
* expect: reload DEBUG_EXPECT for each process
* etcd-agent: store failure_archive in log dir
* functional-tester: use log-dir as data-dir in etcd-agent
* e2e: more debugging output for lock and elect etcdctl tests
* integration: reset default logging level in TestRestartRemoved
* osutil: force SIG_DFL before resending terminating signal
* backend: force initial mmap size to 0 for windows
* *: remove unnecessary fmt.Sprint
* pkg/osutil: fix missing 'syscall' import
* benchmark: add rpc locks to stm benchmark
* benchmark: add rate limiting to stm
* travis: test builds in other OSes
* bridge: add tx-delay and rx-delay
* e2e: Stop() lock/elect etcdctl process if Close times out
* tcpproxy: display endpoints, not pointers, in ready to proxy string
* etcdserver: more logging on snapshot close path
* report: add NewWeightedReport
* op-guide: remove alpha from grpc proxy
* *: fill out blank package godocs
* etcd-tester: use 'debugutil.PProfHandlers'
* etcd-tester: add '-failpoints' to configure gofail
* *: remove unused, fix typos
* integration: bump up 'TestV3LeaseRequireLeader' timeout to 5-sec
* version: bump up to 3.2.0-rc.1
* version: bump up to 3.2.0-rc.1+git
* ctlv3: add --prefix support to role revoke-permission, cleanup role flag handling
* etcdctl: sync README with etcdctl role command, add prefix example, fix typo
* Documentation, scripts: regenerate protobuf docs with updated protodoc
* clientv3, etcdserver: support auth in Watch()
* e2e: add a new test case for protecting watch with auth
* Documentation/learning: fixed typo
* etcdserver: close mvcc.KV on init error path
* Documentation: add systemd, Container Linux guide
* doc: modify usecase
* benchmark: support multiple clients/conns in watch-latency benchmark
* travis: run tests with Go 1.8.3
* test: release tests with v3.2+
* ROADMAP: make 'release-3.2' stable branch
* e2e: use version.Cluster for release test
* etcdctl: support exec on lock
* Documentation: add FAQ entry for "database space exceeded" errors
* Documentation: add 'yaml.NewConfig' change in 3.2
* vendor: use v0.2.0 of go-semver
* op-guide: update performance.md
* vendor: kr/pty v1.0.0
* vendor: ghodss/yaml v1.0.0
* clientv3: use Endpoints[0] to initialize grpc creds
* clientv3/integration: test dialing to TLS without a TLS config times out
* clientv3: support unixs:// scheme
* integration: use unixs:// if client port configured for tls
* mvcc: chunk reads for restoring
* mvcc: time restore in restore benchmark
* op-guide: document configuration flags for gateway
* Documentation, scripts: regen RPC docs
* scripts, Documentation: fix swagger generation
* op-guide: document CN certs in security.md
* test: speedup and strengthen go vet checking
* *: fix go tool vet -all -shadow errors
* Documentation/op-guide: fix typo in grafana.json
* test, osutil: disable setting SIG_DFL on linux if built with cov tag
* test: shellcheck
* travis: add shellcheck
* *: clear rarer shellcheck errors on scripts
* fileutil: return immediately if preallocating 0 bytes
* Documentation/op-guide: fix 'grpc_code' field in metrics
* etcdserver: add leaseExpired debugging metrics
* v2http: put back /v2/machines and mark as non-deprecated
* Documentation/op-guide: do not use host network, fix indentation
* integration: test txn comparison and concurrent put ordering
* mvcc: create TxnWrites from TxnRead with NewReadOnlyTxnWrite
* etcdserver: use same ReadView for read-only txns
* rafthttp: permit very large v2 snapshots
* version: bump up to 3.2.0
* version: bump up to 3.2.0+git
* Documentation/upgrades: link to previous guides
* build-aci: Fix ACI image name
* bill-of-materials: regenerate with multi licenses
* Documentation/op-guide: fix failed RPC rate, leader election metrics
* test: 'FAIL' on release binary download failure
* e2e: test txn over grpc json
* dev-guide: add txn json example
* v3rpc: treat nil txn request op as error
* integration: test mvcc db size metric is set on restore
* mvcc: set db size metric on restore
* mvcc: test restore and deletes with small chunk sizes
* mvcc: restore into tree index with one key index
* etcd-tester: add 'exit-on-failure'
* test: run basic functional tests
* integration: test mvcc db size metric is updated following defrag
* mvcc: use GaugeFunc metric to load db size when requested
* version: bump up to 3.2.1
* version: bump up to v3.2.1+git
* lease: rate limit revoke runLoop
* lessor: extend leases on promote if expires will be rate limited
* benchmark: refactor watch benchmark
* Documentation/v2: 'etcd v2' to the title
* Documentation/faq: fix typo in flag names
* lease: stop lessors after tests
* fixtures: add gencerts.sh, generate CRL
* embed: share grpc connection for grpc json services
* embed: connect json gateway with user-provided listen address
* transport: accept connection if matched IP SAN but no DNS match
* dev-guide: update experimental APIs
* version: bump up to 3.2.2
* version: bump up to 3.2.2+git
* Documentation: refer to LeaseKeepAliveRequest for lease refresh
* dev-guide: document using range_end for prefixes with json
* v3rpc: Let clients establish unlimited streams
* test: sync with etcd-agent start in functional_pass
* testutil: whitelist WaitGroup.Done
* version: bump up to 3.2.3
* version: bump up to 3.2.3+git
* embed: wait up to request timeout for pending RPCs when closing
* integration: test embed.Etcd.Close with watch
* grpcproxy: return nil on receiving snapshot EOF
* version: bump up to 3.2.4