GloriousFlywheel Backend Target State 2026-04-16
Snapshot date: 2026-04-16
Historical rollout owner: #208
Purpose
Turn the remaining backend-authority blocker into an explicit target-state note
for the current honey rollout.
This note answers a narrower question than the broader deployment-authority docs:
- what backend path the repo supports today
- what backend family the on-prem rollout should converge toward
- what operators should and should not infer from the current HTTP examples
Current Repo Truth
From direct repo inspection:
- all four active stacks still declare
backend "http" - the root
Justfilesupports backend init via:TOFU_BACKEND_CONFIG_FILETOFU_BACKEND_CONFIG_DIRTF_HTTP_*
config/backend.http.example.hclis the current concrete bootstrap examplejust tofu-init-gitlab-legacy <stack>remains the explicit GitLab compatibility path
Meaning:
- the current implemented init surface is generic HTTP
- GitLab-managed HTTP state is no longer the preferred story, but it still survives as a compatibility path
- the repo does not yet implement an S3-style backend block in active stack code
Legacy GitLab Discovery Reality
Targeted GitLab discovery on 2026-04-16 did turn up one real compatibility surface:
- archived
tinyland/gf-overlay(project_id 79706605) is the current legacy GitLab state owner that still answers for this repo attic-devexists therearc-runners-devexists thererunner-dashboard-devdoes not exist theregitlab-runners-devdoes not exist there
Meaning:
- this checkout now has a confirmed legacy GitLab state owner for part of the repo
- the surviving legacy state surface is partial, not comprehensive
- the legacy GitLab materialization path can produce truthful local plans for
atticandarc-runners - archived
gf-overlayis still compatibility only, not a durable target backend authority for GloriousFlywheel
Current local convergence read from that surviving state:
ENV=dev just tofu-preflight arc-runnerspassesENV=dev just tofu-init arc-runnerspasses against79706605ENV=dev just tofu-plan arc-runnersnow yields a real1 to add, 5 to changeplan instead of a fake greenfield create- that plan creates
tinyland-nix-heavy, restores repo-owned cache env to the baseline Nix and Docker lanes, and no longer tries to recreate Longhorn or downgrade live ARC back to0.13.1 - ARC on
honeycurrently does not useimagePullSecretson the baseline lanes, so the repo now stops assuming a pull secret by default - the remaining extra in-place churn is the cleanup of stale
imagePullSecretsvalues still recorded in Helm release state even though the live ARC specs no longer use them GHCR_USERNAME/GHCR_TOKENare only needed when the operator explicitly wants OpenTofu to create or rotate a GHCR pull secret
Current On-Prem Runtime Truth
From the live honey validation and adjacent local-cluster planning:
honeyis the only physical cluster targetbumbleis the durable storage-aligned worker inside that cluster- the live cache runtime already exists on
honeyin namespacenix-cache - the local-cluster planning surface in
../blahajalready tracks later replacement of transitional GitLab-backed state with RustFS-backed S3-compatible state once the local cluster is stable ../blahajexplicitly treats that RustFS-backed S3 backend as post-baseline work, not as a prerequisite that is already live../blahajalso keeps historicaltofu-state/out of the live cache object store until a separate backend lane is chosen on purpose
Inference:
- the post-
#208backend direction should be environment-owned S3-compatible state on the localhoneyenvironment - durable backend data should bias toward
bumble, not toward new Civo-owned state - this is a target direction derived from the adjacent cluster program and live runtime posture, not a claim that migration is already complete in this repo
Decision For Primary Docs
Primary GloriousFlywheel docs should now say all three of these things at once:
- the current supported init path is generic HTTP backend config
- GitLab HTTP state is compatibility only
- the target backend family is environment-owned S3-compatible state on
honey, likely backed by the local RustFS storage direction once that path is implemented
That keeps the repo honest without pretending the migration is finished.
What Operators Should Do Today
For current local work:
- keep using
TOFU_BACKEND_CONFIG_FILE,TOFU_BACKEND_CONFIG_DIR, orTF_HTTP_*because that is what the repo actually supports today - treat
config/backend.http.example.hclas a transitional bootstrap example - keep
just tofu-init-gitlab-legacy <stack>only for true legacy compatibility cases - do not assume Civo is the long-term authority for state
- do not assume the HTTP example endpoints are the final steady-state model
What Is Still Missing
The repo still does not have:
- a concrete non-legacy backend endpoint committed into local operator config
- an S3-style backend block implemented in active stack code
- a checked-in local
config/organization.yaml - a checked-in local backend config file under
config/backends/ - a live non-legacy backend that covers all four active stacks
- a live RustFS-backed
tofu-statelane that operators can safely target today
So a real local apply is still blocked in this checkout even though cluster reachability is working. The blocker is no longer “find any legacy state owner at all”; it is deciding what to do with a partial archived legacy state surface while the repo converges toward a non-legacy backend.
Cutover Prerequisites
There is one important implementation boundary to keep explicit:
- OpenTofu backend family is fixed in stack configuration
- the current stacks declare
backend "http" - that means a future S3-compatible cutover cannot be achieved only by adding a new backend HCL example or changing environment variables
Practical consequence:
- backend-family migration will require coordinated edits across every active
stack
backend.tf - root init docs and helper output will need to change at the same time
- CI compatibility flows will need the same backend-family cutover, not just local operators
That is why the current repo work should distinguish:
- honest current HTTP-path cleanup
- target-direction documentation
- later backend-family migration once a real local S3 endpoint and bucket contract exist
Current Non-Goal
This repo should not yet:
- pretend a RustFS-backed
tofu-statebucket already exists live onhoney - imply that current HTTP backend examples can be swapped to S3 without stack code changes
- merge cache/object-store historical state import decisions into the immediate GloriousFlywheel local-apply path
Exit Condition
This target-state note is only fully implemented when:
- local and CI paths converge on one non-legacy backend authority
- that authority is owned by the local
honeyenvironment rather than GitLab project state - primary docs no longer make generic HTTP sound like the architectural destination