brigid #72

Merged
lament merged 5 commits from brigid into main 2026-07-09 20:37:01 -05:00
Owner
  • new brigid box - Proxmox virtio VM, uefi-plain layout, roles builder + impermanent
    • takes the builder role off ishtar, so the remote builder + forgejo runner now live here instead
    • directory entry with its wg/ssh keys, overlay ::51; keys seeded into sops/privkeys.yaml
    • no borg subuser - it's stateless, nothing to back up
  • roles restructured from a flat bag into nested groups
    • edge.{vpn,web,mail} and dns.{authority,resolver} replace the flat wgHub/mailserver/knot/resolver
    • roleHost takes a role path now (roleHost [ "edge" "mail" ]), walks it with attrByPath
    • new roleModulesFor helper maps each role to the modules it pulls in (dns.authority -> knot, edge.web -> caddy, builder -> forgejo-runner, ...)
      • host configs stop hand-listing caddy/knot/kresd/mailserver/forgejo-runner - they fall out of the declared roles now
      • athena/ishtar activeModules slim down to just their genuinely host-specific bits ++ roleModulesFor
  • disko configs keyed by layout, not hostname
    • athena.nix/ishtar.nix/minerva.nix -> bios-linode.nix/uefi-lvm.nix/uefi-plain.nix, each a reusable template
    • new modules.disko.layout enum picks one per host; minerva + brigid share uefi-plain
    • module.nix selects on the option instead of config.networking.hostName
  • buildMachines derives the builder from the builder role via roleHost instead of hardcoding ishtar - every host offloads to it except the builder itself
  • hardware: linodeBase -> linodeGuest, hoisted the virtio bits (linuxPackages + virtio_net) up into virtualGuest so every qemu guest inherits them
  • borg: subuser is nullOr/default null now - stateless hosts (the runner/builder) leave it unset and get no job at all, instead of half-declaring dead sops secrets
  • left for later:
    • sub4 borg creds are seeded in sops/borg.yaml but unwired - there if brigid ever grows state worth keeping
    • the brigid VM still needs its actual install/enroll; uefi-plain's /dev/vda wants confirming on the box
- new `brigid` box - Proxmox virtio VM, `uefi-plain` layout, roles `builder` + `impermanent` - takes the `builder` role off `ishtar`, so the remote builder + forgejo runner now live here instead - directory entry with its wg/ssh keys, overlay `::51`; keys seeded into `sops/privkeys.yaml` - no borg subuser - it's stateless, nothing to back up - roles restructured from a flat bag into nested groups - `edge.{vpn,web,mail}` and `dns.{authority,resolver}` replace the flat `wgHub`/`mailserver`/`knot`/`resolver` - `roleHost` takes a role *path* now (`roleHost [ "edge" "mail" ]`), walks it with `attrByPath` - new `roleModulesFor` helper maps each role to the modules it pulls in (`dns.authority -> knot`, `edge.web -> caddy`, `builder -> forgejo-runner`, ...) - host configs stop hand-listing `caddy`/`knot`/`kresd`/`mailserver`/`forgejo-runner` - they fall out of the declared roles now - `athena`/`ishtar` `activeModules` slim down to just their genuinely host-specific bits `++ roleModulesFor` - disko configs keyed by *layout*, not hostname - `athena.nix`/`ishtar.nix`/`minerva.nix` -> `bios-linode.nix`/`uefi-lvm.nix`/`uefi-plain.nix`, each a reusable template - new `modules.disko.layout` enum picks one per host; `minerva` + `brigid` share `uefi-plain` - `module.nix` selects on the option instead of `config.networking.hostName` - `buildMachines` derives the builder from the `builder` role via `roleHost` instead of hardcoding `ishtar` - every host offloads to it except the builder itself - hardware: `linodeBase` -> `linodeGuest`, hoisted the virtio bits (`linuxPackages` + `virtio_net`) up into `virtualGuest` so every qemu guest inherits them - borg: `subuser` is `nullOr`/`default null` now - stateless hosts (the runner/builder) leave it unset and get no job at all, instead of half-declaring dead sops secrets - left for later: - `sub4` borg creds are seeded in `sops/borg.yaml` but unwired - there if brigid ever grows state worth keeping - the `brigid` VM still needs its actual install/enroll; `uefi-plain`'s `/dev/vda` wants confirming on the box
moved some virtualGuest options
All checks were successful
CI / check (pull_request) Successful in 41s
CI / deploy (athena) (pull_request) Has been skipped
CI / deploy (ishtar) (pull_request) Has been skipped
CI / deploy (minerva) (pull_request) Has been skipped
CI / build (athena) (pull_request) Successful in 15s
CI / build (ishtar) (pull_request) Successful in 37s
CI / build (minerva) (pull_request) Successful in 16s
CI / dry-activate (athena) (pull_request) Successful in 7s
CI / dry-activate (ishtar) (pull_request) Successful in 5s
CI / dry-activate (minerva) (pull_request) Successful in 27s
4a3a4ad0f9
lament force-pushed brigid from 4a3a4ad0f9
All checks were successful
CI / check (pull_request) Successful in 41s
CI / deploy (athena) (pull_request) Has been skipped
CI / deploy (ishtar) (pull_request) Has been skipped
CI / deploy (minerva) (pull_request) Has been skipped
CI / build (athena) (pull_request) Successful in 15s
CI / build (ishtar) (pull_request) Successful in 37s
CI / build (minerva) (pull_request) Successful in 16s
CI / dry-activate (athena) (pull_request) Successful in 7s
CI / dry-activate (ishtar) (pull_request) Successful in 5s
CI / dry-activate (minerva) (pull_request) Successful in 27s
to 5955581516
Some checks failed
CI / check (pull_request) Successful in 57s
CI / deploy (athena) (pull_request) Has been skipped
CI / deploy (ishtar) (pull_request) Has been skipped
CI / deploy (minerva) (pull_request) Has been skipped
CI / build (athena) (pull_request) Successful in 3m23s
CI / build (ishtar) (pull_request) Failing after 1m23s
CI / build (minerva) (pull_request) Successful in 49s
CI / dry-activate (athena) (pull_request) Has been skipped
CI / dry-activate (ishtar) (pull_request) Has been skipped
CI / dry-activate (minerva) (pull_request) Has been skipped
2026-07-09 19:51:32 -05:00
Compare
emergency: lsfg-vk hash updated
All checks were successful
CI / check (pull_request) Successful in 59s
CI / deploy (athena) (pull_request) Has been skipped
CI / deploy (ishtar) (pull_request) Has been skipped
CI / deploy (minerva) (pull_request) Has been skipped
CI / build (athena) (pull_request) Successful in 32s
CI / build (ishtar) (pull_request) Successful in 15m6s
CI / build (minerva) (pull_request) Successful in 33s
CI / dry-activate (athena) (pull_request) Successful in 9s
CI / dry-activate (ishtar) (pull_request) Successful in 28s
CI / dry-activate (minerva) (pull_request) Successful in 10s
8d5c242042
lament merged commit 6e29576a7f into main 2026-07-09 20:37:01 -05:00
lament deleted branch brigid 2026-07-09 20:37:01 -05:00
lament referenced this pull request from a commit 2026-07-09 20:37:01 -05:00
lament referenced this pull request from a commit 2026-07-09 21:55:05 -05:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
lament/pantheon!72
No description provided.