nixos/{containers,cri-o,podman}: move copyFile to nixos/lib/utils

zowoq 008de9ca f569e1f3

Changed files
+13 -21
nixos
lib
modules
+5
nixos/lib/utils.nix
···
rec {
+
# Copy configuration files to avoid having the entire sources in the system closure
+
copyFile = filePath: pkgs.runCommandNoCC (builtins.unsafeDiscardStringContext (builtins.baseNameOf filePath)) {} ''
+
cp ${filePath} $out
+
'';
+
# Check whenever fileSystem is needed for boot. NOTE: Make sure
# pathsNeededForBoot is closed under the parent relationship, i.e. if /a/b/c
# is in the list, put /a and /a/b in as well.
+2 -6
nixos/modules/virtualisation/containers.nix
···
-
{ config, lib, pkgs, ... }:
+
{ config, lib, pkgs, utils, ... }:
let
cfg = config.virtualisation.containers;
···
json2toml "$valuePath" "$out"
'';
-
# Copy configuration files to avoid having the entire sources in the system closure
-
copyFile = filePath: pkgs.runCommandNoCC (builtins.unsafeDiscardStringContext (builtins.baseNameOf filePath)) {} ''
-
cp ${filePath} $out
-
'';
in
{
meta = {
···
environment.etc."containers/policy.json".source =
if cfg.policy != {} then pkgs.writeText "policy.json" (builtins.toJSON cfg.policy)
-
else copyFile "${pkgs.skopeo.src}/default-policy.json";
+
else utils.copyFile "${pkgs.skopeo.src}/default-policy.json";
};
}
+4 -8
nixos/modules/virtualisation/cri-o.nix
···
-
{ config, lib, pkgs, ... }:
+
{ config, lib, pkgs, utils, ... }:
with lib;
let
···
crioPackage = (pkgs.cri-o.override { inherit (cfg) extraPackages; });
-
# Copy configuration files to avoid having the entire sources in the system closure
-
copyFile = filePath: pkgs.runCommandNoCC (builtins.unsafeDiscardStringContext (builtins.baseNameOf filePath)) { } ''
-
cp ${filePath} $out
-
'';
in
{
imports = [
···
config = mkIf cfg.enable {
environment.systemPackages = [ cfg.package pkgs.cri-tools ];
-
environment.etc."crictl.yaml".source = copyFile "${pkgs.cri-o-unwrapped.src}/crictl.yaml";
+
environment.etc."crictl.yaml".source = utils.copyFile "${pkgs.cri-o-unwrapped.src}/crictl.yaml";
environment.etc."crio/crio.conf.d/00-default.conf".text = ''
[crio]
···
''}
'';
-
environment.etc."cni/net.d/10-crio-bridge.conf".source = copyFile "${pkgs.cri-o-unwrapped.src}/contrib/cni/10-crio-bridge.conf";
-
environment.etc."cni/net.d/99-loopback.conf".source = copyFile "${pkgs.cri-o-unwrapped.src}/contrib/cni/99-loopback.conf";
+
environment.etc."cni/net.d/10-crio-bridge.conf".source = utils.copyFile "${pkgs.cri-o-unwrapped.src}/contrib/cni/10-crio-bridge.conf";
+
environment.etc."cni/net.d/99-loopback.conf".source = utils.copyFile "${pkgs.cri-o-unwrapped.src}/contrib/cni/99-loopback.conf";
# Enable common /etc/containers configuration
virtualisation.containers.enable = true;
+2 -7
nixos/modules/virtualisation/podman.nix
···
-
{ config, lib, pkgs, ... }:
+
{ config, lib, pkgs, utils, ... }:
let
cfg = config.virtualisation.podman;
···
basename=$(basename $f | sed s/podman/docker/g)
ln -s $f $man/share/man/man1/$basename
done
-
'';
-
-
# Copy configuration files to avoid having the entire sources in the system closure
-
copyFile = filePath: pkgs.runCommandNoCC (builtins.unsafeDiscardStringContext (builtins.baseNameOf filePath)) {} ''
-
cp ${filePath} $out
'';
in
···
environment.systemPackages = [ cfg.package ]
++ lib.optional cfg.dockerCompat dockerCompat;
-
environment.etc."cni/net.d/87-podman-bridge.conflist".source = copyFile "${pkgs.podman-unwrapped.src}/cni/87-podman-bridge.conflist";
+
environment.etc."cni/net.d/87-podman-bridge.conflist".source = utils.copyFile "${pkgs.podman-unwrapped.src}/cni/87-podman-bridge.conflist";
# Enable common /etc/containers configuration
virtualisation.containers.enable = true;