dhcp file leases with lan name
This commit is contained in:
parent
4343865e6f
commit
35710f6d3c
2 changed files with 10 additions and 3 deletions
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
@ -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 = { };
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue