2025-04-06 12:53:13 -04:00

100 lines
2.1 KiB
Nix
Executable File

{ 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;
};
};
}