1
0
Fork 0

Expose VM options in the flake

This commit is contained in:
Nicolas Jeannerod 2025-02-24 12:52:19 +01:00
parent 10874c995e
commit 4fda719992
Signed by untrusted user: Niols
GPG key ID: 35DB9EC8886E1CB8

View file

@ -56,23 +56,40 @@ let
}; };
}; };
makeResourceConfig =
vmName:
(evalModules {
modules = [
nixops4ResourceNixosMockOptions
(makeResourceModule vmName)
];
}).config;
makeConfigurations = concatMapAttrs ( makeConfigurations = concatMapAttrs (
_: vmNames: _: vmNames:
genAttrs vmNames ( genAttrs vmNames (
vmName: vmName:
inputs.nixpkgs.lib.nixosSystem { inputs.nixpkgs.lib.nixosSystem {
modules = [ modules = [
(evalModules { (makeResourceConfig vmName).nixos.module
modules = [
nixops4ResourceNixosMockOptions
(makeResourceModule vmName)
];
}).config.nixos.module
]; ];
} }
) )
); );
makeVmOptions = concatMapAttrs (
_: vmNames:
genAttrs vmNames (vmName: {
inherit ((makeResourceConfig vmName).fediversityVm)
proxmox
vmId
sockets
cores
memory
;
})
);
machines = { machines = {
git = [ git = [
"vm02116" "vm02116"
@ -94,6 +111,10 @@ in
{ {
flake.lib.makeInstallerIso = import ./makeInstallerIso.nix; flake.lib.makeInstallerIso = import ./makeInstallerIso.nix;
## REVIEW: It would probably make more sense to have the VM names as parent of
## the corresponding resource, NixOS configuration, and VM options, rather
## than the contrary.
nixops4Deployments = makeDeployments (addDefaultDeployment machines); nixops4Deployments = makeDeployments (addDefaultDeployment machines);
flake.nixosConfigurations = makeConfigurations machines; flake.nixosConfigurations = makeConfigurations machines;
flake.vmOptions = makeVmOptions machines;
} }