diff --git a/_service b/_service index 1ba3c86..75d71e9 100644 --- a/_service +++ b/_service @@ -3,7 +3,7 @@ https://github.com/etcd-io/etcd.git git .git - v3.5.12 + v3.5.17 @PARENT_TAG@ enable v(.*) diff --git a/_servicedata b/_servicedata index 4f5461e..01af1ac 100644 --- a/_servicedata +++ b/_servicedata @@ -5,4 +5,4 @@ git://github.com/etcd-io/etcd.git 99018a77bea9a9d29962e5169876c64e02739c52 https://github.com/etcd-io/etcd.git - e7b3bb6ccac840770f108ef9a0f013fa51b83256 \ No newline at end of file + 507c0de87bd5034e3de4ab76ebf96b54dae0cd52 \ No newline at end of file diff --git a/etcd-3.5.12.tar.gz b/etcd-3.5.12.tar.gz deleted file mode 100644 index b5b19b0..0000000 --- a/etcd-3.5.12.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:de10f81bb463e1e057d3a76eaf252c360e5b2b082f2b646539b1ab6e1509d84e -size 4138338 diff --git a/etcd-3.5.17.tar.gz b/etcd-3.5.17.tar.gz new file mode 100644 index 0000000..f007550 --- /dev/null +++ b/etcd-3.5.17.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:881c1dc2352e5be8dc714fb3dade956919b72f072b99b6609bf376239d7f9dc4 +size 4182218 diff --git a/etcd.changes b/etcd.changes index a08976f..c0296cf 100644 --- a/etcd.changes +++ b/etcd.changes @@ -1,3 +1,71 @@ +------------------------------------------------------------------- +Mon Dec 2 13:37:55 UTC 2024 - Marcus Rueckert + +- Fixing a configuration data loss bug: + Fillup really really wants that the template and the target file + actually follow the sysconfig format. The current config and the + current template do not fulfill this requirement. + + Move the current /etc/sysconfig/etcd to /etc/default/etcd and + install a new sysconfig file which only adds the ETCD_OPTIONS + option, which is actually used by the unit file. + + This also makes it a bit cleaner to move etcd to use + --config-file in the long run. + +------------------------------------------------------------------- +Sun Dec 1 14:52:01 UTC 2024 - Elisei Roca + +- Update etcd configuration file based on + https://github.com/etcd-io/etcd/blob/v3.5.17/etcd.conf.yml.sample + +------------------------------------------------------------------- +Fri Nov 29 13:36:47 UTC 2024 - Elisei Roca + +- Update to version 3.5.17: + * fix(defrag): close temp file in case of error + * Bump go toolchain to 1.22.9 + * fix(defrag): handle defragdb failure + * fix(defrag): handle no space left error + * [3.5] Fix risk of a partial write txn being applied + * [serverWatchStream] terminate recvLoop on sws.close() + +- Update to version 3.5.16: + * Bump go toolchain to 1.22.7 + * Introduce compaction sleep interval flag + * Fix passing default grpc call options in Kubernetes client + * Skip leadership check if the etcd instance is active processing + heartbeats + * Introduce Kubernetes KV interface to etcd client + +- Update to version 3.5.15: + * Differentiate the warning message for rejected client and peer + * connections + * Suppress noisy basic auth token deletion log + * Support multiple values for allowed client and peer TLS + identities(#18015) + * print error log when validation on conf change failed + +- Update to version 3.5.14: + * etcdutl: Fix snapshot restore memory alloc issue + * server: Implement WithMmapSize option for backend config + * gRPC health server sets serving status to NOT_SERVING on defrag + * server/mvcc: introduce compactBeforeSetFinishedCompact + failpoint + * Update the compaction log when bootstrap and update compact's + signature + * add experimental-snapshot-catchup-entries flag. + * Fix retry requests when receiving ErrGPRCNotSupportedForLearner + +- Update to version 3.5.13: + * Fix progress notification for watch that doesn't get any events + * pkg/types: Support Unix sockets in NewURLS + * added arguments to the grpc-proxy: dial-keepalive-time, + dial-keepalive-timeout, permit-without-stream + * server: fix comment to match function name + * Make CGO_ENABLED configurable for etcd 3.5 + * etcdserver: drain leaky goroutines before test completed + ------------------------------------------------------------------- Mon Sep 2 15:08:01 UTC 2024 - Wolfgang Frisch @@ -450,7 +518,7 @@ Thu May 13 13:42:05 UTC 2021 - alexandre.vicenzi@suse.com 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) + as it leads to start failure (bsc#1183703) ------------------------------------------------------------------- Wed Mar 03 13:50:06 UTC 2021 - alexandre.vicenzi@suse.com @@ -582,7 +650,7 @@ Thu Aug 06 09:30:53 UTC 2020 - rbrown@suse.com ------------------------------------------------------------------- Sun Jun 7 21:09:20 UTC 2020 - Dirk Mueller -- update home-page url +- update home-page url ------------------------------------------------------------------- Thu Feb 6 09:03:22 UTC 2020 - Michal Jura @@ -892,7 +960,7 @@ Mon Nov 12 09:33:41 UTC 2018 - opensuse-packaging@opensuse.org ------------------------------------------------------------------- Tue Jun 5 09:24:54 UTC 2018 - dcassany@suse.com -- Make use of %license macro +- Make use of %license macro ------------------------------------------------------------------- Wed May 30 11:10:04 UTC 2018 - jmassaguerpla@suse.com @@ -907,7 +975,7 @@ 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). + fix#go_requirement (bsc#1095184). ------------------------------------------------------------------- Thu Feb 22 06:54:05 UTC 2018 - opensuse-packaging@opensuse.org @@ -933,7 +1001,7 @@ Thu Feb 1 16:58:18 CET 2018 - ro@suse.de ------------------------------------------------------------------- Thu Nov 23 13:48:13 UTC 2017 - rbrown@suse.com -- Replace references to /var/adm/fillup-templates with new +- Replace references to /var/adm/fillup-templates with new %_fillupdir macro (boo#1069468) ------------------------------------------------------------------- @@ -1651,7 +1719,7 @@ Fri May 19 16:18:42 UTC 2017 - opensuse-packaging@opensuse.org 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 + They need to be built separately ------------------------------------------------------------------- Thu Feb 23 10:03:29 UTC 2017 - fcastelli@suse.com @@ -1661,12 +1729,12 @@ Thu Feb 23 10:03:29 UTC 2017 - fcastelli@suse.com ------------------------------------------------------------------- Tue Jan 24 12:23:46 UTC 2017 - jmassaguerpla@suse.com -- exclude i586. We don't expect this package to be built on i586. +- 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 +- remove sysconfig.etcd: this file is not being used ------------------------------------------------------------------- Mon Jan 23 12:40:16 UTC 2017 - opensuse-packaging@opensuse.org diff --git a/etcd.conf b/etcd.conf index a5047be..bdd1a87 100644 --- a/etcd.conf +++ b/etcd.conf @@ -1,56 +1,119 @@ -# set commandline options -# example: ETCD_OPTIONS="--enable-v2=true" to enable the v2 API -#ETCD_OPTIONS= + +# Caution: If you mix-and-match configuration options, then the following rules apply. +# Command-line flags take precedence over environment variables. +# If you provide a configuration file all command-line flags and environment variables are ignored. + +# Set commandline options example: ETCD_OPTIONS="--enable-v2=true" to enable the v2 API +#ETCD_OPTIONS="" # [member] -ETCD_NAME=default +# Human-readable name for this member. +ETCD_NAME="default" +# Path to the data directory. ETCD_DATA_DIR="/var/lib/etcd/default.etcd" +# Path to the dedicated wal directory. #ETCD_WAL_DIR="" +# Number of committed transactions to trigger a snapshot to disk. #ETCD_SNAPSHOT_COUNT="10000" +# Time (in milliseconds) of a heartbeat interval. #ETCD_HEARTBEAT_INTERVAL="100" +# Time (in milliseconds) for an election to timeout. #ETCD_ELECTION_TIMEOUT="1000" +# Raise alarms when backend size exceeds the given quota. 0 means use the +# default quota. +#ETCD_QUOTA_BACKEND_BYTES="0" # 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 +# make sure to enable authentication in the [security] section below. +# Please also read README.security for this package. +# List of comma separated URLs to listen on for peer traffic. #ETCD_LISTEN_PEER_URLS="http://localhost:2380" +# List of comma separated URLs to listen on for client traffic. ETCD_LISTEN_CLIENT_URLS="http://localhost:2379" +# Maximum number of snapshot files to retain (0 is unlimited). #ETCD_MAX_SNAPSHOTS="5" +# Maximum number of wal files to retain (0 is unlimited). #ETCD_MAX_WALS="5" +# Comma-separated white list of origins for CORS (cross-origin resource sharing). #ETCD_CORS="" +# Enable runtime profiling data via HTTP server +#ETCD_ENABLE_PPROF="true" +# Force to create a new one member cluster. +#ETCD_FORCE_NEW_CLUSTER="false" +#ETCD_AUTO_COMPACTION_MODE="periodic" +#ETCD_AUTO_COMPACTION_RETENTION="1" # -#[cluster] +# [cluster] +# List of this member's peer URLs to advertise to the rest of the cluster. +# The URLs needed to be a comma-separated list. #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" +# List of this member's client URLs to advertise to the public. +# The URLs needed to be a comma-separated list. ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379" +# Discovery URL used to bootstrap the cluster. #ETCD_DISCOVERY="" -#ETCD_DISCOVERY_SRV="" +# Valid values include 'exit', 'proxy' #ETCD_DISCOVERY_FALLBACK="proxy" +# HTTP proxy to use for traffic to discovery service. #ETCD_DISCOVERY_PROXY="" - +# DNS domain used to bootstrap initial cluster. +#ETCD_DISCOVERY_SRV="" +# Initial cluster configuration for bootstrapping. +#ETCD_INITIAL_CLUSTER="" +# Initial cluster token for the etcd cluster during bootstrap. +#ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster" +# Initial cluster state ('new' or 'existing'). +#ETCD_INITIAL_CLUSTER_STATE="new" +# Reject reconfiguration requests that would cause quorum loss. +#ETCD_STRICT_RECONFIG_CHECK="false" +# Accept etcd V2 client requests +#ETCD_ENABLE_V2="true" # -#[security] +# [security] +# Path to the client server TLS cert file. #ETCD_CERT_FILE="" +# Path to the client server TLS key file. #ETCD_KEY_FILE="" +# Enable client cert authentication. #ETCD_CLIENT_CERT_AUTH="false" +# Path to the client server TLS trusted CA cert file. #ETCD_TRUSTED_CA_FILE="" +# Client TLS using generated certificates +#ETCD_AUTO_TLS="false" +# Path to the peer server TLS cert file. #ETCD_PEER_CERT_FILE="" +# Path to the peer server TLS key file. #ETCD_PEER_KEY_FILE="" +# Enable peer client cert authentication. #ETCD_PEER_CLIENT_CERT_AUTH="false" +# Path to the peer server TLS trusted CA cert file. #ETCD_PEER_TRUSTED_CA_FILE="" +# Peer TLS using generated certificates. +#ETCD_PEER_AUTO_TLS="false" +# Allowed CN for inter peer authentication. +#ETCD_PEER_ALLOWED_CN="" +# Allowed TLS hostname for inter peer authentication. +#ETCD_PEER_ALLOWED_HOSTNAME="" +# The validity period of the self-signed certificate, the unit is year. +#ETCD_SELF_SIGNED_CERT_VALIDITY="1" # -#[logging] +# [logging] +# Enable debug-level logging for etcd. #ETCD_LOG_LEVEL="debug" -# examples for -log-package-levels etcdserver=WARNING,security=DEBUG -#ETCD_LOG_PACKAGE_LEVELS="" +#ETCD_LOGGER="zap" +# Specify 'stdout' or 'stderr' to skip journald logging even when running under systemd. +#ETCD_LOG_OUTPUTS="stderr" # -#[proxy] Note: flags will be deprecated in v3.6. "proxy" supports v2 API only. +# [proxy] Note: flags will be deprecated in v3.6. "proxy" supports v2 API only. +# Valid values include 'on', 'readonly', 'off' #ETCD_PROXY="off" +# Time (in milliseconds) an endpoint will be held in a failed state. #ETCD_PROXY_FAILURE_WAIT="5000" +# Time (in milliseconds) of the endpoints refresh interval. #ETCD_PROXY_REFRESH_INTERVAL="30000" +# Time (in milliseconds) for a dial to timeout. #ETCD_PROXY_DIAL_TIMEOUT="1000" +# Time (in milliseconds) for a write to timeout. #ETCD_PROXY_WRITE_TIMEOUT="5000" +# Time (in milliseconds) for a read to timeout. #ETCD_PROXY_READ_TIMEOUT="0" diff --git a/etcd.service b/etcd.service index 8a39192..f21e5c9 100644 --- a/etcd.service +++ b/etcd.service @@ -21,6 +21,7 @@ RestrictRealtime=true Type=notify WorkingDirectory=/var/lib/etcd/ EnvironmentFile=-/etc/sysconfig/etcd +EnvironmentFile=-/etc/default/etcd User=etcd # set GOMAXPROCS to number of processors ExecStart=/bin/bash -c "GOMAXPROCS=$(nproc) /usr/sbin/etcd $ETCD_OPTIONS" diff --git a/etcd.spec b/etcd.spec index 776dd5a..58eb617 100644 --- a/etcd.spec +++ b/etcd.spec @@ -15,6 +15,7 @@ # Please submit bugfixes or comments via https://bugs.opensuse.org/ # +%global etcd_default_file /etc/default/etcd %define project go.etcd.io/etcd #Compat macro for new _fillupdir macro introduced in Nov 2017 @@ -22,7 +23,7 @@ %define _fillupdir %{_localstatedir}/adm/fillup-templates %endif Name: etcd -Version: 3.5.12 +Version: 3.5.17 Release: 0 Summary: Highly-available key value store for configuration and service discovery License: Apache-2.0 @@ -32,10 +33,11 @@ Source: %{name}-%{version}.tar.gz Source1: vendor.tar.gz Source11: %{name}.conf Source12: %{name}.service +Source13: %{name}.sysconfig Source15: README.security Source16: system-user-etcd.conf Source17: vendor-update.sh -BuildRequires: golang(API) >= 1.20 +BuildRequires: golang(API) >= 1.22 BuildRequires: golang-packaging BuildRequires: systemd-rpm-macros BuildRequires: sysuser-tools @@ -108,13 +110,19 @@ 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} +install -D -p -m 0644 %{SOURCE13} %{buildroot}%{_fillupdir}/sysconfig.%{name} +install -D -p -m 0644 %{SOURCE11} %{buildroot}%{etcd_default_file} # Additional install -d -m 750 %{buildroot}%{_localstatedir}/lib/%{name} install -Dm0644 %{SOURCE16} %{buildroot}%{_sysusersdir}/system-user-etcd.conf %pre -f %{name}.pre +if [ ! -e %{etcd_default_file} -a /etc/sysconfig/etcd ] ; then +echo "Migrating existing /etc/sysconfig/etcd to %{etcd_default_file}." +echo "From now on only ETCD_OPTIONS should be in /etc/sysconfig/etcd" +mv -i /etc/sysconfig/etcd %{etcd_default_file} +fi %service_add_pre %{name}.service %post @@ -140,6 +148,8 @@ install -Dm0644 %{SOURCE16} %{buildroot}%{_sysusersdir}/system-user-etcd.conf # Sysconfig %{_fillupdir}/sysconfig.%{name} +%config(noreplace) %{etcd_default_file} + # Additional %dir %attr(0750,%{name},%{name}) %{_localstatedir}/lib/%{name} diff --git a/etcd.sysconfig b/etcd.sysconfig new file mode 100644 index 0000000..5145aea --- /dev/null +++ b/etcd.sysconfig @@ -0,0 +1,9 @@ +## Path: Applications/etcd +## Description: etcd key value store +## Type: string() +## Default: "" +## ServiceRestart: etcd +# +# additional options to pass to etcd. e.g. --enable-v2=true +# +ETCD_OPTIONS="" diff --git a/vendor.tar.gz b/vendor.tar.gz index 964d9fb..9982198 100644 --- a/vendor.tar.gz +++ b/vendor.tar.gz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b617a120bb3aba3a12f7c06a129ecfbdacbe1456a0470e4cc73e4aeb3a9732be -size 5406488 +oid sha256:4fc63292a8b51a65e602c5b765125b2aab26d5ff4d2ff0ad61ea18777410d9e3 +size 5421959