2024-05-28 23:47:11 -04:00
|
|
|
{ lib, config, ... }:
|
|
|
|
let
|
|
|
|
cfg = config.services.rad-dev.k3s-net;
|
|
|
|
in
|
2024-05-25 12:48:46 -04:00
|
|
|
{
|
2024-05-28 23:41:22 -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
|
|
|
};
|
2024-05-27 17:00:50 -04:00
|
|
|
|
2024-05-28 23:47:11 -04:00
|
|
|
config = lib.mkIf cfg.enable {
|
2024-05-28 23:41:22 -04:00
|
|
|
|
|
|
|
system.activationScripts.setZerotierName = lib.stringAfter [ "var" ] ''
|
|
|
|
echo "ebe7fbd44565ba9d=ztkubnet" > /var/lib/zerotier-one/devicemap
|
|
|
|
'';
|
|
|
|
|
2024-05-31 07:27:55 -04:00
|
|
|
services.zerotierone = {
|
|
|
|
enable = lib.mkDefault true;
|
2024-05-28 23:41:22 -04:00
|
|
|
joinNetworks = [ "ebe7fbd44565ba9d" ];
|
2024-05-26 11:06:40 -04:00
|
|
|
};
|
2024-05-28 23:41:22 -04:00
|
|
|
|
2024-05-31 07:27:55 -04:00
|
|
|
systemd.network = {
|
|
|
|
enable = lib.mkDefault true;
|
2024-05-28 23:41:22 -04:00
|
|
|
wait-online.anyInterface = true;
|
|
|
|
netdevs = {
|
|
|
|
"20-brkubnet" = {
|
|
|
|
netdevConfig = {
|
|
|
|
Kind = "bridge";
|
|
|
|
Name = "brkubnet";
|
|
|
|
};
|
|
|
|
};
|
2024-05-26 11:06:40 -04:00
|
|
|
};
|
2024-05-28 23:41:22 -04:00
|
|
|
networks = {
|
|
|
|
"30-ztkubnet" = {
|
2024-05-30 23:56:37 -04:00
|
|
|
matchConfig.Name = [ "ztkubnet" ];
|
2024-05-28 23:41:22 -04:00
|
|
|
networkConfig.Bridge = "brkubnet";
|
|
|
|
linkConfig.RequiredForOnline = "enslaved";
|
|
|
|
};
|
|
|
|
"40-brkubnet" = {
|
|
|
|
matchConfig.Name = "brkubnet";
|
|
|
|
bridgeConfig = { };
|
2024-05-30 23:56:37 -04:00
|
|
|
networkConfig.LinkLocalAddressing = "no";
|
2024-05-28 23:41:22 -04:00
|
|
|
linkConfig.RequiredForOnline = "no";
|
|
|
|
};
|
2024-05-30 23:56:37 -04:00
|
|
|
"41-vms" = {
|
|
|
|
matchConfig.Name = [ "vm-*" ];
|
|
|
|
networkConfig.Bridge = "brkubnet";
|
|
|
|
linkConfig.RequiredForOnline = "enslaved";
|
|
|
|
};
|
2024-08-06 14:50:45 -04:00
|
|
|
"42-kubnet-accuse" = {
|
|
|
|
matchConfig.Name = "kubnet-accuse";
|
|
|
|
networkConfig.Bridge = "brkubnet";
|
|
|
|
linkConfig.RequiredForOnline = "enslaved";
|
|
|
|
address = [ "192.168.69.20/24" ];
|
|
|
|
};
|
2024-05-26 11:06:40 -04:00
|
|
|
};
|
|
|
|
};
|
2024-05-27 17:00:50 -04:00
|
|
|
|
2024-05-28 23:41:22 -04:00
|
|
|
# enable experimental networkd backend so networking doesnt break on hybrid systems
|
2024-05-28 23:51:01 -04:00
|
|
|
networking.useNetworkd = lib.mkDefault true;
|
2024-05-28 23:41:22 -04:00
|
|
|
};
|
2024-05-25 12:48:46 -04:00
|
|
|
}
|