diff --git a/flake.nix b/flake.nix index e50a152..1c2bed8 100644 --- a/flake.nix +++ b/flake.nix @@ -106,6 +106,16 @@ nix-topology.nixosModules.default ]; }; + ymir = nixpkgs.lib.nixosSystem { + specialArgs = { inherit inputs outputs; }; + system = "x86_64-linux"; + extraModules = [ inputs.colmena.nixosModules.deploymentOptions ]; + modules = [ + ./nodes/ymir + self.nixosModules.common + nix-topology.nixosModules.default + ]; + }; }; nixosModules = { diff --git a/nodes/ymir/default.nix b/nodes/ymir/default.nix new file mode 100644 index 0000000..d1a799b --- /dev/null +++ b/nodes/ymir/default.nix @@ -0,0 +1,8 @@ +{ + imports = [ + ./modules + ./disko.nix + ./hardware-configuration.nix + ./networking.nix + ]; +} diff --git a/nodes/ymir/disko.nix b/nodes/ymir/disko.nix new file mode 100644 index 0000000..7f79e24 --- /dev/null +++ b/nodes/ymir/disko.nix @@ -0,0 +1,34 @@ +{ + disko.devices = { + disk = { + sda = { + device = "/dev/sda"; + type = "disk"; + content = { + type = "gpt"; + partitions = { + ESP = { + label = "EFI"; + type = "EF00"; + size = "500M"; + content = { + type = "filesystem"; + format = "vfat"; + mountpoint = "/boot"; + }; + }; + root = { + label = "NIXOS"; + size = "100%"; + content = { + type = "filesystem"; + format = "ext4"; + mountpoint = "/"; + }; + }; + }; + }; + }; + }; + }; +} diff --git a/nodes/ymir/hardware-configuration.nix b/nodes/ymir/hardware-configuration.nix new file mode 100644 index 0000000..1c28106 --- /dev/null +++ b/nodes/ymir/hardware-configuration.nix @@ -0,0 +1,21 @@ +{ lib +, modulesPath +, ... +}: +{ + imports = + [ + (modulesPath + "/profiles/qemu-guest.nix") + ]; + + boot = { + initrd = { + availableKernelModules = [ "ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod" ]; + kernelModules = [ ]; + }; + kernelModules = [ "kvm-amd" ]; + extraModulePackages = [ ]; + }; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; +} diff --git a/nodes/ymir/networking.nix b/nodes/ymir/networking.nix new file mode 100644 index 0000000..27713ef --- /dev/null +++ b/nodes/ymir/networking.nix @@ -0,0 +1,40 @@ +{ lib +, ... +}: +{ + networking = { + useNetworkd = true; + useDHCP = false; + hostName = "ymir"; + usePredictableInterfaceNames = lib.mkDefault false; + domain = "xnee.net"; + nameservers = [ + #HETZNER + "2a01:4ff:ff00::add:2" + "2a01:4ff:ff00::add:1" + ]; + dhcpcd.enable = false; + }; + systemd.network = { + enable = true; + networks."10-wan" = { + networkConfig.DHCP = "no"; + matchConfig.Name = "eth0"; + address = [ + "10.0.2.0/8" + "2a01:4f9:6a:4f6f::200/64" + ]; + routes = [ + { routeConfig.Gateway = "fe80::1"; } + { routeConfig = { Destination = "10.0.0.1"; }; } + { + routeConfig = { + Gateway = "10.0.0.1"; + GatewayOnLink = true; + }; + } + ]; + linkConfig.RequiredForOnline = "routable"; + }; + }; +}