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