feat(networking): switch lindberg to systemd-networkd #135

Open
fabianhauser wants to merge 3 commits from feat/lindberg-networkd into main
Owner

Summary

  • Add qois.networkd module (opt-in, auto-discovered) so any host can switch to systemd-networkd with a single option
  • Remove the hardcoded networking.useNetworkd = false from the global system module; the new module covers this for all hosts
  • Enable qois.networkd.enable = true on lindberg
  • Fix backplane-net module: lock networking.wireguard.useNetworkd = false to keep the scripted wg backend (the networkd wg backend is incompatible with generatePrivateKeyFile and the wgautomesh service dependency chain); also fix with lib code style violations
  • vms-nat bridge: add ConfigureWithoutCarrier = true so networkd assigns the static IP without waiting for VM tap devices to connect
  • Replace the scripted-networking-only network-addresses-vms-nat.service dnsmasq dependency with systemd-networkd-wait-online@vms-nat.service (note: srvos disables the global wait-online but the per-interface template remains available)

Test plan

See TODO.md for manual verification steps after deployment.

## Summary - Add `qois.networkd` module (opt-in, auto-discovered) so any host can switch to systemd-networkd with a single option - Remove the hardcoded `networking.useNetworkd = false` from the global system module; the new module covers this for all hosts - Enable `qois.networkd.enable = true` on lindberg - Fix `backplane-net` module: lock `networking.wireguard.useNetworkd = false` to keep the scripted wg backend (the networkd wg backend is incompatible with `generatePrivateKeyFile` and the `wgautomesh` service dependency chain); also fix `with lib` code style violations - `vms-nat` bridge: add `ConfigureWithoutCarrier = true` so networkd assigns the static IP without waiting for VM tap devices to connect - Replace the scripted-networking-only `network-addresses-vms-nat.service` dnsmasq dependency with `systemd-networkd-wait-online@vms-nat.service` (note: srvos disables the global wait-online but the per-interface template remains available) ## Test plan See `TODO.md` for manual verification steps after deployment.
feat(networking): switch lindberg to systemd-networkd
All checks were successful
CI / build (push) Successful in 1m34s
CI / deploy (docs-ops.qo.is) (push) Has been skipped
CI / deploy (system-physical) (push) Has been skipped
CI / deploy (system-vm) (push) Has been skipped
CI / deploy-ci (push) Has been skipped
f840b6d526
Add a qois.networkd module (opt-in per host, discoverable via
loadSubmodulesFrom) that sets networking.useNetworkd based on the option.
This replaces the hardcoded =false in system/default.nix, letting
srvos's mkDefault take effect for all non-networkd hosts unchanged.
fix(lindberg): set RequiredForOnline=no-carrier for vms-nat bridge
All checks were successful
CI / build (push) Successful in 1m8s
CI / deploy (docs-ops.qo.is) (push) Has been skipped
CI / deploy (system-physical) (push) Has been skipped
CI / deploy (system-vm) (push) Has been skipped
CI / deploy-ci (push) Has been skipped
d85d639c21
All checks were successful
CI / build (push) Successful in 1m8s
CI / deploy (docs-ops.qo.is) (push) Has been skipped
CI / deploy (system-physical) (push) Has been skipped
CI / deploy (system-vm) (push) Has been skipped
CI / deploy-ci (push) Has been skipped
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feat/lindberg-networkd:feat/lindberg-networkd
git switch feat/lindberg-networkd
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.

Dependencies

No dependencies set.

Reference
qo.is/infrastructure!135
No description provided.