• v0.1.126 bf140acfa6

    v0.1.126 Stable

    pipeline-bot released this 2026-07-27 14:06:46 +00:00 | 76 commits to trunk since this release

    • chore: delete the bob tenant instance artifacts — instances/bob.yaml, instances/users/bob/, instances/groups/bob/. None were applied (all three were commented out of their kustomizations since 2026-06-11) and no bob claim exists live. They were kept as a "multi-tenancy template", but that template is structurally dead, not merely unused: apis/tenantdatabase binds its auth-roles to the BARE ory/forgejo/n8n namespaces, so a Stack/bob would mint bob_kratos and hand it to alice's Kratos, and apis/portal hardcodes those same singletons on nearly every listener. A second apex is a second Portal XR + ory app + external-dns, not a resurrected Stack — so the files were misleading rather than useful. tests/check-acme-approval.sh still passes (bob carried a marked LE-prod line; alice's remains). Composition-level bob handling is deliberately untouched — notably the apis/postgres ensure: absent tombstones, which are live config asserting bob's databases stay gone.

    Included changes (v0.1.125 -> v0.1.126)

    • 5f0dd2c1fb35 chore: delete the bob tenant instance artifacts
    Downloads
  • v0.1.125 73fc57976e

    v0.1.125 Stable

    pipeline-bot released this 2026-07-27 12:25:53 +00:00 | 80 commits to trunk since this release

    • feat(stack): remove the tenant-bucket entry from apis/stack/composition.yaml — step 3 of promoting XTenantBucket/alice out of the Stack (Project-A P1). The composite is unchanged; only its applier moved, so no rename, no data migration, no downtime. Ordering is load-bearing and must not be reversed: the ownerReference is stripped from the composite first (step 2, XStack paused), because landing this removal while the composite is still a composed resource would make Crossplane garbage-collect it and cascade all 5 Objects — taking the ClusterSecretStore that forgejo/forgejo-s3-credentials depends on. XStack stays paused between steps 2 and 3 so it cannot re-adopt. XStack is down to 6 composed resources.

    Included changes (v0.1.124 -> v0.1.125)

    • ee3b083a7a1f feat(stack): drop tenant-bucket from the Stack composition (Project-A P1 step 3)
    Downloads
  • v0.1.124 bec9796418

    v0.1.124 Stable

    pipeline-bot released this 2026-07-26 16:21:59 +00:00 | 84 commits to trunk since this release

    • feat(stack): WIDEN step of promoting XTenantBucket/alice out of the Stack composition (Project-A P1) — adds instances/tenantbucket-alice.yaml so Flux co-applies the composite alongside Crossplane. Provably a no-op: kubectl diff -f returns empty (exit 0) against the live XR, and XStack/alice-vh2tx keeps its ownerReference, so nothing changes hands yet. Applied as a RAW XR rather than a claim because the composite is already unclaimed — a TenantBucket claim would set spec.claimRef and stamp crossplane.io/claim-* labels onto all 5 composed Objects, a full re-render for no benefit. Blast radius documented in the file header: 5 Objects (Password, 2 ExternalSecrets, ClusterSecretStore, bucket-init Job) and exactly ONE downstream consumer, ExternalSecret forgejo/forgejo-s3-credentials — olly, registry and workflows use different stores. Also records the prune hazard that arrives with the later detach: platform-seanfarm-instances runs prune: true, so once Crossplane no longer co-owns this, deleting the file cascades all 5 Objects.

    Included changes (v0.1.123 -> v0.1.124)

    • e010bdb2d2fc feat(stack): widen XTenantBucket/alice into instances/ (Project-A P1 step 1)
    Downloads
  • v0.1.123 d1c87f6b18

    v0.1.123 Stable

    pipeline-bot released this 2026-07-26 15:12:10 +00:00 | 88 commits to trunk since this release

    • chore(stack): remove the spec.metrics.* XRD block, completing the two-step staged in 0.1.122. That release dropped the VALUE from instances/alice.yaml; Flux pruned it from both the claim and the XR (verified absent on Stack/alice and XStack/alice-vh2tx, Stack still Synced=True Ready=True), so deleting the property now orphans nothing. Doing it in one step would have wedged the claim controller with field not declared in schema, because platform-seanfarm-apis applies before platform-seanfarm-instances — the schema tightens while the claim still holds the value.

    Included changes (v0.1.122 -> v0.1.123)

    • 5526d0d7d8f2 chore(stack): retire the dead spec.metrics XRD block (step 2 of 2)
    Downloads
  • v0.1.122 7ea18f3aac

    v0.1.122 Stable

    pipeline-bot 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/. ForgejoRepository deletion is destructive by design — the operator's finalizer calls DeleteRepo(owner,name), wiping all code/refs/history, and the only bypass (status.repositoryID == 0) is closed on all 32 live CRs. apis/gitmirror now sets deletionPolicy: Orphan on 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 off manifest.metadata.{name,namespace}, not GC). managementPolicies must stay ["*"] or crossplane-runtime ignores deletionPolicy.
    • feat(safety): instances/gitops-repos.yamlkustomize.toolkit.fluxcd.io/prune: disabled on the seanfarm-gitops + platform-seanfarm-gitops CRs. These are raw CRs (not Crossplane Objects, so Orphan misses them) under a prune: true Kustomization; deleting those manifest lines would have destroyed sean/seanfarm and sean/platform-seanfarm — the repos this cluster reconciles from.
    • docs(gitmirror): README rewritten — it described a per-tenant API targeting forgejo-{stack} and the ForgejoPushMirror retired in 0063d63. Actual shape: three resources into the bare forgejo/workflows singletons, spec.stack dead since 32a7fb0. 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 with apis/oidc, 8efd0f4) and status.oidcReady/authDomain. Safe because nothing materialized them (Stack/alice had spec.oidc: null and an empty status), verified live first. spec.metrics.* and spec.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 with field not declared in schema — on the Stack four Kustomizations healthCheck. instances/alice.yaml drops the metrics.storageSize value so a follow-up can delete the block cleanly. spec.tls.acmeServer also kept — it no longer controls anything (the live issuer renders from sean/pipelines bundle/dns) but carries the le-prod-approved: markers that tests/check-acme-approval.sh enforces.
    • docs: README.md API table listed ten deleted apis/ directories as current and drew them as Stack children; apis/stack/README.md had the same stale tree plus dns-gcp-alice, deleted outright in a8c1bcf. 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)

    • a0b1cf099594 docs(changelog): release notes for the repo-destruction safety floor + dead-XRD purge
    • 0710d73db241 chore(stack): drop provably-dead XRD surface; correct three stale docs
    • aa1bdfe4dad3 feat(safety): make repo destruction structurally unreachable from instances/
    Downloads
  • v0.1.121 f3ed079250

    v0.1.121 Stable

    pipeline-bot released this 2026-07-25 13:01:25 +00:00 | 100 commits to trunk since this release

    • fix(sso): apis/forgejo OIDC-config Job HYDRA_DISCOVERY hydra-public.ory-${TENANT}(=ory-alice, DELETED at cutover)->hydra-public.ory. The stale discovery URL left Forgejo's ory OIDC source pointing at a dead svc, breaking OIDC login with a 500 could not find a matching session. Re-running this Job re-points the live source to the ory singleton.

    Included changes (v0.1.120 -> v0.1.121)

    • eb0a63ab0290 fix(sso): forgejo OIDC discovery URL ory-alice->ory (fixes login 500)
    Downloads
  • v0.1.120 ba3060c008

    v0.1.120 Stable

    pipeline-bot released this 2026-07-25 12:45:18 +00:00 | 104 commits to trunk since this release

    Changed

    • Incremental release.

    Included changes (v0.1.119 -> v0.1.120)

    • 7d24028efde6 chore(forgejo): upgrade app to 16.0.1
    Downloads
  • v0.1.119 4729e3fcb8

    v0.1.119 Stable

    pipeline-bot released this 2026-07-24 16:26:56 +00:00 | 108 commits to trunk since this release

    • chore(sso): re-point apis/argocd + apis/forgejo hydra-client registrars HYDRA_ADMIN hydra-admin.ory-{tenant}->hydra-admin.ory (base literal + dropped the ory-%s fmt patches; client_ids argocd-{tenant}/forgejo unchanged) so they register against the ory singleton on rebuild.
    • chore(sso): delete apis/oidc (XRD + Composition) — the XOIDCProvider child was removed from apis/stack (delta-C) and its stack now runs from the sean/ory ArgoCD app; zero XRs remain.

    Included changes (v0.1.118 -> v0.1.119)

    • 8efd0f4ea4ce chore(sso): re-point argocd+forgejo HYDRA_ADMIN to ory + delete apis/oidc
    Downloads
  • v0.1.118 096d0e24cb

    v0.1.118 Stable

    pipeline-bot released this 2026-07-24 15:58:39 +00:00 | 112 commits to trunk since this release

    • narrow-back(sso): portal auth listeners + tenantdatabase kratos/hydra Vault auth-roles drop the transitional ory-alice admit -> bare [ory] (ory-alice->ory move complete; ns ory-alice gone).

    Included changes (v0.1.117 -> v0.1.118)

    • 015104fb2428 narrow-back(sso): portal auth + DB auth-roles -> bare [ory]
    Downloads
  • v0.1.117 a0b1943901

    v0.1.117 Stable

    pipeline-bot released this 2026-07-24 15:42:13 +00:00 | 116 commits to trunk since this release

    • delta-C(sso): remove the XOIDCProvider child from apis/stack + shrink apis/platformuser to ForgejoUser-only (Kratos-half → sean/ory ArgoCD). Deletes ns ory-alice; auth.sean.farm flips to the ory singleton pods (cert + routes pre-staged). XPortal.oidcIssuer is spec.domain-derived (unaffected); status.oidcReady/authDomain have no readers.

    Included changes (v0.1.116 -> v0.1.117)

    • 8ece6c6fe686 delta-C(sso): retire XOIDCProvider child + shrink platformuser (ory-alice->ory)
    Downloads