Etcd upversion from 3.3.25 to 3.4.27

This change updates etcd version to 3.4.27.

The new etcd version does not generate package named 'etcd'.
Etcd server binary (/usr/bin/etcd) is packed in the package
'etcd-server'. So a patch is added to the etcd puppet module
to update the package name. Also, as we do not use /etc/etcd/etcd.yml,
another patch is added to remove its generation. Etcd 3.3.25 would
create a new user 'etcd'. As no processes or files require etcd user
context, it is removed in the new version. Etcd process and config
files are managed by puppet and are owned by the root user.

Depends-On: https://review.opendev.org/c/starlingx/integ/+/897091
Depends-On: https://review.opendev.org/c/starlingx/tools/+/897100
Depends-On: https://review.opendev.org/c/starlingx/stx-puppet/+/897099
Depends-On: https://review.opendev.org/c/starlingx/stx-puppet/+/898851

Test Plan:
PASS: All packages build and build image successful
PASS: AIO-SX, AIO_DX fresh install success with new etcd version.
PASS: CRUD operations on a test pod successful.
PASS: Lock/Unlock reboot succeeds. K8s cluster healthy after each
      operation. Test pod persists upon lock/unlock and reboot.
PASS: AIO-SX platform upgrade successful. K8s cluster healthy after
      platform upgrade.

Story: 2010878
Task: 48877

Change-Id: Ifb4d7d5c8f4d3dbf754f117db75408bff9181464
Signed-off-by: Kaustubh Dhokte <kaustubh.dhokte@windriver.com>
This commit is contained in:
Kaustubh Dhokte 2023-10-02 23:21:11 +00:00
parent dd158616be
commit 8cecc0667d
18 changed files with 349 additions and 103 deletions

View File

