From a1273971d9d0b630875eebc8b01401c9d2105463 Mon Sep 17 00:00:00 2001 From: arcnmx Date: Thu, 30 May 2024 13:13:11 -0700 Subject: [PATCH] fix(exports): enable base services by default --- flake.nix | 25 ----------------- modules/system/exports/monitoring.nix | 39 ++++++++++++++------------- modules/system/exports/services.nix | 18 ++++++++++--- systems/aya/default.nix | 1 - systems/ct/default.nix | 5 ---- systems/kasen/default.nix | 1 - systems/keycloak/default.nix | 1 - systems/kuwubernetes/default.nix | 1 - systems/litterbox/default.nix | 1 - systems/logistics/default.nix | 5 ---- systems/mediabox/default.nix | 1 - systems/reimu/default.nix | 1 - systems/tei/default.nix | 1 - systems/utsuho/default.nix | 3 --- 14 files changed, 36 insertions(+), 67 deletions(-) diff --git a/flake.nix b/flake.nix index 4f712acc..3d1e6335 100644 --- a/flake.nix +++ b/flake.nix @@ -74,29 +74,4 @@ }; outputs = inputs: import ./outputs.nix {inherit inputs;}; - /* - outputs = { - self, - nixpkgs, - flake-utils, - ... - } @ inputs: let - providedSystems = - flake-utils.lib.eachDefaultSystem - (system: rec { - devShells.default = import ./devShell.nix {inherit system inputs;}; - legacyPackages = import ./meta.nix {inherit system inputs;}; - inherit (legacyPackages.outputs) packages; - }); - in - providedSystems - // { - nixosConfigurations = builtins.mapAttrs (_: config: - config - // { - inherit config; - }) - self.legacyPackages.x86_64-linux.network.nodes; - }; - */ } diff --git a/modules/system/exports/monitoring.nix b/modules/system/exports/monitoring.nix index f93a176f..fd9cda5c 100644 --- a/modules/system/exports/monitoring.nix +++ b/modules/system/exports/monitoring.nix @@ -3,8 +3,27 @@ gensokyo-zone, ... }: let - inherit (gensokyo-zone.lib) mapAlmostOptionDefaults mkAlmostOptionDefault; + inherit (gensokyo-zone.lib) mapListToAttrs mapAlmostOptionDefaults mkAlmostOptionDefault; inherit (lib.modules) mkIf; + inherit (lib.attrsets) nameValuePair; + mkExporter = { name, port }: nameValuePair "prometheus-exporters-${name}" ({config, ...}: { + nixos = { + serviceAttrPath = ["services" "prometheus" "exporters" name]; + assertions = mkIf config.enable [ + (nixosConfig: { + assertion = config.ports.default.port == nixosConfig.services.prometheus.exporters.${name}.port; + message = "port mismatch"; + }) + ]; + }; + ports.default = mapAlmostOptionDefaults { + inherit port; + protocol = "http"; + }; + }); + exporters = mapListToAttrs mkExporter [ + { name = "node"; port = 9091; } + ]; in { config.exports.services = { prometheus = {config, ...}: { @@ -23,22 +42,6 @@ in { protocol = "http"; }; }; - prometheus-exporters-node = {config, ...}: { - id = mkAlmostOptionDefault "prometheus-exporters-node"; - nixos = { - serviceAttrPath = ["services" "prometheus" "exporters" "node"]; - assertions = mkIf config.enable [ - (nixosConfig: { - assertion = config.ports.default.port == nixosConfig.services.prometheus.exporters.node.port; - message = "port mismatch"; - }) - ]; - }; - ports.default = mapAlmostOptionDefaults { - port = 9091; - protocol = "http"; - }; - }; grafana = {config, ...}: { id = mkAlmostOptionDefault "grafana"; nixos = { @@ -87,5 +90,5 @@ in { protocol = "http"; }; }; - }; + } // exporters; } diff --git a/modules/system/exports/services.nix b/modules/system/exports/services.nix index 7d56bab1..41c3bd4e 100644 --- a/modules/system/exports/services.nix +++ b/modules/system/exports/services.nix @@ -8,10 +8,10 @@ inherit (gensokyo-zone.lib) mkAlmostOptionDefault; inherit (lib.options) mkOption mkEnableOption; inherit (lib.modules) mkIf mkMerge mkOptionDefault; - inherit (lib.attrsets) mapAttrsToList getAttrFromPath; + inherit (lib.attrsets) mapAttrsToList getAttrFromPath genAttrs; inherit (lib.trivial) mapNullable; inherit (lib.strings) concatStringsSep; - systemConfig = config; + cfg = config.exports; portModule = { config, service, @@ -146,12 +146,15 @@ }; in { options.exports = with lib.types; { + defaultServices = mkEnableOption "common base services" // { + default = config.type == "NixOS"; + }; services = mkOption { type = attrsOf (submoduleWith { modules = [serviceModule]; specialArgs = { machine = name; - inherit systemConfig; + systemConfig = config; }; }); default = {}; @@ -162,5 +165,14 @@ in { modules = mkIf (config.type == "NixOS") [ nixosModule ]; + exports = let + defaultServices = genAttrs [ + "sshd" + "prometheus-exporters-node" + "promtail" + ] (_: { enable = mkAlmostOptionDefault true; }); + in { + services = mkIf cfg.defaultServices defaultServices; + }; }; } diff --git a/systems/aya/default.nix b/systems/aya/default.nix index ecc8eb06..921ac77b 100644 --- a/systems/aya/default.nix +++ b/systems/aya/default.nix @@ -9,7 +9,6 @@ _: { ]; exports = { services = { - sshd.enable = true; tailscale.enable = true; minecraft-bedrock-server.enable = true; }; diff --git a/systems/ct/default.nix b/systems/ct/default.nix index e767f09c..c48a418a 100644 --- a/systems/ct/default.nix +++ b/systems/ct/default.nix @@ -12,9 +12,4 @@ _: { address6 = null; }; }; - exports = { - services = { - sshd.enable = true; - }; - }; } diff --git a/systems/kasen/default.nix b/systems/kasen/default.nix index 52d11111..abf810bb 100644 --- a/systems/kasen/default.nix +++ b/systems/kasen/default.nix @@ -11,7 +11,6 @@ _: { exports = { services = { nginx.enable = true; - sshd.enable = true; openwebrx.enable = true; }; }; diff --git a/systems/keycloak/default.nix b/systems/keycloak/default.nix index 04a11be9..194c2cec 100644 --- a/systems/keycloak/default.nix +++ b/systems/keycloak/default.nix @@ -9,7 +9,6 @@ _: { ]; exports = { services = { - sshd.enable = true; keycloak.enable = true; vouch-proxy.enable = true; vaultwarden.enable = true; diff --git a/systems/kuwubernetes/default.nix b/systems/kuwubernetes/default.nix index f241e260..781f28d7 100644 --- a/systems/kuwubernetes/default.nix +++ b/systems/kuwubernetes/default.nix @@ -22,7 +22,6 @@ _: { }; exports = { services = { - sshd.enable = true; }; }; } diff --git a/systems/litterbox/default.nix b/systems/litterbox/default.nix index b04a24ed..ccdbc6a9 100644 --- a/systems/litterbox/default.nix +++ b/systems/litterbox/default.nix @@ -10,7 +10,6 @@ _: { ]; exports = { services = { - sshd.enable = true; tailscale.enable = true; }; }; diff --git a/systems/logistics/default.nix b/systems/logistics/default.nix index 0eb73660..536d1b48 100644 --- a/systems/logistics/default.nix +++ b/systems/logistics/default.nix @@ -4,11 +4,6 @@ _: { modules = [ ./nixos.nix ]; - exports = { - services = { - sshd.enable = true; - }; - }; network.networks = { local = { slaac.postfix = "40c3:23df:e82a:b214"; diff --git a/systems/mediabox/default.nix b/systems/mediabox/default.nix index b1cb3cab..3725eb57 100644 --- a/systems/mediabox/default.nix +++ b/systems/mediabox/default.nix @@ -9,7 +9,6 @@ _: { ]; exports = { services = { - sshd.enable = true; nginx = { enable = true; ports.proxied.enable = true; diff --git a/systems/reimu/default.nix b/systems/reimu/default.nix index ec9c3369..795b5857 100644 --- a/systems/reimu/default.nix +++ b/systems/reimu/default.nix @@ -9,7 +9,6 @@ _: { ]; exports = { services = { - sshd.enable = true; tailscale.enable = true; nfs.enable = true; }; diff --git a/systems/tei/default.nix b/systems/tei/default.nix index 709d5ee7..1386a750 100644 --- a/systems/tei/default.nix +++ b/systems/tei/default.nix @@ -9,7 +9,6 @@ _: { ]; exports = { services = { - sshd.enable = true; nginx = { enable = true; ports.proxied.enable = true; diff --git a/systems/utsuho/default.nix b/systems/utsuho/default.nix index 65328fa2..3c371dc5 100644 --- a/systems/utsuho/default.nix +++ b/systems/utsuho/default.nix @@ -9,7 +9,6 @@ _: { ]; exports = { services = { - sshd.enable = true; nginx = { enable = true; ports.proxied.enable = true; @@ -20,8 +19,6 @@ _: { grafana.enable = true; loki.enable = true; prometheus.enable = true; - prometheus-exporters-node.enable = true; - promtail.enable = true; }; }; }