nixos/podman: Add defaultNetwork.extraPlugins
This commit is contained in:
parent
efba949352
commit
d81631fb98
@ -2,6 +2,7 @@
|
|||||||
let
|
let
|
||||||
cfg = config.virtualisation.podman;
|
cfg = config.virtualisation.podman;
|
||||||
toml = pkgs.formats.toml { };
|
toml = pkgs.formats.toml { };
|
||||||
|
json = pkgs.formats.json { };
|
||||||
|
|
||||||
inherit (lib) mkOption types;
|
inherit (lib) mkOption types;
|
||||||
|
|
||||||
@ -22,6 +23,19 @@ let
|
|||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
net-conflist = pkgs.runCommand "87-podman-bridge.conflist" {
|
||||||
|
nativeBuildInputs = [ pkgs.jq ];
|
||||||
|
extraPlugins = builtins.toJSON cfg.defaultNetwork.extraPlugins;
|
||||||
|
jqScript = ''
|
||||||
|
. + { "plugins": (.plugins + $extraPlugins) }
|
||||||
|
'';
|
||||||
|
} ''
|
||||||
|
jq <${cfg.package}/etc/cni/net.d/87-podman-bridge.conflist \
|
||||||
|
--argjson extraPlugins "$extraPlugins" \
|
||||||
|
"$jqScript" \
|
||||||
|
>$out
|
||||||
|
'';
|
||||||
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
@ -99,6 +113,13 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
defaultNetwork.extraPlugins = lib.mkOption {
|
||||||
|
type = types.listOf json.type;
|
||||||
|
default = [];
|
||||||
|
description = ''
|
||||||
|
Extra CNI plugin configurations to add to podman's default network.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -107,7 +128,7 @@ in
|
|||||||
environment.systemPackages = [ cfg.package ]
|
environment.systemPackages = [ cfg.package ]
|
||||||
++ lib.optional cfg.dockerCompat dockerCompat;
|
++ lib.optional cfg.dockerCompat dockerCompat;
|
||||||
|
|
||||||
environment.etc."cni/net.d/87-podman-bridge.conflist".source = "${cfg.package}/etc/cni/net.d/87-podman-bridge.conflist";
|
environment.etc."cni/net.d/87-podman-bridge.conflist".source = net-conflist;
|
||||||
|
|
||||||
virtualisation.containers = {
|
virtualisation.containers = {
|
||||||
enable = true; # Enable common /etc/containers configuration
|
enable = true; # Enable common /etc/containers configuration
|
||||||
|
Loading…
Reference in New Issue
Block a user