nix/pkgs: build *-vm packages

This commit is contained in:
Astro 2021-03-31 01:23:58 +02:00
parent a9336c4513
commit c34e2e72c2
2 changed files with 27 additions and 7 deletions

View File

@ -1,4 +1,4 @@
{ hostName, inputs, pkgs, ... }:
{ hostName, inputs, pkgs, options, lib, ... }:
{
nix = {
@ -20,5 +20,12 @@
users.users.root.initialHashedPassword = "";
virtualisation = lib.optionalAttrs (builtins.hasAttr "qemu" options.virtualisation) {
memorySize = 4096;
msize = 65536;
cores = 4;
qemu.options = [ "-enable-kvm" ];
};
system.stateVersion = "20.09";
}

View File

@ -3,10 +3,12 @@
let
inherit (self.lib) config;
pkgs = nixpkgs.legacyPackages.${system};
export-config-file = builtins.toFile "config.nix" (
nixpkgs.lib.generators.toPretty {} config
);
export-config = nixpkgs.legacyPackages.${system}.runCommandLocal "config.nix" {} ''
export-config = pkgs.runCommandLocal "config.nix" {} ''
cp ${export-config-file} $out
'';
@ -14,7 +16,7 @@ let
nixpkgs.lib.generators.toPretty {} (self.lib.saltPillarFor hostName)
);
salt-pillars = builtins.foldl' (result: hostName: result // {
"${hostName}-pillar" = nixpkgs.legacyPackages.${system}.runCommandLocal "${hostName}-pillar.nix" {} ''
"${hostName}-pillar" = pkgs.runCommandLocal "${hostName}-pillar.nix" {} ''
cp ${salt-pillar-file hostName} $out
'';
}) {} (
@ -24,7 +26,7 @@ let
);
mkRootfs = hostName:
nixpkgs.legacyPackages.${system}.runCommandLocal "rootfs_${hostName}" {
pkgs.runCommandLocal "rootfs_${hostName}" {
src = self.nixosConfigurations.${hostName}.config.system.build.toplevel;
} ''
set -x
@ -33,12 +35,23 @@ let
ln -s $src/etc $out/etc/static
'';
rootfs =
rootfs-packages =
builtins.foldl' (rootfs: hostName: rootfs // {
"${hostName}-rootfs" = mkRootfs hostName;
}) {} (
builtins.attrNames (
nixpkgs.lib.filterAttrs (_: { role, ... }: role == "container")
nixpkgs.lib.filterAttrs (_: { role, ... }: builtins.elem role ["server" "container"])
config.site.hosts
)
);
vm-packages =
builtins.foldl' (rootfs: hostName: rootfs // {
# "${hostName}-vm" = mkVM hostName;
"${hostName}-vm" = self.nixosConfigurations.${hostName}.config.system.build.vm;
}) {} (
builtins.attrNames (
nixpkgs.lib.filterAttrs (_: { role, ... }: role == "server")
config.site.hosts
)
);
@ -48,6 +61,6 @@ let
};
in
salt-pillars // rootfs // device-templates // {
salt-pillars // rootfs-packages // vm-packages // device-templates // {
inherit export-config;
}