From 004af67a0e23ecfa97e1cc3b3936afdc532107fc Mon Sep 17 00:00:00 2001 From: Max Date: Fri, 24 Feb 2023 15:16:15 +0100 Subject: [PATCH] hosts: restructure and modularize --- flake.nix | 78 +------------------ hosts/VEGAS/default.nix | 8 +- .../services/backbone-routing/default.nix | 4 +- .../backbone-routing/port-forward.nix | 4 +- hosts/VEGAS/services/mail/postfix.nix | 4 +- hosts/VEGAS/services/matrix/web-client.nix | 4 +- hosts/VEGAS/services/meet/default.nix | 9 +-- hosts/VEGAS/services/monitoring/default.nix | 4 +- hosts/VEGAS/services/nix/nar-serve.nix | 4 +- hosts/VEGAS/services/reflex/default.nix | 4 +- hosts/VEGAS/services/searxng/default.nix | 4 +- hosts/VEGAS/services/sso/default.nix | 6 +- hosts/VEGAS/services/uptime-kuma/default.nix | 6 +- hosts/VEGAS/services/websites/default.nix | 4 +- hosts/VEGAS/system.nix | 12 +-- hosts/checkmate/default.nix | 8 +- hosts/checkmate/system.nix | 14 ++-- hosts/default.nix | 31 -------- hosts/deploy.nix | 57 ++++++++++++++ hosts/nixos.nix | 24 ++++++ hosts/options/default.nix | 34 ++++++++ hosts/options/hour/enterprise.nix | 12 +++ hosts/options/hour/hyprspace.nix | 30 +++++++ hosts/options/hour/interfaces.nix | 38 +++++++++ hosts/options/hour/nixos.nix | 18 +++++ hosts/options/hour/ssh.nix | 28 +++++++ hosts/part.nix | 49 ++++++++++++ hosts/prophet/default.nix | 8 +- hosts/prophet/system.nix | 6 +- hosts/soda/default.nix | 6 +- hosts/soda/system.nix | 6 +- 31 files changed, 356 insertions(+), 168 deletions(-) delete mode 100644 hosts/default.nix create mode 100644 hosts/deploy.nix create mode 100644 hosts/nixos.nix create mode 100644 hosts/options/default.nix create mode 100644 hosts/options/hour/enterprise.nix create mode 100644 hosts/options/hour/hyprspace.nix create mode 100644 hosts/options/hour/interfaces.nix create mode 100644 hosts/options/hour/nixos.nix create mode 100644 hosts/options/hour/ssh.nix create mode 100644 hosts/part.nix diff --git a/flake.nix b/flake.nix index d2743c6..dd105ed 100644 --- a/flake.nix +++ b/flake.nix @@ -7,86 +7,14 @@ }; outputs = { self, nixpkgs, flake-parts, ... }@inputs: - let + flake-parts.lib.mkFlake { inherit inputs; } { systems = [ "x86_64-linux" "aarch64-linux" ]; - nixpkgsFor = nixpkgs.legacyPackages; - - inherit (nixpkgs) lib; - - hosts = import ./hosts; - - nixosHosts' = lib.filterAttrs (_: host: host ? nixos) hosts; - - nixosHosts = lib.attrNames nixosHosts'; - - deployableNixosHosts' = lib.filterAttrs (_: host: host ? container -> !host.container) nixosHosts'; - - deployableNixosHosts = lib.attrNames deployableNixosHosts'; - - meta = import ./tools/meta.nix; - - specialArgs = { - inherit inputs hosts; - depot = inputs.self; - toolsets = import ./tools; - }; - mkNixOS' = lib: name: let host = hosts.${name}; in lib.nixosSystem { - inherit specialArgs; - system = "${host.arch}-linux"; - modules = [ host.nixos ./tools/inject.nix (import ./cluster/inject.nix name) ]; - }; - mkNixOS = mkNixOS' lib; - - mkDeployEffect = branch: name: host: let - subdomain = host.enterprise.subdomain or "services"; - hostname = "${lib.toLower name}.${subdomain}.${meta.domain}"; - in effects.runIf (branch == "master" || branch == "staging") (effects.runNixOS { - requiredSystemFeatures = [ "hci-deploy-agent-nixos" ]; - inherit (self.nixosConfigurations.${name}) config; - secretsMap.ssh = "deploy-ssh"; - - userSetupScript = '' - writeSSHKey ssh - cat >>~/.ssh/known_hosts <>~/.ssh/known_hosts <