@ -0,0 +1,47 @@
From ca6c05f5cb5f9b2f789fa4ce29d2515246d08e33 Mon Sep 17 00:00:00 2001
From: Kaustubh Dhokte <kaustubh.dhokte@windriver.com>
Date: Fri, 29 Sep 2023 18:26:00 -0700
Subject: [PATCH] Remove etcd yaml config file
This change prevents creation of /etc/etcd/etcd.yaml as it
is not required. Also, it changes owner of /etc/etcd/ from etcd
to root.
Signed-off-by: Kaustubh Dhokte <kaustubh.dhokte@windriver.com>
---
manifests/config.pp | 12 ++----------
1 file changed, 2 insertions(+), 10 deletions(-)
diff --git a/manifests/config.pp b/manifests/config.pp
index c61c711..dbf66eb 100644
--- a/manifests/config.pp
+++ b/manifests/config.pp
@@ -4,8 +4,8 @@ class etcd::config {
if $::osfamily == 'Ubuntu' {
file { '/etc/etcd':
ensure => 'directory',
- owner => 'etcd',
- group => 'etcd',
+ owner => 'root',
+ group => 'root',
mode => '0755',
}
}
@@ -15,14 +15,6 @@ class etcd::config {
content => template("${module_name}/etc/etcd/etcd.conf.erb"),
}
- file { $::etcd::config_yaml_path:
- ensure => 'file',
- owner => 'etcd',
- group => 'etcd',
- mode => '0640',
- content => template("${module_name}/etc/etcd/etcd.yml.erb"),
- }
-
if $::etcd::manage_package and $::etcd::journald_forward_enable and $::operatingsystemmajrelease == '7' {
file { '/etc/systemd/system/etcd.service.d':
ensure => 'directory',
--
2.25.1

View File

@ -0,0 +1,30 @@
From 3225b87daa590664df84f87291277fa1377ab351 Mon Sep 17 00:00:00 2001
From: Kaustubh Dhokte <kaustubh.dhokte@windriver.com>
Date: Fri, 29 Sep 2023 18:23:35 -0700
Subject: [PATCH] Rename package name to etcd-server
etcd-3.4.27 does not generate binary/package 'etcd'.
Without this change, puppet manifest fails as it can not
find the package etcd.
Signed-off-by: Kaustubh Dhokte <kaustubh.dhokte@windriver.com>
---
manifests/params.pp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/manifests/params.pp b/manifests/params.pp
index ea3d7f2..6ff3d44 100644
--- a/manifests/params.pp
+++ b/manifests/params.pp
@@ -4,7 +4,7 @@
#
class etcd::params {
$ensure = 'present'
- $package_name = 'etcd'
+ $package_name = 'etcd-server'
$manage_package = true
$manage_service = true
--
2.25.1

View File

@ -1 +1,3 @@
0001-Allow-use-with-stdlib-5.0.0.patch
0002-Remove-etcd-yaml-config-file.patch
0003-Rename-package-name-to-etcd-server.patch

View File

@ -94,7 +94,6 @@ efitools
#etcd
etcd-client
etcd-server
etcd
#golang-etcd-server-dev # not used
#facter

View File

@ -0,0 +1,5 @@
etcd (3.4.27-1) unstable; urgency=medium
* Updated for stx debian packaging
-- Kaustubh Dhokte <kaustubh.dhokte@windriver.com> Thu, 21 Sep 2023 23:41:53 +0000

View File

@ -0,0 +1,150 @@
Source: etcd
Maintainer: StarlingX Developers <StarlingX-discuss@lists.StarlingX.io>
Section: net
Priority: optional
Build-Depends: debhelper-compat (= 13),
dh-golang,
golang-any (>= 2:1.10~),
golang-github-bgentry-speakeasy-dev (>= 0.1.0~),
golang-github-cockroachdb-datadriven-dev,
golang-github-coreos-bbolt-dev,
golang-github-coreos-go-semver-dev (>= 0.2.0~),
golang-github-coreos-go-systemd-dev,
golang-github-coreos-pkg-dev (>= 3~),
golang-github-creack-pty-dev (>= 1.1.11~),
golang-github-dgrijalva-jwt-go-dev (>= 3.2.0~),
golang-github-dustin-go-humanize-dev,
golang-github-gogo-protobuf-dev,
golang-github-golang-groupcache-dev (>= 0.0~git20160516.0.02826c3~),
golang-github-golang-jwt-jwt-dev,
golang-github-google-btree-dev,
golang-github-google-uuid-dev,
golang-github-grpc-ecosystem-go-grpc-middleware-dev,
golang-github-grpc-ecosystem-go-grpc-prometheus-dev,
golang-github-grpc-ecosystem-grpc-gateway-dev (>= 1.2.0~),
golang-github-jonboulle-clockwork-dev,
golang-github-json-iterator-go-dev,
golang-github-modern-go-reflect2-dev,
golang-github-olekukonko-tablewriter-dev (>= 0.0~git20170122.0.a0225b3~),
golang-github-prometheus-client-golang-dev (>= 1.0.0~),
golang-github-prometheus-client-model-dev,
golang-github-soheilhy-cmux-dev,
golang-github-spf13-cobra-dev,
golang-github-spf13-pflag-dev,
golang-github-stretchr-testify-dev,
golang-github-tmc-grpc-websocket-proxy-dev,
golang-github-urfave-cli-dev,
golang-github-xiang90-probing-dev (>= 0.0.1~),
golang-go.uber-zap-dev,
golang-golang-x-crypto-dev,
golang-golang-x-net-dev,
golang-golang-x-sys-dev,
golang-golang-x-time-dev,
golang-golang-x-tools,
golang-google-grpc-dev,
golang-gopkg-cheggaaa-pb.v1-dev,
golang-gopkg-yaml.v2-dev,
golang-goprotobuf-dev,
golang-k8s-sigs-yaml-dev,
Standards-Version: 4.6.2
Homepage: https://etcd.io
Rules-Requires-Root: no
XS-Go-Import-Path: go.etcd.io/etcd,
github.com/coreos/etcd
Package: etcd-server
Architecture: any
Pre-Depends: ${misc:Pre-Depends},
Depends: adduser,
${misc:Depends},
${shlibs:Depends},
Suggests: etcd-client,
Built-Using: ${misc:Built-Using},
Description: highly-available key value store -- daemon
A highly-available key value store for shared configuration and service
discovery. etcd is inspired by zookeeper and doozer, with a focus on:
.
* Simple: curl'able user facing API (HTTP+JSON)
* Secure: optional SSL client cert authentication
* Fast: benchmarked 1000s of writes/s per instance
* Reliable: Properly distributed using Raft
.
Etcd uses the Raft consensus algorithm to manage a highly-available replicated
log.
.
This package contains the server binaries.
Package: etcd-client
Architecture: any
Depends: ${misc:Depends},
${shlibs:Depends},
Built-Using: ${misc:Built-Using},
Description: highly-available key value store -- client
A highly-available key value store for shared configuration and service
discovery. etcd is inspired by zookeeper and doozer, with a focus on:
.
* Simple: curl'able user facing API (HTTP+JSON)
* Secure: optional SSL client cert authentication
* Fast: benchmarked 1000s of writes/s per instance
* Reliable: Properly distributed using Raft
.
Etcd uses the Raft consensus algorithm to manage a highly-available replicated
log.
.
This package contains the client binaries.
Package: golang-etcd-server-dev
Architecture: all
Depends: golang-github-bgentry-speakeasy-dev (>= 0.1.0~),
golang-github-cockroachdb-datadriven-dev,
golang-github-coreos-bbolt-dev,
golang-github-coreos-go-semver-dev (>= 0.2.0~),
golang-github-coreos-go-systemd-dev,
golang-github-coreos-pkg-dev (>= 3~),
golang-github-creack-pty-dev (>= 1.1.11~),
golang-github-dustin-go-humanize-dev,
golang-github-gogo-protobuf-dev,
golang-github-golang-groupcache-dev (>= 0.0~git20160516.0.02826c3~),
golang-github-golang-jwt-jwt-dev,
golang-github-google-btree-dev,
golang-github-google-uuid-dev,
golang-github-grpc-ecosystem-go-grpc-middleware-dev,
golang-github-grpc-ecosystem-go-grpc-prometheus-dev,
golang-github-grpc-ecosystem-grpc-gateway-dev (>= 1.2.0~),
golang-github-jonboulle-clockwork-dev,
golang-github-json-iterator-go-dev,
golang-github-modern-go-reflect2-dev,
golang-github-olekukonko-tablewriter-dev (>= 0.0~git20170122.0.a0225b3~),
golang-github-prometheus-client-golang-dev (>= 1.0.0~),
golang-github-prometheus-client-model-dev,
golang-github-soheilhy-cmux-dev,
golang-github-spf13-cobra-dev,
golang-github-spf13-pflag-dev,
golang-github-tmc-grpc-websocket-proxy-dev,
golang-github-urfave-cli-dev,
golang-github-xiang90-probing-dev (>= 0.0.1~),
golang-go.uber-zap-dev,
golang-golang-x-crypto-dev,
golang-golang-x-net-dev,
golang-golang-x-sys-dev,
golang-golang-x-time-dev,
golang-google-grpc-dev,
golang-gopkg-cheggaaa-pb.v1-dev,
golang-gopkg-yaml.v2-dev,
golang-goprotobuf-dev,
golang-k8s-sigs-yaml-dev,
${misc:Depends},
Provides: golang-github-coreos-etcd-dev,
Description: highly-available key value store -- source
A highly-available key value store for shared configuration and service
discovery. etcd is inspired by zookeeper and doozer, with a focus on:
.
* Simple: curl'able user facing API (HTTP+JSON)
* Secure: optional SSL client cert authentication
* Fast: benchmarked 1000s of writes/s per instance
* Reliable: Properly distributed using Raft
.
Etcd uses the Raft consensus algorithm to manage a highly-available replicated
log.
.
This package contains the source.

View File

@ -0,0 +1,64 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: etcd
Source: https://github.com/etcd-io/etcd
Files-Excluded: vendor
Files: *
Copyright: 2014-2015 CoreOS, Inc
2013-2017 The etcd Authors
License: Apache-2.0
Files:
client/cancelreq.go
client/integration/main_test.go
clientv3/integration/main_test.go
integration/main_test.go
pkg/crc/crc.go
pkg/crc/crc_test.go
pkg/httputil/httputil.go
pkg/pathutil/path.go
pkg/testutil/leak.go
tests/e2e/main_test.go
Copyright: 2013-2015 The Go Authors.
License: BSD-3-clause
Files: debian/*
Copyright: 2023 Wind River Systems, Inc.
License: Apache-2.0
License: Apache-2.0
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
.
http://www.apache.org/licenses/LICENSE-2.0
.
On Debian systems, the complete text of the Apache 2.0
License can be found in `/usr/share/common-licenses/Apache-2.0`.
License: BSD-3-clause
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
.
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the
distribution.
* The name of the author may not be used to endorse or promote
products derived from this software without specific prior written
permission.
.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View File

@ -0,0 +1 @@
usr/bin/etcdctl

View File

@ -0,0 +1 @@
usr/bin/etcd

View File

@ -0,0 +1,17 @@
#!/bin/sh
set -e
case $1 in
configure)
mkdir -m 755 -p /etc/etcd
;;
abort-upgrade|abort-remove|abort-deconfigure)
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 1
;;
esac
#DEBHELPER#

View File

@ -0,0 +1 @@
/usr/share/gocode/src

View File

@ -0,0 +1,12 @@
usr/bin/benchmark
usr/bin/bridge
usr/bin/etcd-agent
usr/bin/etcd-dump-db
usr/bin/etcd-dump-logs
usr/bin/etcd-dump-metrics
usr/bin/etcd-proxy
usr/bin/etcd-runner
usr/bin/etcd-tester
usr/bin/etcd2-backup-coreos
usr/bin/raftexample

View File

@ -0,0 +1,13 @@
#!/usr/bin/make -f
export DH_GOLANG_GO_GENERATE := 0
%:
dh $@ --buildsystem=golang --with=golang --builddirectory=_build
# There is a script named "build" in the upstream source.
# So let us be explicit about the .PHONY target here to avoid conflicts.
build:
dh build --buildsystem=golang --with=golang --builddirectory=_build
.PHONY: build

View File

@ -0,0 +1 @@
3.0 (quilt)

View File

@ -1,67 +0,0 @@
From 7ef071f8616c36bab74f4b367ef6405c20051f84 Mon Sep 17 00:00:00 2001
From: Daniel Safta <daniel.safta@windriver.com>
Date: Mon, 4 Oct 2021 14:55:59 +0300
Subject: [PATCH] Update config
Updated .default and .service
files with the needed configs.
---
debian/etcd-server.etcd.default | 8 ++++----
debian/etcd-server.etcd.service | 4 ++--
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/debian/etcd-server.etcd.default b/debian/etcd-server.etcd.default
index cf1262c9..36255fbc 100644
--- a/debian/etcd-server.etcd.default
+++ b/debian/etcd-server.etcd.default
@@ -11,12 +11,12 @@
## using discovery, each member must have a unique name. `Hostname` or
## `machine-id` can be a good choice.
## default: "default"
-# ETCD_NAME="default"
+ETCD_NAME="default"
##### --data-dir
## Path to the data directory.
## default: "${name}.etcd"
-# ETCD_DATA_DIR="/var/lib/etcd/default"
+ETCD_DATA_DIR="/var/lib/etcd/default"
##### --wal-dir
## Path to the dedicated wal directory. If this flag is set, etcd will write
@@ -68,7 +68,7 @@
## default: "http://localhost:2379"
## example: "http://10.0.0.1:2379"
## invalid example: "http://example.com:2379" (domain name is invalid for binding)
-# ETCD_LISTEN_CLIENT_URLS="http://localhost:2379"
+ETCD_LISTEN_CLIENT_URLS="http://localhost:2379"
##### --max-snapshots
## Maximum number of snapshot files to retain (0 is unlimited)
@@ -184,7 +184,7 @@
## file descriptors) are eventually depleted.
## default: "http://localhost:2379"
## example: "http://example.com:2379, http://10.0.0.1:2379"
-# ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379"
+ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379"
##### --discovery
## Discovery URL used to bootstrap the cluster.
diff --git a/debian/etcd-server.etcd.service b/debian/etcd-server.etcd.service
index f4854bec..f7af53a5 100644
--- a/debian/etcd-server.etcd.service
+++ b/debian/etcd-server.etcd.service
@@ -13,8 +13,8 @@ EnvironmentFile=-/etc/default/%p
Type=notify
User=etcd
PermissionsStartOnly=true
-#ExecStart=/bin/sh -c "GOMAXPROCS=$(nproc) /usr/bin/etcd $DAEMON_ARGS"
-ExecStart=/usr/bin/etcd $DAEMON_ARGS
+ExecStart=/bin/sh -c "GOMAXPROCS=$(nproc) /usr/bin/etcd --name=\"${ETCD_NAME}\" --data-dir=\"${ETCD_DATA_DIR}\" --listen-client-urls=\"${ETCD_LISTEN_CLIENT_URLS}\""
+#ExecStart=/usr/bin/etcd $DAEMON_ARGS
Restart=on-abnormal
#RestartSec=10s
LimitNOFILE=65536
--
2.25.1

View File

@ -1,28 +0,0 @@
From a5d54403cad886ff73a3051d6c3d2fb796e1f65b Mon Sep 17 00:00:00 2001
From: Charles Short <charles.short@windriver.com>
Date: Wed, 12 Jan 2022 11:42:20 -0500
Subject: [PATCH] Add /etc/etcd configuration directory
Ansible playbook expects an /etc/etcd directory so
create one when the etcd-server is installed.
Signed-off-by: Charles Short <charles.short@windriver.com>
---
debian/etcd-server.postinst | 1 +
1 file changed, 1 insertion(+)
diff --git a/debian/etcd-server.postinst b/debian/etcd-server.postinst
index 0bdc5c20..3ed3754e 100644
--- a/debian/etcd-server.postinst
+++ b/debian/etcd-server.postinst
@@ -8,6 +8,7 @@ case $1 in
adduser --system --group --disabled-login --disabled-password --home /var/lib/etcd/ etcd
fi
chmod 700 /var/lib/etcd/
+ mkdir -m 755 -p /etc/etcd
;;
abort-upgrade|abort-remove|abort-deconfigure)
;;
--
2.25.1

View File

@ -1,2 +0,0 @@
0001-Update-config.patch
0002-Add-etc-etcd-configuration-directory.patch

View File

@ -1,11 +1,11 @@
---
debname: etcd
debver: 3.3.25+dfsg-6
debver: 3.4.27
dl_path:
name: etcd-debian-3.3.25+dfsg-6.tar.gz
url: https://salsa.debian.org/go-team/packages/etcd/-/archive/debian/3.3.25+dfsg-6/etcd-debian-3.3.25+dfsg-6.tar.gz
md5sum: 91df267a20b0f34a1ad1ff48a8815706
sha256sum: c1303c274a3bb83fca94fa862454c7110ed131323d54e5614f401b62f3665e3f
name: etcd-3.4.27.tar.gz
url: https://github.com/etcd-io/etcd/archive/refs/tags/v3.4.27.tar.gz
md5sum: 8337cfbd8c437107b0b95fef06fe1d18
sha256sum: aad42ea0635bc6481b04eb6e279c6122ccd72117018296aab32d0f9d6d606243
revision:
dist: $STX_DIST
GITREVCOUNT: