Repository navigation
Upgrade notes: stop every 2.1 instance before the first 2.2.0 one starts - #809
Merged
Merged
Conversation
docs/deployment.md lets a release say when it needs more than a rolling restart, and 2.2.0's notes did not. While 2.1 instances still serve after the first 2.2.0 instance has migrated: - they skip a credential-forwarding realm 2.2.0 has rewritten with `accept_client_passwords` (the [auth.upstream_basic] seed does so at the first start), since 2.1 parses realm rows with deny_unknown_fields, and its users get 401 there; - a policy saved on 2.2.0 with a glob in `protected_tags`, run by a 2.1 worker, deletes the tags the glob protects, and 2.1 ignores the package delay's per-package overrides; - an account they create or set to Reader gets no built-in `reader` role, which migration 0013 gave once, so it reads nothing on 2.2.0. The note says to stop every 2.1 instance first, as 2.1.0's did for 2.0.0 (#615), how to with the chart and the manifests, and what to check after an upgrade that rolled. Fixes #788 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012e6DJc1H3748D8sheqhKTV
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes #788
Problem
docs/deployment.md(Upgrades) says "a release that needs something other than a rolling restart says so there". 2.2.0's notes did not. With the chart's default RollingUpdate, the 2.1 instances that still serve after the first 2.2.0 instance has migrated go wrong in three ways:accept_client_passwordsinto a credential-forwarding realm's config. The[auth.upstream_basic]seed does so at the first start (crates/server/src/auth/realms.rs:1538-1567). 2.1 parses realm rows withdeny_unknown_fieldsand skips one it cannot read (v2.1.0 realms.rs:849-860), so its users get 401 there.protected_tagsliterally (v2.1.0 crates/core/src/retention/images.rs:219, :900, :906), sorelease-*protects nothing. It also ignores the package delay's per-package overrides.readerrole. Migration 0013 gives the role once (migrations/0013_reader_role.sql:57-68), so such an account reads nothing on 2.2.0.Change
A new fragment,
docs/changes/2.2.0/788.upgrade.md, worded like 2.1.0's note for 2.0.0 (#615). It says to stop every 2.1 instance before the first 2.2.0 instance starts, and how:--set strategy.type=Recreate, or scale to zero;forgedeployment to zero.It names the three effects, and what to check in Admin → Users after an upgrade that rolled.
#764 (0011's lock on
component, and 0007's rename failing 2.1 imports during a rolling restart) is left to its own pull request, per AGENTS.md. Stopping the 2.1 instances first also avoids the 0007 effect.cargo xtask changelog --checkpasses.Generated by Claude Code