Skip to content
Snippets Groups Projects
grid.nix 2.1 KiB
Newer Older
  • Learn to ignore specific revisions
  • let
      # Pin the deployment package-set to a specific version of nixpkgs.  This is
      # NixOS 19.03 as of Aug 28 2019.  There's nothing special about it.  It's
      # just recent at the time of development.  It can be upgraded when there is
    
      # value in doing so.  Meanwhile, our platform doesn't shift around beneath
      # us in surprising ways as time passes.
    
      pkgs = import (builtins.fetchTarball {
        url = "https://github.com/NixOS/nixpkgs/archive/3c83ad6ac13b67101cc3e2e07781963a010c1624.tar.gz";
        sha256 = "0cdq342wrkvkyccygpp1gvwp7hhqg68hljjwld4vjixm901ayy14";
      }) {};
    
    Jean-Paul Calderone's avatar
    Jean-Paul Calderone committed
      # Load our JSON configuration for later use.
    
      cfg = pkgs.lib.trivial.importJSON ./grid.config.json;
    
    Jean-Paul Calderone's avatar
    Jean-Paul Calderone committed
        # Make all of the hosts in this network use the nixpkgs we pinned above.
    
    Jean-Paul Calderone's avatar
    Jean-Paul Calderone committed
        # This is just for human consumption as far as I can tell.
    
        description = "PrivateStorage.io Staging Grid";
      };
    
    
    Jean-Paul Calderone's avatar
    Jean-Paul Calderone committed
      # Here are the hosts that are in this morph network.  This is sort of like a
      # server manifest.  We try to keep as many of the specific details as
      # possible out of *this* file so that this file only grows as server count
      # grows.  If it grows too much, we can load servers by listing contents of a
      # directory or reading from another JSON file or some such.  For now, I'm
      # just manually maintaining these entries.
      #
      # The name on the left of the `=` is mostly irrelevant but it does provide a
      # default hostname for the server if the configuration on the right side
      # doesn't specify one.
      #
      # The names must be unique!
    
    
      "testing000" = import ./testing000.nix {
    
        publicIPv4 = "3.123.26.90";
    
    Jean-Paul Calderone's avatar
    Jean-Paul Calderone committed
        # Pass along some of the Tahoe-LAFS configuration.  If we have much more
        # configuration than this we may want to keep it bundled up in one value
        # instead of pulling individual values out to pass along.
    
        inherit (cfg) publicStoragePort;
    
      };
    
      "staging001" = import ./staging001.nix {
        publicIPv4 = "209.95.51.251";
    
        inherit (cfg) publicStoragePort;
    
      # Pass the whole grid configuration to the module and let it take what it
      # wants.
      "staging002" = import ./staging002.nix cfg;