nix/pkgs: build *-vm packages
This commit is contained in:
parent
a9336c4513
commit
c34e2e72c2
|
@ -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";
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue