diff --git a/nixos/roles/k8s-cluster/kubernetes.nix b/nixos/roles/k8s-cluster/kubernetes.nix new file mode 100644 index 00000000..94d0b611 --- /dev/null +++ b/nixos/roles/k8s-cluster/kubernetes.nix @@ -0,0 +1,13 @@ +_: { + services.kubernetes = { + roles = ["master" "node"]; + apiserver.enable = true; + controllerManager.enable = true; + scheduler.enable = true; + addonManager.enable = true; + easyCerts = true; + addons.dns.enable = true; # CoreDNS + proxy.enable = true; + flannel.enable = true; + }; +} \ No newline at end of file diff --git a/systems/ran.nix b/systems/ran.nix new file mode 100644 index 00000000..d449b536 --- /dev/null +++ b/systems/ran.nix @@ -0,0 +1,88 @@ +_: let + hostConfig = { + lib, + config, + modulesPath, + tree, + ... + }: { + imports = with tree.nixos.roles; [ + server + (modulesPath + "/profiles/qemu-guest.nix") + ]; + fileSystems."/" = { + device = "/dev/disk/by-uuid/cf27e80b-f418-472e-8846-36073a76a628"; + fsType = "ext4"; + }; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + networking = { + hostName = "ran"; + domain = "gensokyo.zone"; + nameservers = [ + "8.8.8.8" + ]; + defaultGateway = "172.31.1.1"; + defaultGateway6 = { + address = "fe80::1"; + interface = "eth0"; + }; + dhcpcd.enable = false; + usePredictableInterfaceNames = lib.mkForce false; + interfaces = { + eth0 = { + ipv4.addresses = [ + { + address = "5.78.46.139"; + prefixLength = 32; + } + ]; + ipv6.addresses = [ + { + address = "2a01:4ff:1f0:c700::1"; + prefixLength = 64; + } + { + address = "fe80::9400:2ff:fe25:4acb"; + prefixLength = 64; + } + ]; + ipv4.routes = [ + { + address = "172.31.1.1"; + prefixLength = 32; + } + ]; + ipv6.routes = [ + { + address = "fe80::1"; + prefixLength = 128; + } + ]; + }; + }; + }; + boot = { + loader.grub = { + enable = true; + device = "/dev/sda"; + version = 2; + }; + initrd = { + availableKernelModules = ["ahci" "xhci_pci" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod"]; + kernelModules = []; + }; + kernelModules = []; + extraModulePackages = []; + }; + services.udev.extraRules = '' + ATTR{address}=="96:00:02:25:4a:cb", NAME="eth0" + ''; + system.stateVersion = "21.11"; + }; +in { + arch = "x86_64"; + type = "NixOS"; + modules = [ + hostConfig + ]; +} diff --git a/tf/ran-hcloud.tf b/tf/ran-hcloud.tf index 351a093a..c7f78df7 100644 --- a/tf/ran-hcloud.tf +++ b/tf/ran-hcloud.tf @@ -36,7 +36,6 @@ resource "hcloud_server" "ran" { } } - resource "hcloud_rdns" "ran-v4" { server_id = hcloud_server.ran.id ip_address = hcloud_server.ran.ipv4_address diff --git a/tf/yukari-hcloud.tf b/tf/yukari-hcloud.tf index 75908cb3..59ce5207 100644 --- a/tf/yukari-hcloud.tf +++ b/tf/yukari-hcloud.tf @@ -36,7 +36,6 @@ resource "hcloud_server" "yukari" { } } - resource "hcloud_rdns" "yukari-v4" { server_id = hcloud_server.yukari.id ip_address = hcloud_server.yukari.ipv4_address