{ jefke = { type = "physical"; nixosModule = { lab = { terraformDatabase.enable = true; storage = { osDisk = "/dev/sda"; dataPartition = "/dev/nvme0n1p1"; }; ssh = { useCertificates = true; # TODO: automatically set this? hostCert = builtins.readFile ./jefke_host_ed25519-cert.pub; userCert = builtins.readFile ./jefke_user_ed25519-cert.pub; }; }; }; }; atlas = { type = "physical"; nixosModule.lab = { 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 = { type = "physical"; nixosModule.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 = { type = "virtual"; hypervisorName = "lewis"; nixosModule = { pkgs, ... }: { # TODO: would be cool to create a check that a mac address is only ever assigned to one VM. lab.vm.macAddress = "BA:DB:EE:F0:00:00"; programs.bash.interactiveShellInit = '' echo "Hello world from inside a virtual machine!!" | ${pkgs.lolcat}/bin/lolcat ''; }; }; hermes = { type = "virtual"; hypervisorName = "lewis"; nixosModule = { config, ... }: { lab = { networking.dmzServices.enable = true; vm = { macAddress = "BA:DB:EE:F0:00:07"; staticNetworking = true; staticIPv4 = config.lab.networking.dmzServicesIPv4; staticIPv6 = config.lab.networking.dmzServicesIPv6; }; }; }; }; }