SHA256
1
0
forked from pool/etcd

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
This commit is contained in:
Dominique Leuenberger 2017-01-31 11:39:33 +00:00 committed by Git OBS Bridge
commit 37a5bfb8a9
10 changed files with 694 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -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

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

16
_service Normal file
View File

@ -0,0 +1,16 @@
<services>
<service name="tar_scm" mode="disabled">
<param name="scm">git</param>
<param name="url">https://github.com/coreos/etcd.git</param>
<param name="exclude">.git</param>
<param name="filename">etcd</param>
<param name="versionformat">3.1.0</param>
<param name="revision">v3.1.0</param>
<param name="changesgenerate">enable</param>
</service>
<service name="recompress" mode="disabled">
<param name="file">*.tar</param>
<param name="compression">xz</param>
</service>
<service mode="disabled" name="set_version"/>
</services>

3
etcd-3.1.0.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a9d795653144d0dacd5f6c478df01a5654dcb78a9bd68c6459bbcc4e9fe710b9
size 1527636

453
etcd.changes Normal file
View File

@ -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

47
etcd.conf Normal file
View File

@ -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=""

18
etcd.service Normal file
View File

@ -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

123
etcd.spec Normal file
View File

@ -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

5
etcd_client_firewall Normal file
View File

@ -0,0 +1,5 @@
## Name: etcd
## Description: etcd communication port
# space separated list of allowed TCP ports
TCP="2379"

5
etcd_server_firewall Normal file
View File

@ -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"