Archived
Check NixOS configurations / eval-hosts (pull_request) Successful in 10m40s
Wires everything staged so far into a real flake target: - modules/platforms/baremetal.nix (new): the bare-metal platform module, composed from a real nixos-generate-config run on the actual gui-host hardware (AMD CPU, ahci/xhci/usb storage -- modules/hardware-configuration/baremetal.nix). Enables hardware.enableRedistributableFirmware (real wifi/GPU/microcode firmware VMs never needed), amdgpu as the Xorg video driver plus hardware.graphics for Mesa OpenGL/Vulkan, and imports the ZFS RAID0 disko layout + modules/services/zfs/enable-service.nix for root-on-ZFS boot support. - flake.nix: new baremetal-gui target, reusing hosts/nixos/host.nix (same identity already shared across linode/proxmox/lxc-gui). - hosts/nixos/host.nix: added networking.hostId, required now that a ZFS root pool is in the picture. - variables.nix: guiRootDisk1/guiRootDisk2 filled in (/dev/sda, /dev/sdb -- only used transiently at disko-format time, same as modules/disko/proxmox.nix's own plain device path). wifiPassword removed. - modules/networking/wifi.nix: reworked to pull the wifi password from a new sops secret (secrets/gui.yaml, wifi-password) instead of a plaintext variable -- NetworkManager's ensureProfiles renders `psk = "$WIFI_PASSWORD"` literally (nixpkgs' own documented pattern for this) and envsubst-expands it from a sops-rendered EnvironmentFile at activation, so the real value never touches the Nix store, only /run. - .sops.yaml: new secrets/gui\.yaml rule, admin + the currently-registered lxc-gui recipient (the only gui variant with a provisioned host key so far -- whichever variant is actually deployed next still needs scripts/secrets/sync-host-keys.sh run for its own recipient). - README.md/CLAUDE.md: documented the new platform/target and its module layout, per this repo's own drift-prevention note. Verified end-to-end: nix eval of every existing target (nothing broke), a temporary real nixosSystem build against the actual disko.nixosModules.disko confirming the generated zpool create has no mirror/raidz keyword (genuine stripe), and a temporary test SSID confirming the sops secret/template/ ensureProfiles chain renders correctly before reverting to blank/real values. Full scripts/codex-maintenance.sh (secret-grep, fmt, statix, full-fallback eval of every host/package) passes clean.
70 lines
2.5 KiB
YAML
70 lines
2.5 KiB
YAML
keys:
|
|
- &admin age1njap586hc0q43kr03g6c8eqhdsmk8zcafkl3f83xwlc2gqhlmfgs4tmwad
|
|
- &docker age19gfn2yedg76dmztm4hncr7vf3r3c9j0qpt4rap7y7gersjk4m3ks2lhd0e
|
|
- &server age1ll6hj5ggruetgjwjfnplpn5xtq35uhlcdflksx3xmnjm6s3uad9sz70jkf
|
|
- &nix-cache age120le4a5l8dh3lyfgvmj3d9ksmej6ajs5mer5y7r0vfg3x9fn69dqf8xgzu
|
|
- &nix-minimal age120whqj96g26lsgy4udvgsn8dc9lumh8jeu3a564fx79rjr5lxffqmrljuu
|
|
- &proxmox-minimal age10at8862478urh0eeuwh8hzln6ck78jgwtztgxatwqlzwagg77y5snm4xzg
|
|
- &lxc-nix-cache age1xjst4frdh0th6q8m7p7u9g5af7ty5jqeum0p6z8a52a9q7st7ewqw8yl9j
|
|
- &lxc-docker age1ezk9x53zt8kcnscdm80jcyf0xq97vndv7jsn3rl8cc0cwm2jmpmq372dzs
|
|
- &lxc-minimal age1jy444f9d9stygj4p3w9kh54cqcfr654tvr75tdvee5cxsgtdtc9q3v60ep
|
|
- &lxc-pxe-boot age1fxxzpnfse8nd9wz78ht3m0plrmraacf4cpga0pe8fm2tdnqcgy8q7qsyvp
|
|
- &lxc-gui age190htw7prp4vln076dxjx3gxxaq06h0zl0te7cqgpx79vl3lhkaes8suy05
|
|
- &proxmox-server age1ukpqxzl44mnjpy5r96sfuc5sqzm47u4k8ujjh5qdgy6jvl9uqgpspymqfk
|
|
- &vm-server age15kh7akxlx7zn00tey79rq2g8lgs4j5y77rcnyfxrxap8ckfu0a9sqvtdhh
|
|
|
|
creation_rules:
|
|
# Shared across every currently-deployed host: root/nixos password hash,
|
|
# GitHub access token. Same value on every host today, so every live host's
|
|
# key can decrypt it (matches current risk profile — narrow further in
|
|
# Milestone 4 if hosts should diverge).
|
|
- path_regex: secrets/common\.yaml$
|
|
key_groups:
|
|
- age:
|
|
- *admin
|
|
- *docker
|
|
- *server
|
|
- *nix-cache
|
|
- *lxc-minimal
|
|
- *nix-minimal
|
|
- *lxc-nix-cache
|
|
- *proxmox-minimal
|
|
- *lxc-docker
|
|
- *lxc-pxe-boot
|
|
- *lxc-gui
|
|
- *proxmox-server
|
|
- *vm-server
|
|
|
|
- path_regex: secrets/nix-cache\.yaml$
|
|
key_groups:
|
|
- age:
|
|
- *admin
|
|
- *nix-cache
|
|
- *lxc-nix-cache
|
|
|
|
- path_regex: secrets/server\.yaml$
|
|
key_groups:
|
|
- age:
|
|
- *admin
|
|
- *server
|
|
- *proxmox-server
|
|
- *vm-server
|
|
|
|
- path_regex: secrets/docker\.yaml$
|
|
key_groups:
|
|
- age:
|
|
- *admin
|
|
- *docker
|
|
|
|
# gui-host-specific secrets (currently: wifi-password, see
|
|
# modules/networking/wifi.nix). Only *lxc-gui has a registered key today
|
|
# -- proxmox-gui/linode-gui/baremetal-gui haven't been provisioned via
|
|
# scripts/secrets/sync-host-keys.sh yet, so whichever variant is actually
|
|
# deployed next needs its recipient added here (and `sops updatekeys` rerun)
|
|
# before it can decrypt this.
|
|
- path_regex: secrets/gui\.yaml$
|
|
key_groups:
|
|
- age:
|
|
- *admin
|
|
- *lxc-gui
|