Release project: dissolve a repoless project back to a plain namespace - #171
Merged
Conversation
A repoless labeled project gains Release: tenancy declared in the platform repo is staged as a plain-Namespace rewrite (the file stays - handing Argo a deletion would prune the namespace; multi-doc manifests refuse), label residue is stripped imperatively under the caller's token. Namespaces running VMs return to Existing tenants. Operator homes (*-operator-system) stop being offered as adoptable at all. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B2CJp2mhGv61yHsQQqstGP
epheo
force-pushed
the
feat/release-project
branch
from
September 2, 2026 12:02
567bab8 to
e754226
Compare
Owner
Author
|
Live on hetznet (rc.4): released the REAL residue — right-click on |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The "no repo configured" dead end (e.g.
portail-operator-system, an old install's label residue) had only a forward exit (Attach repo). This adds the way back, one verb with two paths:namespaces/<ns>.yamlas a plain Namespace — the file deliberately stays (handing Argo a deletion would prune the namespace itself), only the project label and repo annotation go; the PR is the release. A declared file carrying more than its Namespace (a VM Network rides some) refuses the whole release rather than pruning tenant networking.Namespaces still running VMs reappear under Existing tenants, adoptable again; empty ones leave the inventory. UI: "Release project…" in the repoless project's context menu, behind a typed confirm that names both paths. Also:
*-operator-systemnamespaces are no longer offered as adoptable — an operator's home is never a tenant.New forge-free git helper (
LookupOnBranchdistinguishing absence from failure),cluster.ReleaseNamespace,POST /api/projects/{project}/release, fixtureresiduescenario + spec (46/46), changeset tests for the git/residue split and the multi-doc refusal.Live validation on hetznet: pending — the plan is to release the real
portail-operator-systemresidue.🤖 Generated with Claude Code
https://claude.ai/code/session_01B2CJp2mhGv61yHsQQqstGP