From c34e2e72c27fd20cf98756bd26609c53af7ae709 Mon Sep 17 00:00:00 2001 From: Astro Date: Wed, 31 Mar 2021 01:23:58 +0200 Subject: [PATCH] nix/pkgs: build *-vm packages --- nix/nixos-module/defaults.nix | 9 ++++++++- nix/pkgs/default.nix | 25 +++++++++++++++++++------ 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/nix/nixos-module/defaults.nix b/nix/nixos-module/defaults.nix index 0cce780..2acb012 100644 --- a/nix/nixos-module/defaults.nix +++ b/nix/nixos-module/defaults.nix @@ -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"; } diff --git a/nix/pkgs/default.nix b/nix/pkgs/default.nix index 8b70915..4ceafc2 100644 --- a/nix/pkgs/default.nix +++ b/nix/pkgs/default.nix @@ -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; }