diff --git a/morph/README.rst b/morph/README.rst index 96d03eb3cf522af6f1b0065105a2d57ab5c78f6a..bdfe48454529c0ff13f7b30aa275b5a1726a2096 100644 --- a/morph/README.rst +++ b/morph/README.rst @@ -36,11 +36,17 @@ lib --- This contains Nix library code for defining the grids. +It has all the details of how each type of node in our grid is configured. +It knows about morph (so defines ``deployment.secrets`` and has the logic for collecting data defined by other nodes). +It defines options (i.e. ``grid.*``) for things specific to how we configure grids (e.g. ``grid.publicKeyPath``). +It defines metadata about nodes that we use on other nodes (e.g. ``grid.monitoringvpnIPv4`` which is used to define various things on the monitoring node). +Each top-level module here defines one type of node with all (or at least most) of the configuration necessary for that node. grid ---- Specific grid definitions live in subdirectories beneath this directory. +They consist almost exclusively setting options defined in ``morph/lib`` (and few options defined elsewhere) and then delegating to the ``morph/lib`` modules. private-keys ~~~~~~~~~~~~ diff --git a/nixos/modules/README.rst b/nixos/modules/README.rst new file mode 100644 index 0000000000000000000000000000000000000000..b395eace08655ade8b52262dbdf3bf62664d1c66 --- /dev/null +++ b/nixos/modules/README.rst @@ -0,0 +1,5 @@ +These are mostly modelled on upstream nixos modules. +They are generally fairly configurable (they don't tend to hard-code paths, they can be enabled or disabled). +They don't know anything about morph (e.g. ``deployment.secrets``) or how the different grids are configured (e.g. ``grid.publicKeyPath``). +Each module here tends to define one service (or group of related services) or feature. +Eventually, all of these will be imported automatically and controlled by ``services.private-storage.*.enabled`` options.