Repository navigation
Open
Labels
queue/parkedQueue task is parked (waiting on CI, time, or an event)Queue task is parked (waiting on CI, time, or an event)status/parkedDeliberately paused with a recorded resume conditionDeliberately paused with a recorded resume conditiontask/triageQueue packet kind: verify, reproduce, and route this itemQueue packet kind: verify, reproduce, and route this itemwork/assignedQueue worker lifecycle stateQueue worker lifecycle state
Description
Containers track of the deployment-architecture epic (design: PR #5764 §5).
Rule from the design: software we own → Nix-built images, from scratch by default (dockerTools.streamLayeredImage/buildLayeredImage or nix2container; exactly the binary's closure + cacert/tzdata when needed). Third-party software → digest-pinned images, still tracked as deploy targets. A Dockerfile for our own software is a migration bug.
Current state (2026-11-04 inventory):
- lab-ops-hub crawler: already Nix-built (
pkgs/lab-ops-hub/container-image.nix, crane push) — the precedent. But a parallelcontainer/Dockerfilebuilds "the same app" for Docker machines. → Delete the Dockerfile path once the Nix image is the deploy target's artifact. - mcpx: 3-stage
pkgs/mcpx/Containerfile(golang build + bun copied in + debian-slim runtime), built in CI for verification. → Replace with a Nix image package; the bun sidecar becomes a closure question in the package. - identity packages:
pkgs/identity/Dockerfileis alreadyFROM scratch(good shape, prebuilt binary — make the binary a flake package so the image is one derivation);pkgs/identity/provider/DockerfileisFROM ubuntu+ apt-get (the anti-pattern — Nix-compose it). - pm-apps (Grist, Pad): third-party, digest-pinned via oci-containers — correct; bring the pins under deploy-target tracking. Kaneo/PostgreSQL are compose-managed outside pm-apps (per the pm-stack module) — bring under the same pin discipline or record why not.
- amd-crd (Chrome Remote Desktop): no definition exists in any repo — the only trace is a secret name (
chrome-remote-desktop.amd-pin, sops). → Definition-or-waiver: either Nix-build it (likely the "fuller userspace, still Nix-composed" exception: explicit contents list, never apt-get) or record it as a named exception with an owner and a reason. - Cloudflare's 4 container classes (CrawlerContainerV2, HelloContainer, HelloLite, CrawlerProbe) become image targets; the orphaned legacy
CrawlerContainerapp gets an explicit retire-or-keep decision instead of "left in place, unused".
Acceptance: an inventory table in this issue's closing comment listing every container in the estate with {builder, base, target?}; zero Dockerfiles remain for fleet-owned software except any carrying a written exception; amd-crd resolved one way or the other.
Metadata
Metadata
Assignees
Labels
queue/parkedQueue task is parked (waiting on CI, time, or an event)Queue task is parked (waiting on CI, time, or an event)status/parkedDeliberately paused with a recorded resume conditionDeliberately paused with a recorded resume conditiontask/triageQueue packet kind: verify, reproduce, and route this itemQueue packet kind: verify, reproduce, and route this itemwork/assignedQueue worker lifecycle stateQueue worker lifecycle state
Activity
developing-today commentedon Nov 5, 2026
CODE-1457
dezren39 commentedon Nov 5, 2026
🤖 Agent note · triaged
origin/main(04f78696abfb), one item the inventory missed found, workstreams scoped into a single execution task (task 10498).Verified inventory (fresh, 2026-11-05; design PR #5764 is MERGED):
pkgs/mcpx/Containerfile)container-image.nix, crane) and duplicatecontainer/Dockerfilepkgs/identity/Dockerfile)FROM scratchpkgs/identity/provider/Dockerfile)FROM ubuntu+ apt-getpkgs/identity/web/Dockerfile)chrome-remote-desktop.amd-pinand the design doc. Decision item belowpkgs/lab-ops-hub(src/index.ts,wrangler.jsonc)CrawlerContainerretire-or-keep is a decision item belowDecisions that are Drew's (recorded, not silently parked):
CrawlerContainerretire-or-keep. Retire = delete the unused app definition (cleaner estate, tiny risk if something still binds it — nothing in the current tree references it as a deploy target). Keep = record why. Recommendation: retire, after task 10498's workstream F confirms no live binding.Ordering: task 10498 executes A–D (engineering + tracking) and records E/F as awaiting Drew's rulings above; this issue's acceptance (closing inventory table, zero owned Dockerfiles except written exceptions) completes when task 10498 and the two rulings land. No other blockers: every file named above was read at current main today.
dezren39 commentedon Nov 5, 2026
🤖 Agent note · handed off
85 remaining items
dezren39 commentedon Nov 6, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 6, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 6, 2026
🤖 Agent note · handed off