###
# File specifying all the deployement options for the nodes administrated by the dgnum.
#
# Node metadata template is:
#
# NODE_NAME = {
#   adminGroups = []; # List of groups that have root access
#   admins = []; # List of individuals that have root access
#   deployment = {}; # Colmena deployment options
#   nixpkgs = "unstable" or "22.11"; # nixpkgs version
# }

let
  mkNode =
    _: attrs:
    {
      adminGroups = [ ];
      admins = [ ];

      deployment = { };

      nixpkgs = "23.11";
    }
    // attrs;
in

builtins.mapAttrs mkNode {
  web01 = {
    deployment.tags = [ "web" ];

    stateVersion = "23.05";
  };

  compute01 = {
    stateVersion = "23.05";
  };

  geo01 = {
    deployment.tags = [ "geo" ];

    stateVersion = "24.05";
    nixpkgs = "unstable";
  };

  geo02 = {
    deployment.tags = [ "geo" ];

    stateVersion = "24.05";
    nixpkgs = "unstable";
  };

  storage01 = {
    stateVersion = "23.11";
  };

  vault01 = {
    stateVersion = "23.11";
    nixpkgs = "unstable";
  };

  web02 = {
    stateVersion = "24.05";
    nixpkgs = "unstable";
  };

  rescue01 = {
    stateVersion = "23.11";
  };
}