-
v0.1.122 Stable
released this
2026-07-25 21:17:55 +00:00 | 92 commits to trunk since this release- feat(safety): repo destruction is no longer reachable by editing
instances/.ForgejoRepositorydeletion is destructive by design — the operator's finalizer callsDeleteRepo(owner,name), wiping all code/refs/history, and the only bypass (status.repositoryID == 0) is closed on all 32 live CRs.apis/gitmirrornow setsdeletionPolicy: Orphanon all three composed Objects (repository, backup cron, collaborator), so deleting or renaming a GitMirror claim leaves the CRs — and the repos — alive. Works because the composed CRs carry no ownerReferences (provider-kubernetes keys offmanifest.metadata.{name,namespace}, not GC).managementPoliciesmust stay["*"]or crossplane-runtime ignoresdeletionPolicy. - feat(safety):
instances/gitops-repos.yaml—kustomize.toolkit.fluxcd.io/prune: disabledon theseanfarm-gitops+platform-seanfarm-gitopsCRs. These are raw CRs (not Crossplane Objects, so Orphan misses them) under aprune: trueKustomization; deleting those manifest lines would have destroyedsean/seanfarmandsean/platform-seanfarm— the repos this cluster reconciles from. - docs(gitmirror): README rewritten — it described a per-tenant API targeting
forgejo-{stack}and theForgejoPushMirrorretired in0063d63. Actual shape: three resources into the bareforgejo/workflowssingletons,spec.stackdead since32a7fb0. Adds the deliberate-decommission runbook (confirm codeberg current → quiesce operator → strip finalizer → delete CR) and records why the push-mirror was retired, so it is not reintroduced. - chore(stack): drop provably-dead XRD surface —
spec.oidc.*(consumer deleted withapis/oidc,8efd0f4) andstatus.oidcReady/authDomain. Safe because nothing materialized them (Stack/alice hadspec.oidc: nulland an empty status), verified live first.spec.metrics.*andspec.tls.{issuerName,issuerKind}are equally dead but KEPT: the live claim holds them, and removing a property a claim still carries wedges the claim controller withfield not declared in schema— on the Stack four Kustomizations healthCheck.instances/alice.yamldrops themetrics.storageSizevalue so a follow-up can delete the block cleanly.spec.tls.acmeServeralso kept — it no longer controls anything (the live issuer renders fromsean/pipelines bundle/dns) but carries thele-prod-approved:markers thattests/check-acme-approval.shenforces. - docs:
README.mdAPI table listed ten deletedapis/directories as current and drew them as Stack children;apis/stack/README.mdhad the same stale tree plusdns-gcp-alice, deleted outright ina8c1bcf. Both corrected to the five resources XStack actually composes, with notes on why XPortal is really the cluster edge.
Included changes (v0.1.121 -> v0.1.122)
a0b1cf099594docs(changelog): release notes for the repo-destruction safety floor + dead-XRD purge0710d73db241chore(stack): drop provably-dead XRD surface; correct three stale docsaa1bdfe4dad3feat(safety): make repo destruction structurally unreachable from instances/
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- feat(safety): repo destruction is no longer reachable by editing