Skip to content

docs: add v3.6 to v3.7 upgrade guide#1168

Open
nicknikolakakis wants to merge 1 commit into
etcd-io:mainfrom
nicknikolakakis:docs/1165-upgrade-3-7
Open

docs: add v3.6 to v3.7 upgrade guide#1168
nicknikolakakis wants to merge 1 commit into
etcd-io:mainfrom
nicknikolakakis:docs/1165-upgrade-3-7

Conversation

@nicknikolakakis
Copy link
Copy Markdown
Contributor

Fixes #1165

Adds content/en/docs/v3.7/upgrades/upgrade_3_7.md and links it from upgrading-etcd.md.

What the guide covers

Per the requirements in #1165:

  • 3.6.11+ prerequisite called out in an alert/warning block.
  • Removed experimental flags: lists all 23 --experimental-* flags removed in v3.7 (#19959) and points readers at the v3.5 to v3.6 guide for the non-experimental / --feature-gates mapping (since each one was already deprecated in 3.6).
  • Final v2store removal: notes that --enable-v2, --experimental-enable-v2v3, v2 discovery, client/v2, and v2 snapshot file loading are all gone in 3.7 (#20109, #20117, #21263) and that this is a no-op for anyone coming from a clean 3.6.
  • Go refactoring: links #14533 (gogo/protobuf -> google.golang.org/protobuf), #20420 (grpc-middleware v1 -> v2), and #20017 (otelgrpc v0.61.0). Flagged as not affecting normal upgraders but worth checking for integrators.
  • Downgrade link: rollback section points to downgrades/downgrading-etcd as the "in case your upgrade goes badly" path.

The Flags added / Flags with new defaults sections are explicitly "None" - confirmed by diffing etcd --help output between v3.6.12 and v3.7.0-rc.0.

Tested

The upgrade procedure example is not synthetic. I ran a real rolling upgrade of a 3-node etcd v3.6.12 cluster to v3.7.0-rc.0 on darwin/arm64 (released v3.7.0-rc.0 binaries from the GitHub release) and captured the actual log lines, endpoint status output, and version transitions. Specifically I verified:

  1. Healthy 3-node v3.6.12 cluster started; test keys written; snapshot backup taken.
  2. Mid-upgrade mixed state: one v3.7.0-rc.0 + two v3.6.12 members reported etcdcluster: 3.6.0 (lowest common protocol).
  3. After all three were upgraded, the cluster version auto-advanced to 3.7.0 and storage version advanced to 3.7.0.
  4. All keys written pre-upgrade preserved; new writes succeeded post-upgrade.

Local site build

npm install && npx hugo --cleanDestinationDir -e dev -DFE builds cleanly. The new page renders at /docs/v3.7/upgrades/upgrade_3_7/, appears in the sidebar, and all internal links resolve (upgrade_3_6, op-guide/maintenance, downgrades/downgrading-etcd, v3.4/op-guide/v2-migration).

markdownlint-cli2 produces the same single MD001 finding as the existing upgrade_3_6.md, so I kept the heading structure consistent with the rest of the upgrade-guide family.

Add upgrade_3_7.md covering the v3.6 -> v3.7 upgrade: the 3.6.11+
prerequisite, the removal of all deprecated --experimental-* flags
(#19959), the final v2store / client/v2 / v2discovery removal
(#20109, #20117, #21263), and the Go refactoring (gogo/protobuf
migration, grpc-middleware v2). Adds the new page to the upgrading-etcd
index and links to the downgrade guide as a rollback option.

The upgrade procedure example was captured from a real rolling
upgrade of a 3-node etcd v3.6.12 cluster to v3.7.0-rc.0 on darwin/arm64.

Fixes etcd-io#1165

Signed-off-by: Nick Nikolakakis <nonicked@protonmail.com>
@k8s-ci-robot
Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: nicknikolakakis
Once this PR has been reviewed and has the lgtm label, please assign wenjiaswe for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot
Copy link
Copy Markdown

Hi @nicknikolakakis. Thanks for your PR.

I'm waiting for a etcd-io member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work.

Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@jberkus
Copy link
Copy Markdown
Contributor

jberkus commented Jun 4, 2026

Wow, nice! Reviewing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Need upgrade instructions for etcd 3.7

3 participants