diff --git a/flake.lock b/flake.lock index 376a43c..8e85b32 100644 --- a/flake.lock +++ b/flake.lock @@ -147,6 +147,21 @@ "type": "github" } }, + "lite-config": { + "locked": { + "lastModified": 1723691425, + "narHash": "sha256-xOroQo/+CAtocvJQsGPE5ukr1Btp72xlcWPB4tBZp6M=", + "owner": "yelite", + "repo": "lite-config", + "rev": "34357ad12ad0a66b2de55a2457159bda36c71a06", + "type": "github" + }, + "original": { + "owner": "yelite", + "repo": "lite-config", + "type": "github" + } + }, "nix-darwin": { "inputs": { "nixpkgs": [ @@ -269,6 +284,7 @@ "empty": "empty", "flake-compat": "flake-compat", "flake-parts": "flake-parts", + "lite-config": "lite-config", "nix-darwin": "nix-darwin", "nixpkgs": "nixpkgs", "nixpkgs-update": "nixpkgs-update", diff --git a/flake.nix b/flake.nix index aca85c1..cf848b9 100644 --- a/flake.nix +++ b/flake.nix @@ -24,6 +24,7 @@ flake-compat.url = "github:nix-community/flake-compat"; flake-parts.inputs.nixpkgs-lib.follows = "nixpkgs"; flake-parts.url = "github:hercules-ci/flake-parts"; + lite-config.url = "github:yelite/lite-config"; nix-darwin.inputs.nixpkgs.follows = "nixpkgs"; nix-darwin.url = "github:LnL7/nix-darwin"; nixpkgs-update-github-releases.flake = false; @@ -50,7 +51,41 @@ flake-parts.lib.mkFlake { inherit inputs; } { systems = import inputs.systems; - imports = [ inputs.treefmt-nix.flakeModule ]; + imports = [ + inputs.lite-config.flakeModule + inputs.treefmt-nix.flakeModule + ]; + + lite-config = + { lib, ... }: + { + nixpkgs = { + config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "terraform" ]; + }; + + hostModuleDir = ./hosts; + + hosts = { + build01.system = "x86_64-linux"; + build02.system = "x86_64-linux"; + build03.system = "x86_64-linux"; + build04.system = "aarch64-linux"; + darwin01.system = "aarch64-darwin"; + darwin02.system = "aarch64-darwin"; + web02.system = "x86_64-linux"; + }; + + systemModules = [ + ( + { hostPlatform, ... }: + { + imports = + lib.optionals hostPlatform.isDarwin [ ./modules/darwin/common ] + ++ lib.optionals hostPlatform.isLinux [ ./modules/nixos/common ]; + } + ) + ]; + }; perSystem = { @@ -72,11 +107,6 @@ imports = [ ./dev/treefmt.nix ]; }; - _module.args.pkgs = import inputs.nixpkgs { - inherit system; - config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "terraform" ]; - }; - checks = let darwinConfigurations = lib.mapAttrs' ( @@ -103,69 +133,7 @@ }; }; - flake.darwinConfigurations = - let - darwinSystem = - args: - inputs.nix-darwin.lib.darwinSystem ( - { - specialArgs = { - inherit inputs; - }; - } - // args - ); - in - { - darwin01 = darwinSystem { - pkgs = inputs.nixpkgs.legacyPackages.aarch64-darwin; - modules = [ ./hosts/darwin01/configuration.nix ]; - }; - darwin02 = darwinSystem { - pkgs = inputs.nixpkgs.legacyPackages.aarch64-darwin; - modules = [ ./hosts/darwin02/configuration.nix ]; - }; - }; - - flake.nixosConfigurations = - let - nixosSystem = - args: - inputs.nixpkgs.lib.nixosSystem ( - { - specialArgs = { - inherit inputs; - }; - } - // args - ); - in - { - build01 = nixosSystem { - pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux; - modules = [ ./hosts/build01/configuration.nix ]; - }; - build02 = nixosSystem { - pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux; - modules = [ ./hosts/build02/configuration.nix ]; - }; - build03 = nixosSystem { - pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux; - modules = [ ./hosts/build03/configuration.nix ]; - }; - build04 = nixosSystem { - pkgs = inputs.nixpkgs.legacyPackages.aarch64-linux; - modules = [ ./hosts/build04/configuration.nix ]; - }; - web02 = nixosSystem { - pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux; - modules = [ ./hosts/web02/configuration.nix ]; - }; - }; - flake.darwinModules = { - common = ./modules/darwin/common; - builder = ./modules/darwin/builder.nix; community-builder = ./modules/darwin/community-builder; hercules-ci = ./modules/darwin/hercules-ci.nix; @@ -173,8 +141,6 @@ }; flake.nixosModules = { - common = ./modules/nixos/common; - buildbot = ./modules/nixos/buildbot.nix; builder = ./modules/nixos/builder.nix; community-builder = ./modules/nixos/community-builder; diff --git a/hosts/build01/configuration.nix b/hosts/build01/default.nix similarity index 87% rename from hosts/build01/configuration.nix rename to hosts/build01/default.nix index 56da2d5..9ab30b3 100644 --- a/hosts/build01/configuration.nix +++ b/hosts/build01/default.nix @@ -2,7 +2,6 @@ { imports = [ inputs.srvos.nixosModules.hardware-hetzner-online-amd - inputs.self.nixosModules.common inputs.self.nixosModules.disko-zfs inputs.self.nixosModules.builder inputs.self.nixosModules.community-builder @@ -13,8 +12,6 @@ # Emulate riscv64 until we have proper builders boot.binfmt.emulatedSystems = [ "riscv64-linux" ]; - networking.hostName = "build01"; - systemd.network.networks."10-uplink".networkConfig.Address = "2a01:4f9:3b:2946::1/64"; system.stateVersion = "23.11"; diff --git a/hosts/build02/configuration.nix b/hosts/build02/default.nix similarity index 90% rename from hosts/build02/configuration.nix rename to hosts/build02/default.nix index 5b3bf40..eb2bdd7 100644 --- a/hosts/build02/configuration.nix +++ b/hosts/build02/default.nix @@ -6,7 +6,6 @@ inputs.srvos.nixosModules.hardware-hetzner-online-amd ./nixpkgs-update.nix ./nixpkgs-update-backup.nix - inputs.self.nixosModules.common inputs.self.nixosModules.builder inputs.self.nixosModules.disko-zfs ]; @@ -18,7 +17,6 @@ boot.kernelParams = [ "zfs.zfs_arc_max=${toString (24 * 1024 * 1024 * 1024)}" ]; # 24GB, try to limit OOM kills / reboots - networking.hostName = "build02"; networking.nameservers = [ "1.1.1.1" "1.0.0.1" diff --git a/hosts/build03/configuration.nix b/hosts/build03/default.nix similarity index 90% rename from hosts/build03/configuration.nix rename to hosts/build03/default.nix index 09ca120..61af12d 100644 --- a/hosts/build03/configuration.nix +++ b/hosts/build03/default.nix @@ -3,7 +3,6 @@ imports = [ inputs.srvos.nixosModules.mixins-nginx inputs.srvos.nixosModules.hardware-hetzner-online-amd - inputs.self.nixosModules.common inputs.self.nixosModules.disko-zfs inputs.self.nixosModules.buildbot inputs.self.nixosModules.builder @@ -21,7 +20,5 @@ systemd.network.networks."10-uplink".networkConfig.Address = "2a01:4f8:2190:2698::2"; - networking.hostName = "build03"; - system.stateVersion = "23.11"; } diff --git a/hosts/build04/configuration.nix b/hosts/build04/default.nix similarity index 91% rename from hosts/build04/configuration.nix rename to hosts/build04/default.nix index ce93662..c270f6f 100644 --- a/hosts/build04/configuration.nix +++ b/hosts/build04/default.nix @@ -3,7 +3,6 @@ imports = [ inputs.srvos.nixosModules.hardware-hetzner-online-arm inputs.self.nixosModules.disko-zfs - inputs.self.nixosModules.common inputs.self.nixosModules.builder inputs.self.nixosModules.hercules-ci inputs.self.nixosModules.remote-builder @@ -18,8 +17,6 @@ nixCommunity.remote-builder.key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEmdo1x1QkRepZf7nSe+OdEWX+wOjkBLF70vX9F+xf68 builder"; - networking.hostName = "build04"; - system.stateVersion = "23.11"; systemd.network.networks."10-uplink".networkConfig.Address = "2a01:4f9:3051:3962::2"; diff --git a/hosts/darwin01/configuration.nix b/hosts/darwin01/default.nix similarity index 84% rename from hosts/darwin01/configuration.nix rename to hosts/darwin01/default.nix index ead3e09..7f3194a 100644 --- a/hosts/darwin01/configuration.nix +++ b/hosts/darwin01/default.nix @@ -2,7 +2,6 @@ { imports = [ - inputs.self.darwinModules.common inputs.self.darwinModules.builder inputs.self.darwinModules.community-builder ]; @@ -15,7 +14,5 @@ # disable nixos-tests nix.settings.system-features = [ "big-parallel" ]; - networking.hostName = "darwin01"; - system.stateVersion = 4; } diff --git a/hosts/darwin02/configuration.nix b/hosts/darwin02/default.nix similarity index 88% rename from hosts/darwin02/configuration.nix rename to hosts/darwin02/default.nix index bb73b9a..e81b30e 100644 --- a/hosts/darwin02/configuration.nix +++ b/hosts/darwin02/default.nix @@ -2,7 +2,6 @@ { imports = [ - inputs.self.darwinModules.common inputs.self.darwinModules.builder inputs.self.darwinModules.hercules-ci inputs.self.darwinModules.remote-builder @@ -18,7 +17,5 @@ # disable nixos-tests nix.settings.system-features = [ "big-parallel" ]; - networking.hostName = "darwin02"; - system.stateVersion = 4; } diff --git a/hosts/web02/configuration.nix b/hosts/web02/default.nix similarity index 77% rename from hosts/web02/configuration.nix rename to hosts/web02/default.nix index 874cd27..7b58c28 100644 --- a/hosts/web02/configuration.nix +++ b/hosts/web02/default.nix @@ -2,13 +2,10 @@ { imports = [ ./gandi.nix - inputs.self.nixosModules.common inputs.self.nixosModules.monitoring inputs.srvos.nixosModules.mixins-nginx ]; - networking.hostName = "web02"; - networking.useDHCP = true; # enabled by default for stateVersion < 23.11