{ pkgs, namespace, lib, modulesPath, ... }: let inherit (lib.${namespace}) enabled; in { imports = [ (modulesPath + "/profiles/qemu-guest.nix") ]; config = { # Basic System system.stateVersion = "24.11"; time.timeZone = "UTC"; fileSystems."/" = { device = "/dev/disk/by-label/nixos"; fsType = "ext4"; autoResize = true; }; reichard = { nix = enabled; system = { boot = { enable = true; xenGuest = true; }; networking = { enable = true; useDHCP = false; useNetworkd = true; }; }; services = { avahi = enabled; openssh = enabled; cloud-init = enabled; rke2 = { enable = true; disable = [ "rke2-ingress-nginx" ]; }; openiscsi = { enable = true; symlink = true; }; }; hardware = { opengl = { enable = true; enableIntel = true; }; }; }; systemd.services = { # RKE2 - Wait Cloud Init rke2-server = { after = [ "cloud-final.service" ]; requires = [ "cloud-final.service" ]; }; # Runtime iSCSI Initiator Setup iscsi-initiator-setup = { description = "Setup iSCSI Initiator Name"; requires = [ "cloud-final.service" ]; before = [ "iscsid.service" ]; after = [ "cloud-final.service" ]; wantedBy = [ "multi-user.target" ]; serviceConfig = { Type = "oneshot"; RemainAfterExit = true; }; path = [ pkgs.hostname pkgs.util-linux ]; script = '' mkdir -p /run/iscsi echo "InitiatorName=iqn.2025.org.nixos:$(hostname)" > /run/iscsi/initiatorname.iscsi mount --bind /run/iscsi/initiatorname.iscsi /etc/iscsi/initiatorname.iscsi ''; }; }; environment = { systemPackages = with pkgs; [ htop nfs-utils tmux vim ]; # Don't Manage - Runtime Generation etc."iscsi/initiatorname.iscsi".enable = false; }; }; }