fix: add GCS migration and upload-release scripts#22
Conversation
Before ARM64 support was added, firecracker binaries were uploaded to GCS
at the flat path firecrackers/{version}/firecracker. The orchestrator's
arch-aware path resolution expects firecrackers/{version}/amd64/firecracker,
so old builds are not found via the arch-based lookup.
Add migrate-gcs-arch.sh to dry-run/copy (and optionally delete) existing
flat-path GCS objects into the amd64/ subdirectory.
PR SummaryMedium Risk Overview Adds Reviewed by Cursor Bugbot for commit 0cd7a29. Bugbot is set up for automated code reviews on this repo. Configure here. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is ON, but it could not run because the branch was deleted or merged before autofix could start.
Reviewed by Cursor Bugbot for commit 0cd7a29. Configure here.
| dst="${BUCKET_URI}/${TAG}/firecracker" | ||
| else | ||
| continue | ||
| fi |
There was a problem hiding this comment.
Upload script missing legacy flat-path copy for amd64
High Severity
The script's header comment documents that it uploads to both <bucket>/<version_name>/<arch>/firecracker and <bucket>/<version_name>/firecracker (legacy amd64 copy). However, when handling a firecracker-amd64 asset, the code only uploads to the arch-specific path and never creates the legacy flat-path copy. build.sh explicitly creates both paths for amd64 with a comment noting "so existing production nodes that expect the old layout keep working." New releases lacking a bare firecracker asset will have no legacy path, breaking backward compatibility.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 0cd7a29. Configure here.


Scripts
scripts/migrate-gcs-arch.shCopies flat-path firecracker binaries (
{version}/firecracker) into{version}/amd64/firecrackerfor old builds that predate the arch-subdir layout. Skips versions that already have theamd64/path. Supports dry-run and--apply.scripts/upload-release-to-gcs.shDownloads
firecracker-{amd64,arm64}assets from a GitHub release and uploads them to GCS at the correct arch-subdir layout. Existing objects are never overwritten. Supports--dry-run.