nix-dotfiles/modules/kub_net.nix

57 lines
1.4 KiB
Nix
Raw Permalink Normal View History

{ lib, config, ... }:
let
cfg = config.services.rad-dev.k3s-net;
in
2024-05-25 12:48:46 -04:00
{
options = {
services.rad-dev.k3s-net = {
enable = lib.mkOption {
default = true;
example = true;
description = "Whether to enable k3s-net.";
type = lib.types.bool;
};
};
2024-05-25 12:48:46 -04:00
};
config = lib.mkIf cfg.enable {
system.activationScripts.setZerotierName = lib.stringAfter [ "var" ] ''
echo "ebe7fbd44565ba9d=ztkubnet" > /var/lib/zerotier-one/devicemap
'';
services.zerotierone = lib.mkDefault {
enable = true;
joinNetworks = [ "ebe7fbd44565ba9d" ];
2024-05-26 11:06:40 -04:00
};
systemd.network = lib.mkDefault {
enable = true;
wait-online.anyInterface = true;
netdevs = {
"20-brkubnet" = {
netdevConfig = {
Kind = "bridge";
Name = "brkubnet";
};
};
2024-05-26 11:06:40 -04:00
};
networks = {
"30-ztkubnet" = {
matchConfig.Name = "ztkubnet";
networkConfig.Bridge = "brkubnet";
linkConfig.RequiredForOnline = "enslaved";
};
"40-brkubnet" = {
matchConfig.Name = "brkubnet";
bridgeConfig = { };
linkConfig.RequiredForOnline = "no";
};
2024-05-26 11:06:40 -04:00
};
};
# enable experimental networkd backend so networking doesnt break on hybrid systems
networking.useNetworkd = lib.mkDefault true;
};
2024-05-25 12:48:46 -04:00
}