chore(dnsmasq): filter dynamic systems better

This commit is contained in:
arcnmx 2024-04-16 09:23:50 -07:00
parent 60e27b1b59
commit 66d60c7977
4 changed files with 8 additions and 3 deletions

View file

@ -140,6 +140,9 @@ in {
default = domain; default = domain;
}; };
global.enable = mkEnableOption "globally routeable"; global.enable = mkEnableOption "globally routeable";
online.enable = mkEnableOption "a deployed machine" // {
default = true;
};
hostnameForNetwork = mkOption { hostnameForNetwork = mkOption {
type = attrsOf str; type = attrsOf str;
default = {}; default = {};

View file

@ -12,8 +12,8 @@
inherit (lib.trivial) mapNullable; inherit (lib.trivial) mapNullable;
cfg = config.services.dnsmasq; cfg = config.services.dnsmasq;
inherit (inputs.self.lib) systems; inherit (inputs.self.lib) systems;
reisenSystems = filterAttrs (_: system: localSystems = filterAttrs (_: system:
system.config.proxmox.enabled && system.config.proxmox.node.name == "reisen" system.config.access.online.enable && system.config.network.local.enable or false
) systems; ) systems;
mkHostRecordPairs = _: system: [ mkHostRecordPairs = _: system: [
(mkHostRecordPair "int" system) (mkHostRecordPair "int" system)
@ -70,7 +70,7 @@ in {
resolveLocalQueries = mkForce false; resolveLocalQueries = mkForce false;
settings = { settings = {
host-record = mapAttrsToList mkHostRecord systemHosts; host-record = mapAttrsToList mkHostRecord systemHosts;
dynamic-host = mapAttrsToList mkDynamicHostRecord reisenSystems; dynamic-host = mapAttrsToList mkDynamicHostRecord localSystems;
server = server =
if config.networking.nameservers' != [ ] then map (ns: ns.address) (filter filterns' config.networking.nameservers') if config.networking.nameservers' != [ ] then map (ns: ns.address) (filter filterns' config.networking.nameservers')
else filter filterns config.networking.nameservers else filter filterns config.networking.nameservers

View file

@ -4,6 +4,7 @@ _: {
modules = [ modules = [
./nixos.nix ./nixos.nix
]; ];
access.online.enable = false;
network.networks = { network.networks = {
local = { local = {
fqdn = null; fqdn = null;

View file

@ -5,6 +5,7 @@ _: {
modules = [ modules = [
./nixos.nix ./nixos.nix
]; ];
access.online.enable = false;
network.networks = { network.networks = {
local = { local = {
address4 = null; address4 = null;