commit 1912d74762d1d22b070504cf1c05d20f564732bf830b363fa6c517a19970992e Author: Alexandre Vicenzi Date: Mon Oct 7 13:31:30 2024 +0000 - vendor-update.sh: Fix static /tmp file issue (bsc#1199031) OBS-URL: https://build.opensuse.org/package/show/devel:kubic/etcd?expand=0&rev=29 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/README.security b/README.security new file mode 100644 index 0000000..c1d4d68 --- /dev/null +++ b/README.security @@ -0,0 +1,10 @@ +By default etcd doesn't require authentication. If you configure etcd to be reachable +over the network, have untrustworthy local users on the system where etc runs or store +data in etcd that needs to be kept confidential please make sure to enable authentication. + +You can do that by configuring the settings under [security] in /etc/sysconfig/etcd. +For additional guidance please read +https://etcd.io/docs/v3.5/op-guide/configuration/#security +and +https://etcd.io/docs/v3.5/op-guide/authentication +to ensure that you enforce proper access control diff --git a/_service b/_service new file mode 100644 index 0000000..1ba3c86 --- /dev/null +++ b/_service @@ -0,0 +1,19 @@ + + + https://github.com/etcd-io/etcd.git + git + .git + v3.5.12 + @PARENT_TAG@ + enable + v(.*) + + + + + *.tar + gz + + + + diff --git a/_servicedata b/_servicedata new file mode 100644 index 0000000..4f5461e --- /dev/null +++ b/_servicedata @@ -0,0 +1,8 @@ + + + https://github.com/coreos/etcd.git + 94745a4eed0425653b3b4275a208d38babceeaec + git://github.com/etcd-io/etcd.git + 99018a77bea9a9d29962e5169876c64e02739c52 + https://github.com/etcd-io/etcd.git + e7b3bb6ccac840770f108ef9a0f013fa51b83256 \ No newline at end of file diff --git a/etcd-3.5.12.tar.gz b/etcd-3.5.12.tar.gz new file mode 100644 index 0000000..b5b19b0 --- /dev/null +++ b/etcd-3.5.12.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de10f81bb463e1e057d3a76eaf252c360e5b2b082f2b646539b1ab6e1509d84e +size 4138338 diff --git a/etcd.changes b/etcd.changes new file mode 100644 index 0000000..a08976f --- /dev/null +++ b/etcd.changes @@ -0,0 +1,2113 @@ +------------------------------------------------------------------- +Mon Sep 2 15:08:01 UTC 2024 - Wolfgang Frisch + +- vendor-update.sh: Fix static /tmp file issue (bsc#1199031) + +------------------------------------------------------------------- +Mon Mar 25 09:07:45 UTC 2024 - Elisei Roca + +- Update to version 3.5.12: + * version: bump up to 3.5.12 + * Bump golang.org/x/crypto to v0.17+ to address CVE-2023-48795 + * test: fix TestHashKVWhenCompacting: ensure all goroutine finished + * print error log when creating peer listener failed + * mvcc: Printing etcd backend database related metrics inside scheduleCompaction function + * dependency: update go version to 1.20.13 + * commit bbolt transaction if there is any pending deleting operations + * add tests to test tx delete consistency. + * Don't flock snapshot files + * Backport adding digest for etcd base image. + * Add a unit tests and missing flags in etcd help. + * Add missing flag in etcd help. + * Backport testutils.ExecuteUntil to 3.5 branch + * member replace e2e test + * Check if be is nil to avoid panic when be is overriden with nil by recoverSnapshotBackend on line 517 + * Don't redeclare err and snapshot variable, fixing validation of consistent index and closing database on defer + * test: enable gofail in release e2e test. + * [3.5] backport health check e2e tests. + * tests: Extract e2e cluster setup to separate package + +------------------------------------------------------------------- +Tue Feb 6 08:11:41 UTC 2024 - Dominique Leuenberger + +- Drop go_provides macro: it is guarded by if suse_version <= 1110, + yet has a negative impact on the general RPM dep/provides scanner + (i.e user provides were not added). +- Drop go_nostrip macro, as it does nothing useful. + +------------------------------------------------------------------- +Fri Jan 19 16:30:44 UTC 2024 - Elisei Roca + +- Update to version 3.5.11: + * version: bump up to 3.5.11 + * etcdserver: add linearizable_read check to readyz. + * etcd: Update go version to 1.20.12 + * server: disable redirects in peer communication + * etcdserver: add metric counters for livez/readyz health checks. + * etcdserver: add livez and ready http endpoints for etcd. + * http health check bug fixes + * server: Split metrics and health code + * server: Cover V3 health with tests + * server: Refactor health checks + * server: Run health check tests in subtests + * server: Rename test case expect fields + * server: Use named struct initialization in healthcheck test + * Backport server: Don't follow redirects when checking peer urls. + * Backport embed: Add tracing integration test. + * Backport server: Have tracingExporter own resources it initialises. + * Backport server: Add sampling rate to distributed tracing. + * upgrade github.com/stretchr/testify,google.golang.org/genproto/googleapis/api,google.golang.org/grpc to make it consistent + * CVE-2023-47108: Backport go.opentelemetry.io/otel@v1.20.0 and go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc@v0.46.0 + * github workflow: run arm64 tests on every push + * etcd: upgrade go version from 1.20.10 to 1.20.11 + * version: bump up to 3.5.10 + * bump bbolt to 1.3.8 for etcd 3.5 + * 3.5: upgrade gRPC-go to 1.58.3 + * Backport corrupt check test fix "etcd server shouldn't wait for the ready notification infinitely on startup" + * etcdserver: add cluster id check for hashKVHandler + * [release-3.5]: upgrade gRPC-go to v1.52.0 + * backport #14125 to release-3.5: Update to grpc-1.47 (and fix the connection-string format) + * Return to default write scheduler since golang.org/x/net@v0.11.0 started using round robin + * Bump go to v1.20.10 Part of https://github.com/etcd-io/etcd/issues/16740 + * bump golang.org/x/net to 0.17.0 Part of https://github.com/etcd-io/etcd/issues/16740 + * etcd: upgrade go version to 1.20.9 + * Remove obsolete http 1.0 version. + * fix:Ensure that go version is only defined in one file for release-3.5 + * Fix panic in etcd validate secure endpoints + * dependency: bump golang to 1.20.8 + * Backport redirect metrics data into file to reduce output. + * test.sh: increase timeout for grpcproxy test + * test: add v3 curl test to cover maintenance hash/hashkv REST API + * api: fix duplicate gateway url issue + * pkg: add a verification on the pagebytes which must be > 0 + * tests: Backport deflake for TestWatchDelay + * tests: Backport deflake for TestPageWriterRandom + * Backport adding unit test for socket options. + * Backport export reuse-port and reuse-address + * Fix goword failure in rafthttp/transport.go. + * Backport update to golang 1.20 minor release. + * bump go version to 1.19.12 + * Update workflows to use makefile recipes for unit, integration & e2e-release. + * Backport Makefile recipes for common test commands. + * pkg/flags: fix UniqueURLs'Set to remove duplicates in UniqueURLs'uss + * Backport fix to e2e release version identifcation. + * Backport #14368 to v3.5 + * Follow up https://github.com/etcd-io/etcd/pull/16068#discussion_r1263667496 + * etcdserver: backport check scheduledCompactKeyName and finishedCompactKeyName before writing hash to release-3.5. + * Backport #13577 Disable auth gracefully without impacting existing watchers. + * bump go version to 1.19.11 to fix CVE GO-2023-1878 + * clientv3: create keepAliveCtxCloser goroutine only if ctx can be canceled + * [3.5] etcdutl: fix db double closed + * clientv3: remove v3.WithFirstKey() in Barrier.Wait() + * update etcdctl flag description for snapshot restores + * etcdutl: update description for --mark-compacted and --bump-revision flags in snapshot restore command + * Adding optional revision bump and mark compacted to snapshot restore + * Revert "Merge pull request #16119 from natusameer/release-3.5" + * Add e2e-arm64.yaml and tests-arm64.yaml to release-3.5 scheduled at 1.30 + * Backport .github/workflows: Read .go-version as a step and not separate workflow. + * Add first unit test for authApplierV3 + * Early exit auth check on lease puts + * remove stack log when etcdutl restore + * etcdserver: fix corruption check when server has just been compacted + * replace gobin with go install + * [3.5] Backport updating go to latest patch release 1.19.10 + * add compact hash check to help + * Fix test of clientv3/naming + * clientv3/naming/endpoints: fix endpoints prefix bug fixes bug with multiple endpoints with same prefix + * grpcproxy: fix memberlist results not update when proxy node down + +------------------------------------------------------------------- +Thu May 25 08:53:52 UTC 2023 - Elisei Roca + +- Update to version 3.5.9: + * version: bump up to 3.5.9 + * Move go version to dedicated .go-version file + * tests: e2e and integration test for timetolive + * etcdserver: protect lease timetilive with auth + * Backport go update to latest patch release 1.19.9. + * Backport centralising go version for actions workflows. + * server: backport 15743, improved description of --initial-cluster-state flag + +------------------------------------------------------------------- +Wed Apr 26 08:46:04 UTC 2023 - Elisei Roca + +- Update to version 3.5.8: + * version: bump up to 3.5.8 + * etcdserver: Guarantee order of requested progress notifications + * etcdserver: verify field 'username' and 'revision' present when decoding a JWT token + * set zap logging to wsproxy + * security: remove password after authenticating the user + * test: add an e2e test to reproduce https://nvd.nist.gov/vuln/detail/CVE-2021-28235 + * bump golang to 1.19.8 + * server/auth: disallow creating empty permission ranges + * chore: enable strict mode for test CI + * Fixes: #15266 All docker images of Architecture show amd64 + * scripts: Add testing of etcd in local image in release workflow. + * server: Fix defer function closure escape + * tests: Test separate http port connection multiplexing + * server: Add --listen-client-http-urls flag to allow running grpc server separate from http server + * server: Pick one address that all grpc gateways connect to + * server: Extract resolveUrl helper function + * server: Separate client listener grouping from serving + * refactor: Use proper variable names for urls + * sever/auth: fix addUserWithNoOption of store_test + * server/auth: fix auth panic bug when user changes password + * Automated cherry-pick of #14860: Trigger release in current branch for github workflow case + * server/embed: fix data race when start insecure grpc + * server: Test watch restore + * mvcc: update minRev when watcher stays synced + * tests: Add v2 API to connection multiplexing test + * tests: Add connection muiltiplexer testing + * tests: Backport RunUtilCompletion + * tests: Backport tls for etcdctl + * tests: Extract e2e test utils + * tests: Allow specifying http version in curl + * tests: Refactor newClient args + * tests: Refactor CURLPrefixArgs + * Backport tls 1.3 support. + * server: Switch back to random scheduler to improve resilience to watch starvation + * test: Test etcd watch stream starvation under high read response load when sharing the same connection + * tests: Allow configuring progress notify interval in e2e tests + * Run go mod tidy + * Updated go to 1.19.7. + * Backport go_srcs_in_module changes and fix goword failures. + * Formatted source code for go 1.19.6. + * Bump to go 1.19.6 + * Bump golang.org/x/net to v0.7.0 to address CVE GO-2023-1571. + * test:enhance the test case TestV3WatchProgressOnMemberRestart + * clientv3: correct the nextRev on receving progress notification response + * etcdserver: add failpoints walBeforeSync and walAfterSync + * Fix regression in timestamp resolution + * upgrade cockroachdb/datadriven to v1.0.2 to remove archived dependencies + * bump github.com/stretchr/testify to v1.8.1 + * bump bbolt to v1.3.7 for release-3.5 + * netutil: consistently format ipv6 addresses + * docker: remove nsswitch.conf + +------------------------------------------------------------------- +Wed Jan 25 13:19:15 UTC 2023 - Elisei Roca + +- Add -trimpath which removes specific build time paths from the binary +- Add -w to strip DWARF symbols, not needed + +- Update to version 3.5.7: + * version: bump up to 3.5.7 + * etcdserver: return membership.ErrIDNotFound when the memberID not found + * etcdserver: process the scenaro of the last WAL record being partially synced to disk + * update nsswitch.conf for 3.5 + * 3.5: remove the dependency on busybox + * Remove dependency on gobin + * resolve build error: parameter may not start with quote character ' + * remove .travis.yml + * format the source code and tidy the dependencies using go 1.17.13 + * bump go version to 1.17.13 + * deps: bump golang.org/x/net to v0.4.0 to address CVEs + * security: use distroless base image to address critical Vulnerabilities + * cidc: specify the correct branch name of release-3.5 in workflow for trivy nightly scan + * Add trivy nightly scan for release-3.5 + * clientv3: revert the client side change in 14547 + * client/pkg/v3: fixes Solaris build of transport + * etcdserver: fix nil pointer panic for readonly txn + * Fix go fmt error + * [3.5] Backport: non mutating requests pass through quotaKVServer when NOSPACE + * etcdserver: intentionally set the memberID as 0 in corruption alarm + +- Update to version 3.5.6: + * version: bump up to 3.5.6 + * release: build with consistent paths + * client/pkg/fileutil: add missing logger to {Create,Touch}DirAll + * test: add test case to cover the CommonName based authentication + * test: add certificate with root CommonName + * clientv3: do not refresh token when using TLS CommonName based authentication + * etcdserver: call the OnPreCommitUnsafe in unsafeCommit + * add range flag for delete in etcdctl + * server: add more context to panic message + * fix:close conn + * clientv3: fix the design & implementation of double barrier + * test: added e2e test case for issue 14571: etcd doesn't load auth info when recovering from a snapshot + * etcdserver: call refreshRangePermCache on Recover() in AuthStore. #14574 + * server: add a unit test case for authStore.Reocver() with empty rangePermCache + * Backport #14591 to 3.5. + * client/v3: Add backoff before retry when watch stream returns unavailable + * etcdserver: added more debug log for the purgeFile goroutine + * netutil: make a `raw` URL comparison part of the urlsEqual function + * Apply suggestions from code review + * netutil: add url comparison without resolver to URLStringsEqual + * tests/Dockerfile: Switch to ubuntu 22.04 base + * Makefile: Additional logic fix + * *: avoid closing a watch with ID 0 incorrectly + * tests: a test case for watch with auth token expiration + * *: handle auth invalid token and old revision errors in watch + * server/etcdmain: add configurable cipher list to gRPC proxy listener + * Replace github.com/form3tech-oss/jwt-go with https://github.com/golang-jwt/jwt/v4 + +- Update to version 3.5.5: + * version: bump up to 3.5.5 + * fix the flaky test fix_TestV3AuthRestartMember_20220913 for 3.5 + * etcdctl: fix move-leader for multiple endpoints + * testing: fix TestOpenWithMaxIndex cleanup + * server,test: refresh cache on each NewAuthStore + * server/etcdmain: add build support for Apple M1 + * tests: Fix member id in CORRUPT alarm + * server: Make corrtuption check optional and period configurable + * server: Implement compaction hash checking + * tests: Cover periodic check in tests + * server: Refactor compaction checker + * tests: Move CorruptBBolt to testutil + * tests: Rename corruptHash to CorruptBBolt + * tests: Unify TestCompactionHash and extend it to also Delete keys and Defrag + * tests: Add tests for HashByRev HTTP API + * tests: Add integration tests for compact hash + * server: Cache compaction hash for HashByRev API + * server: Extract hasher to separate interface + * server: Remove duplicated compaction revision + * server: Return revision range that hash was calcualted for + * server: Store real rv range in hasher + * server: Move adjusting revision to hasher + * server: Pass revision as int + * server: Calculate hash during compaction + * server: Fix range in mock not returning same number of keys and values + * server: Move reading KV index inside scheduleCompaction function + * server: Return error from scheduleCompaction + * server: Refactor hasher + * server: Extract kvHash struct + * server: Move unsafeHashByRev to new hash.go file + * server: Extract unsafeHashByRev function + * server: Test HashByRev values to make sure they don't change + * server: Cover corruptionMonitor with tests + * server: Extract corruption detection to dedicated struct + * server: Extract triggerCorruptAlarm to function + * move consistent_index forward when executing alarmList operation + * fix the potential data loss for clusters with only one member + * [backport 3.5] server: don't panic in readonly serializable txn + * Backport of pull/14354 to 3.5.5 + * Refactor the keepAliveListener and keepAliveConn + * clientv3: close streams after use in lessor keepAliveOnce method + * Change default sampling rate from 100% to 0% + * Fix the failure in TestEndpointSwitchResolvesViolation + * update all related dependencies + * move setupTracing into a separate file config_tracing.go + * etcdserver: bump OpenTelemetry to 1.0.1 + * Change default sampling rate from 100% to 0% + * server/auth: protect rangePermCache with a RW lock + * Improve error message for incorrect values of ETCD_CLIENT_DEBUG + * add e2e test cases to cover the maxConcurrentStreams + * Add flag `--max-concurrent-streams` to set the max concurrent stream each client can open at a time + * add the uint32Value data type + * Client: fix check for WithPrefix op + * client/v3: do not overwrite authTokenBundle on dial + * restrict the max size of each WAL entry to the remaining size of the file + * Add FileReader and FileBufReader utilities + * Backport two lease related bug fixes to 3.5 + * scripts: Detect staged files before building release + * scripts: Avoid additional repo clone + * Make DRY_RUN explicit + * scripts: Add tests for release scripts + * server/auth: enable tokenProvider if recoved store enables auth + * Update golang.org/x/crypto to latest + +------------------------------------------------------------------- +Mon Jul 18 05:47:16 UTC 2022 - dmueller@suse.com + +- Update to version 3.5.4: + * version: bump up to 3.5.4 + * Update conssitent_index when applying fails + * Add unit test for canonical SRV records + * Revert "trim the suffix dot from the srv.Target for etcd-client DNS lookup" + +------------------------------------------------------------------- +Thu Apr 28 13:35:37 UTC 2022 - Johannes Kastl + +- add variable ETCD_OPTIONS to both service unit and configuration file + this allows the user to easily add things like "--enable-v2=true" + +------------------------------------------------------------------- +Wed Apr 20 13:18:23 UTC 2022 - Elisei Roca + +- Update to version 3.5.3: + https://github.com/etcd-io/etcd/compare/v3.5.2...v3.5.3 + + * clientv3: disable mirror auth test with proxy + * cv3/mirror: Fetch the most recent prefix revision + * set backend to cindex before recovering the lessor in applySnapshot + * support linearizable renew lease + * clientv3: filter learners members during autosync + * etcdserver: upgrade the golang.org/x/crypto dependency + * fix the data inconsistency issue by adding a txPostLockHook into the backend + * server: Save consistency index and term to backend even when they decrease + * server: Add verification of whether lock was called within out outside of apply + * go.mod: Upgrade to prometheus/client_golang v1.11.1 + * server: Use default logging configuration instead of zap production one + * Fix offline defrag + * backport 3.5: #13676 load all leases from backend + * server/storage/backend: restore original bolt db options after defrag + * always print raft term in decimal when displaying member list in json + * enhance health check endpoint to support serializable request + * trim the suffix dot from the srv.Target for etcd-client DNS lookup + +------------------------------------------------------------------- +Thu Mar 10 12:15:44 UTC 2022 - Elisei Roca + +- Add vendor-update.sh as a source to pass obs-service-source_validator + +------------------------------------------------------------------- +Wed Mar 9 14:07:20 UTC 2022 - Elisei Roca + +- Drop ETCD_UNSUPPORTED_ARCH=arm64 from sysconfig as ARM64 is now officially supported +- Update go version to 1.16 +- Update etcd.conf variables +- Add the new etcdutl into separate subpackage +- Update vendor.tar.gz to include vendoring for server, etcdctl and etcdutl + * see ./vendor-update.sh + +------------------------------------------------------------------- +Wed Feb 23 15:54:14 UTC 2022 - Elisei Roca + +- Update to version 3.5.2: + * version: bump up to 3.5.2 + * Update dep: require gopkg.in/yaml.v2 v2.2.8 -> v2.4.0 due to: CVE-2019-11254. + * fix runlock bug + * server: Require either cluster version v3.6 or --experimental-enable-lease-checkpoint-persist to persist lease remainingTTL + * etcdserver,integration: Store remaining TTL on checkpoint + * lease,integration: add checkpoint scheduling after leader change + * set the backend again after recovering v3 backend from snapshot + * *: implement a retry logic for auth old revision in the client + * client/v3: refresh the token when ErrUserEmpty is received while retrying + * server/etcdserver/api/etcdhttp: exclude the same alarm type activated by multiple peers + * storage/backend: Add a gauge to indicate if defrag is active (backport from 3.6) + +- Update to version 3.5.1: + * version: 3.5.1 + * Dockerfile: bump debian bullseye-20210927 + * client: Use first endpoint as http2 authority header + * tests: Add grpc authority e2e tests + * client: Add grpc authority header integration tests + * tests: Allow configuring integration tests to use TCP + * test: Use unique number for grpc port + * tests: Cleanup member interface by exposing Bridge directly + * tests: Make using bridge optional + * tests: Rename grpcAddr to grpcURL to imply that it includes schema + * tests: Remove bridge dependency on unix + * Decouple prefixArgs from os.Env dependency + * server: Ensure that adding and removing members handle storev2 and backend out of sync + * Stop using tip golang version in CI + * fix self-signed-cert-validity parameter cannot be specified in the config file + * fix health endpoint not usable when authentication is enabled + * workflows: remove ARM64 job for maintenance + +- Update to version 3.5.0: + * See link below, diff is too big + https://github.com/etcd-io/etcd/compare/v3.4.16...v3.5.0 + +------------------------------------------------------------------- +Tue Sep 14 07:23:37 UTC 2021 - Johannes Segitz + +- Added hardening to systemd service(s) (bsc#1181400). Modified: + * etcd.service + +------------------------------------------------------------------- +Mon Aug 9 14:22:24 UTC 2021 - Thorsten Kukuk + +- Don't require systemd (works without, too) + +------------------------------------------------------------------- +Sun Aug 8 19:17:44 UTC 2021 - Callum Farmer + +- Change to sysuser-tools to create system user + +------------------------------------------------------------------- +Thu May 13 13:42:05 UTC 2021 - alexandre.vicenzi@suse.com + +- Update to version 3.4.16: + * version: 3.4.16 + * Backport-3.4 exclude alarms from health check conditionally + * etcdserver/mvcc: update trace.Step condition + * Backport-3.4 etcdserver/util.go: reduce memory when logging range requests + * .travis,Makefile,functional: Bump go 1.12 version to v1.12.17 + * integration: Fix 'go test --tags cluster_proxy --timeout=30m -v ./integration/...' + * pkg/tlsutil: Adjust cipher suites for go 1.12 + * Fix pkg/tlsutil (test) to not fail on 386. + * bill-of-materials.json: Update golang.org/x/sys + * .travis,test: Turn race off in Travis for go version 1.15 + * integration : fix TestTLSClientCipherSuitesMismatch in go1.13 + * vendor: Run go mod vendor + * go.mod,go.sum: Bump github.com/creack/pty that includes patch + * go.mod,go.sum: Comply with go v1.15 + * etcdserver,wal: Convert int to string using rune() + * integration,raft,tests: Comply with go v1.15 gofmt + * .travis.yml: Test with go v1.15.11 + * pkpkg/testutil/leak.go: Allowlist created by testing.runTests.func1 + * vendor: Run go mod vendor + * go.sum, go.mod: Run go mod tidy with go 1.12 + * go.mod: Pin go to 1.12 version + * etcdserver: fix incorrect metrics generated when clients cancel watches + * integration: relax leader timeout from 3s to 4s + * etcdserver: when using --unsafe-no-fsync write data + * server: Added config parameter experimental-warning-apply-duration + * etcdserver: Fix PeerURL validation + +------------------------------------------------------------------- +Fri Apr 16 20:34:06 UTC 2021 - Dirk Müller + +- update etcd.service: avoid args from commandline and environment + as it leads to start failure (bsc#1183703) + +------------------------------------------------------------------- +Wed Mar 03 13:50:06 UTC 2021 - alexandre.vicenzi@suse.com + +- Update to version 3.4.15: + * version: 3.4.15 + * [Backport-3.4] etcdserver/api/etcdhttp: log successful etcd server side health check in debug level + * etcdserver: Fix 64 KB websocket notification message limit + * vendor: bump gorilla/websocket + * pkg/fileutil: fix F_OFD_ constants + +------------------------------------------------------------------- +Fri Jan 08 12:29:16 UTC 2021 - rbrown@suse.com + +- Update to version 3.4.14: + * version: 3.4.14 + * pkg/netutil: remove unused "iptables" wrapper + * tools/etcd-dump-metrics: validate exec cmd args + * clientv3: get AuthToken automatically when clientConn is ready. + * etcdserver: add ConfChangeAddLearnerNode to the list of config changes + * integration: add flag WatchProgressNotifyInterval in integration test + +------------------------------------------------------------------- +Thu Sep 10 09:56:27 UTC 2020 - rbrown@suse.com + +- Update to version 3.4.13: + * version: 3.4.13 + * pkg: file stat warning + * Automated cherry pick of #12243 on release 3.4 + * version: 3.4.12 + * etcdserver: Avoid panics logging slow v2 requests in integration tests + * version: 3.4.11 + * Revert "etcdserver/api/v3rpc: "MemberList" never return non-empty ClientURLs" + * *: fix backport of PR12216 + * *: add experimental flag for watch notify interval + * clientv3: remove excessive watch cancel logging + * etcdserver: add OS level FD metrics + * pkg/runtime: optimize FDUsage by removing sort + * clientv3: log warning in case of error sending request + * etcdserver/api/v3rpc: "MemberList" never return non-empty ClientURLs + +------------------------------------------------------------------- +Thu Aug 06 09:30:53 UTC 2020 - rbrown@suse.com + +- Update to version 3.4.10 [CVE-2020-15106][boo#1174951]: + * version: 3.4.10 + * Documentation: note on data encryption + * etcdserver: change protobuf field type from int to int64 (#12000) + * pkg: consider umask when use MkdirAll + * etcdmain: let grpc proxy warn about insecure-skip-tls-verify + * etcdmain: fix shadow error + * pkg/fileutil: print desired file permission in error log + * pkg: Fix dir permission check on Windows + * auth: Customize simpleTokenTTL settings. + * mvcc: chanLen 1024 is to biger,and it used more memory. 128 seems to be enough. Sometimes the consumption speed is more than the production speed. + * auth: return incorrect result 'ErrUserNotFound' when client request without username or username was empty. + * etcdmain: fix shadow error + * doc: add TLS related warnings + * etcdserver:FDUsage set ticker to 10 minute from 5 seconds. This ticker will check File Descriptor Requirements ,and count all fds in used. And recorded some logs when in used >= limit/5*4. Just recorded message. If fds was more than 10K,It's low performance due to FDUsage() works. So need to increase it. + * clientv3: cancel watches proactively on client context cancellation + * wal: check out of range slice in "ReadAll", "decoder" + * etcdctl, etcdmain: warn about --insecure-skip-tls-verify options + * Documentation: note on the policy of insecure by default + * etcdserver: don't let InternalAuthenticateRequest have password + * auth: a new error code for the case of password auth against no password user + * Documentation: note on password strength + * etcdmain: best effort detection of self pointing in tcp proxy + * Discovery: do not allow passing negative cluster size + * wal: fix panic when decoder not set + * embed: fix compaction runtime err + * pkg: check file stats + * etcdserver, et al: add --unsafe-no-fsync flag + * version: 3.4.9 + * wal: add TestValidSnapshotEntriesAfterPurgeWal testcase + * wal: fix crc mismatch crash bug + * rafthttp: log snapshot download duration + * version: 3.4.8 + * rafthttp: improve snapshot send logging + * *: make sure snapshot save downloads SHA256 checksum + * etcdserver/api/snap: exclude orphaned defragmentation files in snapNames + * etcdserver: continue releasing snap db in case of error + * etcdserver,wal: fix inconsistencies in WAL and snapshot + * cherry pick of #11564 (#11880) + * mvcc: fix deadlock bug + * auth: optimize lock scope for CheckPassword + * auth: ensure RoleGrantPermission is compatible with older versions + * etcdserver: print warn log when failed to apply request + * auth: cleanup saveConsistentIndex in NewAuthStore + * auth: print warning log when error is ErrAuthOldRevision + * auth: add new metric 'etcd_debugging_auth_revision' + * tools/etcd-dump-db: add auth decoder, optimize print format + * *: fix auth revision corruption bug + * etcdserver: watch stream got closed once one request is not permitted (#11708) + * version: 3.4.7 + * wal: add "etcd_wal_writes_bytes_total" + * pkg/ioutil: add "FlushN" + * test: auto detect branch when finding merge base + * mvcc/kvstore:when the number key-value is greater than one million, compact take too long and blocks other requests + * version: 3.4.6 + * lease: fix memory leak in LeaseGrant when node is follower + * version: 3.4.5 + * words: whitelist "racey" + * Revert "version: 3.4.5" + * words: whitelist "hasleader" + * version: 3.4.5 + * etcdserver/api/v3rpc: handle api version metadata, add metrics + * clientv3: embed api version in metadata + * etcdserver/api/etcdhttp: log server-side /health checks + * proxy/grpcproxy: add return on error for metrics handler + * etcdctl: fix member add command + * version: 3.4.4 + * etcdserver: fix quorum calculation when promoting a learner member + * etcdserver: corruption check via http + * mvcc/backend: check for nil boltOpenOptions + * mvcc/backend: Delete orphaned db.tmp files before defrag + * auth: correct logging level + * e2e: test curl auth on onoption user + * auth: fix NoPassWord check when add user + * auth: fix user.Options nil pointer + * mvcc/kvstore:fixcompactbug + * mvcc: update to "etcd_debugging_mvcc_total_put_size_in_bytes" + * mvcc: add "etcd_mvcc_put_size_in_bytes" to monitor the throughput of put request. + * clientv3: fix retry/streamer error message + * etcdserver: wait purge file loop during shutdown + * integration: disable TestV3AuthOldRevConcurrent + * etcdserver: remove auth validation loop + * scripts/release: list GPG key only when tagging is needed + +------------------------------------------------------------------- +Sun Jun 7 21:09:20 UTC 2020 - Dirk Mueller + +- update home-page url + +------------------------------------------------------------------- +Thu Feb 6 09:03:22 UTC 2020 - Michal Jura + +- 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 09:50:11 UTC 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 08:40:09 UTC 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 09:48:45 UTC 2019 - Guillaume GARDET + +- Fix aarch64 start + +------------------------------------------------------------------- +Wed Jun 5 13:08:46 UTC 2019 - + +- 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 11:58:15 UTC 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 01:28:24 UTC 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 12:43:23 UTC 2018 - alvaro.saurin@suse.com + +- Updated to a supported version of Go (due to security reasons) + +------------------------------------------------------------------- +Mon Nov 12 09:33:41 UTC 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 5 09:24:54 UTC 2018 - dcassany@suse.com + +- Make use of %license macro + +------------------------------------------------------------------- +Wed May 30 11:10:04 UTC 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 10:27:43 UTC 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 06:54:05 UTC 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 1 16:58:18 CET 2018 - ro@suse.de + +- do not build on s390, only on s390x (no go on s390) + +------------------------------------------------------------------- +Thu Nov 23 13:48:13 UTC 2017 - rbrown@suse.com + +- Replace references to /var/adm/fillup-templates with new + %_fillupdir macro (boo#1069468) + +------------------------------------------------------------------- +Wed Aug 30 10:49:23 UTC 2017 - vrothberg@suse.com + +- transform etcd.service file from dos to unix + +------------------------------------------------------------------- +Fri Aug 11 11:25:29 UTC 2017 - kiall@macinnes.ie + +- Require golang 1.8, as using earlier versions will fail to build + +------------------------------------------------------------------- +Thu Aug 3 14:04:09 UTC 2017 - vrothberg@suse.com + +- Fix bsc#1046717: set (io)nice value in service file + +------------------------------------------------------------------- +Thu Jul 27 14:55:44 UTC 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 + +------------------------------------------------------------------- +Wed May 24 11:24:14 UTC 2017 - opensuse-packaging@opensuse.org + +- Update to version 3.1.8: + * version: bump up to 3.1.7+git + * Docs: replace absolute links with relative ones. + * etcd-2-1-0-bench: Fix an absolute bare link to resource outside of Documentation dir + * etcdserver: apply() sets consistIndex for any entry type + * integration: close accepted connection on stopc path + * Documentation/v2: fix broken links + * Documentation/v3: fix broken links + * *: fix other broken links in markdown + * version: bump up to 3.1.8 + +------------------------------------------------------------------- +Fri May 19 16:18:42 UTC 2017 - opensuse-packaging@opensuse.org + +- Update to version 3.1.7: + * integration: test auth API response header revision + * ctlv3: keep lease as integer in fields printer + * version: bump up to 3.1.6 + * version: bump up to 3.1.6+git + * ctlv3: use printer for lease command results + * clientv3: only update initReq.rev == 0 with creation watch revision + * clientv3/integration: test watch resume with disconnect before first event + * integration: add pause/unpause to client bridge + * clientv3: set current revision to create rev regardless of CreateNotify + * version: bump up to 3.1.7 + +------------------------------------------------------------------- +Thu Apr 13 10:01:12 UTC 2017 - jmassaguerpla@suse.com + +- Fix etcd build. We are generating 2 binaries, etcd and etcdctl. + They need to be built separately + +------------------------------------------------------------------- +Thu Feb 23 10:03:29 UTC 2017 - fcastelli@suse.com + +- Ensure /var/lib/etcd is controlled by etcd:etcd + +------------------------------------------------------------------- +Tue Jan 24 12:23:46 UTC 2017 - jmassaguerpla@suse.com + +- exclude i586. We don't expect this package to be built on i586. + +------------------------------------------------------------------- +Mon Jan 23 14:24:08 UTC 2017 - jmassaguerpla@suse.com + +- remove sysconfig.etcd: this file is not being used + +------------------------------------------------------------------- +Mon Jan 23 12:40:16 UTC 2017 - opensuse-packaging@opensuse.org + +- Update to version 3.1.0: + * raft: add node should reset the pendingConf state + * v3rpc: don't close watcher if client closes send + * e2e: add test for v3 watch over grpc gateway + * mvcc: remove unused restore method + * integration: don't expect recv to stop on CloseSend in waitResponse + * Documentation: add grpc gateway watch example + * version: bump up v3.1.0-rc.1+git + * discovery: warn on scheme mismatch + * grpcproxy: fix deadlock on watch broadcasts stop + * etcdmain: add '/metrics' HTTP/1 path to grpc-proxy + * etcd-tester: do not resolve localhost + * raftexample: confState should be saved after apply + * raft: test case to check the duplicate add node propose + * raft: fix test case, should wait config propose applied + * raft: fix test case for data race + * raft: use the channel instead of sleep to make test case reliable + * raft: fix TestNodeProposeAddDuplicateNode + * etcdmain: handle TLS in grpc-proxy listener + * etcd-tester:limit max retry backoff delay + * functional-tester: add withBlock() to grpc dial + * op-guide: add notes about Prometheus data source in Grafana + * clientv3: return copy of endpoints, not pointer + * auth: add a timeout mechanism to simple token + * client: update README about health monitoring + * grpcproxy: fix race between watch ranges delete() and broadcasts empty() + * lease: Use monotonic time in lease + * integration: use Range to wait for reboot in quota tests + * grpcproxy: fix race between coalesce and bcast on nextrev + * etcd-tester: refactor lease checker + * store: check sorted order in TestStoreGetSorted + * vendor: bump go-systemd to v14 to avoid build error + * integration: cancel Watch when TestV3WatchWithPrevKV exits + * grpcproxy: add richer metrics for watch + * grpcproxy: add cache related metrics + * raft: Fix election "logs converge" test + * raft: Export Progress.IsPaused + * benchmark: add rate limit + * etcdctl: remove GetUser check before mutable commands + * grpcproxy: lock store when getting size + * Documentation: link added to libraries-and-tools.md with a new v2 Scala Client + * grpcproxy: fix deadlock in watchbroadcast + * etcdserver: time out when readStateC is blocking + * store: fix store_test.go comments + * vendor: update ugorji/go + * client: update generated ugorji codec + * doc: initial faq + * clientv3/integration: test lease keepalive works following quorum loss + * integration: use RequireLeader for TestV3LeaseFailover + * v3rpc, etcdserver, leasehttp: ctxize Renew with request timeout + * Documentation: add blox and chain as users + * etcdserver: do not send v2 sync if ttl keys do not exist + * ROADMAP: update for 3.2 + * Documentation: add more FAQ questions + * grpcproxy: fix minor typo + * vendor: use versions when possible in glide.yaml + * scripts: use glide update if repo exists in glide.lock + * github: make bug reporting link non-relative + * github: make contribution link non-relative + * Documentation: update get examples to be clearer about ranges + * etcdserver, embed, v2http: move pprof setup to embed + * doc: add faq about apply warning logging + * test: exclude '_home' for gosimple, unused + * auth: fix gosimple errors + * integration: simplify boolean comparison in resp.Created + * raft: simplify boolean comparison, remove unused + * tools: simplify boolean comparison, remove unused + * e2e: remove unused 'ctlV3GetFailPerm' + * v3rpc: remove unused 'splitMethodName' function + * grpcproxy: remove unused field 'wbs *watchBroadcasts' + * doc: add faq about missing heartbeat + * etcdctl: "fields" output formats + * build: remove dir use -r flag + * etcd-tester: add 'enable-pprof' option + * etcd-tester: cancel lease stream; fix OOM panic + * doc: add hardware section + * auth: improve 'removeSubsetRangePerms' to O(n) + * Documentation: use port 2379 in local cluster guide The port in endpoints should be 2379, instead of 12379. + * op-guide/clustering: fix typo + * embed: deep copy user handlers + * Documentation: add more FAQs (follower, leader, sys-require) + * clientv3: close Lease on client Close + * netutil: ctx-ize URLStringsEqual + * etcdserver: retry for 30s on advertise url check + * membership: retry for 30s on advertise url check + * clientv3: return error from KeepAlive if corresponding loop exits + * clientv3: add test for keep alive loop exit case + * auth, etcdserver: protect membership change operations with auth + * e2e: test cases of protecting membership change with auth + * clientv3: better error message for keep alive loop halt + * Documentation: FAQ entry for cluster ID mismatches + * dev-guide: add limit.md + * Documentation: minor fix nodes -> node + * etcdctl: warn when backend takes too long to open on migrate + * docs: explicitly set ETCDCTL_API=3 in recovery.md + * v3api, rpctypes: add ErrTimeoutDueToConnectionLost + * clientv3/integration: test lease grant/keepalive with/without failures + * clientv3: don't reset keepalive stream on grant failure + * etcdctl: tighten up output, reorganize README.md + * Documentation: add FAQs on membership operation + * Documentation: add 'why.md' + * embed: only override default advertised client URL if the client listen URL is 0.0.0.0 + * raft: make memory storage set method thread safe + * raft: resume paused followers on receipt of MsgHeartbeatResp + * etcd-tester: fix typo, add endpoint in logs + * lease: force leader to apply its pending committed index for lease operations + * leasehttp: buffer error channel to prevent goroutine leak + * raft: fix pre-vote tests + * etcdserver: rework update committed index logic + * etcd-tester: remove unused err var from maxRev + * e2e: check etcdctl endpoint health is healthy if denied permission to key + * benchmark: a new option for configuring dial timeout + * ctlv3: consider permission denied error to be healthy for endpoints + * etcdmain: add --metrics flag for exposing histogram metrics + * e2e: test cluster-health + * v2http: submit QGET in health endpoint if no progress + * test: bump grpcproxy pass timeout to 15m + * lease: use atomics for accessing lease expiry + * e2e: poll '/version' in release upgrade tests + * e2e: unset ETCDCTL_API env var before running u2e tests + * etcdserver: consistent naming in raftReadyHandler + * coverage: rework code coverage for unit and integration tests + * testutil: whitelist thread created by go cover + * rafthttp: bump up timeout in pipeline test + * grpcproxy, etcdmain, integration: return done channel with WatchServer + * integration: defer clus.Terminate in watch tests + * raftexample: load snapshot when opening WAL + * etcd-runner: make command compliant + * raft: use status to test node stop + * etcdserver: expose ErrNotEnoughStartedMembers + * etcdserver: resume compactor only if leader + * benchmark: enable grpc error logging on stderr + * etcd-runner:add flags in watcher for hardcoded values + * docs: fix recovery example in recovery.md + * auth: use quorum get for GetUser/GetRole for mutable operations + * grpcproxy: tear down watch when client context is done + * integration: use only digits in unix ports + * e2e: dump stack on ctlTest timeout + * expect: EXPECT_DEBUG environment variable + * why: add origin of the term etcd + * testutil: increase size of buffer for stack dump + * raft: fix test case for #7042 + * vendor: update ugorji/go + * integration: add grpc auth testing + * auth: reject empty user name when checking op permissions + * etcdctl: create root role on auth enable if it does not yet exist + * raft: add RawNode test case for #6866 + * pkg/report: support 99.9-percentile, change column name + * documentation: display docs.md in github browser + * benchmark: option to rate limit range benchmark + * etcdserver, clientv3: handle a case of expired auth token + * tools: Add etcd 3.0 load test tool refernece + * transport: warn on user-provided CA + * NEWS: add v3.1.0, v3.0.16 + minor fixes + * clienv3: fix balancer test logic + * clientv3: don't reset stream on keepaliveonce or revoke failure + * grpcproxy: use ccache for key cache + * vendor: remove groupcache, add ccache + * pkg/report: add 'Stats' to expose report raw data + * travis: use Go 1.7.4, drop old env var + * ctlv3: print cluster info after adding new member + * Documentation: document upgrading to v3.1 + * pkg/report: add nil checking for getTimeSeries + * etcdserver: use ReqTimeout for linearized read + * grpcproxy, etcdmain, integration: add close channel to kv proxy + * glide: update 'golang.org/x/net' + * vendor: update 'golang.org/x/net' + * Documentation: update experimental_apis for v3.1 release + * NEWS: fix date for v3.1 release + * Documentation: fix typo s/endpoint-health/endpoint health/ + * clientv3/concurrency: fix rev comparison on concurrent key deletion + * integration: test STM apply on concurrent deletion + * pkg/flags: fixed prefix checking of the env variables + * etcdctlv3: snapshot restore works with lease key + * test: passed the test script arguments as the test function parameters + * documentation: update build documentation + * version: bump to v3.1.0 + +------------------------------------------------------------------- +Thu Jan 12 11:06:41 UTC 2017 - opensuse-packaging@opensuse.org + +- Update to version 3.1.0rc.1: + * grpcproxy: watch next revision should be start revision when not 0 + * grpcproxy: copy range request before storing in cache + * raft: return empty status if node is stopped + * mvcc: store.restore taking too long triggering snapshot cycle fix + * mvcc: TestStoreRestore fix + * mvcc : Added benchmark for store.resotre + * pkg/netutil: get default interface for tc commands + * version: bump up v3.1.0-rc.1 + +------------------------------------------------------------------- +Wed Sep 14 09:55:08 UTC 2016 - opensuse-packaging@opensuse.org + +Updated to version 3.0.8 + +- Bug fixes + - GH6325: etcdctl: fix quotes in txn and watch + - GH6344: etcdctl/ctlv3: don't crash when we should prompt for pw + - GH6365: embed: reject domain names before binding + - GH6370: etcdctl: restore should create a snapshot + - GH6381: wal: fsync directory after wal file rename + - GH6253: discovery: reject IP address records in SRVGetCluster + - GH6267: wal: fix CRC corruption on writes following write tears + - GH6269: wal: On non-Windows OS, hold file lock while renaming WAL directory + - GH6284: clientv3/concurrency: fix unintended deadlock on key prefixes + - GH6309: etcdserver: allow zero kv index for cluster upgrade + - GH6310: wal: use page buffered writer for writing records + - GH6098: recover lessor before recovering mvcc store and transactionally revoke leases + - GH6175: rafthttp: fix race between streamReader.stop() and connection closer + - GH6226: vendor: update grpc/grpc-go for clientconn patch (grpc/grpc-go#842) + - GH5845: clientv3: respect up/down notifications from grpc + - GH6077: v2http: use guest access in non-TLS mode + - GH6136: clientv3: close watcher stream once all watchers detach + - GH6142: clientv3: handle watchGrpcStream shutdown if prior to goroutine start + - GH6152: mvcc: fix count + - GH6166: clientv3: support non-blocking New() + - GH6222: integration: NewClusterV3() should launch cluster before creating clients + +- Security changes + - GH6084: etcdctl: set TLS servername on discovery + +- Other changes + - GH6218: vendor: boltdb/bolt v1.3.0 for Go 1.7 + +------------------------------------------------------------------- +Mon Aug 08 14:57:34 UTC 2016 - opensuse-packaging@opensuse.org + +- Update to version 3.0.4: + + etcdmain: correctly check return values from SdNotify() + + etcdserverpb: add missing deleterange annotation + + scripts:genproto.sh: update grpc-gateway + + *: regenerate proto + + Documentation: fix links in upgrades + + etcdserver, api, membership: don't race on setting version + + Dockerfile-release: add '/var/lib/etcd/' + + scripts/genproto: use latest grpc-gateway c8ec92d0 + + *: regenerate proto files for grpc-gateway + + version: bump to v3.0.4 + +------------------------------------------------------------------- +Tue Jul 26 11:03:39 UTC 2016 - msabate@suse.com + +- Fixed the path on systemd's environment file + +------------------------------------------------------------------- +Wed Jul 13 15:27:10 UTC 2016 - pjanouch@suse.de + +- spec-cleaner clean ups +- change PreReq: %fillup_prereq to Requires(post) +- Require systemd-rpm-macros instead of the entire systemd +- call %service_add_pre after instead of before creating + the user and group + +------------------------------------------------------------------- +Thu Jul 7 12:48:21 UTC 2016 - tboerger@suse.com + +- Dropped rpmlintrc +- Refactoring of the spec based on golang-packaging + +------------------------------------------------------------------- +Tue Jul 05 09:19:27 UTC 2016 - opensuse-packaging@opensuse.org + +- Update to version 3.0.1: + * version: bump to v3.0.0+git + * release: fix Dockerfile etcd binary paths + * etcdserver: exit on missing backend only if semver is >= 3.0.0 + * Documentation: fix typo in api_grpc_gateway.md + * *: test, docs with go1.6+ + * version: bump to v3.0.1 + +------------------------------------------------------------------- +Tue Jul 05 09:13:32 UTC 2016 - opensuse-packaging@opensuse.org + +- Update to version 3.0.0: + * mvcc: do not hash consistent index + * benchmark: fix Compact request + * clientv3: only use closeErr on watch when donec is closed + * ctlv3: make flags, commands formats consistent + * Doc: fix typo in dev-guide.md + * hack: add tls-setup example generated certs to gitignore + * hack: install goreman in tls-setup example + * *: remove beta from docs + * version: bump to v3.0.0 + +------------------------------------------------------------------- +Wed Jun 22 07:49:26 UTC 2016 - opensuse-packaging@opensuse.org + +- Update to version 2.3.7: + + etcdsever: fix the leaky snashot routine issue + + etcdserver: stop raft after stopping apply scheduler + + etcdserver: wait for snapshots before closing raft + + version: bump to v2.3.5 + + version: bump to v2.3.5+git + + etcd: fix refresh feature + + version: bump to v2.3.6 + + version: bump to v2.3.6+git + + store: copy old value when refresh + cas + + version: bump to v2.3.7 + +------------------------------------------------------------------- +Mon May 30 14:21:25 UTC 2016 - opensuse-packaging@opensuse.org + +- Update to version 2.3.6: + + raft: do not panic when removing all the nodes from cluster + + Documentation/v2: fix auth_api.md bug + + Documentation/v2: fix typo for updating a member + + etcdsever: fix the leaky snashot routine issue + + etcdserver: stop raft after stopping apply scheduler + + etcdserver: wait for snapshots before closing raft + + version: bump to v2.3.5 + + version: bump to v2.3.5+git + + etcd: fix refresh feature + + version: bump to v2.3.6 + +------------------------------------------------------------------- +Wed May 18 08:50:26 UTC 2016 - opensuse-packaging@opensuse.org + +- Update to version 2.3.4: + + *: bump to v2.3.2 + + *: bump to v2.3.2+git + + etcdserver/auth: check empty password in merge + + *: bump to v2.3.3 + + *: bump to v2.3.3+git + + httpproxy: fix race on getting close notifier channel + + etcdctl/ctlv2: total-timeout for Sync + + etcdctl: Add --wal-dir and --backup-wal-dir options to backup command. + + README: add known bugs + + version: bump to v2.3.4 + +------------------------------------------------------------------- +Tue Apr 26 19:08:05 UTC 2016 - fcastelli@suse.com + +- Update to version 2.3.2: + + client: return original ctx error + + etcdmain: start on unsupported arch when ETCD_UNSUPPORTED_ARCH is set + + etcdctl: print grant/revoke error instead of scanning roles for changes + + e2e: test etcdctl v2 double user grant + + client: accept roles in response for ListUser + + e2e: test etcdtl user list on root user + + etcdserver: close response body when getting cluster information + +------------------------------------------------------------------- +Fri Apr 15 10:21:49 UTC 2016 - normand@linux.vnet.ibm.com + +- to complete previous update + * remove etcd_add_bolt_ppc64.patch + * add shadow as BuildRequires + +------------------------------------------------------------------- +Fri Mar 18 22:40:43 UTC 2016 - fcastelli@suse.com + +- Update to version 2.3.0: + * Strict runtime reconfiguration check + * Runtime profiling + * Refreshing TTL keys + * Experimental v3 support +- Cleanup configuration handling + +------------------------------------------------------------------- +Wed Feb 17 14:45:13 UTC 2016 - normand@linux.vnet.ibm.com + +- new etcd_add_bolt_ppc64.patch + +------------------------------------------------------------------- +Tue Dec 22 16:05:44 UTC 2015 - fcastelli@suse.com + +- Remove obsolete ports from firewall configuration + +------------------------------------------------------------------- +Tue Dec 22 14:47:03 UTC 2015 - fcastelli@suse.com + +- Remove useless build warnings and errors +- Fix building + +------------------------------------------------------------------- +Tue Dec 22 12:52:41 UTC 2015 - fcastelli@suse.com + +- Remove obsolete files +- Fix systemd's unit to take into consideration the sysconfig + environment file + +------------------------------------------------------------------- +Tue Dec 22 10:32:57 UTC 2015 - fcastelli@suse.com + +- Fix typo inside of spec file, remove reference to docker + +------------------------------------------------------------------- +Tue Dec 22 09:11:27 UTC 2015 - fcastelli@suse.com + +- Update to version 2.2.2: + * fix health check result in etcdctl cluster-health + * generate v5 ugorji/go/codec unmarshal code in client package + * fix unset SYSLOG_IDENTIFIER when etcd is logging to the journal + * improve logging when discovery procedure fails + * fix various data races detected by race detector + * fix rejecting to modify pre-defined guest role + +- Changes introduced by version 2.2.1: + * support Nodes type in client package for sorting + * improve panic logging output when starting etcd with corrupted data dir + * fix non-customizable request timeout in etcdctl + * improve output when missing initial flags + * improve output when retrying unavailable endpoint in proxy + * etcd no longer hangs forever when fails to finish discovery + * fix Content-Type header for version API + * improve logging output when systemd notify fails + * support literal IPv6 address with zone in URL flags + * update dependency for bug fix and restorable dependency list + * fix mk command in etcdctl + +------------------------------------------------------------------- +Fri Feb 6 15:44:34 UTC 2015 - fcastelli@suse.com + +- Update to version 2.0.0: + + * Internal etcd protocol improvements to guard against accidental misconfiguration + * etcdctl backup was added to make recovering from cluster failure easier + * etcdctl member list/add/remove commands for easily managing a cluster + * On-disk datastore safety improvements with CRC checksums and append-only behavior + * An improved Raft consensus implementation already used in other projects like CockroachDB + * More rigorous and faster running tests of the underlying Raft implementation, covering all state machine and cases explained in the original Raft white paper in 1.5 seconds + * Additional administrator focused documentation explaining common scenarios + * Official IANA assigned ports for etcd TCP 2379/2380 + +------------------------------------------------------------------- +Mon Oct 20 10:43:21 UTC 2014 - fcastelli@suse.com + +- Updated default configuration file + +------------------------------------------------------------------- +Mon Oct 20 10:18:30 UTC 2014 - fcastelli@suse.com + +- Fixed permissions of etcd binary + +------------------------------------------------------------------- +Mon Oct 20 08:26:34 UTC 2014 - fcastelli@suse.com + +- Created initial version 0.4.6 + diff --git a/etcd.conf b/etcd.conf new file mode 100644 index 0000000..a5047be --- /dev/null +++ b/etcd.conf @@ -0,0 +1,56 @@ +# set commandline options +# example: ETCD_OPTIONS="--enable-v2=true" to enable the v2 API +#ETCD_OPTIONS= + +# [member] +ETCD_NAME=default +ETCD_DATA_DIR="/var/lib/etcd/default.etcd" +#ETCD_WAL_DIR="" +#ETCD_SNAPSHOT_COUNT="10000" +#ETCD_HEARTBEAT_INTERVAL="100" +#ETCD_ELECTION_TIMEOUT="1000" +# Before changing this setting allowing etcd to be reachable over the network +# or if you have untrustworthy local users on the system where etc runs please +# make sure to enable authentication in the [security] section below. Please +# also read README.security for this package +#ETCD_LISTEN_PEER_URLS="http://localhost:2380" +ETCD_LISTEN_CLIENT_URLS="http://localhost:2379" +#ETCD_MAX_SNAPSHOTS="5" +#ETCD_MAX_WALS="5" +#ETCD_CORS="" +# +#[cluster] +#ETCD_INITIAL_ADVERTISE_PEER_URLS="http://localhost:2380" +# if you use different ETCD_NAME (e.g. test), set ETCD_INITIAL_CLUSTER value for this name, i.e. "test=http://..." +#ETCD_INITIAL_CLUSTER="default=http://localhost:2380" +#ETCD_INITIAL_CLUSTER_STATE="new" +#ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster" +ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379" +#ETCD_DISCOVERY="" +#ETCD_DISCOVERY_SRV="" +#ETCD_DISCOVERY_FALLBACK="proxy" +#ETCD_DISCOVERY_PROXY="" + +# +#[security] +#ETCD_CERT_FILE="" +#ETCD_KEY_FILE="" +#ETCD_CLIENT_CERT_AUTH="false" +#ETCD_TRUSTED_CA_FILE="" +#ETCD_PEER_CERT_FILE="" +#ETCD_PEER_KEY_FILE="" +#ETCD_PEER_CLIENT_CERT_AUTH="false" +#ETCD_PEER_TRUSTED_CA_FILE="" +# +#[logging] +#ETCD_LOG_LEVEL="debug" +# examples for -log-package-levels etcdserver=WARNING,security=DEBUG +#ETCD_LOG_PACKAGE_LEVELS="" +# +#[proxy] Note: flags will be deprecated in v3.6. "proxy" supports v2 API only. +#ETCD_PROXY="off" +#ETCD_PROXY_FAILURE_WAIT="5000" +#ETCD_PROXY_REFRESH_INTERVAL="30000" +#ETCD_PROXY_DIAL_TIMEOUT="1000" +#ETCD_PROXY_WRITE_TIMEOUT="5000" +#ETCD_PROXY_READ_TIMEOUT="0" diff --git a/etcd.service b/etcd.service new file mode 100644 index 0000000..8a39192 --- /dev/null +++ b/etcd.service @@ -0,0 +1,34 @@ +[Unit] +Description=Etcd Server +After=network.target +After=network-online.target +Wants=network-online.target + +[Service] +# added automatically, for details please see +# https://en.opensuse.org/openSUSE:Security_Features#Systemd_hardening_effort +ProtectSystem=full +ProtectHome=true +PrivateDevices=true +ProtectHostname=true +ProtectClock=true +ProtectKernelTunables=true +ProtectKernelModules=true +ProtectKernelLogs=true +ProtectControlGroups=true +RestrictRealtime=true +# end of automatic additions +Type=notify +WorkingDirectory=/var/lib/etcd/ +EnvironmentFile=-/etc/sysconfig/etcd +User=etcd +# set GOMAXPROCS to number of processors +ExecStart=/bin/bash -c "GOMAXPROCS=$(nproc) /usr/sbin/etcd $ETCD_OPTIONS" +Restart=on-failure +LimitNOFILE=65536 +Nice=-10 +IOSchedulingClass=best-effort +IOSchedulingPriority=2 + +[Install] +WantedBy=multi-user.target diff --git a/etcd.spec b/etcd.spec new file mode 100644 index 0000000..776dd5a --- /dev/null +++ b/etcd.spec @@ -0,0 +1,154 @@ +# +# spec file for package etcd +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%define project go.etcd.io/etcd +#Compat macro for new _fillupdir macro introduced in Nov 2017 +%if ! %{defined _fillupdir} + %define _fillupdir %{_localstatedir}/adm/fillup-templates +%endif +Name: etcd +Version: 3.5.12 +Release: 0 +Summary: Highly-available key value store for configuration and service discovery +License: Apache-2.0 +Group: System/Management +URL: https://github.com/etcd-io/etcd +Source: %{name}-%{version}.tar.gz +Source1: vendor.tar.gz +Source11: %{name}.conf +Source12: %{name}.service +Source15: README.security +Source16: system-user-etcd.conf +Source17: vendor-update.sh +BuildRequires: golang(API) >= 1.20 +BuildRequires: golang-packaging +BuildRequires: systemd-rpm-macros +BuildRequires: sysuser-tools +BuildRequires: xz +Requires(post): %fillup_prereq +ExcludeArch: s390 %{ix86} +%sysusers_requires + +%description +etcd is a distributed, consistent key-value store for shared configuration and +service discovery, with a focus on being: + +- Simple: well-defined, user-facing API (gRPC) +- Secure: automatic TLS with optional client cert authentication +- Fast: benchmarked 10,000 writes/sec +- Reliable: properly distributed using Raft + +%package -n etcdctl +Summary: A simple command line client for etcd +Group: System/Management + +%description -n etcdctl +A command line client for etcd. It can be used in scripts or for administrators +to explore an etcd cluster. + +%package -n etcdutl +Summary: A simple command line client for etcd +Group: System/Management + +%description -n etcdutl +A command line administration utility for etcd. +It's designed to operate directly on etcd data files. + +For operations over a network, please use `etcdctl`. + +%prep +%setup -q -a1 +cp %{SOURCE15} . +cp -rla vendor/* ./ && rm -r vendor/ + +%build +%{goprep} %{project} + +mkdir -p ./bin + +dir=$(pwd) +for item in server etcdctl etcdutl;do + cd "$dir/$item" + go build -v \ + -buildmode=pie \ + -mod=vendor \ + -trimpath \ + -ldflags="-s -w -X main.Version=%{version}" \ + -o ../bin/"$item" +done +cd "$dir" + +%sysusers_generate_pre %{SOURCE16} %{name} system-user-etcd.conf + +%install +install -d %{buildroot}%{_sbindir} +install -D -m 0755 ./bin/server %{buildroot}%{_sbindir}/etcd + +install -d %{buildroot}/%{_bindir} +install -D -m 0755 ./bin/etcdctl %{buildroot}%{_bindir}/etcdctl +install -D -m 0755 ./bin/etcdutl %{buildroot}%{_bindir}/etcdutl + +# Service +install -D -p -m 0644 %{SOURCE12} %{buildroot}%{_unitdir}/%{name}.service +ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{name} + +# Sysconfig +install -D -p -m 0644 %{SOURCE11} %{buildroot}%{_fillupdir}/sysconfig.%{name} + +# Additional +install -d -m 750 %{buildroot}%{_localstatedir}/lib/%{name} +install -Dm0644 %{SOURCE16} %{buildroot}%{_sysusersdir}/system-user-etcd.conf + +%pre -f %{name}.pre +%service_add_pre %{name}.service + +%post +%service_add_post %{name}.service +%{fillup_only -n %{name}} + +%preun +%service_del_preun %{name}.service + +%postun +%service_del_postun %{name}.service + +%files +%license LICENSE +%doc CONTRIBUTING.md README.md DCO README.security +%{_sbindir}/%{name} +%{_sysusersdir}/system-user-etcd.conf + +# Service +%{_unitdir}/%{name}.service +%{_sbindir}/rc%{name} + +# Sysconfig +%{_fillupdir}/sysconfig.%{name} + +# Additional +%dir %attr(0750,%{name},%{name}) %{_localstatedir}/lib/%{name} + +%files -n etcdctl +%{_bindir}/etcdctl +%doc etcdctl/README.md etcdctl/READMEv2.md + +%files -n etcdutl +%{_bindir}/etcdutl +%doc etcdutl/README.md + +%changelog diff --git a/system-user-etcd.conf b/system-user-etcd.conf new file mode 100644 index 0000000..cf5fbeb --- /dev/null +++ b/system-user-etcd.conf @@ -0,0 +1,2 @@ +#Type Name ID GECOS Home directory Shell +u etcd - "etcd daemon" /var/lib/etcd - diff --git a/vendor-update.sh b/vendor-update.sh new file mode 100644 index 0000000..9a7cf53 --- /dev/null +++ b/vendor-update.sh @@ -0,0 +1,51 @@ +#!/usr/bin/bash +# +# Script to update the vendor tarball +# Author: Elisei Roca +#------------------------------------ + +set -eo pipefail +# set -x + +NAME=etcd +STACK=("server" "etcdctl" "etcdutl") +VERSION=$(grep -oP '(?<=Version:)(.*)' etcd.spec | xargs) + +[ ! -f "$NAME-$VERSION".tar.gz ] && echo "$NAME-$VERSION.tar.gz does not exist" && exit 1 + +echo "Updating vendor file..." + +tempdir="$(mktemp -d --suffix=.etcd)" +function cleanup() { + rm -rf "${tempdir}" +} +trap cleanup EXIT + +mkdir -p "${tempdir}/vendor" + +tar --strip-components=1 -xvf "$NAME-$VERSION".tar.gz -C "${tempdir}" &> /dev/null + +dir=$(pwd) +for item in ${STACK[*]}; do + mkdir "${tempdir}/vendor/${item}" + cd "${tempdir}/${item}" + go mod vendor + mv vendor/ ../vendor/"$item" +done +cd "$dir" + +fdupes -r -1 "${tempdir}/vendor/" | + while read line; do + target=""; + for file in ${line[*]}; do + if [ "x${target}" == "x" ]; then + target=$file; + else + ln -f "${target}" "${file}"; + fi; + done; + done + +tar -czvf vendor.tar.gz -C "${tempdir}" vendor &> /dev/null + +echo "Repacked to vendor.tar.gz" diff --git a/vendor.tar.gz b/vendor.tar.gz new file mode 100644 index 0000000..964d9fb --- /dev/null +++ b/vendor.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b617a120bb3aba3a12f7c06a129ecfbdacbe1456a0470e4cc73e4aeb3a9732be +size 5406488