Skip to content

K2GO-377 chore(rootfs): rebrand the rootfs artifacts - #528

Merged
luisguzman-adfa merged 2 commits into
mainfrom
fix/K2GO-377-rootfs-artifact-rebrand
Sep 2, 2026
Merged

luisguzman-adfa merged 2 commits into
mainfrom
fix/K2GO-377-rootfs-artifact-rebrand

Conversation

@luisguzman-adfa

Copy link
Copy Markdown
Collaborator

The rootfs images in the Cloudflare bucket carried the upstream project's iiab-oa_ prefix. They
are this product's artifacts, so they take its name.

  • The built artifacts and their sidecars become k2go_<date>_<tier>_<sha>_<arch>.tar.gz.
  • latest_<tier>_<arch>.meta4/.installed are unchanged — they never carried a product prefix.
  • The publish loop and the retention prune move together: a prune left on the old prefix would let
    the new artifacts pile up at ~1.7 GB each while still eating the old ones.
  • The user's backup filename follows, so the app stops writing iiab-oa_* into a k2go_* world.

No app changes needed. It asks for the pointer and takes the file name and URL from inside the
metalink; it never builds an artifact name. Restores identify an archive by the manifest inside it,
so backups written under the old name keep working.

One line from K2GO-90 comes along: ROOTFS_PUBLIC_BASE still defaults on main to a path-based
route that was never created, so metalinks published with it 404 on the tarball with no mirror to
fall back on. Without it the migration build would republish the same broken pointers.

The sweep block is transitional — remove it before merging:

  1. Run the workflow from this branch (all tiers, both arches).
  2. Confirm no iiab-oa_ keys remain (the command is in the block's comment). This gates step 3 —
    not the run having finished. Leftovers would outlive the only code that clears them.
  3. Delete the block, then merge.

Out of scope: the app-side origins and the builder's BASE_HOST still name switnet. That is
K2GO-90's change, on its own branch.

… old ones once

The rootfs images carried the iiab-oa_ prefix from the upstream project. They are the product's
own artifacts, so they take its name; the stable pointers keep theirs, since
latest_<tier>_<arch>.meta4/.installed never carried a product prefix. The app is unaffected: it
asks for the pointer and takes the file name and URL from inside the metalink, so it never builds
the artifact name itself.

The publish loop and the retention prune move to k2go_ together — a prune left filtering the old
prefix would let the new artifacts pile up at ~1.7 GB each while still eating the old ones.

A transitional sweep clears the pre-rename artifacts in full instead of ageing them out seven deep,
and is marked for removal before merge: run the workflow from this branch to migrate the bucket,
confirm no iiab-oa_ keys remain, then delete the block so it does not outlive its purpose.

ROOTFS_PUBLIC_BASE comes along from K2GO-90: on main it still defaults to a path-based route that
was never created, so a migration build run without it would republish metalinks pointing at 404.
… too

The suggested filename kept the iiab-oa_ prefix the built artifacts just left behind, so the app
would have written backups under one name while the bucket held another. It is only ever a
suggestion for the SAF picker: nothing reads it back, and a restore identifies an archive by the
manifest inside it, so backups already written under the old name keep restoring unchanged.
@luisguzman-adfa
luisguzman-adfa merged commit 9df00c2 into main Sep 2, 2026
6 checks passed
@luisguzman-adfa
luisguzman-adfa deleted the fix/K2GO-377-rootfs-artifact-rebrand branch September 2, 2026 22:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant