dhcp file leases with lan name

This commit is contained in:
Sagar Ch 2024-06-07 02:34:37 +00:00
parent 4343865e6f
commit 35710f6d3c
2 changed files with 10 additions and 3 deletions

View file

@ -65,7 +65,7 @@ let
localise-queries localise-queries
no-hosts no-hosts
expand-hosts expand-hosts
dhcp-leasefile=/tmp/dhcp.leases dhcp-leasefile=/tmp/${lanCfg.name}.vmix.dhcp.leases
'' + '' +
lib.concatStringsSep "\n" (lib.optionals (lanCfg.ipv4.dns.upstream != []) ([ "no-resolv" ] ++ (builtins.map (dnsServer: "server=${dnsServer}") lanCfg.ipv4.dns.upstream))) lib.concatStringsSep "\n" (lib.optionals (lanCfg.ipv4.dns.upstream != []) ([ "no-resolv" ] ++ (builtins.map (dnsServer: "server=${dnsServer}") lanCfg.ipv4.dns.upstream)))
); );
@ -161,7 +161,14 @@ let
networkNames = builtins.attrNames vmixCfg.networks; networkNames = builtins.attrNames vmixCfg.networks;
networkServices = pkgs.unstable.lib.mergeAttrsList (lib.imap0 (index: networkName: (mkNetworkServices networkName (vmixCfg.networks.${networkName} // { inherit index;}))) networkNames); networkServices = pkgs.unstable.lib.mergeAttrsList (lib.imap0 (index: networkName: (mkNetworkServices networkName (vmixCfg.networks.${networkName} // { inherit index;}))) networkNames);
networkTargets = lib.concatMapAttrs (networkName: netCfg: {
"net.vmix@${networkName}" = {
description = "Network ${networkName} for vmix";
bindsTo = [ "ns.net.vmix@${networkName}.service" ];
};
}) vmixCfg.networks;
in in
{ {
config.systemd.services = namespaceGlobalService // networkServices; config.systemd.services = namespaceGlobalService // networkServices;
config.systemd.targets = networkTargets;
} }

View file

@ -1,12 +1,12 @@
args@{ config, pkgs, lib, vmixLib, ... }: args@{ config, pkgs, lib, vmixLib, ... }:
with lib; with lib;
{ {
options.vmix.global.net.wan.ipv4.range = lib.mkOption { options.vmix.global.net.wan.ipv4.range = mkOption {
type = types.strMatching vmixLib.network.regex.cidr4; type = types.strMatching vmixLib.network.regex.cidr4;
default = "172.27.72.0/24"; # enough to create 64x /30 networks for veth pairs used for wan interfaces default = "172.27.72.0/24"; # enough to create 64x /30 networks for veth pairs used for wan interfaces
}; };
options.vmix.networks = lib.mkOption { options.vmix.networks = mkOption {
type = types.attrsOf type = types.attrsOf
(types.submodule (import ./options.nix args)); (types.submodule (import ./options.nix args));
default = { }; default = { };