Skip to content

Old renovate bot - Update etcd dependencies to ... #5865

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from

Conversation

github-actions[bot]
Copy link
Contributor

@github-actions github-actions bot commented May 22, 2025

This PR contains the following updates:

Package Type Update Change
etcd-io/etcd minor 3.5.21 -> 3.6.0
go.etcd.io/etcd/api/v3 require minor v3.5.21 -> v3.6.0
go.etcd.io/etcd/client/pkg/v3 require minor v3.5.21 -> v3.6.0
go.etcd.io/etcd/client/v3 require minor v3.5.21 -> v3.6.0
go.etcd.io/etcd/etcdutl/v3 require minor v3.5.21 -> v3.6.0
go.etcd.io/etcd/pkg/v3 indirect minor v3.5.21 -> v3.6.0
go.etcd.io/etcd/server/v3 indirect minor v3.5.21 -> v3.6.0

Release Notes

etcd-io/etcd (etcd-io/etcd)

v3.6.0

Compare Source

Please check out CHANGELOG for a full list of changes. And make sure to read upgrade guide before upgrading etcd (there may be breaking changes).

For installation guides, please check out play.etcd.io and operating etcd. Latest support status for common architectures and operating systems can be found at supported platforms.

Linux
ETCD_VER=v3.6.0

##### choose either URL
GOOGLE_URL=https://storage.googleapis.com/etcd
GITHUB_URL=https://github.com/etcd-io/etcd/releases/download
DOWNLOAD_URL=${GOOGLE_URL}

rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
rm -rf /tmp/etcd-download-test && mkdir -p /tmp/etcd-download-test

curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
tar xzvf /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz -C /tmp/etcd-download-test --strip-components=1 --no-same-owner
rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz

/tmp/etcd-download-test/etcd --version
/tmp/etcd-download-test/etcdctl version
/tmp/etcd-download-test/etcdutl version

##### start a local etcd server
/tmp/etcd-download-test/etcd

##### write,read to etcd
/tmp/etcd-download-test/etcdctl --endpoints=localhost:2379 put foo bar
/tmp/etcd-download-test/etcdctl --endpoints=localhost:2379 get foo
macOS (Darwin)
ETCD_VER=v3.6.0

##### choose either URL
GOOGLE_URL=https://storage.googleapis.com/etcd
GITHUB_URL=https://github.com/etcd-io/etcd/releases/download
DOWNLOAD_URL=${GOOGLE_URL}

rm -f /tmp/etcd-${ETCD_VER}-darwin-amd64.zip
rm -rf /tmp/etcd-download-test && mkdir -p /tmp/etcd-download-test

curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-darwin-amd64.zip -o /tmp/etcd-${ETCD_VER}-darwin-amd64.zip
unzip /tmp/etcd-${ETCD_VER}-darwin-amd64.zip -d /tmp && rm -f /tmp/etcd-${ETCD_VER}-darwin-amd64.zip
mv /tmp/etcd-${ETCD_VER}-darwin-amd64/* /tmp/etcd-download-test && rm -rf mv /tmp/etcd-${ETCD_VER}-darwin-amd64

/tmp/etcd-download-test/etcd --version
/tmp/etcd-download-test/etcdctl version
/tmp/etcd-download-test/etcdutl version
Docker

etcd uses gcr.io/etcd-development/etcd as a primary container registry, and quay.io/coreos/etcd as secondary.

ETCD_VER=v3.6.0

rm -rf /tmp/etcd-data.tmp && mkdir -p /tmp/etcd-data.tmp && \
  docker rmi gcr.io/etcd-development/etcd:${ETCD_VER} || true && \
  docker run \
  -p 2379:2379 \
  -p 2380:2380 \
  --mount type=bind,source=/tmp/etcd-data.tmp,destination=/etcd-data \
  --name etcd-gcr-${ETCD_VER} \
  gcr.io/etcd-development/etcd:${ETCD_VER} \
  /usr/local/bin/etcd \
  --name s1 \
  --data-dir /etcd-data \
  --listen-client-urls http://0.0.0.0:2379 \
  --advertise-client-urls http://0.0.0.0:2379 \
  --listen-peer-urls http://0.0.0.0:2380 \
  --initial-advertise-peer-urls http://0.0.0.0:2380 \
  --initial-cluster s1=http://0.0.0.0:2380 \
  --initial-cluster-token tkn \
  --initial-cluster-state new \
  --log-level info \
  --logger zap \
  --log-outputs stderr

docker exec etcd-gcr-${ETCD_VER} /usr/local/bin/etcd --version
docker exec etcd-gcr-${ETCD_VER} /usr/local/bin/etcdctl version
docker exec etcd-gcr-${ETCD_VER} /usr/local/bin/etcdutl version
docker exec etcd-gcr-${ETCD_VER} /usr/local/bin/etcdctl endpoint health
docker exec etcd-gcr-${ETCD_VER} /usr/local/bin/etcdctl put foo bar
docker exec etcd-gcr-${ETCD_VER} /usr/local/bin/etcdctl get foo

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

@github-actions github-actions bot requested review from a team as code owners May 22, 2025 10:09
@github-actions github-actions bot requested review from kke and juanluisvaladas May 22, 2025 10:09
@github-actions github-actions bot force-pushed the renovate/etcd-all branch from e858a71 to e96d1a3 Compare May 22, 2025 14:01
@github-actions github-actions bot changed the title Update dependency etcd-io/etcd to v3.6.0 Update etcd dependencies to v3.6.0 May 22, 2025
Copy link
Contributor Author

ℹ Artifact update notice

File name: go.mod

In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):

  • 9 additional dependencies were updated

Details:

Package Change
github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0 -> v2.26.3
github.com/jonboulle/clockwork v0.4.0 -> v0.5.0
go.etcd.io/bbolt v1.3.11 -> v1.4.0
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0 -> v0.59.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 -> v1.34.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 -> v1.34.0
go.opentelemetry.io/proto/otlp v1.4.0 -> v1.5.0
google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a -> v0.0.0-20250303144028-a0af3efb3deb
google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a -> v0.0.0-20250303144028-a0af3efb3deb

@juanluisvaladas
Copy link
Contributor

I run the workflow manually after merging #5868

There are two interesting notes here:
1- The PR got recreated even if I didn't check the rebase/retry checkbox, which is useful
2- Again, the CI didn't run, so it's something we need to look into.

@juanluisvaladas
Copy link
Contributor

juanluisvaladas commented May 22, 2025

Looks like it doesn't run go mod tidy, which is odd.

Copy link
Contributor

@juanluisvaladas juanluisvaladas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

needs go mod tidy

Copy link
Member

@twz123 twz123 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Alright, the PR looks good. However, we need to test it carefully because it's the first feature release in several years. Also, @jnummelin said he heard about some dragons hiding in the dark wrinkles of the upgrade path.

@juanluisvaladas
Copy link
Contributor

juanluisvaladas commented May 23, 2025

Alright, the PR looks good. However, we need to test it carefully because it's the first feature release in several years. Also, @jnummelin said he heard about some dragons hiding in the dark wrinkles of the upgrade path.

Also there is a breaking change in an API we use.

diff --git a/pkg/backup/etcd_unix.go b/pkg/backup/etcd_unix.go
index a89cec4b7..2058cd06b 100644
--- a/pkg/backup/etcd_unix.go
+++ b/pkg/backup/etcd_unix.go
@@ -66,7 +66,7 @@ func (e etcdStep) Backup() (StepResult, error) {
        lg := zap.NewNop()
 
        // save snapshot
-       if err = snapshot.Save(ctx, lg, *etcdClient.Config, path); err != nil {
+       if _, err = snapshot.SaveWithVersion(ctx, lg, *etcdClient.Config, path); err != nil {

I'll close and reopen to force the CI to run to verify that the go mod tidy work actually worked entirely as we expected even though I checked it locally on my machine.

@juanluisvaladas
Copy link
Contributor

As for the upgrade I did a quick reading on etcd documentation and I verified we aren't using any of the deprecated/removed flags. I believe all we need to do is:

1- Before starting etcd check if the cluster is healthy and the etcd version of the peers
2- If the leader is running v3.5, make a snapshot of the leader just in case
3- Start etcd and verify that everything is healthy

So assuming it's just what the docs say, it looks like most of the effort will be testing and documentation.

@github-actions github-actions bot force-pushed the renovate/etcd-all branch from 5cf577b to 52f710d Compare May 25, 2025 00:32
@twz123 twz123 closed this May 25, 2025
@twz123 twz123 reopened this May 25, 2025
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@github-actions github-actions bot force-pushed the renovate/etcd-all branch from 52f710d to 1638fdf Compare May 27, 2025 00:29
@twz123
Copy link
Member

twz123 commented Jun 6, 2025

Trying to do the same as for the old kine PR. Closing/renaming this, and deleting the branch, so that it gets recreated with the right user.

@twz123 twz123 closed this Jun 6, 2025
@twz123 twz123 deleted the renovate/etcd-all branch June 6, 2025 09:50
@twz123 twz123 changed the title Update etcd dependencies to v3.6.0 Old renovate bot - Update etcd dependencies to ... Jun 6, 2025
@twz123 twz123 mentioned this pull request Jun 6, 2025
1 task
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants