about summary refs log tree commit diff
path: root/ops/nixos/default.nix
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2021-04-11T20·50+0200
committertazjin <mail@tazj.in>2021-04-11T22·18+0000
commit90281c4eac4cd25045ed80c5f8f27c74898a02b3 (patch)
tree804425642af16b9e299d469ad6e21c6a23a400e9 /ops/nixos/default.nix
parent7deabb8c8d6f4c7e58e2b16548b8a1895795963b (diff)
refactor(ops): Split //ops/nixos into different locations r/2482
Splits //ops/nixos into:

* //ops/nixos.nix - utility functions for building systems
* //ops/machines - shared machine definitions (read by readTree)
* //ops/modules - shared NixOS modules (skipped by readTree)

This simplifies working with the configuration fixpoint in whitby, and
is overall a bit more in line with how NixOS systems in user folders
currently work.

Change-Id: I1322ec5cc76c0207c099c05d44828a3df0b3ffc1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2931
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: glittershark <grfn@gws.fyi>
Diffstat (limited to 'ops/nixos/default.nix')
-rw-r--r--ops/nixos/default.nix61
1 files changed, 0 insertions, 61 deletions
diff --git a/ops/nixos/default.nix b/ops/nixos/default.nix
deleted file mode 100644
index 8be700b104..0000000000
--- a/ops/nixos/default.nix
+++ /dev/null
@@ -1,61 +0,0 @@
-# Most of the Nix expressions in this folder are NixOS modules, which
-# are not readTree compatible.
-#
-# Some things (such as system configurations) are, and we import them
-# here manually.
-#
-# TODO(tazjin): Find a more elegant solution for the whole module
-# situation.
-{ depot, lib, pkgs, ... }@args:
-
-let inherit (lib) findFirst isAttrs;
-in rec {
-  whitby = import ./whitby/default.nix args;
-
-  # System installation
-
-  allSystems = import ./all-systems.nix args;
-
-  # This provides our standard set of arguments to all NixOS modules.
-  baseModule = { ... }: {
-    _module.args = {
-      inherit (args) depot;
-    };
-  };
-
-  nixosFor = configuration: (depot.third_party.nixos {
-    configuration = { ... }: {
-      imports = [
-        baseModule
-        configuration
-      ];
-    };
-  });
-
-  findSystem = hostname:
-    (findFirst
-      (system: system.config.networking.hostName == hostname)
-      (throw "${hostname} is not a known NixOS host")
-      (map nixosFor allSystems));
-
-  rebuild-system = pkgs.writeShellScriptBin "rebuild-system" ''
-    set -ue
-    if [[ $EUID -ne 0 ]]; then
-      echo "Oh no! Only root is allowed to rebuild the system!" >&2
-      exit 1
-    fi
-
-    echo "Rebuilding NixOS for $HOSTNAME"
-    system=$(nix-build -E "((import ${toString depot.depotPath} {}).ops.nixos.findSystem \"$HOSTNAME\").system" --no-out-link --show-trace)
-
-    nix-env -p /nix/var/nix/profiles/system --set $system
-    $system/bin/switch-to-configuration switch
-  '';
-
-  # Systems that should be built in CI
-  #
-  # TODO(tazjin): Refactor the whole systems setup, it's a bit
-  # inconsistent at the moment.
-  whitbySystem = (nixosFor whitby).system;
-  meta.targets = [ "whitbySystem" ];
-}