From 37a5bfb8a9ba1a7910202c33468ed76eacdbcea931e51339c81b9096a89bf39f Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Tue, 31 Jan 2017 11:39:33 +0000 Subject: [PATCH] Accepting request 452165 from Virtualization:containers this exclude i586 OBS-URL: https://build.opensuse.org/request/show/452165 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/etcd?expand=0&rev=1 --- .gitattributes | 23 +++ .gitignore | 1 + _service | 16 ++ etcd-3.1.0.tar.xz | 3 + etcd.changes | 453 +++++++++++++++++++++++++++++++++++++++++++ etcd.conf | 47 +++++ etcd.service | 18 ++ etcd.spec | 123 ++++++++++++ etcd_client_firewall | 5 + etcd_server_firewall | 5 + 10 files changed, 694 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 _service create mode 100644 etcd-3.1.0.tar.xz create mode 100644 etcd.changes create mode 100644 etcd.conf create mode 100644 etcd.service create mode 100644 etcd.spec create mode 100644 etcd_client_firewall create mode 100644 etcd_server_firewall 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/_service b/_service new file mode 100644 index 0000000..815eb6a --- /dev/null +++ b/_service @@ -0,0 +1,16 @@ + + + git + https://github.com/coreos/etcd.git + .git + etcd + 3.1.0 + v3.1.0 + enable + + + *.tar + xz + + + diff --git a/etcd-3.1.0.tar.xz b/etcd-3.1.0.tar.xz new file mode 100644 index 0000000..ff41625 --- /dev/null +++ b/etcd-3.1.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9d795653144d0dacd5f6c478df01a5654dcb78a9bd68c6459bbcc4e9fe710b9 +size 1527636 diff --git a/etcd.changes b/etcd.changes new file mode 100644 index 0000000..23c1049 --- /dev/null +++ b/etcd.changes @@ -0,0 +1,453 @@ +------------------------------------------------------------------- +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..0391f6d --- /dev/null +++ b/etcd.conf @@ -0,0 +1,47 @@ +# [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" +#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="" +# +#[proxy] +#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" +# +#[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_DEBUG="false" +# examples for -log-package-levels etcdserver=WARNING,security=DEBUG +#ETCD_LOG_PACKAGE_LEVELS="" diff --git a/etcd.service b/etcd.service new file mode 100644 index 0000000..3a3f4b6 --- /dev/null +++ b/etcd.service @@ -0,0 +1,18 @@ +[Unit] +Description=Etcd Server +After=network.target +After=network-online.target +Wants=network-online.target + +[Service] +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 --name=\"${ETCD_NAME}\" --data-dir=\"${ETCD_DATA_DIR}\" --listen-client-urls=\"${ETCD_LISTEN_CLIENT_URLS}\"" +Restart=on-failure +LimitNOFILE=65536 + +[Install] +WantedBy=multi-user.target diff --git a/etcd.spec b/etcd.spec new file mode 100644 index 0000000..16eb993 --- /dev/null +++ b/etcd.spec @@ -0,0 +1,123 @@ +# +# spec file for package etcd +# +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# +# 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 http://bugs.opensuse.org/ +# + + +Name: etcd +Version: 3.1.0 +Release: 0 +Summary: Highly-available key value store for configuration and service discovery +License: Apache-2.0 +Group: System/Management +Url: https://github.com/coreos/etcd +Source: %{name}-%{version}.tar.xz +Source1: %{name}.conf +Source2: %{name}.service +Source3: etcd_client_firewall +Source4: etcd_server_firewall +BuildRequires: golang-packaging +BuildRequires: shadow +BuildRequires: systemd-rpm-macros +BuildRequires: xz +ExcludeArch: %ix86 +Requires(post): %fillup_prereq +BuildRoot: %{_tmppath}/%{name}-%{version}-build +%{?systemd_requires} +%{go_provides} +# Make sure that the binary is not getting stripped. +%{go_nostrip} + +%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. + +%prep +%setup -q + +%build +%{goprep} github.com/coreos/etcd +%{gobuild} cmd/etcd cmd/etcdctl + +%install +%{goinstall} +rm -rf %{buildroot}/%{_libdir}/go/contrib + +# Service +install -D -p -m 0644 %{SOURCE2} %{buildroot}%{_unitdir}/%{name}.service +install -d %{buildroot}/%{_sbindir} +ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{name} + +# Sysconfig +install -D -p -m 0644 %{SOURCE1} %{buildroot}%{_localstatedir}/adm/fillup-templates/sysconfig.%{name} + +# Additional +install -d -m 750 %{buildroot}%{_localstatedir}/lib/%{name} +install -D -m 644 %{SOURCE3} %{buildroot}/%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/etcd_client +install -D -m 644 %{SOURCE4} %{buildroot}/%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/etcd_server + +# Move +mv %{buildroot}%{_bindir}/etcd %{buildroot}%{_sbindir}/%{name} + +%pre +getent group %{name} >/dev/null || %{_sbindir}/groupadd -r %{name} +getent passwd %{name} >/dev/null || %{_sbindir}/useradd -r -g %{name} -d %{_localstatedir}/lib/%{name} -s /bin/false -c "etcd daemon" %{name} +%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 +%defattr(-,root,root) +%doc CONTRIBUTING.md README.md LICENSE DCO NOTICE +%{_sbindir}/%{name} + +# Service +%{_unitdir}/%{name}.service +%{_sbindir}/rc%{name} + +# Sysconfig +%{_localstatedir}/adm/fillup-templates/sysconfig.%{name} + +# Additional +%dir %attr(0750,%{name},root) %{_localstatedir}/lib/%{name} +%config %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/etcd_server +%config %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/etcd_client + +%files -n etcdctl +%defattr(-,root,root) +%{_bindir}/etcdctl + +%changelog diff --git a/etcd_client_firewall b/etcd_client_firewall new file mode 100644 index 0000000..a5f1c98 --- /dev/null +++ b/etcd_client_firewall @@ -0,0 +1,5 @@ +## Name: etcd +## Description: etcd communication port + +# space separated list of allowed TCP ports +TCP="2379" diff --git a/etcd_server_firewall b/etcd_server_firewall new file mode 100644 index 0000000..ca0f442 --- /dev/null +++ b/etcd_server_firewall @@ -0,0 +1,5 @@ +## Name: etcd server to server +## Description: etcd server to server communication port + +# space separated list of allowed TCP ports +TCP="2380"