From 11b1f8b30477286a3dbca99c6748ea18c696dc76 Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Sun, 27 Apr 2025 18:22:58 +0300 Subject: [PATCH] chore(ops/modules): drop unused NixOS modules Change-Id: I043fea952df5498cd3e831b479220b1025a295fa Reviewed-on: https://cl.snix.dev/c/snix/+/30338 Tested-by: besadii Autosubmit: Florian Klink Reviewed-by: Ilan Joselevich --- ops/modules/auto-deploy.nix | 104 -------------------------------- ops/modules/automatic-gc.nix | 97 ----------------------------- ops/modules/default-imports.nix | 14 ----- ops/modules/raito-vm.nix | 76 ----------------------- third_party/default.nix | 1 - 5 files changed, 292 deletions(-) delete mode 100644 ops/modules/auto-deploy.nix delete mode 100644 ops/modules/automatic-gc.nix delete mode 100644 ops/modules/default-imports.nix delete mode 100644 ops/modules/raito-vm.nix diff --git a/ops/modules/auto-deploy.nix b/ops/modules/auto-deploy.nix deleted file mode 100644 index c504906b2..000000000 --- a/ops/modules/auto-deploy.nix +++ /dev/null @@ -1,104 +0,0 @@ -# Defines a service for automatically and periodically calling depot's -# rebuild-system on a NixOS machine. -# -# Deploys can be stopped in emergency situations by creating an empty -# file called `stop` in the state directory of the auto-deploy service -# (typically /var/lib/auto-deploy). -{ depot, config, lib, pkgs, ... }: - -let - cfg = config.services.depot.auto-deploy; - description = "to automatically rebuild the current system's NixOS config from the latest checkout of depot"; - - rebuild-system = depot.ops.nixos.rebuildSystemWith "$STATE_DIRECTORY/deploy"; - deployScript = pkgs.writeShellScript "auto-deploy" '' - set -ueo pipefail - - if [[ $EUID -ne 0 ]]; then - echo "Oh no! Only root is allowed to run auto-deploy!" >&2 - exit 1 - fi - - if [[ -f $STATE_DIRECTORY/stop ]]; then - echo "stop file exists in $STATE_DIRECTORY, not deploying!" >&2 - exit 1 - fi - - readonly depot=$STATE_DIRECTORY/depot.git - readonly deploy=$STATE_DIRECTORY/deploy - readonly git="git -C $depot" - - # find-or-create depot - if [ ! -d $depot ]; then - # cannot use $git here because $depot doesn't exist - git clone --bare ${cfg.git-remote} $depot - fi - - function cleanup() { - $git worktree remove $deploy - } - trap cleanup EXIT - - $git fetch origin - $git worktree add --force $deploy FETCH_HEAD - # unsure why, but without this switch-to-configuration attempts to install - # NixOS in $STATE_DIRECTORY - (cd / && ${rebuild-system}/bin/rebuild-system) - ''; -in -{ - options.services.depot.auto-deploy = { - enable = lib.mkEnableOption description; - - git-remote = lib.mkOption { - type = lib.types.str; - default = "https://cl.tvl.fyi/depot.git"; - description = '' - The (possibly remote) repository from which to clone as specified by the - GIT URLS section of `man git-clone`. - ''; - }; - - interval = lib.mkOption { - type = lib.types.str; - example = "1h"; - description = '' - Interval between Nix builds, specified in systemd.time(7) format. - ''; - }; - }; - - config = lib.mkIf cfg.enable { - systemd.services.auto-deploy = { - inherit description; - script = "${deployScript}"; - path = with pkgs; [ - bash - git - gnutar - gzip - ]; - after = [ "network-online.target" ]; - wants = [ "network-online.target" ]; - - # We need to prevent NixOS from interrupting us while it attempts to - # restart systemd units. - restartIfChanged = false; - - serviceConfig = { - Type = "oneshot"; - StateDirectory = "auto-deploy"; - }; - }; - - systemd.timers.auto-deploy = { - inherit description; - wantedBy = [ "multi-user.target" ]; - - timerConfig = { - OnActiveSec = "1"; - OnUnitActiveSec = cfg.interval; - }; - }; - }; -} diff --git a/ops/modules/automatic-gc.nix b/ops/modules/automatic-gc.nix deleted file mode 100644 index 003f16091..000000000 --- a/ops/modules/automatic-gc.nix +++ /dev/null @@ -1,97 +0,0 @@ -# Defines a service for automatically collecting Nix garbage -# periodically, without relying on the (ostensibly broken) Nix options -# for min/max space available. -{ config, lib, pkgs, ... }: - -let - cfg = config.services.depot.automatic-gc; - description = "Automatically collect Nix garbage"; - - GiBtoKiB = n: n * 1024 * 1024; - GiBtoBytes = n: n * 1024 * 1024 * 1024; - - gcScript = pkgs.writeShellScript "automatic-nix-gc" '' - set -ueo pipefail - - if [ -e /run/stop-automatic-gc ]; then - echo "GC is disabled through /run/stop-automatic-gc" - exit 0 - fi - - readonly MIN_THRESHOLD_KIB="${toString (GiBtoKiB cfg.diskThreshold)}" - readonly MAX_FREED_BYTES="${toString (GiBtoBytes cfg.maxFreed)}" - readonly GEN_THRESHOLD="${cfg.preserveGenerations}" - readonly AVAILABLE_KIB=$(df --sync /nix --output=avail | tail -n1) - - if [ "''${AVAILABLE_KIB}" -lt "''${MIN_THRESHOLD_KIB}" ]; then - echo "Have ''${AVAILABLE_KIB} KiB, but want ''${MIN_THRESHOLD_KIB} KiB." - echo "Triggering Nix garbage collection up to ''${MAX_FREED_BYTES} bytes." - set -x - ${config.nix.package}/bin/nix-collect-garbage \ - --delete-older-than "''${GEN_THRESHOLD}" \ - --max-freed "''${MAX_FREED_BYTES}" - else - echo "Skipping GC, enough space available" - fi - ''; -in -{ - options.services.depot.automatic-gc = { - enable = lib.mkEnableOption description; - - interval = lib.mkOption { - type = lib.types.str; - example = "1h"; - description = '' - Interval between garbage collection runs, specified in - systemd.time(7) format. - ''; - }; - - diskThreshold = lib.mkOption { - type = lib.types.int; - example = "100"; - description = '' - Minimum amount of space that needs to be available (in GiB) on - the partition holding /nix. Garbage collection is triggered if - it falls below this. - ''; - }; - - maxFreed = lib.mkOption { - type = lib.types.int; - example = "420"; - description = '' - Maximum amount of space to free in a single GC run, in GiB. - ''; - }; - - preserveGenerations = lib.mkOption { - type = lib.types.str; - default = "90d"; - description = '' - Preserve NixOS generations younger than the specified value, - in the format expected by nix-collect-garbage(1). - ''; - }; - }; - - config = lib.mkIf cfg.enable { - systemd.services.automatic-gc = { - inherit description; - script = "${gcScript}"; - serviceConfig.Type = "oneshot"; - }; - - systemd.timers.automatic-gc = { - inherit description; - requisite = [ "nix-daemon.service" ]; - wantedBy = [ "multi-user.target" ]; - - timerConfig = { - OnActiveSec = "1"; - OnUnitActiveSec = cfg.interval; - }; - }; - }; -} diff --git a/ops/modules/default-imports.nix b/ops/modules/default-imports.nix deleted file mode 100644 index d3060bb51..000000000 --- a/ops/modules/default-imports.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ depot, ... }: - -# Default set of modules that are imported in all Depot nixos systems -# -# All modules here should be properly gated behind a `lib.mkEnableOption` with a -# `lib.mkIf` for the config. - -{ - imports = [ - ./automatic-gc.nix - ./auto-deploy.nix - ./raito-vm.nix - ]; -} diff --git a/ops/modules/raito-vm.nix b/ops/modules/raito-vm.nix deleted file mode 100644 index 5f248e70c..000000000 --- a/ops/modules/raito-vm.nix +++ /dev/null @@ -1,76 +0,0 @@ -{ lib, config, ... }: -let - cfg = config.infra.hardware.raito-vm; - inherit (lib) mkEnableOption mkIf mkOption types; -in -{ - options.infra.hardware.raito-vm = { - enable = mkEnableOption "Raito's VM hardware defaults"; - - networking = { - nat64.enable = mkEnableOption "the setup of NAT64 rules to the local NAT64 node"; - - wan = { - address = mkOption { - type = types.str; - description = "IPv6 prefix for WAN. Ask Raito when in doubt."; - }; - mac = mkOption { - type = types.str; - description = "MAC address for the WAN interface."; - }; - }; - }; - }; - - config = mkIf cfg.enable { - services.qemuGuest.enable = true; - systemd.network.enable = true; - networking.useDHCP = lib.mkDefault false; - - systemd.network.networks."10-wan" = { - matchConfig.Name = "wan"; - linkConfig.RequiredForOnline = true; - networkConfig.Address = [ cfg.networking.wan.address ]; - - routes = mkIf cfg.networking.nat64.enable [ - { - Destination = "64:ff9b::/96"; - Gateway = "2001:bc8:38ee:100::100"; - Scope = "site"; - } - ]; - - # Enable DNS64 resolvers from Google, I'm too lazy. - dns = mkIf cfg.networking.nat64.enable [ "2001:4860:4860::6464" "2001:4860:4860::64" ]; - }; - - systemd.network.links."10-wan" = { - matchConfig.MACAddress = cfg.networking.wan.mac; - linkConfig.Name = "wan"; - }; - - boot.loader.systemd-boot.enable = true; - - boot.initrd.kernelModules = [ - "virtio_balloon" - "virtio_console" - "virtio_rng" - ]; - - boot.initrd.availableKernelModules = [ - "9p" - "9pnet_virtio" - "ata_piix" - "nvme" - "sr_mod" - "uhci_hcd" - "virtio_blk" - "virtio_mmio" - "virtio_net" - "virtio_pci" - "virtio_scsi" - "xhci_pci" - ]; - }; -} diff --git a/third_party/default.nix b/third_party/default.nix index a25e620d1..1a37c4454 100644 --- a/third_party/default.nix +++ b/third_party/default.nix @@ -35,7 +35,6 @@ inherit specialArgs system; modules = [ configuration - (import (depot.path.origSrc + "/ops/modules/default-imports.nix")) ]; };