Fediversity/deployment/check/data-model/deployment.nix

66 lines
1.7 KiB
Nix

{
config,
inputs ? (import ../../../default.nix { }).inputs,
sources ? import ../../../npins,
...
}:
let
inherit (sources) nixpkgs;
lib = import "${nixpkgs}/lib";
eval =
module:
(lib.evalModules {
specialArgs = {
inherit inputs;
};
modules = [
module
../../data-model.nix
];
}).config;
fediversity = eval (
{ ... }:
{
config = {
environments.single-nixos-vm =
{ ... }:
{
implementation = requests: {
input = requests;
output.ssh-host = {
ssh = {
host = "localhost";
username = "root";
key-file = null;
};
nixos-configuration =
{ pkgs, ... }:
{
imports = [
../common/sharedOptions.nix
../common/targetNode.nix
"${nixpkgs}/nixos/modules/profiles/qemu-guest.nix"
];
inherit (config) enableAcme;
acmeNodeIP = if config.enableAcme then config.nodes.acme.networking.primaryIPAddress else null;
environment.systemPackages = with pkgs; [
hello
];
users.users = config.resources.shell.login-shell.apply (
lib.filterAttrs (_name: value: value ? login-shell) requests
);
};
};
};
};
};
}
);
in
fediversity.environments.single-nixos-vm.deployment {
enable = true;
}