services.flannel: add an extraNetworkConfig configuration, add missing kernel module (#365317)

This commit is contained in:
Weijia Wang
2025-02-24 15:54:44 +01:00
committed by GitHub
+20 -7
View File
@@ -7,13 +7,15 @@
let
cfg = config.services.flannel;
networkConfig = lib.filterAttrs (n: v: v != null) {
Network = cfg.network;
SubnetLen = cfg.subnetLen;
SubnetMin = cfg.subnetMin;
SubnetMax = cfg.subnetMax;
Backend = cfg.backend;
};
networkConfig =
(lib.filterAttrs (n: v: v != null) {
Network = cfg.network;
SubnetLen = cfg.subnetLen;
SubnetMin = cfg.subnetMin;
SubnetMax = cfg.subnetMax;
Backend = cfg.backend;
})
// cfg.extraNetworkConfig;
in
{
options.services.flannel = {
@@ -139,6 +141,15 @@ in
Type = "vxlan";
};
};
extraNetworkConfig = lib.mkOption {
description = "Extra configuration to be added to the net-conf.json/etcd-backed network configuration.";
type = (pkgs.formats.json { }).type;
default = { };
example = {
EnableIPv6 = true;
};
};
};
config = lib.mkIf cfg.enable {
@@ -184,6 +195,8 @@ in
};
};
boot.kernelModules = [ "br_netfilter" ];
services.etcd.enable = lib.mkDefault (
cfg.storageBackend == "etcd" && cfg.etcd.endpoints == [ "http://127.0.0.1:2379" ]
);