119 lines
2.9 KiB
Nix
119 lines
2.9 KiB
Nix
{ config, pkgs, ... }:
|
|
|
|
{
|
|
# Enable Flakes
|
|
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
|
|
|
# System Configuration
|
|
boot.kernelModules = [ "nvme_tcp" ]; # OpenEBS Mayastor Requirement
|
|
boot.kernel.sysctl = {
|
|
"vm.nr_hugepages" = 1024;
|
|
};
|
|
boot.loader.systemd-boot.enable = true;
|
|
boot.loader.efi.canTouchEfiVariables = true;
|
|
boot.loader.efi.efiSysMountPoint = "/boot";
|
|
|
|
# Disk Configuration
|
|
disko.devices = {
|
|
disk = {
|
|
main = {
|
|
type = "disk";
|
|
content = {
|
|
type = "gpt";
|
|
partitions = {
|
|
boot = {
|
|
size = "512M";
|
|
type = "EF00"; # EFI
|
|
content = {
|
|
type = "filesystem";
|
|
format = "vfat";
|
|
mountpoint = "/boot";
|
|
mountOptions = [ "umask=0077" ];
|
|
};
|
|
};
|
|
root = {
|
|
size = "100%";
|
|
content = {
|
|
type = "filesystem";
|
|
format = "ext4";
|
|
mountpoint = "/";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
|
|
# Network Configuration
|
|
networking = {
|
|
networkmanager.enable = true;
|
|
firewall = {
|
|
enable = true;
|
|
|
|
# Single Node Required Ports
|
|
allowedTCPPorts = [ 6443 ];
|
|
|
|
# Multi Node Required Ports
|
|
# allowedTCPPorts = [ 6443 2379 2380 10250 ];
|
|
# allowedUDPPorts = [ 8472 ];
|
|
};
|
|
};
|
|
|
|
# Enable K3s
|
|
services.k3s = {
|
|
enable = true;
|
|
role = "server";
|
|
extraFlags = toString [
|
|
"--disable=traefik" # Should we enable?
|
|
"--disable=servicelb"
|
|
];
|
|
};
|
|
|
|
# Enable SSH Server
|
|
services.openssh = {
|
|
enable = true;
|
|
settings = {
|
|
PasswordAuthentication = false; # Disable Password Login
|
|
PermitRootLogin = "prohibit-password"; # Disable Password Login
|
|
};
|
|
};
|
|
|
|
# User Configuration
|
|
users.users.root = {
|
|
openssh.authorizedKeys.keys = [
|
|
"ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEA8P84lWL/p13ZBFNwITm/dLWWL8s9pVmdOImM5gaJAiTLY+DheUvG6YsveB2/5STseiJ34g7Na9TW1mtTLL8zDqPvj3NbprQiYlLJKMbCk6dtfdD4nLMHl8B48e1h699XiZDp2/c+jJb0MkLOFrps+FbPqt7pFt1Pj29tFy8BCg0LGndu6KO+HqYS+aM5tp5hZESo1RReiJ8aHsu5X7wW46brN4gfyyu+8X4etSZAB9raWqlln9NKK7G6as6X+uPypvSjYGSTC8TSePV1iTPwOxPk2+1xBsK7EBLg3jNrrYaiXLnZvBOOhm11JmHzqEJ6386FfQO+0r4iDVxmvi+ojw== rsa-key-20141114"
|
|
];
|
|
hashedPassword = null; # Disable Password Login
|
|
};
|
|
|
|
# System Packages
|
|
environment.systemPackages = with pkgs; [
|
|
k9s
|
|
kubectl
|
|
kubernetes-helm
|
|
nfs-utils
|
|
vim
|
|
];
|
|
|
|
# Enable Container Features
|
|
virtualisation = {
|
|
docker.enable = false;
|
|
containerd = {
|
|
enable = true;
|
|
settings = {
|
|
version = 2;
|
|
plugins."io.containerd.grpc.v1.cri" = {
|
|
containerd.runtimes.runc = {
|
|
runtime_type = "io.containerd.runc.v2";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
# System State Version
|
|
system.stateVersion = "24.11";
|
|
}
|