feat(registry): repoint the registry Application at sean/zot #2122

Merged
pipeline-bot merged 1 commit from feat/zot-repo-repoint into trunk 2026-08-31 15:48:59 +00:00
Owner

Migration step P1: the one live Application/registry repoints at sean/zot manifests/registry under AppProject zot, and gains the Prune=false pin — the handoff mechanism that lets P2 remove the block without pipelines-argocd deleting the CR (it skips, the registry keeps running as a live orphan, zot-argocd adopts it minutes later).

The content at sean/zot is a byte-identical snapshot (verified: diff <(kubectl kustomize …) of both sources is empty), so this merge changes no rendered resource and restarts nothing — zot pod UID must be unchanged after sync.

registry also leaves the pipelines deploy surface (argocdApps + both PipelineTargets): pipelines deploys neither gate on nor own an Application another repo feeds. gitops-deploy-render-surface pins the shortened list; gitops-application-contract is what forces these removals into P1 (every argocdApps member must be same-repo).

DO NOT MERGE UNTIL: #2119 + #2121 merged → seanfarm feat/zot-repo-seed merged + Flux applied → sean/zot pushed and hack/refresh-from-pipelines.sh ends byte-identical: OK against current origin/main (re-run if any registry commit landed since).

Verify after: Application/registry Synced from sean/zot; kubectl -n registry get pod zot-v2-0 same UID; curl https://registry.sean.farm/v2/ → 200.

Testing: full tests/check.sh green (142/142).

Merge-order runbook (full version: ~/src/zot/docs/MIGRATION-RUNBOOK.md)

  1. Merge pipelines #2119 + #2121 (content snapshot must include them)
  2. Merge S1 (this seanfarm seed) → Flux creates sean/zot + AppProject/root
  3. Create empty codeberg.org/someara/zot (private) for the push mirror
  4. cd ~/src/zot && hack/refresh-from-pipelines.sh (must end byte-identical: OK) → ~/src/seanfarm/scripts/zot-push.sh ~/src/zot
  5. Merge pipelines P1 (repoint; re-verify byte-identity immediately before)
  6. Merge pipelines P2 (retirement) — then do step 7 immediately
  7. Land apps/registry.yaml in sean/zot (content in the runbook) → zot-argocd adopts the CR
  8. Follow-ups: verify codeberg backup → add fleet importSource; binjovi onboarding (shadow → soak → protections)

https://claude.ai/code/session_019JVStQiFwbSLGHArU2sA4X

Migration step **P1**: the one live `Application/registry` repoints at `sean/zot` `manifests/registry` under AppProject `zot`, and gains the `Prune=false` pin — the handoff mechanism that lets P2 remove the block without `pipelines-argocd` deleting the CR (it skips, the registry keeps running as a live orphan, `zot-argocd` adopts it minutes later). The content at `sean/zot` is a **byte-identical snapshot** (verified: `diff <(kubectl kustomize …)` of both sources is empty), so this merge changes no rendered resource and restarts nothing — zot pod UID must be unchanged after sync. `registry` also leaves the pipelines deploy surface (`argocdApps` + both `PipelineTarget`s): pipelines deploys neither gate on nor own an Application another repo feeds. `gitops-deploy-render-surface` pins the shortened list; `gitops-application-contract` is what forces these removals into P1 (every `argocdApps` member must be same-repo). ⚠ **DO NOT MERGE UNTIL**: #2119 + #2121 merged → seanfarm `feat/zot-repo-seed` merged + Flux applied → `sean/zot` pushed and `hack/refresh-from-pipelines.sh` ends `byte-identical: OK` against **current** origin/main (re-run if any registry commit landed since). **Verify after**: `Application/registry` Synced from `sean/zot`; `kubectl -n registry get pod zot-v2-0` same UID; `curl https://registry.sean.farm/v2/` → 200. **Testing**: full `tests/check.sh` green (142/142). ### Merge-order runbook (full version: `~/src/zot/docs/MIGRATION-RUNBOOK.md`) 1. Merge pipelines **#2119** + **#2121** (content snapshot must include them) 2. Merge **S1** (this seanfarm seed) → Flux creates `sean/zot` + AppProject/root 3. Create empty **codeberg.org/someara/zot** (private) for the push mirror 4. `cd ~/src/zot && hack/refresh-from-pipelines.sh` (must end `byte-identical: OK`) → `~/src/seanfarm/scripts/zot-push.sh ~/src/zot` 5. Merge pipelines **P1** (repoint; re-verify byte-identity immediately before) 6. Merge pipelines **P2** (retirement) — then do step 7 immediately 7. Land `apps/registry.yaml` in sean/zot (content in the runbook) → `zot-argocd` adopts the CR 8. Follow-ups: verify codeberg backup → add fleet `importSource`; binjovi onboarding (shadow → soak → protections) https://claude.ai/code/session_019JVStQiFwbSLGHArU2sA4X
feat(registry): repoint the registry Application at sean/zot
All checks were successful
pipeline/ci CI green @ e9dd4946c5c8
e9dd4946c5
Migration step P1 of moving the registry out of this retiring repo and
into sean/zot (runbook: sean/zot docs/MIGRATION-RUNBOOK.md).

The one live Application/registry now sources sean/zot manifests/registry
under AppProject zot. The content there is a byte-identical snapshot of
bundle/registry, verified by rendered diff, so this repoint changes no
resource and restarts nothing.

The CR gains the Prune=false pin. That is the handoff mechanism: when step
P2 deletes this block, pipelines-argocd skips pruning the CR instead of
deleting it, the registry keeps running as a live orphan, and zot-argocd
adopts it. The same pinning protects the tetragon seed's CRDs.

registry also leaves the pipelines project's deploy surface: the argocdApps
list and both PipelineTargets. Pipelines deploys neither gate on nor own an
Application that another repo now feeds. gitops-deploy-render-surface pins
the shortened list.

MERGE ORDER — do not merge until all of these hold:
  1. #2119 and #2121 are merged.
  2. seanfarm feat/zot-repo-seed is merged and Flux has applied it.
  3. sean/zot holds the content snapshot and
     hack/refresh-from-pipelines.sh ends "byte-identical: OK" against the
     CURRENT origin/main. If any registry commit landed after the snapshot,
     re-push the snapshot first.

Claude-Session: https://claude.ai/code/session_019JVStQiFwbSLGHArU2sA4X
sean changed title from feat(registry): repoint the registry Application at sean/zot to WIP: feat(registry): repoint the registry Application at sean/zot 2026-08-31 14:52:00 +00:00
sean changed target branch from main to trunk 2026-08-31 14:54:01 +00:00
sean changed title from WIP: feat(registry): repoint the registry Application at sean/zot to feat(registry): repoint the registry Application at sean/zot 2026-08-31 15:48:11 +00:00
pipeline-bot force-pushed feat/zot-repo-repoint from e9dd4946c5
All checks were successful
pipeline/ci CI green @ e9dd4946c5c8
to 56f666e93b
All checks were successful
pipeline/ci CI green @ 56f666e93b5d
2026-08-31 15:48:22 +00:00
Compare
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
sean/pipelines!2122
No description provided.