Skip to content

Commit b58dae6

Browse files
committed
docs: add archive repo buckets section to infrastructure overview
Documents the new APT/YUM archive infrastructure introduced in this PR: the two new public-read GCS buckets, the deliberate absence of CI write access (frozen-mirror invariant enforced in IAM), the Azure DNS zones and apex NS delegation for the archive subdomains, and the 404 fallback behavior in query-latest-repo-versions.rb that lets the web server start cleanly before the first migration runs. Addresses FooBarWidget's note on PR #57 that #47's changes should ship with their own documentation.
1 parent b256946 commit b58dae6

1 file changed

Lines changed: 15 additions & 0 deletions

File tree

docs/infrastructure-overview.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,21 @@ The Server Edition's APT and YUM repositories are stored inside these buckets. T
104104

105105
Users don't access these buckets directly. Instead, they access `apt.fullstaqruby.org` and `yum.fullstaqruby.org` (served by the Nginx web servers), which redirect to these buckets.
106106

107+
## Server Edition APT & YUM archive repo buckets
108+
109+
- Administered by role: Infra Maintainers
110+
111+
The Server Edition's APT and YUM archive repositories — frozen mirrors for end-of-life distribution packages — are stored in these buckets:
112+
113+
- `fsruby-server-edition-apt-repo-archive`
114+
- `fsruby-server-edition-yum-repo-archive`
115+
116+
Both buckets are publicly readable. Unlike the live APT/YUM repo buckets, the archive buckets deliberately have **no CI write access** — the frozen-mirror invariant is enforced in IAM rather than by convention. Migration into these buckets happens out-of-band via scripts in the [server-edition repository](https://github.com/fullstaq-ruby/server-edition).
117+
118+
Users access these archives via `apt-archive.fullstaqruby.org` and `yum-archive.fullstaqruby.org`, which redirect to the bucket contents. Each archive subdomain has its own Azure DNS zone, delegated via NS records in the `fullstaqruby.org` apex zone, with A/AAAA records pointing at the backend server.
119+
120+
Before the first migration completes, the `latest_version.txt` file in each archive bucket may not yet exist. The `query-latest-repo-versions.rb` script handles this case explicitly: archive buckets that return 404 fall back to version 0 (`APT_ARCHIVE_LATEST_VERSION=0` / `YUM_ARCHIVE_LATEST_VERSION=0`), allowing the web server to start cleanly. Any other non-2xx response is still treated as a hard failure.
121+
107122
## Container registry
108123

109124
- Administered by role: Infra Maintainers

0 commit comments

Comments
 (0)