forked from zentralwerk/network
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 = {
|
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";
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue