02 - Secure and Automate Access to the Nova Build Machine #233
Labels
No labels
area:authentication
area:flake-utilities
area:performance
area:tbd
host:chaos
host:electra
host:fleet
host:lyra
host:nova
host:vega
investigation
phase:cutover
phase:deploy
phase:mcp
phase:module
phase:packaging
phase:prep
phase:validation
priority:high
priority:medium
project:attic-postgres-lyra-rollout
project:auto-update-reliability
project:auto-update-remediation
project:declarative-purity-cleanup
project:external-review
project:fleet-boundary-cleanup
project:host-facts-refactor
project:lyra-nixos-deploy
project:lyra-service-stack-migration
project:nebula-mesh-network
project:nixos-build-deployment-pipeline
project:security-hardening
project:service-stack-migration
project:vega-sillytavern-cutover
project:wiki-rebuild
repo:numtide/flake-utils
repo:numtide/nix-auth
repo:numtide/nixos-passthru-cache
repo:numtide/nix-relay
service:auto-update
service:mem0
service:nix
service:sillytavern
service:slskd
service:synthseek
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
nimmo/nixos-config#233
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Goal
Manage client authentication to Nova's dedicated builder identity without manually copying credentials, while keeping build access separate from Forgejo, CI publication, and deployment authority.
Dependencies
Blocked by #232: the builder identity, protocol, and privilege boundary must exist before credentials are distributed.
Requirements
authorized_keys/account configuration through the documented Fedora procedure until Nova is migrated to NixOS.Validation
Working branch:
feat/issue-233-nova-builder-credentials(created from currentmain). This issue will usejust testfor any activation validation; noswitchdeployment is in scope.Progress on
feat/issue-233-nova-builder-credentials:\n\n- Added a Lyra-only SOPS binary secret encrypted to Lyra plus administrative recovery recipients; Vega and other clients are excluded.\n-just teston Lyra succeeded (noswitch): the rendered key isroot:root, mode0400, and matches its Nova public key.\n- Nova accepted that key under the existing restrictednix-remote-builderidentity. Anix store inforequest authenticated through the forced command.\n- A deliberately non-substituted derivation with Lyra local jobs disabled was built on Nova and copied back to Lyra.\n- Temporary plaintext key material and Nova staging files were removed. The existing user-created auto-update hold remains active and will be released only after this issue is merged.\n\nThe remaining completion criterion needs a second NixOS client (recommended: Electra): deploy its distinct SOPS key, prove its access, verify a non-opted host does not receive a key, and revoke one client key without disrupting the other.Checkpoint commit:
30e7af1(feat(nix): provision Lyra Nova builder credential). It includes the Lyra SOPS credential, recipient isolation, durable-client documentation, and removal of the pre-existing duplicate netcat package warning. The branch is intentionally not yet pushed; #233 remains open pending the second-client and independent-revocation validation.Electra preparation checkpoint (not yet pushed):
615bc6dadds the independently encrypted Electra credential and3541303adds its Electra-only SOPS recipient rule plus root-owned0400declaration. Electra preflight is clean, currently booted inigpu, and has no auto-update hold. No Nova authorization line or Electra live activation has been performed yet.Completion evidence for the two-client credential boundary (branch remains local/unpushed):\n\n- Electra completed a
just testactivation withoutswitch; its rendered key isroot:root, mode0400, and has an independent fingerprint from Lyra.\n- Nova now holds exactly the two restrictednix-remote-builderpublic keys, both under the existing forcednix-store --serve --writeSSHD boundary.\n- Electra authenticated to the forced store and submitted a deliberately non-substituted derivation with local jobs disabled; Nova built it and Electra copied the result back.\n- Revocation proof: removing only Lyra’s Nova key denied Lyra (Permission denied, exit 1) while Electra retained remote-store access (exit 0). Lyra’s exact key was restored and revalidated (exit 0).\n- Declarative scope: Vega receives neither credential; Lyra receives only Lyra’s; Electra receives only Electra’s.\n- All temporary key/public-key staging files were removed. Lyra’s user-created auto-update hold remains active and must be released only after the eventual MR merge.