rke2 base config
This commit is contained in:
		
							parent
							
								
									0dd32db094
								
							
						
					
					
						commit
						1f91305b6e
					
				| @ -9,7 +9,7 @@ scp -r * nixos@10.10.10.10:/tmp/ | |||||||
| ## Partition Drives | ## Partition Drives | ||||||
| 
 | 
 | ||||||
| ```bash | ```bash | ||||||
| # WARNING: Be sure to check drive mappings | # Validate Disk | ||||||
| sudo fdisk -l | sudo fdisk -l | ||||||
| 
 | 
 | ||||||
| # Partition Disk | # Partition Disk | ||||||
| @ -17,7 +17,7 @@ sudo nix \ | |||||||
|     --experimental-features "nix-command flakes" \ |     --experimental-features "nix-command flakes" \ | ||||||
|     run github:nix-community/disko -- \ |     run github:nix-community/disko -- \ | ||||||
|     --mode disko \ |     --mode disko \ | ||||||
|     --flake /tmp#lin-va-llama1 |     --flake /tmp#lin-va-rke1 | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| ## Install NixOS | ## Install NixOS | ||||||
| @ -25,6 +25,7 @@ sudo nix \ | |||||||
| ```bash | ```bash | ||||||
| # Install | # Install | ||||||
| sudo nixos-install --flake /tmp#lin-va-llama1 | sudo nixos-install --flake /tmp#lin-va-llama1 | ||||||
|  | sudo nixos-install --flake /tmp#lin-va-rke1 | ||||||
| 
 | 
 | ||||||
| # Reboot | # Reboot | ||||||
| sudo reboot | sudo reboot | ||||||
|  | |||||||
							
								
								
									
										14
									
								
								flake.nix
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								flake.nix
									
									
									
									
									
								
							| @ -8,6 +8,7 @@ | |||||||
| 
 | 
 | ||||||
|   outputs = { self, nixpkgs, disko }: { |   outputs = { self, nixpkgs, disko }: { | ||||||
|     nixosConfigurations.lin-va-llama1 = nixpkgs.lib.nixosSystem { |     nixosConfigurations.lin-va-llama1 = nixpkgs.lib.nixosSystem { | ||||||
|  |       # LLaMA C++ Server | ||||||
|       system = "x86_64-linux"; |       system = "x86_64-linux"; | ||||||
|       modules = [ |       modules = [ | ||||||
|         disko.nixosModules.disko |         disko.nixosModules.disko | ||||||
| @ -18,6 +19,7 @@ | |||||||
|       ]; |       ]; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|  |     # K3s Server | ||||||
|     nixosConfigurations.lin-va-k3s1 = nixpkgs.lib.nixosSystem { |     nixosConfigurations.lin-va-k3s1 = nixpkgs.lib.nixosSystem { | ||||||
|       system = "x86_64-linux"; |       system = "x86_64-linux"; | ||||||
|       modules = [ |       modules = [ | ||||||
| @ -28,5 +30,17 @@ | |||||||
|         } |         } | ||||||
|       ]; |       ]; | ||||||
|     }; |     }; | ||||||
|  | 
 | ||||||
|  |     # RKE2 Server | ||||||
|  |     nixosConfigurations.lin-va-rke1 = nixpkgs.lib.nixosSystem { | ||||||
|  |       system = "x86_64-linux"; | ||||||
|  |       modules = [ | ||||||
|  |         disko.nixosModules.disko | ||||||
|  |         ./hosts/rke2.nix | ||||||
|  |         { | ||||||
|  |           networking.hostName = "lin-va-rke1"; | ||||||
|  |         } | ||||||
|  |       ]; | ||||||
|  |     }; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|  | |||||||
							
								
								
									
										128
									
								
								hosts/rke2.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										128
									
								
								hosts/rke2.nix
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,128 @@ | |||||||
|  | { 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 = { | ||||||
|  |       nvme0n1 = { | ||||||
|  |         type = "disk"; | ||||||
|  |         device = "/dev/nvme0n1"; | ||||||
|  |         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; | ||||||
|  | 
 | ||||||
|  |       # https://docs.rke2.io/install/requirements#networking | ||||||
|  |       allowedTCPPorts = [ | ||||||
|  |         # Control Plane | ||||||
|  |         6443 # Kubernetes API | ||||||
|  |         9345 # RKE2 supervisor API | ||||||
|  |         2379 # etcd Client Port | ||||||
|  |         2380 # etcd Peer Port | ||||||
|  |         2381 # etcd Metrics Port | ||||||
|  | 
 | ||||||
|  |         # Node Communication | ||||||
|  |         10250 # kubelet metrics | ||||||
|  |         9099 # Canal CNI health checks | ||||||
|  |       ]; | ||||||
|  | 
 | ||||||
|  |       allowedUDPPorts = [ | ||||||
|  |         8472 # Canal CNI with VXLAN | ||||||
|  |         # 51820 # Canal CNI with WireGuard IPv4 (if using encryption) | ||||||
|  |         # 51821 # Canal CNI with WireGuard IPv6 (if using encryption) | ||||||
|  |       ]; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   # Enable RKE2 | ||||||
|  |   services.rke2 = { | ||||||
|  |     enable = true; | ||||||
|  | 
 | ||||||
|  |     disable = [ | ||||||
|  |       "rke2-ingress-nginx" | ||||||
|  |     ]; | ||||||
|  | 
 | ||||||
|  |     # ------------------- | ||||||
|  |     # --- Server Node --- | ||||||
|  |     # ------------------- | ||||||
|  |     role = "server"; | ||||||
|  | 
 | ||||||
|  |     # ------------------- | ||||||
|  |     # --- Worker Node --- | ||||||
|  |     # ------------------- | ||||||
|  |     # role = "agent"; | ||||||
|  |     # serverAddr = "https://10.0.0.10:6443" | ||||||
|  |     # tokenFile = ""; | ||||||
|  |     # agentTokenFile = ""; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |   # 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 | ||||||
|  |   ]; | ||||||
|  | 
 | ||||||
|  |   # System State Version | ||||||
|  |   system.stateVersion = "24.11"; | ||||||
|  | } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user