-
Notifications
You must be signed in to change notification settings - Fork 2
chore(deps): bump go.etcd.io/etcd/client/v3 from 3.5.21 to 3.6.12 #164
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
Open
dependabot
wants to merge
1
commit into
main
Choose a base branch
from
dependabot/go_modules/go.etcd.io/etcd/client/v3-3.6.12
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🌐 Web query:
etcd v3.6.0 breaking changes and compatibility with v3.5💡 Result:
etcd v3.6.0 introduces several critical breaking changes and specific requirements for upgrading from v3.5. Key Breaking Changes in v3.6.0: - Peer Endpoints Restriction: Peer endpoints (--listen-peer-urls) no longer serve client requests [1][2]. - CLI Tool Boundaries: A clear boundary between etcdctl (online) and etcdutl (offline) has been established [1]. Commands previously shared or used via etcdctl—specifically defrag, snapshot status, and snapshot restore—are now strictly delegated to etcdutl [1][2]. - Data Schema Incompatibility: Older etcd binaries are incompatible with newer data schema versions; for example, v3.5 binaries cannot start with data created by v3.6 [1][2]. - Removed Flags: Several flags, including all v2-related experimental flags (e.g., --enable-v2, --experimental-enable-v2v3) and various proxy-related flags, have been removed [2]. - CLI Behavior: etcdctl will now sleep for 2 seconds when performing a range delete without the --range flag [2]. Upgrade Compatibility and Requirements: - Mandatory Pre-requisite: Before upgrading to v3.6, you must upgrade your v3.5 cluster to v3.5.26 or later [3][4]. - Preventing Data/Membership Inconsistencies: Upgrading to v3.5.26+ is necessary to resolve potential inconsistencies between v2store and v3store regarding membership data, which could otherwise lead to "zombie" members or upgrade failures (e.g., "membership: too many learner member in cluster") [5][6][4]. - General Policy: etcd supports upgrading only one minor version at a time (e.g., v3.5 to v3.6) [7]. Patch upgrades (within the same minor version) are supported, but skipping minor versions is not [7]. - Process: The upgrade is generally performed as a zero-downtime, rolling replacement of binaries [3]. The cluster operates using the protocol of the lowest common version until all members are upgraded [3].
Citations:
🌐 Web query:
etcd client v3.6 compatibility with server v3.5💡 Result:
Yes, the etcd client v3.6 is generally compatible with the etcd server v3.5. The etcd API follows semantic versioning principles where the v3 API is designed to be stable, meaning newer client libraries (like v3.6) are typically backward compatible with older minor server versions (like v3.5) [1]. While etcd does not publish a formal, exhaustive compatibility matrix, the project design ensures that clients can communicate with server versions that support the same API version [1][2]. Key considerations for compatibility include: 1. Protocol Support: etcd clusters operate using the protocol of the lowest common version during rolling upgrades [3][4]. Client libraries are generally designed to handle communication across minor versions, provided they are within the supported range of the v3 API [1]. 2. Feature Limitations: While a v3.6 client can communicate with a v3.5 server, you will only be able to utilize features that are supported by the server. If you attempt to use a feature introduced in v3.6, the v3.5 server will not recognize it [3][4]. 3. Best Practices: It is standard practice to upgrade the etcd server cluster to the newer version (v3.6) to take full advantage of new features, bug fixes, and performance improvements [5][4]. If you are maintaining a cluster, ensure that your server is running a recent patch version (e.g., v3.5.20+) before attempting an upgrade, as early minor releases may contain known bugs or specific upgrade path requirements [6][7]. Always verify your specific use case by testing, especially if your application relies on advanced or experimental features, as these may have different requirements depending on the server version [8].
Citations:
Review go.mod etcd client/server version skew (v3.6.12 client vs v3.5.21 server)
go.etcd.io/etcd/client/v3is bumped to v3.6.12 whilego.etcd.io/etcd/server/v3stays v3.5.21 (go.mod lines 22-24). etcd’s v3 API is designed for backward compatibility across minor versions, so this skew is generally expected to work for standard KV/watch/lease operations—but any v3.6-only features/behaviors used by the code won’t be recognized by a v3.5 server. Add/confirm integration coverage for the specific operations you rely on ifserver/v3is used for embedded server/test scenarios.🤖 Prompt for AI Agents