From c66a19a93712bd7799ff1c9c6bfeda5810dc6fc5 Mon Sep 17 00:00:00 2001 From: Khue Doan Date: Wed, 27 Aug 2025 20:21:32 +0700 Subject: [PATCH] feat(nixos): read host IP from generated files --- infra/_modules/nixos/configuration.nix | 3 --- infra/_modules/nixos/flake.nix | 36 ++++++++++++-------------- infra/_modules/nixos/hosts.json | 2 +- 3 files changed, 18 insertions(+), 23 deletions(-) diff --git a/infra/_modules/nixos/configuration.nix b/infra/_modules/nixos/configuration.nix index 8517e90..da82bbe 100644 --- a/infra/_modules/nixos/configuration.nix +++ b/infra/_modules/nixos/configuration.nix @@ -1,8 +1,5 @@ { modulesPath, ... }: -let - hosts = builtins.fromJSON (builtins.readFile ./hosts.json); -in { imports = [ (modulesPath + "/profiles/all-hardware.nix") diff --git a/infra/_modules/nixos/flake.nix b/infra/_modules/nixos/flake.nix index 6a973fb..113c9f0 100644 --- a/infra/_modules/nixos/flake.nix +++ b/infra/_modules/nixos/flake.nix @@ -7,7 +7,11 @@ }; }; outputs = { nixpkgs, disko, ... }: { - nixosConfigurations = { + nixosConfigurations = + let + hosts = builtins.fromJSON (builtins.readFile ./hosts.json); + in + { nixos = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ @@ -16,15 +20,6 @@ ./disks.nix ]; }; - devbox = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - modules = [ - disko.nixosModules.disko - ./configuration.nix - ./disks.nix - ./profiles/devbox.nix - ]; - }; kube-1 = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ @@ -32,6 +27,10 @@ ./configuration.nix ./disks.nix ./profiles/k3s.nix + { + networking.hostName = "kube-1"; + services.k3s.clusterInit = true; + } ]; }; kube-2 = nixpkgs.lib.nixosSystem { @@ -41,6 +40,10 @@ ./configuration.nix ./disks.nix ./profiles/k3s.nix + { + networking.hostName = "kube-2"; + services.k3s.serverAddr = hosts.kube-1.ipv6_address; + } ]; }; kube-3 = nixpkgs.lib.nixosSystem { @@ -50,15 +53,10 @@ ./configuration.nix ./disks.nix ./profiles/k3s.nix - ]; - }; - k3s-arm = nixpkgs.lib.nixosSystem { - system = "aarch64-linux"; - modules = [ - disko.nixosModules.disko - ./configuration.nix - ./disks.nix - ./profiles/k3s.nix + { + networking.hostName = "kube-3"; + services.k3s.serverAddr = hosts.kube-1.ipv6_address; + } ]; }; }; diff --git a/infra/_modules/nixos/hosts.json b/infra/_modules/nixos/hosts.json index 49cba8a..c2841b0 100644 --- a/infra/_modules/nixos/hosts.json +++ b/infra/_modules/nixos/hosts.json @@ -1 +1 @@ -{"kube-1":{"ipv6_address":"2402:800:63e2:5af5:57e2:ac2e:7bfa:b4ee"},"kube-2":{"ipv6_address":"2402:800:63e2:5af5:2eb2:b07e:ced0:5d7f"},"kube-3":{"ipv6_address":"2402:800:63e2:5af5:a811:9da5:775e:addc"}} \ No newline at end of file +{"kube-1":{"ipv6_address":"2402:800:63e2:5af5:68d0:b3c2:b44:71cc"},"kube-2":{"ipv6_address":"2402:800:63e2:5af5:19a6:50a1:765a:e396"},"kube-3":{"ipv6_address":"2402:800:63e2:5af5:3646:e232:b1cd:c96a"}} \ No newline at end of file -- 2.51.2