extract hetzner vm module, add device hyperforge
This commit is contained in:
parent
340d51b45a
commit
bda4fbe2c0
8 changed files with 129 additions and 105 deletions
86
nixosModules/hetzner-vm.nix
Normal file
86
nixosModules/hetzner-vm.nix
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.my.hetznerVm;
|
||||
in
|
||||
{
|
||||
options.my.hetznerVm = {
|
||||
enable = lib.mkEnableOption "Hetzner Cloud aarch64 qemu-guest defaults";
|
||||
|
||||
rootUuid = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "UUID of the root ext4 filesystem.";
|
||||
};
|
||||
bootUuid = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "UUID of the FAT /boot partition.";
|
||||
};
|
||||
swapUuid = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "UUID of the swap device.";
|
||||
};
|
||||
ipv6Address = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "Static IPv6 address (with /prefix) assigned to enp1s0.";
|
||||
example = "2a01:4f8:c013:cbdd::1/64";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
boot = {
|
||||
tmp.cleanOnBoot = true;
|
||||
kernelParams = [ "console=tty" ];
|
||||
loader = {
|
||||
systemd-boot.enable = true;
|
||||
efi.canTouchEfiVariables = true;
|
||||
};
|
||||
initrd = {
|
||||
availableKernelModules = [
|
||||
"xhci_pci"
|
||||
"virtio_scsi"
|
||||
"sr_mod"
|
||||
"virtio_gpu"
|
||||
];
|
||||
kernelModules = [ ];
|
||||
};
|
||||
};
|
||||
|
||||
fileSystems = {
|
||||
"/" = {
|
||||
device = "/dev/disk/by-uuid/${cfg.rootUuid}";
|
||||
fsType = "ext4";
|
||||
};
|
||||
"/boot" = {
|
||||
device = "/dev/disk/by-uuid/${cfg.bootUuid}";
|
||||
fsType = "vfat";
|
||||
options = [
|
||||
"fmask=0077"
|
||||
"dmask=0077"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
swapDevices = [
|
||||
{ device = "/dev/disk/by-uuid/${cfg.swapUuid}"; }
|
||||
];
|
||||
|
||||
networking.useNetworkd = true;
|
||||
systemd.network = {
|
||||
enable = true;
|
||||
networks."10-wan" = {
|
||||
matchConfig.Name = "enp1s0";
|
||||
networkConfig.DHCP = "ipv4";
|
||||
address = [ cfg.ipv6Address ];
|
||||
routes = [
|
||||
{ Gateway = "fe80::1"; }
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
services.tailscale.useRoutingFeatures = "both";
|
||||
system.autoUpgrade.allowReboot = true;
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue