Repository navigation
Closed
Labels
area: platformPlatform, deployment, cluster, or runtime concern.Platform, deployment, cluster, or runtime concern.priority: P1High; important and should be handled in the current iteration.High; important and should be handled in the current iteration.status: blockedCannot move forward until an external dependency is resolved.Cannot move forward until an external dependency is resolved.type: choreMaintenance work without intended behavior change.Maintenance work without intended behavior change.
Description
Parent
Rewrite the spec and the compiler in place, release 1.0.0, and hand over every Project
What to build
The edge Project leaves fleet-infra and is delivered from the estate repository, in the order #381 sets.
Add external-dns to the estate's edge file. The proxies move from ingress-system and ingress-lan-system to edge-system; they are stateless, but each load-balancer address must pass from the old Service to the new one in an order the runbook sets. The estate's Platform document carries the tier ingress classes and the acme account.
The estate-side changes are recorded in the estate repository's HANDOVER.md.
Acceptance criteria
- The render's diff against the Project's hand-written objects in fleet-infra is clean, or each difference is explained.
- The Project's Reconcile Units report Ready.
- A consumer-visible value checks out: Every public route answers over TLS, and every LAN route answers.
- One change flips the handover ledger entry and deletes the hand-written objects, the descriptor and the drift-check entry.
Blocked by
Metadata
Metadata
Assignees
Labels
area: platformPlatform, deployment, cluster, or runtime concern.Platform, deployment, cluster, or runtime concern.priority: P1High; important and should be handled in the current iteration.High; important and should be handled in the current iteration.status: blockedCannot move forward until an external dependency is resolved.Cannot move forward until an external dependency is resolved.type: choreMaintenance work without intended behavior change.Maintenance work without intended behavior change.
Activity
ExtraToast commentedon Oct 27, 2026
Resume here
Before this handover, the maintainer writes
CF_DNS_API_TOKENatsecret/data/platform/cloudflare: JorisJonkers-dev/estate#229.ExtraToast commentedon Oct 29, 2026
#380 is closed: delivery,
_canaryand_estateare on the 1.0 contract (evidence in #380 (comment)).ExtraToast commentedon Oct 29, 2026
Prepared: the edge handover, as drafts (2026-10-29)
Nothing is merged and nothing live was written. The runbook is
docs/runbooks/edge-handover.mdin the estate PR.Pull requests, in merge order
edge-system'straefik-public/traefik-lan; without it those five answer 503 after the passeslan-edge(.99/32,autoAssign: false),enschede-langives .99 up, the oldtraefik-lanService asks for .99 by address. Its own short .99 gap; conflicts trivially with #551 inconfig.yamlprune: disabledon 54 objects, the three HelmReleases suspended,apps-edgeprune: falseapps-core; theedge-systemNamespace andforward-authMiddleware stop being applied (the render owns both names);apps-edgebecomesapps-edge-legacy, freeing the name the estate unit takesedge→estate; external-dns in the edge file;apion both proxies and external-dns, admitted inapiAccess.holders;dns.direct: 167.86.79.203; the runbook and the render-vs-live diffThen, in the window: the two address passes (proposal: LAN .99 first, then the public host ports), and after the flip a fleet-infra cleanup and the hand deletions the runbook lists.
Issues filed
automountServiceAccountToken: false, in the worked example and in the estate's render). The estate PR works around it by declaringapi.Open blockers and decisions
lan-edgeand the speaker).apps-edgewaits on the public proxy, which stays Pending until the old one frees the ports.apps-edge-legacy, served by the new proxies. Their Projects declare no exposure; jellyfin also needs A public host served by another tier's edge has no declaration #711.api@internal), the proxies' OTLP traces, three access-log headers, Traefik's router metric labels.security-headers-strictCSP (default-src 'self'); every rendered route gainsX-Frame-Options: DENYand HSTS.feat(edge): hand the edge Project over to the estate path (#257)
ExtraToast commentedon Nov 1, 2026
Edge is on the estate path (estate 0.37.1), and the old path's edge is deleted, cert-manager with it.
lan-edge); F3 JorisJonkers-dev/fleet-infra#557, F4 JorisJonkers-dev/fleet-infra#558, B feat: hand the edge Project over to the estate path estate#257.apps-edgenever applied:traefik-publiclisted container ports 8000 and 8443 twice, which server-side apply refuses. Fixed by fix(render): write a host port on its surface's entry, so a container port appears once #777 (1.7.1), feat: publish fragments with deploy-kit 1.7.1 github-workflows#207 (v0.40.0) and fix(edge): compose and publish with deploy-kit 1.7.1, which writes each container port once estate#294.apps-edgeReady andacmeBound; every rendered public host answers over TLS; the LAN proxy serves.99; grimoire redirects to auth's sign-in; external-dns plans no change; estate-dashboard and digital-strategy render under their new policy.Follow-ups: every host serves the wildcard from
secret/data/platform/tls/jorisjonkers-dev, valid until 2026-12-16, which nothing renews yet (JorisJonkers-dev/estate#292, renew by 2026-12-01). The public tier's resolver has issued no per-host certificate yet, so it may skip hosts the default store's wildcard already covers.