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 = { nix = {
@ -20,5 +20,12 @@
users.users.root.initialHashedPassword = ""; 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"; system.stateVersion = "20.09";
} }

View File

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