{ jefke = { # TODO: directly set and read this from nixos config. hostName = "jefke"; domain = "hyp"; type = "physical"; nixosModule.lab = { terraformDatabase.enable = true; storage = { osDisk = "/dev/sda"; dataPartition = "/dev/nvme0n1p1"; }; ssh = { useCertificates = true; hostCert = builtins.readFile ./jefke_host_ed25519-cert.pub; userCert = builtins.readFile ./jefke_user_ed25519-cert.pub; }; }; }; atlas = { hostName = "atlas"; domain = "hyp"; type = "physical"; nixosModule = { config, ... }: let inherit (config.lab.networking) dmzServicesIPv4 dmzServicesIPv6; in { lab = { networking = { # TODO: Ideally, we don't have to set this here. staticDMZIPv4Address = "${dmzServicesIPv4}/24"; staticDMZIPv6Address = "${dmzServicesIPv6}/64"; dmzServices.enable = true; }; storage = { osDisk = "/dev/sda"; dataPartition = "/dev/nvme0n1p1"; }; ssh = { useCertificates = true; hostCert = builtins.readFile ./atlas_host_ed25519-cert.pub; userCert = builtins.readFile ./atlas_user_ed25519-cert.pub; }; }; }; }; lewis = { hostName = "lewis"; domain = "hyp"; type = "physical"; nixosModule = { pkgs, ... }: { lab = { dataHost.enable = true; storage = { osDisk = "/dev/sda"; dataPartition = "/dev/nvme0n1p1"; }; ssh = { useCertificates = true; hostCert = builtins.readFile ./lewis_host_ed25519-cert.pub; userCert = builtins.readFile ./lewis_user_ed25519-cert.pub; }; }; }; }; my-microvm = { hostName = "my-microvm"; domain = "dmz"; type = "virtual"; hypervisorName = "lewis"; nixosModule = { pkgs, config, ... }: { programs.bash.interactiveShellInit = '' echo "Hello world from inside a virtual machine!" | ${pkgs.lolcat}/bin/lolcat ''; lab.vmMacAddress = "BA:DB:EE:F0:00:00"; }; }; }