about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--README.md2
-rw-r--r--docs/CONTRIBUTING.md2
-rw-r--r--ops/machines/all-systems.nix (renamed from ops/nixos/all-systems.nix)2
-rw-r--r--ops/machines/whitby/OWNERS (renamed from ops/nixos/whitby/OWNERS)0
-rw-r--r--ops/machines/whitby/README.md (renamed from ops/nixos/whitby/README.md)0
-rw-r--r--ops/machines/whitby/default.nix (renamed from ops/nixos/whitby/default.nix)43
-rw-r--r--ops/modules/.skip-subtree (renamed from ops/nixos/.skip-subtree)0
-rw-r--r--ops/modules/README.md (renamed from ops/nixos/README.md)0
-rw-r--r--ops/modules/clbot.nix (renamed from ops/nixos/clbot.nix)0
-rw-r--r--ops/modules/default.nix2
-rw-r--r--ops/modules/irccat.nix (renamed from ops/nixos/irccat.nix)0
-rw-r--r--ops/modules/monorepo-gerrit.nix (renamed from ops/nixos/monorepo-gerrit.nix)0
-rw-r--r--ops/modules/panettone.nix (renamed from ops/nixos/panettone.nix)0
-rw-r--r--ops/modules/paroxysm.nix (renamed from ops/nixos/paroxysm.nix)0
-rw-r--r--ops/modules/quassel.nix (renamed from ops/nixos/quassel.nix)0
-rw-r--r--ops/modules/smtprelay.nix (renamed from ops/nixos/smtprelay.nix)0
-rw-r--r--ops/modules/sourcegraph.nix (renamed from ops/nixos/sourcegraph.nix)0
-rw-r--r--ops/modules/tvl-buildkite.nix (renamed from ops/nixos/tvl-buildkite.nix)0
-rw-r--r--ops/modules/tvl-slapd/default.nix (renamed from ops/nixos/tvl-slapd/default.nix)0
-rw-r--r--ops/modules/tvl-sso/default.nix (renamed from ops/nixos/tvl-sso/default.nix)0
-rw-r--r--ops/modules/v4l2loopback.nix (renamed from ops/nixos/v4l2loopback.nix)0
-rw-r--r--ops/modules/www/b.tvl.fyi.nix (renamed from ops/nixos/www/b.tvl.fyi.nix)0
-rw-r--r--ops/modules/www/base.nix (renamed from ops/nixos/www/base.nix)0
-rw-r--r--ops/modules/www/cache.tvl.su.nix (renamed from ops/nixos/www/cache.tvl.su.nix)0
-rw-r--r--ops/modules/www/cl.tvl.fyi.nix (renamed from ops/nixos/www/cl.tvl.fyi.nix)0
-rw-r--r--ops/modules/www/code.tvl.fyi.nix (renamed from ops/nixos/www/code.tvl.fyi.nix)0
-rw-r--r--ops/modules/www/cs.tvl.fyi.nix (renamed from ops/nixos/www/cs.tvl.fyi.nix)0
-rw-r--r--ops/modules/www/login.tvl.fyi.nix (renamed from ops/nixos/www/login.tvl.fyi.nix)0
-rw-r--r--ops/modules/www/tazj.in.nix (renamed from ops/nixos/www/tazj.in.nix)0
-rw-r--r--ops/modules/www/todo.tvl.fyi.nix (renamed from ops/nixos/www/todo.tvl.fyi.nix)0
-rw-r--r--ops/modules/www/tvl.fyi.nix (renamed from ops/nixos/www/tvl.fyi.nix)0
-rw-r--r--ops/modules/www/wigglydonke.rs.nix (renamed from ops/nixos/www/wigglydonke.rs.nix)0
-rw-r--r--ops/nixos.nix (renamed from ops/nixos/default.nix)22
-rw-r--r--ops/nixos/.gitignore3
-rw-r--r--users/glittershark/system/system/machines/chupacabra.nix2
-rw-r--r--users/tazjin/nixos/README.md17
-rw-r--r--users/tazjin/nixos/camden/default.nix4
-rw-r--r--users/tazjin/nixos/frog/default.nix2
38 files changed, 41 insertions, 60 deletions
diff --git a/README.md b/README.md
index b7ea0f8765..0f618bf21d 100644
--- a/README.md
+++ b/README.md
@@ -42,7 +42,7 @@ Twitter][].
   [`//ops/pipelines`](https://cs.tvl.fyi/depot/-/tree/ops/pipelines).
 
 All services that we host are deployed on NixOS machines that we manage. Their
-configuration is tracked in `//ops/nixos`.
+configuration is tracked in `//ops/{modules,machines}`.
 
 ## Nix
 
diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md
index 80481d88d3..7c9d034a93 100644
--- a/docs/CONTRIBUTING.md
+++ b/docs/CONTRIBUTING.md
@@ -60,7 +60,7 @@ And `scope` should refer to some kind of logical grouping inside of the project.
 
 It does not make sense to include the full path unless it aids in
 disambiguating. For example, when changing the configuration of the host
-`camden` at `//ops/nixos/camden` it is enough to write `feat(camden): ...`.
+`whitby` at `//ops/machines/whitby` it is enough to write `feat(whitby): ...`.
 
 Please take a look at the existing commit log for examples.
 
diff --git a/ops/nixos/all-systems.nix b/ops/machines/all-systems.nix
index 05a89e05ab..493d39e06b 100644
--- a/ops/nixos/all-systems.nix
+++ b/ops/machines/all-systems.nix
@@ -1,6 +1,6 @@
 { depot, ... }:
 
-(with depot.ops.nixos; [
+(with depot.ops.machines; [
   whitby
 ]) ++
 
diff --git a/ops/nixos/whitby/OWNERS b/ops/machines/whitby/OWNERS
index b1b749e871..b1b749e871 100644
--- a/ops/nixos/whitby/OWNERS
+++ b/ops/machines/whitby/OWNERS
diff --git a/ops/nixos/whitby/README.md b/ops/machines/whitby/README.md
index 55287c5412..55287c5412 100644
--- a/ops/nixos/whitby/README.md
+++ b/ops/machines/whitby/README.md
diff --git a/ops/nixos/whitby/default.nix b/ops/machines/whitby/default.nix
index 394b79c21b..eb5ee4ed6d 100644
--- a/ops/nixos/whitby/default.nix
+++ b/ops/machines/whitby/default.nix
@@ -1,30 +1,31 @@
-{ depot, lib, pkgs, ... }:
+{ depot, lib, pkgs, ... }: # readTree options
+config: # passed by module system
 
 let
   inherit (builtins) listToAttrs;
   inherit (lib) range;
 in lib.fix(self: {
   imports = [
-    "${depot.depotPath}/ops/nixos/clbot.nix"
-    "${depot.depotPath}/ops/nixos/irccat.nix"
-    "${depot.depotPath}/ops/nixos/monorepo-gerrit.nix"
-    "${depot.depotPath}/ops/nixos/panettone.nix"
-    "${depot.depotPath}/ops/nixos/paroxysm.nix"
-    "${depot.depotPath}/ops/nixos/smtprelay.nix"
-    "${depot.depotPath}/ops/nixos/sourcegraph.nix"
-    "${depot.depotPath}/ops/nixos/tvl-buildkite.nix"
-    "${depot.depotPath}/ops/nixos/tvl-slapd/default.nix"
-    "${depot.depotPath}/ops/nixos/tvl-sso/default.nix"
-    "${depot.depotPath}/ops/nixos/www/b.tvl.fyi.nix"
-    "${depot.depotPath}/ops/nixos/www/cache.tvl.su.nix"
-    "${depot.depotPath}/ops/nixos/www/cl.tvl.fyi.nix"
-    "${depot.depotPath}/ops/nixos/www/code.tvl.fyi.nix"
-    "${depot.depotPath}/ops/nixos/www/cs.tvl.fyi.nix"
-    "${depot.depotPath}/ops/nixos/www/login.tvl.fyi.nix"
-    "${depot.depotPath}/ops/nixos/www/tazj.in.nix"
-    "${depot.depotPath}/ops/nixos/www/todo.tvl.fyi.nix"
-    "${depot.depotPath}/ops/nixos/www/tvl.fyi.nix"
-    "${depot.depotPath}/ops/nixos/www/wigglydonke.rs.nix"
+    "${depot.depotPath}/ops/modules/clbot.nix"
+    "${depot.depotPath}/ops/modules/irccat.nix"
+    "${depot.depotPath}/ops/modules/monorepo-gerrit.nix"
+    "${depot.depotPath}/ops/modules/panettone.nix"
+    "${depot.depotPath}/ops/modules/paroxysm.nix"
+    "${depot.depotPath}/ops/modules/smtprelay.nix"
+    "${depot.depotPath}/ops/modules/sourcegraph.nix"
+    "${depot.depotPath}/ops/modules/tvl-buildkite.nix"
+    "${depot.depotPath}/ops/modules/tvl-slapd/default.nix"
+    "${depot.depotPath}/ops/modules/tvl-sso/default.nix"
+    "${depot.depotPath}/ops/modules/www/b.tvl.fyi.nix"
+    "${depot.depotPath}/ops/modules/www/cache.tvl.su.nix"
+    "${depot.depotPath}/ops/modules/www/cl.tvl.fyi.nix"
+    "${depot.depotPath}/ops/modules/www/code.tvl.fyi.nix"
+    "${depot.depotPath}/ops/modules/www/cs.tvl.fyi.nix"
+    "${depot.depotPath}/ops/modules/www/login.tvl.fyi.nix"
+    "${depot.depotPath}/ops/modules/www/tazj.in.nix"
+    "${depot.depotPath}/ops/modules/www/todo.tvl.fyi.nix"
+    "${depot.depotPath}/ops/modules/www/tvl.fyi.nix"
+    "${depot.depotPath}/ops/modules/www/wigglydonke.rs.nix"
     "${pkgs.path}/nixos/modules/services/web-apps/gerrit.nix"
   ];
 
diff --git a/ops/nixos/.skip-subtree b/ops/modules/.skip-subtree
index 09520f8c83..09520f8c83 100644
--- a/ops/nixos/.skip-subtree
+++ b/ops/modules/.skip-subtree
diff --git a/ops/nixos/README.md b/ops/modules/README.md
index 595b4c3344..595b4c3344 100644
--- a/ops/nixos/README.md
+++ b/ops/modules/README.md
diff --git a/ops/nixos/clbot.nix b/ops/modules/clbot.nix
index ad33e25a4d..ad33e25a4d 100644
--- a/ops/nixos/clbot.nix
+++ b/ops/modules/clbot.nix
diff --git a/ops/modules/default.nix b/ops/modules/default.nix
new file mode 100644
index 0000000000..8bdfecdf41
--- /dev/null
+++ b/ops/modules/default.nix
@@ -0,0 +1,2 @@
+# Make readTree happy at this level.
+_: {}
diff --git a/ops/nixos/irccat.nix b/ops/modules/irccat.nix
index e4b30b7355..e4b30b7355 100644
--- a/ops/nixos/irccat.nix
+++ b/ops/modules/irccat.nix
diff --git a/ops/nixos/monorepo-gerrit.nix b/ops/modules/monorepo-gerrit.nix
index eaea386ecd..eaea386ecd 100644
--- a/ops/nixos/monorepo-gerrit.nix
+++ b/ops/modules/monorepo-gerrit.nix
diff --git a/ops/nixos/panettone.nix b/ops/modules/panettone.nix
index 51a7468578..51a7468578 100644
--- a/ops/nixos/panettone.nix
+++ b/ops/modules/panettone.nix
diff --git a/ops/nixos/paroxysm.nix b/ops/modules/paroxysm.nix
index cd9cd3866e..cd9cd3866e 100644
--- a/ops/nixos/paroxysm.nix
+++ b/ops/modules/paroxysm.nix
diff --git a/ops/nixos/quassel.nix b/ops/modules/quassel.nix
index df26a39455..df26a39455 100644
--- a/ops/nixos/quassel.nix
+++ b/ops/modules/quassel.nix
diff --git a/ops/nixos/smtprelay.nix b/ops/modules/smtprelay.nix
index d8e03b5794..d8e03b5794 100644
--- a/ops/nixos/smtprelay.nix
+++ b/ops/modules/smtprelay.nix
diff --git a/ops/nixos/sourcegraph.nix b/ops/modules/sourcegraph.nix
index a24328f3e3..a24328f3e3 100644
--- a/ops/nixos/sourcegraph.nix
+++ b/ops/modules/sourcegraph.nix
diff --git a/ops/nixos/tvl-buildkite.nix b/ops/modules/tvl-buildkite.nix
index 2aa3b81811..2aa3b81811 100644
--- a/ops/nixos/tvl-buildkite.nix
+++ b/ops/modules/tvl-buildkite.nix
diff --git a/ops/nixos/tvl-slapd/default.nix b/ops/modules/tvl-slapd/default.nix
index ae99fced74..ae99fced74 100644
--- a/ops/nixos/tvl-slapd/default.nix
+++ b/ops/modules/tvl-slapd/default.nix
diff --git a/ops/nixos/tvl-sso/default.nix b/ops/modules/tvl-sso/default.nix
index 8e33c708b7..8e33c708b7 100644
--- a/ops/nixos/tvl-sso/default.nix
+++ b/ops/modules/tvl-sso/default.nix
diff --git a/ops/nixos/v4l2loopback.nix b/ops/modules/v4l2loopback.nix
index 636b2ff6cf..636b2ff6cf 100644
--- a/ops/nixos/v4l2loopback.nix
+++ b/ops/modules/v4l2loopback.nix
diff --git a/ops/nixos/www/b.tvl.fyi.nix b/ops/modules/www/b.tvl.fyi.nix
index 45f6c6ed51..45f6c6ed51 100644
--- a/ops/nixos/www/b.tvl.fyi.nix
+++ b/ops/modules/www/b.tvl.fyi.nix
diff --git a/ops/nixos/www/base.nix b/ops/modules/www/base.nix
index 4b956cd95e..4b956cd95e 100644
--- a/ops/nixos/www/base.nix
+++ b/ops/modules/www/base.nix
diff --git a/ops/nixos/www/cache.tvl.su.nix b/ops/modules/www/cache.tvl.su.nix
index 182306bebf..182306bebf 100644
--- a/ops/nixos/www/cache.tvl.su.nix
+++ b/ops/modules/www/cache.tvl.su.nix
diff --git a/ops/nixos/www/cl.tvl.fyi.nix b/ops/modules/www/cl.tvl.fyi.nix
index 470122c395..470122c395 100644
--- a/ops/nixos/www/cl.tvl.fyi.nix
+++ b/ops/modules/www/cl.tvl.fyi.nix
diff --git a/ops/nixos/www/code.tvl.fyi.nix b/ops/modules/www/code.tvl.fyi.nix
index c8a4b27b1b..c8a4b27b1b 100644
--- a/ops/nixos/www/code.tvl.fyi.nix
+++ b/ops/modules/www/code.tvl.fyi.nix
diff --git a/ops/nixos/www/cs.tvl.fyi.nix b/ops/modules/www/cs.tvl.fyi.nix
index fac814baf0..fac814baf0 100644
--- a/ops/nixos/www/cs.tvl.fyi.nix
+++ b/ops/modules/www/cs.tvl.fyi.nix
diff --git a/ops/nixos/www/login.tvl.fyi.nix b/ops/modules/www/login.tvl.fyi.nix
index 05b7cee253..05b7cee253 100644
--- a/ops/nixos/www/login.tvl.fyi.nix
+++ b/ops/modules/www/login.tvl.fyi.nix
diff --git a/ops/nixos/www/tazj.in.nix b/ops/modules/www/tazj.in.nix
index 7d658a5ec4..7d658a5ec4 100644
--- a/ops/nixos/www/tazj.in.nix
+++ b/ops/modules/www/tazj.in.nix
diff --git a/ops/nixos/www/todo.tvl.fyi.nix b/ops/modules/www/todo.tvl.fyi.nix
index b53f5437e7..b53f5437e7 100644
--- a/ops/nixos/www/todo.tvl.fyi.nix
+++ b/ops/modules/www/todo.tvl.fyi.nix
diff --git a/ops/nixos/www/tvl.fyi.nix b/ops/modules/www/tvl.fyi.nix
index 45fd35803d..45fd35803d 100644
--- a/ops/nixos/www/tvl.fyi.nix
+++ b/ops/modules/www/tvl.fyi.nix
diff --git a/ops/nixos/www/wigglydonke.rs.nix b/ops/modules/www/wigglydonke.rs.nix
index 0bc67898c6..0bc67898c6 100644
--- a/ops/nixos/www/wigglydonke.rs.nix
+++ b/ops/modules/www/wigglydonke.rs.nix
diff --git a/ops/nixos/default.nix b/ops/nixos.nix
index 8be700b104..465a2eed31 100644
--- a/ops/nixos/default.nix
+++ b/ops/nixos.nix
@@ -1,21 +1,8 @@
-# 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.
+# Helper functions for instantiating depot-compatible NixOS machines.
 { 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 = {
@@ -36,7 +23,7 @@ in rec {
     (findFirst
       (system: system.config.networking.hostName == hostname)
       (throw "${hostname} is not a known NixOS host")
-      (map nixosFor allSystems));
+      (map nixosFor depot.ops.machines.all-systems));
 
   rebuild-system = pkgs.writeShellScriptBin "rebuild-system" ''
     set -ue
@@ -53,9 +40,6 @@ in rec {
   '';
 
   # 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;
+  whitbySystem = (nixosFor depot.ops.machines.whitby).system;
   meta.targets = [ "whitbySystem" ];
 }
diff --git a/ops/nixos/.gitignore b/ops/nixos/.gitignore
deleted file mode 100644
index 773fa16670..0000000000
--- a/ops/nixos/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-hardware-configuration.nix
-local-configuration.nix
-result
diff --git a/users/glittershark/system/system/machines/chupacabra.nix b/users/glittershark/system/system/machines/chupacabra.nix
index 4f7f39ee5a..974e3c34e3 100644
--- a/users/glittershark/system/system/machines/chupacabra.nix
+++ b/users/glittershark/system/system/machines/chupacabra.nix
@@ -7,7 +7,7 @@
     ../modules/tvl.nix
     ../modules/fcitx.nix
     ../modules/rtlsdr.nix
-    ../../../../../ops/nixos/v4l2loopback.nix
+    ../../../../../ops/modules/v4l2loopback.nix
     ../modules/desktop.nix
     ../modules/development.nix
   ];
diff --git a/users/tazjin/nixos/README.md b/users/tazjin/nixos/README.md
index 0093f4ac65..662f2a36ac 100644
--- a/users/tazjin/nixos/README.md
+++ b/users/tazjin/nixos/README.md
@@ -1,20 +1,17 @@
 NixOS configuration
 ===================
 
-My NixOS configuration! It configures most of the packages I require
+My NixOS configurations! It configures most of the packages I require
 on my systems, sets up Emacs the way I need and does a bunch of other
 interesting things.
 
-System configuration lives in folders for each machine and a custom
-fixed point evaluation (similar to standard NixOS module
-configuration) is used to combine configuration together.
+System configuration lives in folders, and some of the modules stem
+from `//ops/modules`.
 
-Building `ops.nixos.rebuilder` yields a script that will automatically
-build and activate the newest configuration based on the current
-hostname.
+Machines are deployed with the script at `ops.nixos.rebuild-system`.
 
 ## Configured hosts:
 
-* `frog` - weapon of mass computation at home
-* `camden` - NUC serving tazj.in, tvl.fyi & co
-* ~~`urdhva` - T470s~~ (currently with edef)
+* `tverskoy` - X13 AMD that's travelling around with me
+* `frog` - weapon of mass computation (in storage in London)
+* `camden` - NUC formerly serving tazj.in (in storage in London)
diff --git a/users/tazjin/nixos/camden/default.nix b/users/tazjin/nixos/camden/default.nix
index f334320b38..2659db5e91 100644
--- a/users/tazjin/nixos/camden/default.nix
+++ b/users/tazjin/nixos/camden/default.nix
@@ -25,8 +25,8 @@ in lib.fix(self: {
       sha256 = "157c64220lf825ll4c0cxsdwg7cxqdx4z559fdp7kpz0g6p8fhhr";
     };
     in [
-      "${depot.depotPath}/ops/nixos/quassel.nix"
-      "${depot.depotPath}/ops/nixos/smtprelay.nix"
+      "${depot.depotPath}/ops/modules/quassel.nix"
+      "${depot.depotPath}/ops/modules/smtprelay.nix"
       "${oldChannel}/nixos/modules/security/acme.nix"
     ];
 
diff --git a/users/tazjin/nixos/frog/default.nix b/users/tazjin/nixos/frog/default.nix
index 7f709da7ee..1394f9cf4e 100644
--- a/users/tazjin/nixos/frog/default.nix
+++ b/users/tazjin/nixos/frog/default.nix
@@ -16,7 +16,7 @@ config: let
   };
 in lib.fix(self: {
   imports = [
-    "${depot.depotPath}/ops/nixos/v4l2loopback.nix"
+    "${depot.depotPath}/ops/modules/v4l2loopback.nix"
   ];
 
   boot = {