Compose managed Pi provider lifecycle #4
No reviewers
Labels
No labels
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
allod/deploy!4
Loading…
Reference in a new issue
No description provided.
Delete branch "agent/pi-provider-composition"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The public deployment now pins the reviewed managed Pi provider lifecycle across framework, profiles, secrets, inventory, and Nexus.
All four data consumers use one source graph, including the inventory consumed by secrets.
A rebuilt Nexus contains the reviewed
pi-providercommand and all five lifecycle subcommands.The public registries remain empty, so a never-configured machine gains no provider, credential, or Pi runtime artifact.
The composed-layer canary rejects an independently sabotaged profiles, secrets, inventory, or secrets-inventory edge.
The synthetic
allod-devandnexussystems build from the joined graph.If this is wrong, leave the PR unmerged and keep the prior lock file; no private rollout or credential has been changed.
Dependencies
Risk
R3 High. This changes the deployment composition and pins a new credential lifecycle. Review should focus on exact input follows, lock provenance, the four sabotage witnesses, the realized Nexus command, and whether the empty public registry remains inert.
Validation
nix-instantiate --parse flake.nixnix build .#checks.x86_64-linux.composed-layer --no-link -Lnix build .#nixosConfigurations.allod-dev.config.system.build.toplevel --no-link -Lnix build .#nixosConfigurations.nexus.config.system.build.toplevel --no-link --print-out-paths -Lnexus-provisioning-scripts/bin/pi-provideris executable and--helplists add, retarget, rotate, retire, and recover.git diff --checkddfccf0and Nexus18c64d0, plussecrets.inputs.inventory = ["inventory"]with no duplicate inventory node.Refs allod/strategy#34
Independent read-only review found one blocker in
132a901:flake.lockstill pins thearchetypes -> nexusnode toa66ea960cd018bc1e31de8a30cb649f1dc1e8194, while the reviewed Nexus lifecycle command is PR #26 headdc503fa27374711bb8d0321140e328f48e503a49. The root graph mapsarchetypes.inputs.nexusto that stalenexusnode. I realized the composed Nexusnexus-provisioning-scriptsderivation and confirmedbin/pi-provideris absent while the pre-existingbin/rotate-tokenis present. Therefore rebuilding the Nexus configuration from this deployment does not install the command this final composition depends on, despite listing allod/nexus#26 as a dependency.Direct fix: advance the transitive
archetypes/nexuslock node to the reviewed PR #26 head (or its reachable merged revision), then rebuild the Nexus configuration or at minimum realize itsnexus-provisioning-scriptspackage and assertbin/pi-providerexists. Keep the other reviewed pins and four follows edges unchanged.Resolved at
e5dd5bc.3811b3ewith Nexusdc503fa; profiles9d48e43, secrets2692bef, and inventory1a1ca7aremain on their reviewed heads. The four follows edges resolve to one profiles/secrets/inventory graph, with one inventory node./nix/store/lhrx16j85z6qv75nyiamvlx0dny686a9-nexus-provisioning-scripts.bin/pi-provideris executable, and--helplists add, retarget, rotate, retire, and recover.No remaining findings in this scoped re-review.
The owner requested that this PR be rebased after a batch of changes landed on
master. This branch is three base commits behind. I will rebase it last, refresh the exact archetypes/Nexus pins to their rebased heads, and rerun the source-graph,allod-dev, Nexus, and realized-command checks.The branch is refreshed against current
masterwithout rewriting its public history. Merge head:96029fdf8b40d5c3197baed5b7012f3104c43841; exact downstream pins: Archetypesddfccf0a0b0bffa7294a44dcada76de2911d5cfband Nexus18c64d059688928694e8ff71c25cd17656efd230.The expected lock-file conflict was resolved by retaining the new upstream graph and refreshing the feature pins. The composed-layer canary,
allod-devtoplevel, and Nexus toplevel all build. The realized Nexus provisioning package contains executablebin/pi-provider, its help lists add/retarget/rotate/retire/recover, exact source/lock assertions pass, and diff/status checks are clean.