release-23.1: publish-artifacts: change GCS latest key prefix for Workload binary#156887
release-23.1: publish-artifacts: change GCS latest key prefix for Workload binary#156887williamchoe3 wants to merge 1 commit intocockroachdb:release-23.1from
Conversation
Change latest key prefix from 'cockroach' to 'workload' for workload binary to allow for separate lifecycle policies for workload binary objects. Informs cockroachdb#154274 Epic: None Release note: None
|
Thanks for opening a backport. Before merging, please confirm that it falls into one of the following categories (select one):
Add a brief release justification to the PR description explaining your selection. Also, confirm that the change does not break backward compatibility and complies with all aspects of the backport policy. All backports must be reviewed by the TL and EM for the owning area. |
|
✅ PR #156887 is compliant with backport policy Confidence: high 🦉 Hoot! I am a Blathers, a bot for CockroachDB. My owner is dev-inf. |
|
Unrelated unit test failures |
Backport 1/1 commits from #156883.
/cc @cockroachdb/release
Backport 1/1 commits from #156855.
/cc @cockroachdb/release
Backport 1/2 commits from #156092.
/cc @cockroachdb/release
Original PR that was reverted: #155789
Changes split into 2 separate commits to allow for backporting only the required changes for easier merge conflict resolution
Informs #154274
In gcs
gs://cockroach-edge-artifacts-prod, changelatestWorkload binary key prefix fromcockroachtoworkloadi.e.
This will allow
latestworkload binary to not be deleted after 30 days so tests can download and use workload binaries from unsupported versions (that no longer have nightlies running against them)Notes:
gs://cockroach-edge-artifacts-prod/cockroach/workload.ee80eab77ca6434f4be7c33c0f6d29dd0b9d07b1is still prefixed withcockroachso these objects will get deleted after 30 days with the current lifecycle policyEdited
PutNonRelease's docstring to remove "redirect" terminology, looks to be from a previous s3 implementation which is not a feature of GCS.Also noticed there's no unit test coverage for non master branches, added 1 release branch test with simple coverage
Also noticed there's a slight difference between mockGCSProvider.PutObject & release.PutObject
Actual
release.PutObjectdoes not modify the key name based on thePutObjectInput.CacheControlfield, but inmockGCSProvider.PutObjectthe"/no-cache"gets appendedI changed the behavior in the mock to match the actual function, and modified the unit tests
FWIW
PutObjectInput.CacheControlis only set toFalsecurrentlyThis PR is a dependency for these roachtest changes: #155397
Also discussed other options like using a new bucket or using the release bucket here: https://cockroachlabs.slack.com/archives/C03SG8QKYRJ/p1760977289072049?thread_ts=1760976858.868889&cid=C03SG8QKYRJ
Decided on this approach for simplicity
For verification, I'm relying on the unit tests. Just assumed this wouldn't work on my local, but if there's a simple way to verify this E2E let me know and i'll do it
Will squash and write a proper commit msg after review, leaving commit separate incase i need to revert anything
Release justification: ci test artifact only changes
Release justification: ci test artifact only changes
Release justification: ci test artifact only changes