docs(release): sync post-RC behavior changes, issue refs, and upgrade notes

Signed-off-by: Feng Ruohang <rh@vonng.com>
This commit is contained in:
Feng Ruohang
2026-11-12 10:18:54 +08:00
parent c83dbe0eaa
commit 43122f76f1
2 changed files with 42 additions and 19 deletions
+37 -19
View File
@@ -31,8 +31,12 @@ for behavior and upgrade boundaries.
present replica, including its stored tags, fail closed on unreadable targets, present replica, including its stored tags, fail closed on unreadable targets,
and skip missing replicas caused by replication lag unless all targets are and skip missing replicas caused by replication lag unless all targets are
absent; active-active `GET` and `HEAD` proxies enforce `s3:ExistingObjectTag` absent; active-active `GET` and `HEAD` proxies enforce `s3:ExistingObjectTag`
and `s3:versionid` before returning peer responses and forward and `s3:versionid` before returning peer responses, forward
`X-Amz-Tagging-Directive: ACCESS` on `HEAD`. Authenticated unsigned-trailer `X-Amz-Tagging-Directive: ACCESS` on `HEAD`, gate proxied
`x-amz-tagging-count` and `X-Amz-Tagging` headers on tag-read authorization
without emitting duplicate headers, and filter canonical-case peer
`X-Amz-Object-Lock-*` headers when `s3:GetObjectRetention` or
`s3:GetObjectLegalHold` is denied. Authenticated unsigned-trailer
uploads enforce the request time window and header signatures, SigV4 header, uploads enforce the request time window and header signatures, SigV4 header,
presigned, streaming and POST policy verifiers bind the credential-scope date presigned, streaming and POST policy verifiers bind the credential-scope date
to the signed request timestamp, streaming trailer readers bound trailer memory to the signed request timestamp, streaming trailer readers bound trailer memory
@@ -46,12 +50,15 @@ for behavior and upgrade boundaries.
`SelectObjectContent` evaluate `s3:ExistingObjectTag` and `s3:versionid` `SelectObjectContent` evaluate `s3:ExistingObjectTag` and `s3:versionid`
(preserving retryable `5xx` server errors for callers authorized by tag (preserving retryable `5xx` server errors for callers authorized by tag
conditions when storage is unreadable, resolving the 20261109 limitation in conditions when storage is unreadable, resolving the 20261109 limitation in
[#293](https://github.com/pgsty/silo/issues/293) via
[PR #294](https://github.com/pgsty/silo/pull/294)); `CopyObject` and [PR #294](https://github.com/pgsty/silo/pull/294)); `CopyObject` and
`UploadPartCopy` authorize source `s3:ExistingObjectTag` and `s3:versionid` `UploadPartCopy` authorize source `s3:ExistingObjectTag` and `s3:versionid`
as well as destination `s3:RequestObjectTag` on copied tags; `X-Amz-Tagging` as well as destination `s3:RequestObjectTag` on copied tags; both
is returned on `GET`/`HEAD` (`X-Amz-Tagging-Directive: ACCESS`) only when `x-amz-tagging-count` and `X-Amz-Tagging` (`X-Amz-Tagging-Directive: ACCESS`)
`s3:GetObjectTagging` / `s3:GetObjectVersionTagging` (or `s3:ReplicateTags`) are omitted on `GET`/`HEAD` (including versioned reads, STS sessions,
permits; `ListObjectsV2` / `ListObjectVersions` with `metadata=true` evaluate presigned/anonymous requests and replication proxies) unless
`s3:GetObjectTagging` / `s3:GetObjectVersionTagging` (with no explicit `Deny`)
or signed `s3:ReplicateTags` permits; `ListObjectsV2` / `ListObjectVersions` with `metadata=true` evaluate
current-object and per-version metadata permissions respectively, using stored tags; and `GetObjectAttributes`, current-object and per-version metadata permissions respectively, using stored tags; and `GetObjectAttributes`,
tagging handlers (`GET`/`PUT`/`DELETE`) and ZIP `GET`/`HEAD`/member listings tagging handlers (`GET`/`PUT`/`DELETE`) and ZIP `GET`/`HEAD`/member listings
authorize stored tags and version actions without mutating unindexed archives authorize stored tags and version actions without mutating unindexed archives
@@ -71,7 +78,8 @@ for behavior and upgrade boundaries.
bulk execution. bulk execution.
- Decommission rescans keys hidden below another key only while source - Decommission rescans keys hidden below another key only while source
versions are actually removed, resolving the 20261109 limitation recorded versions are actually removed, resolving the 20261109 limitation recorded
in [#293](https://github.com/pgsty/silo/issues/293). Decommission and rebalance in [#334](https://github.com/pgsty/silo/issues/334)
([PR #335](https://github.com/pgsty/silo/pull/335)). Decommission and rebalance
clean up successfully migrated sibling versions after concurrent deletion clean up successfully migrated sibling versions after concurrent deletion
of another version. Source-removal and final empty verification check every of another version. Source-removal and final empty verification check every
online drive and tolerate offline drives within the erasure set's read quorum, online drive and tolerate offline drives within the erasure set's read quorum,
@@ -100,14 +108,20 @@ for behavior and upgrade boundaries.
In-place metadata updates locate the exact requested version and preserve In-place metadata updates locate the exact requested version and preserve
authoritative content on moving pools, while copies that require encryption authoritative content on moving pools, while copies that require encryption
or checksum recomputation select an active pool or checksum recomputation select an active pool
([#343](https://github.com/pgsty/silo/issues/343)). ([#343](https://github.com/pgsty/silo/issues/343)). Indexed `Range` reads into
compressed, server-side encrypted (`SSE-S3`, `SSE-KMS`, `SSE-C`) objects also
succeed when the target compressed block starts inside the first 64 KiB
encrypted frame (`decryptSkip > 0`), without rewriting stored objects.
- Batch KMS rotation decodes and validates the configured encryption context - Batch KMS rotation decodes and validates the configured encryption context
(and incoming HTTP SSE-KMS context headers) as strict UTF-8 JSON before as strict UTF-8 JSON before changing an object key and without adding
changing an object key and without adding validation-probe fields to object validation-probe fields to object metadata, supports `SSE-S3` to `SSE-KMS`
metadata, supports `SSE-S3` to `SSE-KMS` key migration and multipart metadata key migration and multipart metadata preservation, and rewrites legacy `XLV1`
preservation, and rewrites legacy `XLV1` objects onto `XLv2` streams instead objects onto `XLv2` streams instead of failing in-place metadata updates
of failing in-place metadata updates ([#346](https://github.com/pgsty/silo/issues/346)). Incoming HTTP
([#346](https://github.com/pgsty/silo/issues/346)). Batch variable `X-Amz-Server-Side-Encryption-Context` headers on `PutObject`, `CopyObject`,
`CreateMultipartUpload` and browser `POST` uploads reject empty values,
malformed Base64/UTF-8/JSON, trailing tokens and non-string/non-`null` member
values with `400 InvalidArgument` instead of `500 InternalError`. Batch variable
preflight follows the pinned policy evaluator's literal and substitution preflight follows the pinned policy evaluator's literal and substitution
rules, including BinaryEquals, while retaining refusal of unavailable rules, including BinaryEquals, while retaining refusal of unavailable
request context. This does not add AWS special-variable escape semantics request context. This does not add AWS special-variable escape semantics
@@ -125,11 +139,15 @@ for behavior and upgrade boundaries.
the matching `admin accesskey` and `idp ldap/openid accesskey` commands, and the matching `admin accesskey` and `idp ldap/openid accesskey` commands, and
any other `update-service-account` request without `newPolicy` removed the any other `update-service-account` request without `newPolicy` removed the
inline policy on the receiving site and on site-replication peers for inline policy on the receiving site and on site-replication peers for
non-root parent users. In the matching Console, turn off **Restrict beyond non-root parent users. In the matching Console (`v2.7.1`), turn off **Restrict
user policy** or enter `{}` to remove an inline policy; clearing the editor beyond user policy** or enter `{}` to remove an inline policy; clearing the
while restriction is enabled prevents saving. Upgrade every site, then review editor while restriction is enabled prevents saving, save errors render inside
accounts that `svcacct info` reports with `Policy: implied` and re-apply the edit modal, and HTTP-to-HTTPS browser redirects preserve the request host
restrictions where needed. or `CONSOLE_SECURE_TLS_HOST` when bound to `--host 0.0.0.0`
(`unrolled/secure v1.18.0`). Freeze service-account edits on un-upgraded
`20261109` nodes during rollout; after upgrading every site, review accounts
that `svcacct info` reports with `Policy: implied` and re-apply restrictions
where needed.
- S3 `DeleteObjects` on a single pool stops at an entry whose name fails the - S3 `DeleteObjects` on a single pool stops at an entry whose name fails the
object name check: the entry returns `XMinioInvalidObjectName` and is not object name check: the entry returns `XMinioInvalidObjectName` and is not
+5
View File
@@ -107,6 +107,11 @@ When upgrading an existing Silo release to `RELEASE.2026-11-12T00-00-00Z` (chart
- `helm upgrade --reuse-values` keeps the previously saved `image.tag` and - `helm upgrade --reuse-values` keeps the previously saved `image.tag` and
`mcImage.tag`; pass `--set-string image.tag=RELEASE.2026-11-12T00-00-00Z` and `mcImage.tag`; pass `--set-string image.tag=RELEASE.2026-11-12T00-00-00Z` and
`--set-string mcImage.tag=RELEASE.2026-11-12T00-00-00Z` explicitly. `--set-string mcImage.tag=RELEASE.2026-11-12T00-00-00Z` explicitly.
- When upgrading from `20261109`, avoid editing service accounts on un-upgraded
pods or peer sites until every node runs `20261112`, drain active batch jobs,
and pause pool decommission or concurrent multi-pool writes during rolling pod
restarts so lock-ordering and cross-pool `null`-version Object Lock checks
apply uniformly.
- When upgrading from `20261026` or earlier, drain or cancel active batch jobs - When upgrading from `20261026` or earlier, drain or cancel active batch jobs
before upgrading; `20261026` cannot resume submitter-bound batch manifests on before upgrading; `20261026` cannot resume submitter-bound batch manifests on
downgrade, single-pool clusters whose erasure sets do not all share the same downgrade, single-pool clusters whose erasure sets do not all share the same