Repository navigation
fix(velero): bump velero-plugin-for-aws to v1.14.4 so backups work on R2 - #4834
Aleksei Sviridkin (lexfrei) merged 1 commit into
Conversation
velero-plugin-for-aws v1.14.1 sets x-amz-tagging on every PutObject,
empty when the BackupStorageLocation configures no tags. Cloudflare R2
answers that with 501 NotImplemented ("Header 'x-amz-tagging' with value
'' not implemented"), so Velero cannot write backup metadata and every
backup to an R2 location fails, the cozy-default location included when
the platform bucket is on R2.
The plugin sends the header only when tags are configured since v1.14.3
(velero-plugin-for-aws#309, a backport of cozystack#299). v1.14.4 is the current
patch release of the 1.14 line, which upstream lists as the one
compatible with Velero 1.18, and adds only CVE dependency bumps on top
of v1.14.3.
Signed-off-by: Yasar Rahman <[email protected]>
Assisted-by: LLM
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to The plugin image pin and its test expectation are aligned; no actionable merge-blocking risk is evident in the reviewed changes. Pre-merge checks |
|
Aleksei Sviridkin (lexfrei)
left a comment
There was a problem hiding this comment.
yrahman82 NOT LGTM, only because one line in the PR description has to go before this merges. The change itself is correct, and I'll approve once that line is fixed.
The description ends with Fixes #NNNN (the issue in ISSUE-velero-r2-empty-tagging.md, if filed first). This repo merges with merge commits, and the PR description becomes the merge commit message. So a placeholder and the name of a local draft file would land in the history of main. Please drop the line, or put a real issue number there if you file one.
I checked the upstream side. The tagging fix (#309 in the plugin repo) shipped in v1.14.3, and v1.14.4 adds only CVE bumps on top. The plugin README pairs v1.14.x with Velero v1.18.x, which matches the vendored chart. The cozy-default BackupStorageLocation sets no tagging, so on v1.14.1 every upload to it sends the empty header. helm unittest in packages/system/velero passes on the PR head, and the branch merges cleanly into current main.
A backport to release-1.6 makes sense, since it ships the same v1.14.1.
|
Aleksei Sviridkin (@lexfrei) thanks for checking the upstream side. Filed #4852 and replaced the placeholder: the description now ends with |
Aleksei Sviridkin (lexfrei)
left a comment
There was a problem hiding this comment.
yrahman82 LGTM. The placeholder is gone and the description now ends with Fixes #4852. helm unittest in packages/system/velero passes on a trial merge with current main.
|
Created backport PR for
Please cherry-pick the changes locally and resolve any conflicts. git fetch origin backport-4834-to-release-1.6
git worktree add --checkout .worktree/backport-4834-to-release-1.6 backport-4834-to-release-1.6
cd .worktree/backport-4834-to-release-1.6
git reset --hard HEAD^
git cherry-pick -x 83aaa65ed1985544a1a8881dd001579c3098428d
git push --force-with-lease |
What this PR does
Bumps the
velero-plugin-for-awsinit container inpackages/system/velero/values.yamlfromv1.14.1tov1.14.4, and updates the pin intests/velero_test.yaml.v1.14.1setsx-amz-taggingon everyPutObject, even when the BackupStorageLocation configures no tags, in which case the header is empty. Cloudflare R2 rejects that with501 NotImplemented: Header 'x-amz-tagging' with value '' not implemented. Velero then cannot upload backup metadata, so every Velero backup to an R2-backed location fails. That includes Cozystack's owncozy-defaultBackupStorageLocation when the platform backup bucket is on R2.Upstream fixed this in v1.14.3: velero-plugin-for-aws#309 (a backport of #299, "Only set PutObject Tagging when tags are configured").
v1.14.4is the current patch release of the 1.14 line. Its only change on top of v1.14.3 is CVE dependency bumps (#336). v1.14.3 itself also carries #310 (SSE-C presigned URLs), #313 (no amz-checksum encapsulation whenchecksumAlgorithm="") and CVE/Go bumps. The plugin's compatibility table listsv1.14.xfor Velerov1.18.x, which is what the chart ships (velero:v1.18.1), so this stays inside the supported pairing.Testing done:
make testinpackages/system/velero(helm-unittest v1.1.2): 7 passed, with the existing init-container pin assertion moved tov1.14.4.helm templaterendersvelero/velero-plugin-for-aws:v1.14.4asinitContainers[0]of theveleroDeployment.x-amz-taggingheader. After pinning the same plugin image through a Package values override (docker.io/velero/velero-plugin-for-aws:v1.14.4@sha256:c85a7fa803569e3128c33e4f5766f84ab156c8d171c9f1dd2715581d45ce98fa), all of our volume backup and restore drills pass. That covers CSI snapshots with the Kopia data mover to R2, and incremental backups confirmed.Backwards compatibility: same plugin minor line and the same Velero version. The init container image changes, so the
veleroDeployment rolls once on upgrade. Users who never settaggingon a location now get no tagging header at all; users who do set it get the same header as before.The reference stays in the existing shape (tag only, no digest), like the current
v1.14.1line. If you'd rather pin third-party init containers by digest, the v1.14.4 multi-arch index digest issha256:c85a7fa803569e3128c33e4f5766f84ab156c8d171c9f1dd2715581d45ce98fa.Screenshots
Not a UI change.
Downstream repositories
Trigger map walked against the diff: a third-party image tag in a system package values file and its test; no app schema, platform values, names or tooling.
Fixes #4852
Release note
Summary by CodeRabbit